M o ty w a cj a
Jeste´smyekspertem/doradc֒awjednejzagencjirz֒adowych,iwniedziel֒ewieczorem prezesagencjidzwonidonasnakom´ork֒e,˙zebypoinformowa´c,˙zewponiedzia lekrano ogodzinie10-tejodb ֒edziesi ֒ewa˙znanaradawMinisterstwieInfrastruktury,ikonieczna jestnaszaniezawodnaobecno´s´c. Corobi´c? Mamywielemo˙zliwo´sci,mo˙zemywr´oci´cdokolacjizrodzin ֒a,mo˙zemyp´oj´s´cnaspacer ˙zebysi֒eodstresowa´c. Wiemyjednak,˙zemusimyzaplanowa´cpodr´o˙zdoWarszawy.Samolotniejestdobr֒a opcj ֒a.Wtanichliniachlotniczychwszystkiemiejscas ֒adawnowykupione,awLOTs ֒a pewniejeszczemiejsca,alejakranob ֒edziemg laisamolotnieodleci,tozostawimy szefanalodzie,ipotempewniemo˙zemysi֒eju˙zwog´oleniepokazywa´cwagencji (odpraw֒eprzy´sl֒anamnakonto). Cogorsza,PKPwdzisiejszychczasachr´ownie˙zmazwyczajodwo lywa´cpoci ֒agizdnia nadzie´n,iniemapewno´sci,czymo˙zemyliczy´cnanocnypoci ֒ag1:32(jest wWarszawieo7:32).Mo˙zemysprawdzi´ct֒eopcj֒e,alemo˙zesi֒eokaza´c,˙zeczekanas jazdasamochodem. Og´olnie,jestszeregmo˙zliwo´sci,ka˙zdaznichwymagastarannegorozwa˙zenia.Prowadzi todoprzeszukiwania. Metodyprzeszukiwania—motywacja1 Przeszukiwaniejestelementemsk ladowymwszystkichmetodsztucznejinteligencji, izdolno´s´cskutecznegoprzeszukiwaniawog´olezdajesi֒eby´cinherentnymelementem inteligencji. Metodyprzeszukiwania—motywacja2Re p re ze n ta cj a p ro b le m u w p rz e st rz e n i st a n ´o w
1.przestrze´nstan´ow •mo˙zemie´cposta´ciloczynukartezja´nskiegodziedzinparametr´owopisu •przestrze´nmo˙zeby´csko´nczonalubniesko´nczona,cho´cniemusitoby´czwi֒azane ztrudno´sci֒aproblemu(np.szachy) •czasemcz֒e´s´cca lejformalniezdefiniowanejprzestrzenistanowi֒astany niedozwolone(inaczej:nieosi ֒agalne) 2.stanpocz ֒atkowy,zawszejawniepodany 3.standocelowy,jawnylubniejawny(warunekosi ֒agni ֒eciacelu) 4.dost ֒epneoperatoryprzej´sciaodstanudostanu,inaczej:funkcjanast ֒epnika, successorfunction •np.wpostaciwarunk´owstosowalno´sciiefekt´owdzia lania •operatormo˙zeby´csparametryzowany(np.wlabirynciemo˙zemymie´cjeden operatorruchu,czteryoperatory,alboliczb ֒emiejscrazycztery) ⇒Zadaniemjestwyznaczeniesekwencjioperator´owprowadz ֒acychzestanu pocz ֒atkowegodocelowego. Metodyprzeszukiwania—reprezentacjawprzestrzenistan´ow3Og ´o ln y sc h e m a t p rz e sz u k iw a n ia w p rz e st rz e n i st a n ´o w
PROCEDUREGT(St);St-opisstanupoczatkowego BEGIN UNTILTerm(St)DO;stanStspelniawarunekcelu BEGIN Op:=first(ApplOps(St));wybierzoperatorstosowalnywstanieSt St:=Apply(Op,St);rezultatzastosowaniaOpdostanuSt END END Coprawdapowy˙zszyzapisalgorytmuGT(Generate-and-Test)sugeruje,˙zewybieraon pierwszymo˙zliwydozastosowaniawstanieStoperator,jednakalgorytmmawp lywna tenwyb´oroperatoraprzezodpowiednieposortowanielistyoperator´ow.Metod֒ewyboru operatoraprzezalgorytmprzeszukiwanianazywamystrategi ֒a. Zastosowaniedobrejstrategiijestwalgorytmachprzeszukiwaniazagadnieniem kluczowym. Metodyprzeszukiwania—reprezentacjawprzestrzenistan´ow4S tr a te g ie ´sl e p e i p o in fo rm o w a n e
Strategiamo˙zeby´cca lkowicieog´olna,bazuj ֒acatylkonasyntaktycznychw lasno´sciach reprezentacjizagadnienia,idaj ֒acasi ֒ewykorzysta´cwewszystkichmo˙zliwych przypadkach.Takiestrategienazywasi ֒e´slepymi. Przyk lad:ca lkiemu˙zyteczn֒a´slep֒a(itodos lownie)strategi֒awprzeszukiwaniu labirynt´owjeststrategiaprawejr ֒eki.Strategiatapozwalaznale´z´cwyj´sciezlabiryntu, je´slitylkotakoweistnieje. Strategiemog֒ar´ownie˙zwykorzystywa´cinformacjeostanie,specyficznedladanej dziedzinyproblemowej.Takiestrategienazywamypoinformowanymi. Strategiepoinformowanekorzystaj ֒azinformacji,kt´orewog´olnymprzypadkunies ֒a dost֒epne,imog֒aby´cniezrozumia ledlaosobypostronnej,orazdlaca lkowicieog´olnego algorytmuprzeszukiwania. Przyk lad:wyobra´zmysobie,˙zeposzukuj ֒acwyj´sciazlabiryntuwiemy,˙zenazewn ֒atrz jestha las(np.szummorza),awlabiryncieca lkowitacisza.Wtedyzwyczajne nads luchiwaniewewszystkichkierunkachmog lobyby´c´zr´od lemstrategii poinformowanej,pomagaj֒acwwyborzew la´sciwychkrok´ow(cho´cstrategiatamo˙ze by´cskutecznatylkowpewnejniewielkiejodleg lo´sciodwyj´scia). Metodyprzeszukiwania—podstawowestrategie5K r´o tk ie p o d su m o w a n ie — p yt a n ia sp ra w d za j
֒a ce
1.Zczegosk ladasi ֒ereprezentacjaproblemuwprzestrzenistan´ow? 2.Cotos ֒a´slepeipoinformowanestrategieprzeszukiwania?Czymsi ֒er´o˙zni ֒a? Metodyprzeszukiwania—podstawowestrategie6Pr ze sz u k iw a n ie z n aw ra ca n ie m (B T )
FUNCTIONBT(st) BEGIN IFTerm(st)THENRETURN(NIL);trywialnerozwiazanie IFDeadEnd(st)THENRETURN(FAIL);brakrozwiazania ops:=ApplOps(st);listaoper.stosowalnych L:IFnull(ops)THENRETURN(FAIL);brakrozwiazania o1:=first(ops) ops:=rest(ops) st2:=Apply(o1,st) path:=BT(st2) IFpath==FAILTHENGOTOL RETURN(push(o1,path)) END AlgorytmBTskutecznieprzeszukujeprzestrze´nrozwi֒aza´nbezjawnegobudowania drzewaprzeszukiwaniaprzestrzeni.Strukturyjakichu˙zywadozapami֒etaniastanu przeszukiwa´ns ֒aniejawne(nastosie).Mo˙znaskonstruowa´citeracyjn ֒awersj ֒etego algorytmu,kt´orabudujetestrukturyjawnie. Metodyprzeszukiwania—przeszukiwanieznawracaniem7Pr ze sz u k iw a n ie z n aw ra ca n ie m — w la sn o´ sc i
BTmaminimalnewymaganiapami֒eciowe.Wtrakciepracypami֒etatylkopojedyncz֒a ´scie˙zk֒edorozwi֒azania(orazpewienkontekstdlaka˙zdegoelementutej´scie˙zki).Zatem jegoz lo˙zono´s´cpami ֒eciowaprzypadku´sredniegowynosiO(d),gdzied- odleg lo´s´cstanupocz ֒atkowegoodrozwi ֒azania(wsensieliczbyoperator´ow). Efektywno´s´cczasowajestgorsza.WnajgorszymprzypadkualgorytmBTmo˙ze odwiedzi´cwszystkiestanyprzestrzeniprzedznalezieniemrozwi֒azania.Pozwala jednaknau˙zyciestrategii—poinformowanejlub´slepej—wmomencietworzenialisty operator´ow,przezjejodpowiednieposortowanie. Powa˙znymproblememalgorytmuBTjestfakt,˙zemo˙zeonnieznale´z´c rozwi ֒azania,nawetje´sliistniejeonowniewielkiejodleg lo´sciodstanustartowego. Je´slinp.przestrze´nstan´owjestniesko´nczona,algorytmmo˙zewpewnymmomencie przeszukiwaniawybra´coperatorprowadz֒acydostanu,zkt´oregoprowadz֒adrogido niesko´nczonejliczbystan´ow,ale˙zadenznichniejeststanemdocelowym.Wtakim przypadkualgorytmBTnigdyniezako´nczyprzeszukiwaniatejcz ֒e´sciprzestrzeni stan´ow,inigdynieb ֒edziem´og lwycofa´csi ֒ezniew la´sciwegowyboruoperatora. Metodyprzeszukiwania—przeszukiwanieznawracaniem8W yk ry w a n ie p o w ta rz a j
֒a cy ch si
֒e st a n ´o w
Jednymzproblem´owalgorytmuBT—jakr´ownie˙zwszystkichinnychalgorytm´ow przeszukiwania—jestmo˙zliwo´s´cpowstawaniap ֒etli.Je´slialgorytmkiedykolwiek wygenerujeopisstanu,dokt´oregodoszed l,alekt´oryju˙zistniejenajegodrodzeod stanupocz֒atkowego,tonieuchronniezaczniepowtarza´cbadaniestan´owwcze´sniej zbadanych. Zjawiskutemumo˙znaoczywi´sciezapobiec.Najprostszymsposobemby loby sprawdzenie,powygenerowaniuka˙zdegonowegostanu,czytenstannieznajdujesi ֒e ju˙znabie˙z ֒acej´scie˙zceodstanupocz ֒atkowego. Mo˙znar´ownie˙zsprawdzi´cdok ladniej—czynowowygenerowanystanniezosta lju˙z wog´olekiedykolwiekwcze´sniejznaleziony,izbadany.Wymagatopami֒etaniazbioru stan´owzbadanych,tzw.listyClosed.Listatawalgorytmierekurencyjnymmusiby´c globalnaika˙zdynowowygenerowanyopisstanumusiby´cpor´ownywanyzewszystkimi stanamiju˙zobecnyminali´scie. Jednoidrugiesprawdzaniejestdo´s´ckosztowneobliczeniowo.Dlazaoszcz֒edzeniaczasu mo˙znajepomin֒a´c,ryzykuj֒acjednakzap֒etlenieprocedury. Metodyprzeszukiwania—przeszukiwanieznawracaniem9Og ra n ic ze n ie g l
֒e b o k o´ sc i z it e ra cy jn ym p o g l
֒e b ia n ie m
Powa˙znymproblememdlaalgorytmuBTs֒aniesko´nczoneprzestrzenie,zkt´orymi algorytmog´olniesobienieradzi.Podobniezreszt֒ajakinnealgorytmyocharakterze (hura-)optymistycznym,kt´orepreferuj ֒amarszdoprzodu,oiletylkojestmo˙zliwy. Prostymrozwi ֒azaniemjestograniczenieg l ֒eboko´sciprzeszukiwaniadojakiej´s ”rozs֒adnej”warto´sci.Zauwa˙zmy,˙zepozazabezpieczeniemprzedniesko´nczonymi przestrzeniami,zabezpieczaonojednocze´snieprzedwpadni֒eciemwp֒etle,copozwala pomin֒a´cwykrywaniepowtarzaj֒acychsi֒estan´ow.Wog´olnymprzypadkumo˙zenieby´c jednak latweokre´slenietakiejwarto´sci,ajejniedoszacowaniegrozioczywi´sciepora˙zk֒a algorytmuinieznalezieniemrozwi ֒azania,kt´oreistnieje. Dlaszeregualgorytm´owpodobniejakBToptymistycznych(preferuj֒acychruchywg l֒ab) stosujesi֒ezatemograniczenieg l ֒eboko´sciziteracyjnympog l ֒ebianiem.Ten wariantgwarantujeznalezienierozwi֒azania,oileistnieje. JednakwprzypadkualgorytmuBTtametodamo˙zeby´cbardzonieefektywna. Metodyprzeszukiwania—przeszukiwanieznawracaniem10He u ry st yk i i fu n k cj e o ce n y st a n u
Algorytmydotychczasprzedstawiones ֒aog´olneiniewymagaj ֒adoswojejpracystrategii poinformowanej.Jednakwka˙zdympraktycznymzagadnieniuposiadanietakiejstrategii jestbardzopo˙z ֒adane. Heurystyk ֒ab֒edziemynazywa´cwiedz֒eodziedzinieproblemowej: •kt´orejniemo˙znauzyska´czsyntaktycznejanalizyopisuproblemu, •kt´oramo˙zeniemie´cformalniepoprawnegouzasadnienia,atak˙ze—cowi ֒ecej— kt´oramo˙zeniewka˙zdymprzypadkusprawdza´csi֒e,iczasamidawa´cmylne wskaz´owki, •alekt´oraog´olniepomagawdokonywaniudobrychwybor´owwprzeszukiwaniu. Posiadanieheurystykipozwalabudowa´cstrategiepoinformowane.Og´olnymicz ֒esto stosowanymschematemkonstrukcjistrategiiwykorzystuj ֒acyminformacj ֒eheurystyczn ֒a, jeststatycznafunkcjaocenystanu.Dlaka˙zdegostanuokre´slaonajego ”dobro´c”, czyliszanse,˙zeprzeztenstanprowadzidrogadorozwi֒azania.Warto´s´ctejfunkcji mo˙znar´ownie˙zinterpretowa´cjakomiar֒eodleg lo´scistanuodrozwi֒azania. Metodyprzeszukiwania—heurystycznefunkcjeocenystany11M e to d y g ra d ie n to w e
Funkcj֒eocenystanumo˙znawprzeszukiwaniuzastosowa´cbezpo´srednio.Prowadzito dometodylubmetodgradientowych(hill-climbing).Metodyteokre´slasi֒e winformatycejakometodyzach lanne. Ichbezpo´sredniezastosowanieograniczonejestdodziedzinzbardzoregularn֒afunkcj֒a oceny(np.´sci´slemonotoniczn֒a).Wpraktycemamytypowodoczynienia znast֒epuj֒acymiproblemami: 1.lokalnemaksimafunkcjioceny 2.obszary ”plateau”funkcjioceny 3.uko´snegraniefunkcjioceny current stateobjective function state space
global maximum local maximum "flat" local maximum
shoulder Metodyprzeszukiwania—metodygradientowe12
W y ˙za rz a n ie
Skuteczn ֒aicz ֒estostosowan ֒agrup ֒emetodgradientowychstanowitechnikazwana wy˙zarzaniem(simulatedannealing).Jejnazwaodwo lujesi ֒edoanalogiizprocesem wytapianiametalu,kiedystopnioweipowolnezmniejszanietemperaturypozwala osi֒agn֒a´cstanglobalnegooptimumenergetycznego,zpe lnymuporz֒adkowaniem cz֒asteczekwca lejobj֒eto´scimetalu. Metodapoleganagenerowaniuruch´ow losowych,inast ֒epniewykonywaniuich, lubnie,zgodniezprzedstawionymna wykresierozk lademprawdopodobie´nstwa. Jakwida´c,je´sliwygenerowanyruch poprawiawarto´s´cfunkcjiocenytojest zawszewykonywany,natomiastje´slij֒a pogarszatojestwykonywany zprawdopodobie´nstwemp<1zale˙znym odstopniapogorszeniaoceny, wpor´ownaniuzestanemaktualnym. Metodyprzeszukiwania—metodygradientowe13 Jednocze´snie,wtrakciepracyalgorytmustopniowoobni˙zanajesttemperatura,co powodujezmniejszanieprawdopodobie´nstwawyboruruch´ow ”z lych”. Metod֒ewy˙zarzaniastosujesi֒ezpowodzeniemdoprojektowaniauk lad´owVLSI,sieci r´o˙znegorodzaju,przydzia luzada´nwprocesachprodukcyjnych,iinnychzada´n optymalizacjiproces´owz lo˙zonych.Problememwjejzastosowaniujestdob´or parametr´ow,np.algorytmuobni˙zaniatemperatury. Metodyprzeszukiwania—metodygradientowe14K r´o tk ie p o d su m o w a n ie — p yt a n ia sp ra w d za j
֒a ce
1.JakiewymaganiaalgorytmuBTs֒abardziejkrytyczne(istotne,ograniczaj֒ace): pami֒ecioweczyczasowe?Uzasadnijodpowied´z. 2.WjakichsytuacjachalgorytmBTmo˙zenieznale´z´crozwi֒azania,gdyonoistnieje? 3.Naczympolegazjawiskopowtarzaj֒acychsi֒estan´owwalgorytmachprzeszukiwania? Jakies ֒ajegomo˙zliwekonsekwencje? 4.Jakiproblemrozwi ֒azujemetodaiteracyjnegopog l ֒ebiania? Wjakichprzypadkachkoniecznejestjejstosowanie? 5.Jakies ֒ag l´owneproblemyjako´sciowe(nieuwzgl ֒edniaj ֒acz lo˙zono´sci)wzastosowaniu gradientowychmetodprzeszukiwania? Metodyprzeszukiwania—metodygradientowe15 Metodyprzeszukiwania—metodygradientowe16Pr ze sz u k iw a n ie g ra f´o w
Przypomnijmysobiewersj ֒ealgorytmuBTziteracyjnympog l ֒ebianiem,ikonieczno´s´c wielokrotnegoprzeszukiwaniapocz ֒atkowejcz ֒e´sciprzestrzeni.Abyunikn ֒a´c wielokrotnegoodwiedzaniatychsamychstan´owmo˙znau˙zy´cstrukturygrafowejdo pami֒etaniazbadanychju˙zcz֒e´sciprzestrzenistan´ow.Algorytmy,kt´oreu˙zywaj֒atakiej strukturys֒aalgorytmamiprzeszukiwaniagraf´ow. Og´olnestrategie przeszukiwaniagraf´ow (´slepe): •strategiawszerzBFS (breadth-firstsearch) •strategiawg l ֒abDFS (depth-firstsearch), •innestrategie. Metodyprzeszukiwania—przeszukiwaniegraf´ow17Pr zy k la d : 8 -k a (8 -p u zz le )
1234 5678 9101112 131415Uk ladanka15-tka(15-puzzle)—popularnawszkole podstawowej. 8-ka(8-puzzle)—zmniejszonawersja,odpowiedniadoilustracjidzia laniar´o˙znych strategiiialgorytm´owsztucznejinteligencji.7 3 2 6 1 8 5 4 7 6 5 8 4 1 2 3
Metodyprzeszukiwania—przeszukiwaniegraf´ow18Pr ze sz u k iw a n ie w sz e rz (B F S )
•Badajwszystkiestanywodleg lo´scidodstanupocz ֒atkowegos0przedzbadaniem jakiegokolwiekstanuwodleg lo´sci(d+1)ods0. •Zawszegwarantujeznalezienierozwi ֒azaniaje´slitylkoistnieje. •Cowi֒ecej,zawszeznajdujerozwi֒azanieoptymalne(tzn.znajdujenajkr´otsz֒adrog֒e zestanupocz֒atkowegodoka˙zdegostanu). •Niejestinherentnieodpornynawpadaniewp֒etlestan´owimo˙zewymaga´c zastosowanialistyClosed. •Z lo˙zono´s´cpami֒eciowaiczasowafatalna,obieO(bd),gdzie: b-´srednialiczbaga l֒eziwyrastaj֒acychzw֒ez la(tzw.branchingfactor), d-odleg lo´s´cstanupocz֒atkowegoodrozwi֒azania(liczbaoperator´ow). •Praktyczniejednakowaz lo˙zono´s´cprzypadkunajgorszegoi´sredniego(jakr´ownie˙z najlepszego). •Uwagaimplementacyjna:dodawajnowoodkrytestanynakonieclistyOpen. (Pomimoi˙zm´owisi֒eolistachw֒ez l´ow,zewzgl֒edunacz֒esteodwo laniawpraktyce stosujesi֒eszybszestrukturydanych,np.tablicehaszowe.) Metodyprzeszukiwania—przeszukiwaniegraf´ow19Pr ze sz u k iw a n ie w sz e rz — p rz yk la d
Diagramprzedstawiafragmentgrafuprzeszukiwaniawszerz.Numerynadplanszami (1–26)pokazuj ֒atukolejno´s´cwyboruw ֒ez l´owdoekspansjigrafu. Metodyprzeszukiwania—przeszukiwaniegraf´ow20Pr ze sz u k iw a n ie w g l
֒a b (DF S )
•Badajwszystkienowoodkrytestanypochodne(potomki)danegostanunprzed powrotemdobadanias֒asiad´owstanun. •Niedaje˙zadnychzgwarancjiBFS(pewno´sciznalezieniarozwi֒azaniaoptymalnego, albowog´oleznalezieniajakiego´srozwi֒azania). •Z lo˙zono´s´cobliczeniowaprzypadkunajgorszego:przetwarzanieipami֒etanie wszystkichstan´ow. •Z lo˙zono´s´cprzypadku´sredniego:O(bd )pami֒eciowaiczasowa. •Dlaprzestrzeniniesko´nczonychjedynympraktycznieu˙zytecznymwariantemjest ograniczenieg l֒eboko´sciziteracyjnympog l֒ebianiem(aleprzeszukiwaniegrafuDFS niejesta˙ztakbezsensowniestratnejakalgorytmBT). •Efektywno´s´calgorytmugwa ltowniepolepszasi ֒edlaprzypadk´owistotnielepszych ni˙z´sredni(czyliwyj ֒atkowoszcz ֒e´sliwych),zatemsensjegostosowaniajesttylko wpo l ֒aczeniuzdobrymiheurystykami. •Uwagaimplementacyjna:dodawajnowoodkrytestanynapocz ֒ateklistyOpen. Metodyprzeszukiwania—przeszukiwaniegraf´ow21Pr ze sz u k iw a n ie w g l
֒a b — p rz yk la d
Fragment ”przeci֒etnego”grafuprzeszukiwaniawg l֒abzograniczeniemg l֒eboko´scido5. Numeryw֒ez l´owpokazuj֒akolejno´s´cwyboruw֒ez l´owdoekspansjigrafu. Metodyprzeszukiwania—przeszukiwaniegraf´ow22Pr ze sz u k iw a n ie r´o w n o k o sz to w e U C S
Wprzypadku,gdykosztypojedynczychruch´ownies ֒ar´owne,przeszukiwaniewszerz opartenaliczbieruch´owwoczywistyspos´obniegwarantujeznalezieniaoptymalnej ´scie˙zki.Mo˙znaokre´sli´cprost ֒amodyfikacj ֒ealgorytmuwszerz,kt´oraznajdzieoptymaln ֒a ´scie˙zk֒edladowolnych(dodatnich)koszt´owpojedynczychruch´ow.Tamodyfikacja, zwanaalgorytmemr´ownegokosztu(uniform-costsearchUCS),wymaga ka˙zdorazowowybraniaw֒ez laonajni˙zszymkoszcie´scie˙zki. SG55 333SG55 333 SG
55 333 SG
55 333 SG
55 333 Wprzypadkur´ownychkoszt´owruch´owsprowadzasi֒etodometodywszerz. Optymalno´s´calgorytmumo˙zna(trywialnie)wykaza´cpodwarunkiem,˙zekoszt pojedynczegoruchujestjak֒a´swarto´sci֒adodatni֒a(≥ǫ).Poniewa˙zalgorytmkierujesi֒e d lugo´sci֒a´scie˙zki,jegoz lo˙zono´sciniemo˙znascharakteryzowa´cjakofunkcjibid. Zamiasttego,oznaczaj֒acprzezC∗ kosztoptymalnegorozwi֒azania,mo˙znaotrzyma´c z lo˙zono´s´cnajgorszegoprzypadku,zar´ownoczasow ֒ajakipami ֒eciow ֒a,jako O(b1+⌊C∗/ǫ⌋). Wprzypadkur´ownychkoszt´owformu lataredukujesi֒edoO(bd ). Metodyprzeszukiwania—przeszukiwaniegraf´ow23
Z a k o ´n cz e n ie p rz e sz u k iw a n ia
Celemprzeszukiwaniamo˙zeby´csamoznalezienie´scie˙zkidorozwi֒azania,b֒ad´z znalezienie´scie˙zkioptymalnej.Wpierwszymprzypadku,algorytmmo˙zezako´nczy´c prac ֒eju˙zwmomencie,kiedynowystan,wygenerowanywwynikukolejnegoruchu, oka˙zesi ֒estanemdocelowym,awi ֒eczostanieumieszczonynali´scieOpen.Aleczytak samomo˙zemypost ֒api´cwprzypadkuposzukiwaniarozwi ֒azaniaoptymalnego? SG55 333 SG55 333 SG55 333 SG55 333 SG
55 333 Przeszukiwanienale˙zyzako´nczy´cwmomencie,gdyalgorytmprzeszukiwania optymalnegowybierzedoekspansjiw ֒eze l,kt´oryjestw ֒ez lemdocelowym(czyliju˙z wcze´sniejznalaz ljedenlubkilkaw֒ez l´owdocelowych).Jegoekspansjimo˙znawtedy zaniecha´c,anajlepszaznalezionadoniego´scie˙zkajestrozwi֒azaniemoptymalnym. Poniewa˙zalgorytmsystematycznieznajdujewszystkienajta´nsze´scie˙zki,wi֒ecmoment wybraniaw֒ez ladoekspansjioznacza,˙zeniemo˙zesi֒eju˙zwgrafieznale´z´c˙zadnata´nsza ´scie˙zkadoniego. Jednakzanimtonast֒api,algorytmbada´scie˙zkioni˙zszychkosztach,iniema pewno´sci,˙zekt´ora´sznichnieoka˙zesi֒enow֒a,lepsz֒a´scie˙zk֒adow֒ez lacelowego. Metodyprzeszukiwania—przeszukiwaniegraf´ow24
Pr ze sz u k iw a n ie n a jp ie rw -n a jl e p sz y
Zastosowanieheurystycznejfunkcjiocenydoprzeszukiwanianagrafachwnajprostszym przypadkudajetzw.przeszukiwanienajpierw-najlepszy(best-firstsearch).Wka˙zdej chwiliwykonujeonoruch,kt´oryminimalizujefunkcj ֒eoceny.Je´slifunkcjaocenyjest dobra,w la´sciwiewybierastanydoanalizy,iodpowiedniomalejewzd lu˙zdrogido rozwi֒azania,towtedytametoda ”idzie”bezpo´sredniodocelu,nietrac֒acczasuna rozwijaniejakichkolwiekniepotrzebnychw֒ez l´owgrafu. R´ownie˙zwprzypadkudrobnychdefekt´owfunkcjioceny,kiedyniekt´orejejwarto´scis ֒a nietrafnei´zleoceniaj ֒astany,aleporozwini ֒eciukilkuniepotrzebnychw ֒ez l´owfunkcja oceniadalszew֒ez lywprzybli˙zeniupoprawnie,tenschematprzeszukiwaniadobrzesi֒e sprawdza. K lopotyzaczynaj֒asi֒ejednakkiedyfunkcjamajaki´sb l֒adsystematyczny,np.jako najlepsz ֒akonsekwentniewskazujedrog ֒e,kt´orawog´olenieprowadzidocelu.Wtedy metodanajpierw-najlepszymatakiesamewadyjakmetodawg l ֒ab,pomimo,i˙zfunkcja by´cmo˙zepoprawnieoszacowujewielew֒ez l´ow. Metodyprzeszukiwania—przeszukiwaniegraf´ow25A lg o ry tm y p rz e sz u k iw a n ia g ra fu
Rozwa˙zanetualgorytmyprzeszukiwaniagraf´owdzia laj֒awed lugschematu: PROCEDUREGS(s0);s0-opisstanupoczatkowego BEGIN n:=s0 G:={s0};grafprzeszukiwania:wezlyiluki Open:=[s0];Closed:=[];listy:nowychisprawdzonych UNTILTerm(n)DO;stannspelniawarunekcelu BEGIN Open:=Remove(n,Open) new:=Successors(n);wygenerujnastepnikiwezlan G:=AddSuccessors(G,New);dodajstrukturedografuG Open+=(new-Closed);dodajnowoodkrytenastepniki Closed+={n} n:=SelectNext(Open);wybierzwezeldoeksploracji END solution:=BuildPath(s0,n,G);zrekonstruujsciezkedocelu END Wpowy˙zszymalgorytmiedlauproszczeniapomini֒etooperacjezapami֒etaniaikorekty koszt´ow´scie˙zekodw ֒ez lastartowegodowszystkichw ֒ez l´ow. Metodyprzeszukiwania—przeszukiwaniegraf´ow26´ Snadodajanoewez lykotyniec(BFS)lubleiwszipealgokotmyBFSryDnoFarujigS ֒֒֒ wdktymprzypalezwyk lakojka.jestuap´orzatek(DFSoc)enlis,ktpOty ֒֒֒ jnwybierajakoleekyweze ldospansjizypslekoAajorytmyr´ownolgsznato-niejprwiyw֒֒ w´sc˙zkipoczatkocoejluboszawaniao´sciieugszedd lgkryteriumko lutudn(owio:ieowdp֒ ansimplementacjenlistyOpjakolistyseamzwdyodleg lo´sodrociiazania).Wte֒ toejwprteryioda,owjacejnatychmiastyijklejekosoowanej,albortjaszczelepiej,ko ֒ waniaiiausuwan(lzlistyOog(N)).dodaerjegoacyb´ornajlepszewwtaeniopi laez ֒ ia959)znajrywanzynajkr´otschdr´ogna(1dost˙zeWartotudoijk´c,daisrytntmDgoaljeie l´owgrafu.JednakopDijkstrazak lada ljeezezwografiezjednegwhac ladowszystkicer֒֒ zbowanym,iza lawdoanymdopaieci.udm,onymgrafinasko´nczeymwca lo´sciznan,֒ anszukiw27iegraf´owprzeki—prMiaetodyzeszuwan