Przeszukiwanie przestrzeni stanów algorytmy
Strategie heurystyczne
Strategie heurysty zne korzystaj¡ z dodatkowej, heurysty znej funk ji o eny stanu (np. sza uj¡ ej koszt rozwi¡zania od bie»¡ ego stanu do elu):
♦
Przeszukiwanie pierwszy najlepszy♦
Przeszukiwanie za hªanne♦
Przeszukiwanie A∗
♦
Rekuren yjne przeszukiwanie pierwszy najlepszy♦
Itera yjne poprawianie♦
Przeszukiwanie lokalne za hªanne (hill- limbin g)♦
Przeszukiwanie z tabu♦
Symulowane wy»arzaniePrzeszukiwanie pierwszy najlepszy
U»ywa funk ji u»yte zno± i, która dla ka»dego stanu o enia jego u»yte zno±¢
⇒
Wykonuje ekspansj najbardziej u»yte znego stanu spo±ród w ze±niej nie-odwiedzony h stanówImplementa ja: fringe jest kolejk¡ porz¡dkuj¡ ¡ wzªy rosn¡ o wedªug
warto-± i funk ji u»yte zno± i (im mniejsza warto±¢ funk ji, tym wzeª jest bardziej
u»yte zny).
fun tion Tree-Sear h(problem,fringe ) returns a solution, or failure
fringe
←
Insert(Make-Node(Initial-State[ problem ℄),fringe )loop do
if fringe is empty then return failure
node
←
Remove-Front(fringe )if Goal-Test[ problem ℄ applied to State(node ) su eeds return node
Przeszukiwanie zachlanne
Funk ja u»yte zno± i = heurysty zna funk ja o eny stanu
h(n)
⇒
Sza uje koszt rozwi¡zania z bie»¡ ego stanun
do najbli»szego stanu do- elowegoPrzeszukiwanie za hªanne wykonuje ekspansj tego wzªa, który wydaje si
by¢ najbli»ej elu
fun tion Tree-Sear h(problem,fringe ) returns a solution, or failure
fringe
←
Insert(Make-Node(Initial-State[ problem ℄),fringe )loop do
if fringe is empty then return failure
Przeszukiwanie zachlanne: przyklad
h
SLD
(n)
= odlegªo±¢ w linii prostej z miastan
do BukaresztuBucharest
Giurgiu
Urziceni
Hirsova
Eforie
Neamt
Oradea
Zerind
Arad
Timisoara
Lugoj
Mehadia
Dobreta
Craiova
Sibiu
Fagaras
Pitesti
Rimnicu Vilcea
Vaslui
Iasi
Straight−line distance
to Bucharest
0
160
242
161
77
151
241
366
193
178
253
329
80
199
244
380
226
234
374
98
Giurgiu
Urziceni
Hirsova
Eforie
Neamt
Oradea
Zerind
Arad
Timisoara
Lugoj
Mehadia
Dobreta
Craiova
Sibiu
Fagaras
Pitesti
Vaslui
Iasi
Rimnicu Vilcea
Bucharest
71
75
118
111
70
75
120
151
140
99
80
97
101
211
138
146
85
90
98
142
92
87
86
Przeszukiwanie zachlanne: przyklad
h
SLD
(n)
= odlegªo±¢ w linii prostej z miastan
do BukaresztuArad
366
Przeszukiwanie zachlanne: przyklad
h
SLD
(n)
= odlegªo±¢ w linii prostej z miastan
do BukaresztuZerind
Arad
Sibiu
Timisoara
Przeszukiwanie zachlanne: przyklad
h
SLD
(n)
= odlegªo±¢ w linii prostej z miastan
do BukaresztuRimnicu Vilcea
Zerind
Arad
Sibiu
Arad
Fagaras
Oradea
Timisoara
329
374
Przeszukiwanie zachlanne: przyklad
h
SLD
(n)
= odlegªo±¢ w linii prostej z miastan
do BukaresztuRimnicu Vilcea
Zerind
Arad
Sibiu
Arad
Fagaras
Oradea
Timisoara
Sibiu
Bucharest
329
374
366
380
193
Przeszukiwanie zachlanne: wlasnosci
Przeszukiwanie zachlanne: wlasnosci
Zupeªno±¢??
Brak mo»e si zaptla¢, np. je±li elem jest Oradea,
Iasi
→
Neamt→
Iasi→
Neamt→
Zupeªne w przestrzenia h sko« zony h z wykrywaniem i elimina j¡
powtarzaj¡ y h si stanów
Przeszukiwanie zachlanne: wlasnosci
Zupeªno±¢??
Brak mo»e si zaptla¢, np. je±li elem jest Oradea,
Iasi
→
Neamt→
Iasi→
Neamt→
Zupeªne w przestrzenia h sko« zony h z wykrywaniem i elimina j¡
powtarzaj¡ y h si stanów
Zªo»ono±¢ zasowa??
O(b
m
)
, ale dobra heurystyka mo»e dramaty znie przyspiesz a¢Przeszukiwanie zachlanne: wlasnosci
Zupeªno±¢??
Brak mo»e si zaptla¢, np. je±li elem jest Oradea,
Iasi
→
Neamt→
Iasi→
Neamt→
Zupeªne w przestrzenia h sko« zony h z wykrywaniem i elimina j¡
powtarzaj¡ y h si stanów
Zªo»ono±¢ zasowa??
O(b
m
)
, ale dobra heurystyka mo»e dramaty znie przyspiesz a¢Zªo»ono±¢ pami iowa??
O(b
m
)
prze howuje wszystkie wzªy w pami iPrzeszukiwanie zachlanne: wlasnosci
Zupeªno±¢??
Brak mo»e si zaptla¢, np. je±li elem jest Oradea,
Iasi
→
Neamt→
Iasi→
Neamt→
Zupeªne w przestrzenia h sko« zony h z wykrywaniem i elimina j¡
powtarzaj¡ y h si stanów
Zªo»ono±¢ zasowa??
O(b
m
)
, ale dobra heurystyka mo»e dramaty znie przyspiesz a¢Zªo»ono±¢ pami iowa??
Przeszukiwanie A
Pomysª: unika ekspansji stanów, dla który h doty h zasowa ± ie»ka jest ju»
kosztowna
Funk ja u»yte zno± i:
f (n) = g(n) + h(n)
g(n)
= doty h zasowy koszt dotar ia do stanun
h(n)
= osza owanie kosztu od stanu bie»¡ egon
do stanu do elowegof (n)
= osza owanie peªnego kosztu ± ie»ki od stanu po z¡tkowego do elu prowadz¡ ej przez stann
fun tion Tree-Sear h(problem,fringe ) returns a solution, or failure
fringe
←
Insert(Make-Node(Initial-State[ problem ℄),fringe )loop do
if fringe is empty then return failure
node
←
Remove-Front(fringe )if Goal-Test[ problem ℄ applied to State(node ) su eeds return node
Przeszukiwanie A
∗
: przyklad
Funk ja u»yte zno± i:
f (n) = g(n) + h(n)
g(n)
= doty h zasowy koszt dotar ia do stanun
h(n)
= osza owanie kosztu od stanu bie»¡ egon
do stanu do elowegoArad
366=0+366
Przeszukiwanie A
: przyklad
Funk ja u»yte zno± i:
f (n) = g(n) + h(n)
g(n)
= doty h zasowy koszt dotar ia do stanun
h(n)
= osza owanie kosztu od stanu bie»¡ egon
do stanu do elowegoZerind
Arad
Sibiu
Timisoara
447=118+329
449=75+374
Przeszukiwanie A
∗
: przyklad
Funk ja u»yte zno± i:
f (n) = g(n) + h(n)
g(n)
= doty h zasowy koszt dotar ia do stanun
h(n)
= osza owanie kosztu od stanu bie»¡ egon
do stanu do elowegoZerind
Arad
Sibiu
Arad
Timisoara
Rimnicu Vilcea
Fagaras
Oradea
447=118+329
449=75+374
646=280+366
415=239+176 671=291+380
413=220+193
Przeszukiwanie A
: przyklad
Funk ja u»yte zno± i:
f (n) = g(n) + h(n)
g(n)
= doty h zasowy koszt dotar ia do stanun
h(n)
= osza owanie kosztu od stanu bie»¡ egon
do stanu do elowegoZerind
Arad
Sibiu
Arad
Timisoara
Fagaras
Oradea
447=118+329
449=75+374
646=280+366 415=239+176
Rimnicu Vilcea
Craiova
Pitesti
Sibiu
526=366+160
417=317+100
553=300+253
Przeszukiwanie A
∗
: przyklad
Funk ja u»yte zno± i:
f (n) = g(n) + h(n)
g(n)
= doty h zasowy koszt dotar ia do stanun
h(n)
= osza owanie kosztu od stanu bie»¡ egon
do stanu do elowegoZerind
Arad
Sibiu
Arad
Timisoara
Sibiu
Bucharest
Rimnicu Vilcea
Fagaras
Oradea
Craiova
Pitesti
Sibiu
447=118+329
449=75+374
Przeszukiwanie A
: przyklad
Funk ja u»yte zno± i:
f (n) = g(n) + h(n)
g(n)
= doty h zasowy koszt dotar ia do stanun
h(n)
= osza owanie kosztu od stanu bie»¡ egon
do stanu do elowegoZerind
Arad
Sibiu
Arad
Timisoara
Sibiu
Bucharest
Rimnicu Vilcea
Fagaras
Oradea
Craiova
Pitesti
Sibiu
Bucharest
Craiova
Rimnicu Vilcea
418=418+0
447=118+329
449=75+374
646=280+366
591=338+253
450=450+0
526=366+160
553=300+253
615=455+160 607=414+193
671=291+380
Przeszukiwanie A
∗
: wlasnosci
Przeszukiwanie A
: wlasnosci
Zupeªno±¢?? Tak, je±li nie ma niesko« zonie wiele stanów z
f ≤ f (G)
Przeszukiwanie A
∗
: wlasnosci
Zupeªno±¢?? Tak, je±li nie ma niesko« zonie wiele stanów z
f ≤ f (G)
Zªo»ono±¢ zasowa?? Wykªadni zy wzgldem [bªad wzgldny
h ×
dªug. rozw.℄Przeszukiwanie A
: wlasnosci
Zupeªno±¢?? Tak, je±li nie ma niesko« zonie wiele stanów z
f ≤ f (G)
Zªo»ono±¢ zasowa?? Wykªadni zy wzgldem [bªad wzgldny
h ×
dªug. rozw.℄Zªo»ono±¢ pami iowa?? Prze howuje wszystkie wzªy w pami i
Przeszukiwanie A
∗
: wlasnosci
Zupeªno±¢?? Tak, je±li nie ma niesko« zonie wiele stanów z
f ≤ f (G)
Zªo»ono±¢ zasowa?? Wykªadni zy wzgldem [bªad wzgldny
h ×
dªug. rozw.℄Zªo»ono±¢ pami iowa?? Prze howuje wszystkie wzªy w pami i
Przeszukiwanie A
: wlasnosci
Zupeªno±¢?? Tak, je±li nie ma niesko« zonie wiele stanów z
f ≤ f (G)
Zªo»ono±¢ zasowa?? Wykªadni zy wzgldem [bªad wzgldny
h ×
dªug. rozw.℄Zªo»ono±¢ pami iowa?? Prze howuje wszystkie wzªy w pami i
Optymalno±¢?? Tak, je±li heurystyka
h
jest dopusz zalnaA
∗
eksploruje wszystkie wzªy z
f (n) < C
∗
A∗
eksploruje niektóre wzªy z
f (n) = C
∗
A∗
nie eksploruje »adny h wzªów z
f (n) > C
∗
Heurystyka dopuszczalna
Ogólnie o ka»dej funk ji heurysty znej
h(n)
zakªada si, »eh(n) ≥ 0
Funk ja heurysty zna
h(n)
jest dopusz zalna, je±li w ka»dym stanien
speªnia nastpuj¡ y warunek:h(n) ≤ h
∗
(n)
gdzie
h
∗
(n)
jest rze zywistym kosztem ± ie»ki od stanu
n
do elu.Problem uprosz zony
Wersja oryginal n ego problemu, dla której koszt rozwi¡zania
Heurystyka dopuszczalna: najkrotsza droga
Funk ja odlegªo± i w linii prostej
h
SLD
(n)
jest dopusz zalna nigdy nie przekra za rze zywistej odlegªo± i drogowejBucharest
Giurgiu
Urziceni
Hirsova
Eforie
Neamt
Oradea
Zerind
Arad
Timisoara
Lugoj
Mehadia
Dobreta
Craiova
Sibiu
Fagaras
Pitesti
Rimnicu Vilcea
Vaslui
Iasi
Straight−line distance
to Bucharest
0
160
242
161
77
151
241
366
193
178
253
329
80
199
244
380
226
234
374
98
Giurgiu
Urziceni
Hirsova
Eforie
Neamt
Oradea
Zerind
Arad
Timisoara
Lugoj
Mehadia
Dobreta
Craiova
Sibiu
Fagaras
Pitesti
Vaslui
Iasi
Rimnicu Vilcea
Bucharest
71
75
118
111
70
75
120
151
140
99
80
97
101
211
138
146
85
90
98
142
92
87
86
Heurystyki dopuszczalne: 8-elementowe puzzle
Uprosz zenie 1: klo ek mo»e by¢ przesunity na dowolne pole:
h
1
(n)
= li zba klo ków nie bd¡ y h w do elowym poªo»eniuUprosz zenie 2: klo ek mo»e by¢ przesunity na dowolne s¡siednie pole:
h
2
(n)
= suma odlegªo± i miejskiej (ilo± i ru hów)od do elowy h miejs dla posz zególny h klo ków
2
5
1
3
4
6
7
8
5
1
2
3
4
6
7
8
5
Heurystyki dopuszczalne: 8-elementowe puzzle
Uprosz zenie 1: klo ek mo»e by¢ przesunity na dowolne pole:
h
1
(n)
= li zba klo ków nie bd¡ y h w do elowym poªo»eniuUprosz zenie 2: klo ek mo»e by¢ przesunity na dowolne s¡siednie pole:
h
2
(n)
= suma odlegªo± i miejskiej (ilo± i ru hów)od do elowy h miejs dla posz zególny h klo ków
2
Start State
Goal State
5
1
3
4
6
7
8
5
1
2
3
4
6
7
8
5
h
1
(S)
=?? 6h
2
(S)
=?? 4+0+3+3+1+0+2+1 = 14Heurystyka dopuszczalna: problem komiwojazera
Problem: znajd¹ najkrótszy ykl Hamiltona w grae, tzn.
Heurystyka dopuszczalna: optymalnosc A
Twierdzenie:
Przeszukiwanie A
∗
bez elimina ji powtarzaj¡ y h si stanów przy
Heurystyka dopuszczalna: optymalnosc A
∗
Dowód: Zaªó»my, »e stan do elowy
G
2
o nieoptymalnym kosz ie rozwi¡zania zostaª wstawiony do kolejki stanów. Nie hn
bdzie dowolnym stanem na najkrótszej ± ie» e do optymalnego eluG
.G
n
G
2
Start
Heurystyka spojna
Heurystyka jest spójna je±li dla ka»dego stanu
n
i ka»dej ak jia
z tego stanu:n
c(n,a,n’)
h(n’)
h(n)
G
n’
h(n) ≤ c(n, a, n
′
) + h(n
′
)
gdziec(n, a, n
′
)
jest kosztem wykonania ak ji
a
.Fakt 1: Ka»da heurysytka spójna jest dopusz zalna
(dowód jako ¢wi zenie)
Fakt 2: Je±li heurystyka
h
jest spójna to i¡g warto± i funk jif (n)
wzdªu» dowolnej ± ie»ki w drzewie przeszukiwa« stanów jest niemalej¡ yDow´od : f (n
′
) = g(n
′
) + h(n
′
)
= g(n) + c(n, a, n
′
) + h(n
′
)
≥
g(n) + h(n)
Heurystyka spojna
Lemat: A
∗
eksploruje stany w kolejno± i rosn¡ y h warto± i funk ji
f
Stopniowo dodaje
f
-kontury stanów (anal. przesz. wszerz dodaje warstwy) Konturi
ma wszystkie stanyf = f
i
, gdzief
i
< f
i+1
O
Z
A
T
R
F
P
V
I
N
380
400
S
Heurystyka spojna: optymalnosc A
Twierdzenie:
Przeszukiwanie A
∗
z elimina j ¡ powtarzaj¡ y h si stanów przy
Heurystyka spojna: optymalnosc A
∗
Twierdzenie:Przeszukiwanie A
∗
z elimina j ¡ powtarzaj¡ y h si stanów przy
u»y- iu heurystyki spójnej znajduje zawsze rozwi¡zanie optymalne
Dowód:
f (G) = g(G)
dla ka»dego stanu do elowegoG =⇒ f (G
opt
) ≤ f (G)
Z lematu stan do elowy z optymalnym kosztem ± ie»kiG
opt
bdzieHeurystyka dominujaca
h
1
,h
2
- heurystyki dopusz zalneHeurystyka
h
2
dominuje heurystykh
1
je±lih
2
(n) ≥ h
1
(n)
dla wszystki h stanówn
Twierdzenie: Wszystkie wzªy odwiedzone przez algorytm A
∗
z heurystyk¡
h
2
bd¡ odwiedzone równie» przez algorytm A∗
z heurystyk¡
h
1
Heurystyka dominujaca: przyklad
h
1
(n)
= li zba klo ków nie bd¡ y h w do elowym poªo»eniuh
2
(n)
= suma odlegªo± i miejskiej (ilo± i ru hów)od do elowy h miejs dla posz zególny h klo ków
2
Start State
Goal State
5
1
3
4
6
7
8
5
1
2
3
4
6
7
8
5
h
2
h
1
n
h
2
(n) ≥ h
1
(n)
Efektywnosc A
rednia li zba generowany h wzªów dla zada« o dªugo± i optymalnego
roz-wi¡zania równej 14 oraz 24 w problemie 8-elementowej ukªadanki:
d = 14
Iter. pogªb. = 3,473,941 wzªów A∗
(h
1
)
= 539 wzªów A∗
(h
2
)
= 113 wzªówd = 24
Iter. pogªb.≈
54,000,000,00 0 wzªów A∗
(h
1
)
= 39,135 wzªów A∗
(h
2
)
= 1,641 wzªówRekurencyjne przeszukiwanie pierwszy najlepszy
fun tion Re ursive-Best-First-Sear h(problem ) returns soln/fail
return RBFS(problem ,Make-Node(Initial-State[ problem ℄),
∞
)fun tion RBFS(problem ,node ,f_limit ) returns soln/fail and a new f- ost limit
if Goal-Test[ problem ℄(state) then return node
su essors
←
Expand(node ,problem )if su essors is empty then return failure ,
∞
for ea h s in su essors do
f[ s℄
←
max( g (s)+h(s),f[ node ℄)repeat
best
←
the lowest f-value in su essorsif f[ best℄
>
f_limit then return failure , f[ best℄Rekurencyjne przeszukiwanie pierwszy najlepszy
Zerind
Arad
Sibiu
Arad
Fagaras
Oradea
Craiova
Sibiu
Bucharest
Craiova
Rimnicu Vilcea
Zerind
Arad
Sibiu
Arad
Sibiu
Bucharest
Rimnicu Vilcea
Oradea
Zerind
Arad
Sibiu
Arad
Timisoara
Timisoara
Timisoara
Fagaras
Oradea
Rimnicu Vilcea
Craiova
Pitesti
Sibiu
646
415
526
526
553
646
526
450
591
646
526
526
553
607
447
449
447
447
449
449
366
393
366
393
413
413 417
415
366
393
415 450
417
Rimnicu Vilcea
Fagaras
447
415
447
447
417
(a) After expanding Arad, Sibiu,
and Rimnicu Vilcea
(c) After switching back to Rimnicu Vilcea
and expanding Pitesti
(b) After unwinding back to Sibiu
and expanding Fagaras
447
447
∞
∞
∞
417
417
Pitesti
Rekurencyjne przeszukiwanie pierwszy najlepszy
Zupeªno±¢?? Tak, je±li stanów z
f ≤ f (G)
jest sko« zona ilo±¢ (⇔
A
∗
zup.)
Zªo»ono±¢ zasowa?? Trudne...
Zªo»ono±¢ pami iowa??
O(bd)
!Optymalno±¢?? Tak, je±li heurystyka
h
jest dopusz zalna (⇔
A
∗
Iteracyjne poprawianie
Przy wielu problema h optymaliza yjn y h ± ie»ka jest nieistotna: stan do elowy sam w sobie jest rozwi¡zaniem
Przestrze« stanów = zbiór kongura ji peªny h;
problem wymaga znalezienia kongura ji optymalnej
lub speªniaj¡ ej pewne warunki, np. aloka ja zasobów w zasie
Dla tego typu problemów mo»na u»y¢ algorytmu itera yjnego poprawiania: prze howuje tylko stan bie»¡ y i próbuje go poprawi¢
Przeszukiwanie lokalne
Przeszukiwanie lokalne zastpuje stan bie»¡ y jednym z jego bezpo±redni h
s¡sia d ów
fun tion Lo al-Sear h(problem ) returns a state
inputs : problem , a problem
Value, a fun tion that evaluates a state
lo al variables: urrent, a node
urrent
←
Make-Node(Initial-State[ problem ℄)best
←
urrentrepeat
urrent
←
any su essor of urrentif Value[ urrent℄
>
Value[ best℄ then best←
urrentPrzeszukiwanie lokalne: problem komiwojazera
Przeszukiwanie lokalne za zyna od dowolnego yklu Hamiltona i wykonuje
Przeszukiwanie lokalne: problem
n
-hetmanow
Problem: Znale¹¢ rozstawienie
n
hetmanów na sza howni yn × n
tak, »eby »adne dwa nie biªy si nawzajem, tzn.nie znajdowaªy si w tym samym rzdzie, kolumnie lub przek¡tnej
Przeszukiwanie lokalne przesuwa hetmanów tak, »eby redukowa¢ li zb
Hill-climbing
Ina zej przeszukiwanie lokalne za hªanne lub wspinani e wzdªu» gradientu
Wybiera zawsze s¡sia d a z najwiksz¡ warto± i¡ funk ji o eny, tzn.
wyzna zanego przez gradient funk ji
fun tion Hill-Climbing(problem ) returns a state that is a lo al maximum
inputs : problem , a problem
lo al variables: urrent, a node
neighbor, a node
urrent
←
Make-Node(Initial-State[ problem ℄)loop do
neighbor
←
a highest-valued su essor of urrentif Value[neighbor℄
<
Value[ urrent℄ then return State[ urrent℄urrent
←
neighborHill-climbing: lokalne maksima
Algorytm mo»e utkn¡¢ w lokalnym maksimum funk ji o eny stanów
objective function
state space
global maximum
local maximum
“flat” local maximum
shoulder
Hill-climbing: problem 8-hetmanow
Stan z li zb¡ koniktów = 17, Lokalne minimum:
przedstawia li zb¡ koniktów stan ma 1 konikt
dla wszystki h s¡sia d ów osi¡gal n y h i ka»de przesuni i e w kolumnie
przez przesuni ie hetmana w kolumnie zwiksza li zb koniktów
14
18
17
15
14
18
14
14
14
14
14
12
16
12
13
16
17
14
18
13
14
17
15
18
15
13
15
13
12
15
15
13
15
12
13
14
14
14
16
12
14
12
12
15
16
13
14
12
14
18
16
16
16
14
16
14
Unikanie lokalnego maksimum
♦
Start wielokrotny♦
Dopusz zenie zªy h posuni¢:♦
Przeszukiwanie z tabu♦
Symulowane wy»arzanieStart wielokrotny
fun tion Multistart-Hill-Climbing(problem ) returns a lo al maximum
inputs : problem , a problem
lo al variables: initial , an initial node in an iteration
lo almax , the result of a single hill- limbing
best, a best node
repeat a number of iterations
initial
←
a random nodelo almax
←
Hill-Climbing(problem,initial )if Value[lo almax℄
>
Value[best℄ then best←
lo almaxreturn best
Zaleta: Zwiksza szans na znalezienie lokalnego maksimum
bliskiego optymalnemu rozwi¡zaniu
Przeszukiwanie z tabu
Pomysª: wybiera optymalny ru h przestrzegaj¡ zakazu powrotu do ostatnio odwiedzony h stanów, mo»e natomiast wykona¢ ru h do gorszego stanu fun tion Tabu-Sear h(problem ,k ) returns a solution state
lo al variables: urrent,next , nodes
best, a node with the best value
tabu , a set of forbidden states
urrent
←
Make-Node(Initial-State[ problem ℄)best
←
urrenttabu
←
{ urrent}repeat
next
←
a highest-valued su essor of urrent6∈
tabuSymulowane wyzarzanie
Pomysª: dopusz za zªe posuni ia,
ale stopniowo maleje i h zsto±¢ wraz z upªywem zasu
fun tion Simulated-Annealing(problem,s hedule) returns a solution state
inputs : problem , a problem
s hedule, a mapping from time to temperature
lo al variables: urrent, a node
next , a node
T, a temperature ontrolling prob. of downward steps
urrent
←
Make-Node(Initial-State[ problem ℄)for t
←
1 to∞
doT
←
s hedule[ t℄if T = 0 then return urrent
next
←
a randomly sele ted su essor of urrent∆
E←
Value[ next ℄ Value[ urrent℄ if∆
E>
0 then urrent←
nextelse urrent
←
next only with probabilitye
Symulowane wyzarzanie: funkcja temperatury
Wybór temperatury po z¡tkowej:
Na po z¡tku powinna umo»liwia¢ ak eptowanie wszystki h posuni¢:
e
∆E/T
0
≈
1
Wybór funk ji reduk ji temperatury:
Reduk ja o d kroków (
d ≈
stopie« rozgaªzienia przestrzeni)zynnikiem geometry znym
T := T ∗ r
,r ∈ [0.8; 0.99]
Symulowane wyzarzanie: wlasnosci
Dla staªej warto± i temperatury
T
, prawdopodobie«stwo osi¡gni ia stanów zbiega do rozkªadu Boltzmanap(x) = αe
E(x)
kT
je±li
T
maleje odpowiednio wolno=⇒
najlepszy stan bdzie zawsze osi¡gnityOpra owanie: Metropolis i inni, 1953, do modelowania pro esów zy zny h
Szeroko stosowane m. in. w projektowaniu ukªadów o du»ym stopniu s alenia,
Przeszukiwanie o zmiennej glebokosci
Pomysª: szukanie lepszego stanu poprzez wykonanie na raz
kilku kroków zamiast jednego
Algorytm Kernigana -Lina:
Zaªo»enie:
Ka»dy stan jest opisany przez list ustalony h dla problemu
lokalny h spe yka ji
(p
1
, . . . , p
n
)
, lokalny krok polega na zmianie jednej spe yka jip
i
lub kilku z ni h (zaªo»enie zazwy zaj prawdziwe).Idea algorytmu:
Algorytm Kernigana-Lina
fun tion Variable-Depth-Sear h(problem ) returns a solution state
lo al variables: urrent, lo al spe i ations of the urrent state
new, states generated in the urrent step
used, spe i ations used in the urrent step
urrent
←
Make-Node(Initial-State[ problem ℄)loop do
(p
1
, . . . , p
i
, . . . , p
n
) ←
urrent new←
{}used
←
{}loop for j from 1 to n
(p
1
, .., p
′
i
, .., p
n
) ←
highest-valued su essor of(p
1
, .., p
i
, .., p
n
)
withi 6∈
usedadd
(p
1
, .., p
′
i
, .., p
n
)
to newadd i to used
(p
1
, .., p
i
, .., p
n
) ← (p
1
, .., p
′
i
, .., p
n
)
next
←
the highest-valued state in newAlgorytm genetyczny
fun tion Geneti -Algorithm(problem ,Fitness-Fn) returns an individual
inputs : population, a set of individuals
Fitness-Fn, a fun tion that measures the tness of an individual
new_population
←
empty setloop for i from 1 to Size(population)
x
←
Random-Sele tion(population,Fitness-Fn)y
←
Random-Sele tion(population,Fitness-Fn)hild
←
Reprodu e(x ,y )if (small random probability) then hild
←
Mutate( hild )add hild to new_population
population
←
new_populationAlgorytm genetyczny: kombinowanie i mutacja
(a)
Initial Population
(b)
Fitness Function
(c)
Selection
(d)
Crossover
(e)
Mutation
24
23
20
11
29%
31%
26%
14%
32752411
24748552
32752411
24415124
32748552
24752411
32752124
24415411
32252124
24752411
32748152
24415417
24748552
32752411
24415124
32543213
fun tion Reprodu e(x ,y ) returns an individual
inputs : x,y , parent individuals
n
←
Length(x )
←
random number from 1 to nAlgorytm genetyczny: problem 8 hetmanow
Skrzy»owanie dwó h stanów w problemie 8 hetmanów
nieza i enione kolumny s¡ tra one przy opera ji krzy»owania
za ieni one kolumny pozostaj¡