• Nie Znaleziono Wyników

Przeszukiwanie przestrzeni stanów - algorytmy heurystyczne

N/A
N/A
Protected

Academic year: 2021

Share "Przeszukiwanie przestrzeni stanów - algorytmy heurystyczne"

Copied!
62
0
0

Pełen tekst

(1)

Przeszukiwanie przestrzeni stanów  algorytmy

(2)

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»arzanie

(3)

Przeszukiwanie 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ów

Implementa 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

(4)

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 stanu

n

do najbli»szego stanu do- elowego

Przeszukiwanie 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

(5)

Przeszukiwanie zachlanne: przyklad

h

SLD

(n)

= odlegªo±¢ w linii prostej z miasta

n

do Bukaresztu

Bucharest

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

(6)

Przeszukiwanie zachlanne: przyklad

h

SLD

(n)

= odlegªo±¢ w linii prostej z miasta

n

do Bukaresztu

Arad

366

(7)

Przeszukiwanie zachlanne: przyklad

h

SLD

(n)

= odlegªo±¢ w linii prostej z miasta

n

do Bukaresztu

Zerind

Arad

Sibiu

Timisoara

(8)

Przeszukiwanie zachlanne: przyklad

h

SLD

(n)

= odlegªo±¢ w linii prostej z miasta

n

do Bukaresztu

Rimnicu Vilcea

Zerind

Arad

Sibiu

Arad

Fagaras

Oradea

Timisoara

329

374

(9)

Przeszukiwanie zachlanne: przyklad

h

SLD

(n)

= odlegªo±¢ w linii prostej z miasta

n

do Bukaresztu

Rimnicu Vilcea

Zerind

Arad

Sibiu

Arad

Fagaras

Oradea

Timisoara

Sibiu

Bucharest

329

374

366

380

193

(10)

Przeszukiwanie zachlanne: wlasnosci

(11)

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

(12)

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¢

(13)

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 i

(14)

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??

(15)

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 stanu

n

h(n)

= osza owanie kosztu od stanu bie»¡ ego

n

do stanu do elowego

f (n)

= osza owanie peªnego kosztu ± ie»ki od stanu po z¡tkowego do elu prowadz¡ ej przez stan

n

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

(16)

Przeszukiwanie A

: przyklad

Funk ja u»yte zno± i:

f (n) = g(n) + h(n)

g(n)

= doty h zasowy koszt dotar ia do stanu

n

h(n)

= osza owanie kosztu od stanu bie»¡ ego

n

do stanu do elowego

Arad

366=0+366

(17)

Przeszukiwanie A

: przyklad

Funk ja u»yte zno± i:

f (n) = g(n) + h(n)

g(n)

= doty h zasowy koszt dotar ia do stanu

n

h(n)

= osza owanie kosztu od stanu bie»¡ ego

n

do stanu do elowego

Zerind

Arad

Sibiu

Timisoara

447=118+329

449=75+374

(18)

Przeszukiwanie A

: przyklad

Funk ja u»yte zno± i:

f (n) = g(n) + h(n)

g(n)

= doty h zasowy koszt dotar ia do stanu

n

h(n)

= osza owanie kosztu od stanu bie»¡ ego

n

do stanu do elowego

Zerind

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

(19)

Przeszukiwanie A

: przyklad

Funk ja u»yte zno± i:

f (n) = g(n) + h(n)

g(n)

= doty h zasowy koszt dotar ia do stanu

n

h(n)

= osza owanie kosztu od stanu bie»¡ ego

n

do stanu do elowego

Zerind

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

(20)

Przeszukiwanie A

: przyklad

Funk ja u»yte zno± i:

f (n) = g(n) + h(n)

g(n)

= doty h zasowy koszt dotar ia do stanu

n

h(n)

= osza owanie kosztu od stanu bie»¡ ego

n

do stanu do elowego

Zerind

Arad

Sibiu

