ALHE Jarosław Arabas Przeszukiwanie przestrzeni ścieżek w grafie Algorytm A*
Zbiór rozwiązań 2134 1234 1243 2143 2314 2413 1324 2341 1342 1423 2431 1432 3124 4123 3142 4132 3214 4213 3241 3412 4312 3421 4321 4231
Przestrzeń rozwiązań 2134 1234 1243 2143 1324 2413 2341 1342 2431 1432 2314 1423 3214 4123 3241 4132 3124 4213 3142 3412 4312 3421 4321 4231
Graf odległości Gd 362 Sz 170 Ol 165 377 235 By 217 152 Po 203 Zg 186 156 270 319 227 Bi 193 Wa 166 137 178 L 209 Wr 212 Ki 193 195 116 Ka 80 Kr Lu
Przeszukiwanie niepoinformowane Gd Sz Ol By Bi Wa Po Zg L Lu Ki Wr Ka Kr
Struktura przestrzeni przeszukiwań Rozwiązania dopuszczalne (spełniające ograniczenia)
Przestrzeń przeszukiwań GdWaLPo (fragment) GdWaLWr GdWaL GdWaLKa GdWaBy GdOl GdWaOl GdSz Gd GdWa GdWaBi GdWaLu GdBy GdWaKi GdByL GdByLPo GdByLWr GdByWa GdByLKa GdByLKaWr GdByLKaKr GdWaKiKr GdWaLKaWr GdWaLKaKr
Przeszukiwanie w głąb i wszerz algorytm wszerz A {s 0 } while A x popfifo ( A) Y sąsiedzi( x) A A Y algorytm w głąb A {s 0 } while A x poplifo ( A ) Y sąsiedzi( x) A A Y
Kolejne odwiedzone węzły (wszerz) GdWaLPo GdWaL GdWaLWr GdWaLKa GdWaBy GdOl GdWaOl GdSz Gd GdWa GdWaBi GdWaLu GdBy GdWaKi GdByL GdByLPo GdByLWr GdByWa GdByLKa GdByLKaWr GdByLKaKr GdWaKiKr GdWaLKaWr GdWaLKaKr
Kolejne odwiedzone węzły (w głąb) GdWaLPo GdWaL GdWaLWr GdWaLKa GdWaBy GdOl GdWaOl GdSz Gd GdWa GdWaBi GdWaLu GdBy GdWaKi GdByL GdByLPo GdByLWr GdByWa GdByLKa GdByLKaWr GdByLKaKr GdWaKiKr GdWaLKaWr GdWaLKaKr
Funkcja kosztu (celu, użyteczności) 2 3 2341 4 3 2 1 2134 0 1234 1 1243 2143 1 1324 2413 2 1342 2431 3 1432 2314 1423 3214 3 2 4123 3241 4 4132 3124 2 4213 3142 3 3412 4 4312 3421 4321 5 6 5 4231 5 4 4 3
Algorytm najpierw najlepszy algorytm najpierw najlepszy A init (s 0 ) while! stop x poppriorityqueue ( A) Y sąsiedzi( x) A A Y
Niech mi każdy powie szczerze, skąd się funkcja celu bierze?
Niech mi każdy powie szczerze, skąd się funkcja celu bierze? Definicja funkcji celu zależy od rozwiązywanego zadania Rolą funkcji celu jest informowanie o stopniu przybliżenia się do rozwiązania
Graf odległości Gd 362 Sz 170 Ol 165 377 235 By 217 152 Po 203 Zg 186 156 270 319 227 Bi 193 Wa 166 137 178 L 209 Wr 212 Ki 193 195 116 Ka 80 Kr Lu
Przestrzeń przeszukiwań GdWaLPo (fragment) GdWaLWr 514 GdWaL 170 GdOl 362 GdSz 377 GdWa Gd 0 GdBy 392 GdByL GdByLPo GdByLWr 165 GdByWa 435 GdWaLu 443 GdByLKa 585 780 GdByLKaWr GdWaLKa 717 GdWaByGdWaLKaKr 647 797 GdWaOl 589 GdWaBi 570 GdWaKi 555 GdByLKaKr 665 GdWaLKaWr GdWaKiKr 671
Ścieżka do celu w przestrzeni przeszukiwań cel start
Funkcja kosztu
Graf odległości i oszacowań Gd 546 170 362 600 Sz Ol 165 377 235 217 152 Zg 409 L 178 254 195 Odległości do Krakowa 193 75 Ka 80 Ki 116 Kr Bi Lu 259 217 209 Wr 212 By 408 270 282 193 378 319 Wa Po 227 166 203 137 186 156 468 115 470
Przestrzeń przeszukiwań GdWaLPo (fragment) GdWaLWr 514 217 170 GdOl 362 GdSz 282 377 GdWa Gd GdWaL GdWaLKa GdWaBy 647 717 75 GdWaOl 589 GdWaBi 570 0 546 GdBy 165 408 217 392 GdByL GdByLPo GdByLWr GdByWa 435 GdWaLu 443 GdWaKi 555 115 GdByLKa 585 75 780 GdByLKaWr GdByLKaKr 665 GdWaKiKr 671 GdWaLKaWr GdWaLKaKr 797
Przestrzeń przeszukiwań GdWaLPo (fragment) GdWaLWr 170 GdOl 362 GdSz 514 731 217 282 377 GdWa 659 Gd GdWaL GdWaLKa GdWaBy 647 717 75 792 GdWaOl 589 GdWaBi 570 0 546546 GdBy 165 408 609 573 217 392 GdByL GdByWa 435 GdByLPo GdByLWr GdWaLu 443 GdWaKi 555 115 670 GdByLKa 585 75 660 780 GdByLKaWr GdByLKaKr 665 GdWaKiKr 671 GdWaLKaWr GdWaLKaKr 797
Kiedy można mówić o funkcji heurystycznej Zadanie jest złożeniem składników Da się ocenić rozwiązanie cząstkowe Przestrzeń przeszukiwań obejmuje rozwiązania cząstkowe Algorytmy wszerz, w głąb, najpierw najlepszy są stosowalne w przestrzeniach rozwiązań cząstkowych Pożądana jest drzewiasta struktura przestrzeni A* jest odmianą najpierw najlepszy, która korzysta z sumy f. kosztu i f. heurystycznej
Idealna funkcja heurystyczna
Idealna funkcja heurystyczna
WANTED an oracle
Nieidealna funkcja heurystyczna
Funkcja heurystyczna (dla problemu minimalizacji) g(xi) h(xi) g(xj) h(xj) g(xs)=0 h(xs) g(xt) h(xt)=0 Nadmierny optymizm dopuszczalność: g(x)+h(x)<=g(xt) Błąd oszacowania malejący wraz ze zbliżaniem się do rozwiązania monotoniczność: g(xj)+h(xj)>=g(xi)+h(xi)
Funkcja kosztu i heurystyczna GdWaLPo Funkcja kosztu Funkcja heurystyczna Funkcja oceny 362 GdSz 170 GdOl 514 731 217 282 377 GdWa 659 Gd GdWaL GdWaLWr GdWaLKa GdWaBy 647 717 75 792 GdWaOl 589 GdWaBi 570 0 546546 GdBy 165 408 609 573 217 392 GdByL GdByWa 435 GdByLPo GdByLWr GdWaLu 443 GdWaKi 555 115 670 GdByLKa 585 75 660 780 GdByLKaWr GdByLKaKr 665 GdWaKiKr 671 GdWaLKaWr GdWaLKaKr 797
Funkcja kosztu Funkcja kosztu Funkcja heurystyczna Funkcja oceny 362 GdSz 170 GdOl 514 731 217 282 377 GdWa 659 Gd GdWaL GdWaLPo GdWaLWr GdWaLKa GdWaBy 647 717 75 792 GdWaOl 589 GdWaBi 570 0 546546 GdBy 165 408 609 573 217 392 GdByL GdByWa 435 GdByLPo GdByLWr GdWaLu 443 GdWaKi 555 115 670 GdByLKa 585 75 660 780 GdByLKaWr GdByLKaKr 665 GdWaKiKr 671 GdWaLKaWr GdWaLKaKr 797
Funkcja kosztu+heurystyczna GdWaLPo Funkcja kosztu Funkcja heurystyczna Funkcja oceny 362 GdSz 170 GdOl 514 731 217 282 377 GdWa 659 Gd GdWaL GdWaLWr GdWaLKa GdWaBy 647 717 75 792 GdWaOl 589 GdWaBi 570 0 546546 GdBy 165 408 609 573 217 392 GdByL GdByWa 435 GdByLPo GdByLWr GdWaLu 443 GdWaKi 555 115 670 GdByLKa 585 75 660 780 GdByLKaWr GdByLKaKr 665 GdWaKiKr 671 GdWaLKaWr GdWaLKaKr 797
Zagadnienie komiwojażera Gd 362 Sz 170 Ol 165 377 235 By 217 152 Po 203 Zg 186 156 270 319 227 Wa 137 178 L 209 Wr 212 Ki 193 195 116 Ka 80 Kr
Zagadnienie komiwojażera GdWaLPo 514 170 GdOl GdWaL GdWaLWr GdWaLKa GdWaBy 647 717 GdWaOl 589 362 GdSz 377 GdWa Gd GdWaBi 570 0 GdBy 165 392 GdByL GdByLPo GdByLWr GdByWa 435 GdWaLu 443 GdWaKi 555 GdByLKa 585 780 GdByLKaWr GdByLKaKr 665 GdWaKiKr 671 GdWaLKaWr GdWaLKaKr 797
Zagadnienie komiwojażera GdOlWaKiKrKaWrZgSzPoLByGd 2154 GdWaLPo 170 GdOl 362 GdSz 514 Gd GdWa 0 377 GdBy 165 392 GdByL GdByLPo GdByLWr GdWaL GdWaLKa GdWaBy 647 717 GdWaOl 589 GdWaKi 555 GdByWa 435 GdByLKa 585 780 GdByLKaWr GdWaLWr GdByLKaKr 665 GdWaKiKr 671 GdWaLKaWr GdWaLKaKr 797
Zagadnienie komiwojażera GdOlWaKiKrKaWrZgSzPoLByGd 2154 GdWaLPo 170 GdOl 362 GdSz Gd 514 GdWa 0 377 GdBy 165 392 GdByL GdByLPo GdByLWr GdWaL GdWaLKa GdWaBy 647 717 GdWaOl 589 GdWaKi 555 GdByWa 435 GdByLKa 585 780 GdByLKaWr GdByLPoSzZgWrKaKrKiWaOlGd 2154 GdWaLWr GdByLKaKr 665 GdWaKiKr 671 GdWaLKaWr GdWaLKaKr 797
Zagadnienie komiwojażera Gd 362 Sz 170 Ol 165 377 235 By 217 152 Po 203 Zg 186 156 270 319 227 Wa 137 178 L 209 Wr 212 Ki 193 195 116 Ka 80 Kr
Zagadnienie komiwojażera GdOlWaKiKrKaWrZgSzPoLByGd 2154 GdWaLPo 170 GdOl 362 GdSz 1315 720 595 GdByLPo 514 960 Gd 0 1192 800 392 GdByL GdByLWr GdWa GdWaL GdWaLKa GdWaBy 647 717 GdWaOl 589 377 1045 GdWaKi GdBy 165 555 880 GdByWa 435 GdByLKa 585 780 GdByLKaWr GdByLPoSzZgWrKaKrKiWaOlGd 2154 GdWaLWr GdByLKaKr 665 GdWaKiKr 671 GdWaLKaWr GdWaLKaKr 797
Zagadnienie komiwojażera Gd 362 Sz 170 Ol 165 377 235 By 217 152 Po 203 Zg 186 156 270 319 227 Wa 137 178 L 209 Wr 212 Ki 193 195 116 Ka 80 Kr 80 116 137 152 156 165 170 178 186 193 195 203
Funkcja heurystyczna Gd 362 Sz 170 Ol 165 377 235 By 217 152 Po 203 Zg 186 156 270 319 227 Wa 137 178 L 209 Wr 212 Ki 193 195 116 Ka 80 Kr Posortowana lista wag krawędzi 80 116 137 152 156 165 170 178 186 193 195 203 1931
Koszt ścieżki a funkcja heurystyczna Gd 362 Sz 170 Ol 165 377 235 By 217 152 Po 203 Zg 186 156 270 319 227 Wa 137 178 L 209 Wr 212 Ki 193 195 116 Ka 80 Kr 80 116 137 152 156 165 170 178 186 193 195 203 1761 170 1931
Koszt ścieżki a funkcja heurystyczna Gd 362 Sz 170 Ol 165 377 235 By 217 152 Po 203 Zg 186 156 270 319 227 Wa 137 178 L 209 Wr 212 Ki 193 195 116 Ka 80 Kr 80 116 137 152 156 165 170 178 186 193 195 203 1558 382 1940
Koszt ścieżki a funkcja heurystyczna Gd 362 Sz 170 Ol 165 377 235 By 217 152 Po 203 Zg 186 156 270 319 227 Wa 137 178 L 209 Wr 212 Ki 193 195 116 Ka 80 Kr 80 116 137 152 156 165 170 178 186 193 195 203 1380 560 1940
Zagadnienie komiwojażera GdOlWaKiKrKaWrZgSzPoLByGd 2154 GdWaLPo 170 GdOl 362 GdSz 1963 1368 595 GdByLPo 514 1931 Gd 0 1955 1563 392 GdByL GdByLWr GdWa GdWaL GdWaLKa GdWaBy 647 717 GdWaOl 589 377 1931 GdWaKi GdBy 165 1766 555 GdByWa 435 GdByLKa 585 780 GdByLKaWr GdByLPoSzZgWrKaKrKiWaOlGd 2154 GdWaLWr GdByLKaKr 665 GdWaKiKr 671 GdWaLKaWr GdWaLKaKr 797
Zagadnienie komiwojażera inaczej ABCDFE ABCDEF ABCDFE ABDCEF ABDCFE ADBCFE ADBCEF ABDECF ADBECF Funkcja kosztu suma wag pełnego cyklu Funkcja heurystyczna?
Zagadnienie komiwojażera inaczej 2134 1234 1243 2143 1324 2413 2341 1342 2431 1432 2314 1423 3214 4123 3241 4132 3124 4213 3142 3412 4312 3421 4231 4321 Funkcja kosztu suma wag pełnego cyklu. Funkcja heurystyczna?
Przykład - piętnastka 1 3 12 1 2 3 4 13 14 5 15 6 8 7 10 11 4 13 12 5 6 7 14 11 8 9 2 15 10 Jaka jest reprezentacja rozwiązania? Co jest funkcją kosztu? Czy jest tu miejsce na funkcję heurystyczną? 9
Piętnastka - przestrzeń przeszukiwań
Solving 15 puzzle attempt #1
Przykład - piętnastka 1 3 12 1 2 3 4 13 14 5 15 6 8 7 10 11 4 13 12 5 6 7 14 11 8 9 2 15 10 9 Reprezentacja rozwiązania stan planszy Funkcja kosztu Liczba elementów nieprawidłowo umiejcowionych Funkcja heurystyczna? 12
Piętnastka przestrzeń przeszukiwań - D L LD DL DD R DR RD RR
Przykład - piętnastka 1 3 12 1 2 3 4 13 14 5 15 6 8 7 10 11 4 13 12 5 6 7 14 11 8 9 2 15 10 9 Reprezentacja rozwiązania sekwencja ruchów Funkcja kosztu długość sekwencji Funkcja heurystyczna Liczba ruchów, którą trzebaby wykonać gdyby kafelki sobie nie przeszkadzały 30 2:4 4:2 5:4 6:2 7:2 8:2 10:2 11:2 12:4 13:2 14:2 15:2
Knapsack problem N items Each item has its weight wi>0 and profit pi>0 Choose items such that total profit is maximized and total weight does not exceed W n max i=1 x i pi n i=1 xi w i W x i {0,1}
Knapsack problem N items Each item has its weight wi>0 and profit pi>0 Choose items such that total profit is maximized and total weight does not exceed W n max i=1 x i pi n i=1 xi w i W x i {0,1}
Knapsack problem search space???? 0??? 1??? 00?? 000? 0000 0001 10?? 01?? 001? 0010 0011 010? 0100 0101 011? 0110 0111 100? 1000 1001 11?? 101? 1010 1011 110? 1100 1101 111? 1110 1111
Knapsack problem profit and heuristic function Profit function g( x)= i : x =1 pi i Heuristic function Items are sorted w.r.t. pi/wi (descending) h( x)= i : x =? y i pi i i : x =? y i w i=w i : x =1 xi w i i i y i [0,1]
Knapsack problem example profit and heuristic function Items i 1 2 3 4 5 6 pi 20 5 10 5 6 3 wi 6 2 5 3 4 3 pi/wi 3.33 2.5 2 1.66 1.5 1 W=13 Consider the solution Total profit: Total weight: Vector y: Heuristic function: x=? 0? 1? 1 g( x)= p 4 + p6 =5+3=8 w ( x )=w 4 +w 6 =3+3=6 y=[1,0,1/5,0,0,0] h( x)=20 1+10 1/5=22
Kiedy można mówić o funkcji heurystycznej Zadanie jest złożeniem składników Da się ocenić rozwiązanie cząstkowe Przestrzeń przeszukiwań obejmuje rozwiązania cząstkowe Algorytmy wszerz, w głąb, najpierw najlepszy są stosowalne w przestrzeniach rozwiązań cząstkowych Pożądana jest drzewiasta struktura przestrzeni A* jest odmianą najpierw najlepszy, która korzysta z sumy f. kosztu i f. heurystycznej