130 likes | 232 Views
Informované procedúry. Hľadanie najskôr najlepšieho Využitie heuristickej informácie v systematickom hľadaní – najprirodzenejšie miesto je pri rozhod-nutí, ktorý vrchol má byť expandovaný ako ďalší Hľadá sa najlepší vrchol spomedzi všetkých Winstonova metafora o horolezcoch
E N D
Informované procedúry • Hľadanie najskôr najlepšieho • Využitie heuristickej informácie v systematickom hľadaní – najprirodzenejšie miesto je pri rozhod-nutí, ktorý vrchol má byť expandovaný ako ďalší • Hľadá sa najlepší vrchol spomedzi všetkých • Winstonova metafora o horolezcoch • PS – hľadanie pomocou BF stratégie • PR – hľadanie pomocou GBF stratégie • Heuristická ohodnocovacia funkcia – f(n)
BF - najskôr najlepšieho • 1. Daj vrchol s do OTVOR • 2. Ak OTVOR je prázdny, skonči s neúspechom • 3. Zober vrchol n z OTVOR, pre ktorý f(n) je minimálne a daj ho do ZATVOR. • 4. Expanduj n a daj jeho synov do OTVOR spolu so smerníkom na n. • 5. Ak niektorý zo synov je koncový vrchol, skonči s riešením, ktoré získaš pomocou smerníkov • 6. Pre každého syna n´ vrcholu n:
BF – najskôr najlepšieho II • a. vypočítaj f(n´) • b. ak n´ nebol ani v OTVOR ani v ZATVOR, pridaj ho do OTVOR, spolu so smerníkom na n. • c. ak n´ už bol v OTVOR alebo ZATVOR, porovnaj vypočítanú hodnotu f(n´) s doterajšou hodnotou. Ak stará hodnota je menšia, zahoď novogenerova-ný vrchol. Ak nová hodnota je menšia, zameň nový vrchol za starý (t.j. smerník n´ ukazuje teraz na n a nie na doterajšieho otca). Ak vrchol bol v ZATVOR, daj ho do OTVOR. • 7. Choď na 2.
BF – najskôr najlepšieho III • Traverzný strom T (alebo strom hľadania) • Niekedy sa vynecháva test na duplicitu v kroku 6 • Niekedy sa vrchol n´ znovu neotvára, ale sa presmerujú smerníky a poposúvajú sa nové hodnoty na jeho nasledovníkov (ak treba) • Pre A/ALEBO grafy je to trochu zložitejšie (GBF) • V rozhodnutí čo znamená najlepší • V rozhodnutí čo znamená kandidát • Kandidát – báza riešenia • Dve heuristické funkcie – f1a f2
GBF – báza riešenia • Graf G a G´ (explicitná časť implicitného grafu G) • O koncových vrcholoch G´, ktoré nie sú označené ako „neriešiteľný“, uvažujeme, že sú „vyriešený“ • Báza riešenia je ľubovoľný podgraf G´´ grafu G´: • 1. G´´ obsahuje počiatočný vrchol s. • 2. Ak expandovaný vrchol n typu A je v G´´, tak aj všetci jeho synovia sú v G´´ • 3. Ak expandovaný vrchol n typu ALEBO je v G´´, tak práve jeden jeho syn je v G´´ • 4. žiadny z vrcholov grafu G´´ nie je označený ako „neriešiteľný“
GBF – heuristické funkcie • f1 – grafová ohodnocovacia funkcia – ohodnocuje kvalitu jednotlivých báz riešenia • f2 – vrcholová ohodnocovacia funkcia – ohodnocuje, ktorý vrchol z vybranej bázy riešenia má byť expandovaný • Pozornosť sa sústreďuje na f1, kým funkcia f2 sa vyberá často ad hoc
GBF – všeobecná BF • 1. Daj vrchol s do OTVOR • 2. Z explicitného grafu G´ vypočítaj najsľubnejšiu bázu riešenia G0s použitím f1a heuristiky h z kroku 4 • 3. S použitím f2 vyber vrchol n, ktorý je v OTVOR a v G0, zober ho z OTVOR a daj ho do ZATVOR. • 4. Expanduj n a daj jeho synov do OTVOR a do grafu G´ spolu so smerníkom na n. Pre každého syna n´ vypočítaj heuristickú informáciu h, ktorá charakterizuje množinu báz riešení s koreňom v n´
GBF – všeobecná BF II • 5. Ak niektorý z n´ je terminálny, tak: • a. označ n´ ako „vyriešený“ ak je to koncový vrchol, alebo ako „neriešiteľný“, ak nie je • b. ak vrchol n´ indukuje označenie svojich predkov, označ ich pomocou označovacej procedúry • c. ak bol označený počiatočný vrchol s ako „vyriešený“, skonči s G0 ako s grafom riešenia. • d. ak bol označený počiatočný vrchol s ako „neriešiteľný“, skonči s neúspechom. • e. odstráň z G´ všetky vrcholy, ktoré nemôžu ovplyvniť označenie s. • 6. Choď na 2.
Označovacia procedúra • 1. terminálny vrchol je označený ako „vyriešený“, ak je koncový (predstavuje elementárny problém), alebo ako „neriešiteľný“ (ak sa už nedá redukovať) • 2. neterminálny vrchol typu A je označený ako „neriešiteľný“, ak aspoň jeden z jeho synov je taký, a označený ako „riešiteľný“ , ak všetci synovia sú takí • 3. neterminálny vrchol typu ALEBO je označený ako „riešiteľný“, ak aspoň jeden jeho syn je taký a označený ako „neriešiteľný“, ak všetci jeho synovia sú takí
Heuristická informácia h • V kroku 4 algoritmu sa hovorí o informácii chara-kterizujúcej množinu báz riešení s koreňom v n´ • To sú podgrafy g(n´) graf G, pre ktoré: • 1. n´ je koreňom g(n´) • 2. n´ je označený ako „riešiteľný“, ak použijeme označovaciu procedúru na g(n´) • Ale podgraf g(n´) nie je k dispozícii a možno ho len ohodnotiť heuristickou informáciou, ktorá ohodnotí zložitosť nájdenia riešenia vychádzajúceho z n´ a jeho kvalitu, keď bude nájdené
Príklad použitia GBF • Princíp „malé je rýchle“ a „spätné šírenie hodnoty“
Podmienky optimálnosti GBF* • Pri GBF sa môže stať, že algoritmus skončí úspešne, ale riešenie nebude optimálne • Aby sme našli optimálne riešenie, modifikujeme GBF na GBF*, tak že: • Budeme používať také f1, ktorého odhady musia byť optimistické, t.j. podceňujúce náklady, resp. preceňujúce prínosy • Vynecháme krok 5.c algoritmu GBF a nahradíme krok 2: • 2. Z explicitného grafu G´ vypočítaj najsľubnejšiu bázu riešenia G0s použitím f1a heuristiky h z kroku 4; ak všetky listy G0 sú označené ako „riešiteľný“, skonči s G0 ako s grafom riešenia
Vzťahy medzi GBF a BF • Ak by GBF pracoval na grafe G, v ktorom by boli iba vrcholy typu ALEBO, pripomínal by BF • Rozdiel je v tom, že BF, že robí nevratné rozhod-nutie tam, kde zistí, že vrchol má dvoch otcov, to sa v A/ALEBO grafoch nedá, lebo tadiaľ môže ísť riešenie • Podobne ako pri GBF môžeme získať z BF algoritmus BF* tak, že urobíme oneskorené ukon-čenie, t.j. ukončíme algoritmus až vtedy, ak skutoč-ne vyberie koncový vrchol na expandovanie