Arad

Timisoara

Sibiu

Bucharest

Rimnicu Vilcea

Fagaras

Oradea

Craiova

Pitesti

Sibiu

447=118+329

449=75+374

(21)

Przeszukiwanie A

: przyklad

Funk ja u»yte zno± i:

f (n) = g(n) + h(n)

g(n)

= doty h zasowy koszt dotar ia do stanu

n

h(n)

= osza owanie kosztu od stanu bie»¡ ego

n

do stanu do elowego

Zerind

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

(22)

Przeszukiwanie A

: wlasnosci

(23)

Przeszukiwanie A

: wlasnosci

Zupeªno±¢?? Tak, je±li nie ma niesko« zonie wiele stanów z

f ≤ f (G)

(24)

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.℄

(25)

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

(26)

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

(27)

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 zalna

A

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

(28)

Heurystyka dopuszczalna

Ogólnie o ka»dej funk ji heurysty znej

h(n)

zakªada si, »e

h(n) ≥ 0

Funk ja heurysty zna

h(n)

jest dopusz zalna, je±li w ka»dym stanie

n

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

(29)

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 drogowej

Bucharest

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

(30)

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»eniu

Uprosz 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

(31)

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»eniu

Uprosz 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)

=?? 6

h

2

(S)

=?? 4+0+3+3+1+0+2+1 = 14

(32)

Heurystyka dopuszczalna: problem komiwojazera

Problem: znajd¹ najkrótszy ykl Hamiltona w grae, tzn.

(33)

Heurystyka dopuszczalna: optymalnosc A

Twierdzenie:

Przeszukiwanie A

bez elimina ji powtarzaj¡ y h si stanów przy

(34)

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 h

n

bdzie dowolnym stanem na najkrótszej ± ie» e do optymalnego elu

G

.

G

n

G

2

Start

(35)

Heurystyka spojna

Heurystyka jest spójna je±li dla ka»dego stanu

n

i ka»dej ak ji

a

z tego stanu:

n

c(n,a,n’)

h(n’)

h(n)

G

n’

h(n) ≤ c(n, a, n

) + h(n

)

gdzie

c(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 ji

f (n)

wzdªu» dowolnej ± ie»ki w drzewie przeszukiwa« stanów jest niemalej¡ y

Dow´od : f (n

) = g(n

) + h(n

)

= g(n) + c(n, a, n

) + h(n

)

g(n) + h(n)

(36)

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) Kontur

i

ma wszystkie stany

f = f

i

, gdzie

f

i

< f

i+1

O

Z

A

T

R

F

P

V

I

N

380

400

S

(37)

Heurystyka spojna: optymalnosc A

Twierdzenie:

Przeszukiwanie A

z elimina j ¡ powtarzaj¡ y h si stanów przy

(38)

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 elowego

G =⇒ f (G

opt

) ≤ f (G)

Z lematu stan do elowy z optymalnym kosztem ± ie»ki

G

opt

bdzie

(39)

Heurystyka dominujaca

h

1

,

h

2

- heurystyki dopusz zalne

Heurystyka

h

2

dominuje heurystyk

h

1

je±li

h

2

(n) ≥ h

1

(n)

dla wszystki h stanów

n

Twierdzenie: Wszystkie wzªy odwiedzone przez algorytm A

z heurystyk¡

h

2

bd¡ odwiedzone równie» przez algorytm A

z heurystyk¡

h

1

(40)

Heurystyka dominujaca: przyklad

h

1

(n)

= li zba klo ków nie bd¡ y h w do elowym poªo»eniu

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

2

h

1

n

h

2

(n) ≥ h

1

(n)

(41)

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ªów

d = 24

Iter. pogªb.

54,000,000,00 0 wzªów A

(h

1

)

= 39,135 wzªów A

(h

2

)

= 1,641 wzªów

(42)

Rekurencyjne 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 essors

