Report

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

497410003

資工三
張書銘
Hill-Climbing (HC)
#:實驗編號
Attack:Pair of queens that are attacking each others
Time:執行時間
N=8 N=50
# Attack Time (s) # Attack Time (s)
1 0 0.004 1 0 3.731
2 0 0.002 2 0 6.457
3 0 0.006 3 0 29.834
4 1 0.011 4 1 32.57
5 0 0.004 5 0 12.35
6 0 0.003 6 1 32.375
7 0 0.002 7 0 20.04
8 0 0.002 8 1 32.639
9 0 0.002 9 1 32.411
10 0 0.002 10 0 5.517
11 0 0.004 11 0 13.013
12 0 0.001 12 1 32.523
13 0 0.002 13 2 32.479
14 0 0.003 14 0 15.554
15 0 0.002 15 1 32.228
16 0 0.002 16 0 6.88
17 0 0.001 17 0 4.647
18 0 0.002 18 0 6.192
19 0 0.001 19 0 5.839
20 0 0.003 20 0 3.511
21 0 0.003 21 1 32.117
22 0 0.002 22 0 16.861
23 0 0.002 23 0 5.995
24 0 0.004 24 1 32.49
25 0 0.002 25 1 32.27
26 0 0.003 26 1 32.429
27 0 0.001 27 0 8.15
28 0 0.001 28 1 32.717
29 0 0.001 29 0 6.718
30 0 0.002 30 0 6.185
N=8

0.8

0.6

0.4
Attack
0.2
Time
0
1 2 3 4 5
6 7 8 9
10 11 12 13
14 15 16 17
18 19 20 21
22 23 24 25
26 27 28 29
30

Average running time to get a solution: 0.002666667 s


Success rate: 29/30 = 96.67%

N=50

3
2.5
2
1.5
1 Attack
0.5 Time
0
1 2 3 4 5
6 7 8 9
10 11 12 13
14 15 16 17 18
19 20 21 22 Attack
23 24 25 26
27 28 29 30

Average running time to get a solution: 1.2845 s


Success rate: 30/30 = 100%
Genetic Algorithm (GA)
#:實驗編號
Attack:Pair of queens that are attacking each others
Time:執行時間
N=8 N=50

# Attack Time (s) # Attack Time (s)


1 0 0.004 1 0 3.731
2 0 0.007 2 0 6.457
3 0 0.008 3 0 29.834
4 0 0.005 4 1 32.57
5 0 0.004 5 0 12.35
6 0 0.004 6 1 32.375
7 0 0.005 7 0 20.04
8 0 0.006 8 1 32.639
9 0 0.005 9 1 32.411
10 0 0.005 10 0 5.517
11 0 0.004 11 0 13.013
12 0 0.007 12 1 32.523
13 0 0.003 13 2 32.479
14 0 0.003 14 0 15.554
15 0 0.004 15 1 32.228
16 0 0.005 16 0 6.88
17 0 0.005 17 0 4.647
18 0 0.005 18 0 6.192
19 0 0.004 19 0 5.839
20 0 0.007 20 0 3.511
21 0 0.006 21 1 32.117
22 0 0.004 22 0 16.861
23 0 0.007 23 0 5.995
24 0 0.005 24 1 32.49
25 0 0.008 25 1 32.27
26 0 0.004 26 1 32.429
27 0 0.007 27 0 8.15
28 0 0.003 28 1 32.717
29 0 0.004 29 0 6.718
30 0 0.007 30 0 6.185
N=8

0.008

0.006

0.004

0.002 Attack
Time
0
1 2 3 4 5
6 7 8 9
10 11 12 13
14 15 16 17
18 19 20 21
22 23 24 25
26 27 28 29
30

Average running time to get a solution: 0.005167 s


Success rate: 30/30 = 100%

N=50

1.5

0.5 Attack
Time
0
1 2 3 4 5
6 7 8 9
10 11 12 13
14 15 16 17
18 19 20 21
22 23 24 25
26 27 28 29
30

Average running time to get a solution: 9.859667 s


Success rate: 18/30 = 60%
Compare the average running time:
Hill-Climbing > Genetic Algorithm
因為 HC 只對一個棋盤做操作,所以執行時間較短,而 GA 一次同時操
作多個棋盤在還沒有找到解的情況下,會耗費許多時間去操縱各個棋盤。

Compare the success rate:


Hill-Climbing > Genetic Algorithm
在情況不複雜時(n=8)平分秋色,在 n=50 時,HC 成功卻比 GA 高。

Method:
HC:
Successors 為挑選兩個 queen 互換位置,算出所有 Successors 狀態的 Attack
後,選取最小 Attack 的 State 並移動過去,持續執行此步驟直到得到解。其中加
入容忍值,若是沒有比較小 Attack 的 State,可以容許移動到一個 Attack 數的 State,
但若全部的 Successors 的 Attack 都大於目前的 State 那就是被困於 Local Optimal。

GA:
Parameter Value
GA type Generational
Representation Permutation
Population size 100
Selection 2-tournament
Crossover Order
Crossover rate 1
Mutation Swap
Mutation rate 0.1
Survivor
Termination 5000 generations
Runs 30 runs

Selection: 隨機找兩個,比較他們的 fitness,選擇 fitness 好的那個。


Survivor: 一個 generation 會產生 size 個 offspring,將 Parent 與
offspring 兩兩比較,選擇 fitness 好的那個,比較 size 次就
完成一輪了。
Files: nQueen.h, nQueen.cpp, GA.h, GA.cpp, runHC.cpp, runGA.cpp

Hill-climbing: 設定 n 於 runHC.cpp
Compiler: g++ runHC.cpp nQueen.cpp
Genetic Algorithm: 設定 n 與其他 Parameter 於 GA.h
Compiler: g++ runGA.cpp nQueen.cpp GA.cpp

You might also like