if f[ best℄

>

f_limit then return failure , f[ best℄

(43)

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

(44)

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

(45)

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¢

(46)

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

urrent

repeat

urrent

any su essor of urrent

if Value[ urrent℄

>

Value[ best℄ then best

urrent

(47)

Przeszukiwanie lokalne: problem komiwojazera

Przeszukiwanie lokalne za zyna od dowolnego yklu Hamiltona i wykonuje

(48)

Przeszukiwanie lokalne: problem

n

-hetmanow

Problem: Znale¹¢ rozstawienie

n

hetmanów na sza howni y

n × 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

(49)

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 urrent

if Value[neighbor℄

<

Value[ urrent℄ then return State[ urrent℄

urrent

neighbor

(50)

Hill-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

(51)

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

(52)

Unikanie lokalnego maksimum

Start wielokrotny

Dopusz zenie zªy h posuni¢:

Przeszukiwanie z tabu

Symulowane wy»arzanie

(53)

Start 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 node

lo almax

Hill-Climbing(problem,initial )

if Value[lo almax℄

>

Value[best℄ then best

lo almax

return best

Zaleta: Zwiksza szans na znalezienie lokalnego maksimum

bliskiego optymalnemu rozwi¡zaniu

(54)

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

urrent

tabu

{ urrent}

repeat

next

a highest-valued su essor of urrent

6∈

tabu

(55)

Symulowane 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

do

T

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

next

else urrent

next only with probability

e

(56)

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]

(57)

Symulowane wyzarzanie: wlasnosci

Dla staªej warto± i temperatury

T

, prawdopodobie«stwo osi¡gni ia stanów zbiega do rozkªadu Boltzmana

p(x) = αe

E(x)

kT

je±li

T

maleje odpowiednio wolno

=⇒

najlepszy stan bdzie zawsze osi¡gnity

Opra 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,

(58)

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 ji

p

i

lub kilku z ni h (zaªo»enie zazwy zaj prawdziwe).

Idea algorytmu:

(59)

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

)

with

i 6∈

used

add

(p

1

, .., p

i

, .., p

n

)

to new

add i to used

(p

1

, .., p

i

, .., p

n

) ← (p

1

, .., p

i

, .., p

n

)

next

the highest-valued state in new

(60)

Algorytm 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 set

loop 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_population

(61)

Algorytm 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 n

(62)

Algorytm 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¡

Cytaty

Powiązane dokumenty

takie wnioski potwierdzają wypowiedzi li- cealistów, którzy piszą, że język polski w liceum jest zbędny i wystarcza ta wiedza, którą uczeń zdobył w gimnazjum (uwaga pojawiła

ing the initiation of cash dividends paid by companies listed on the Warsaw Stock Ex- change. The purpose of this study was achieved by empirical verification of the main

In the adjectival form of the bisyllabic word complex, variation is commonly expected but the LPD (2008) preferences for American English showed a distinct

Wiesława Kubaszewska i  Marcin Hermanowski (2008) wyróżniają sześć form promocji w radiu: ogłoszenie drobne (najczęściej czytane przez pro- wadzącego program),

Tykop - załoiooy w części szczytowej wału piaszczystego i na jego południowym stoku - dost­ arczył materiałów krzemiennych i ceramicznych, planigraflcznie wy­ raźnie od

Taka informacja bêdzie mia³a du¿e znaczenie pod- czas odró¿niania maficznych ska³ magmowych z dwóch sekwencji, poniewa¿ takie tekstury nie pojawiaj¹ siê w typowych

Głównym celem artykułu jest zaprezentowanie zarysu nowoczesnej metodyki prognozowania i analizy ryzyka procesu produkcyjnego oraz cech charakterystycz- nych pomiarów

To już siódmy tom referatów z konferencji naukowych organizowanych od 2001 roku systematycznie we wsi Maniowy koło Nowego Targu przez Katedrę Literatury Polskiej