1 / 7

Algoritmus A *

Algoritmus A *. 1. Daj s do OTVOR 2. Ak OTVOR je prázdny, skonči s neúspechom. 3. V OTVOR nájdi n , pre ktoré f(n) je minimálne a presuň ho do ZATVOR 4. Ak n je koncový vrchol, skonči úspešne s riešením, ktoré získaš spätne pomocou smerníkov z n do s .

chesmu
Download Presentation

Algoritmus A *

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algoritmus A* 1. Daj s do OTVOR 2. Ak OTVOR je prázdny, skonči s neúspechom. 3. V OTVOR nájdi n, pre ktoré f(n) je minimálne a presuň ho do ZATVOR 4. Ak n je koncový vrchol, skonči úspešne s riešením, ktoré získaš spätne pomocou smerníkov z n do s. 5. Inak expanduj n a pridaj všetkým synom smerník na n. Pre každého syna n´ vrcholu n:

  2. Algoritmus A* II a. ak n´ nie je ani v OTVOR ani v ZATVOR, odhadni h(n´) (to je odhad ceny najlepšej cesty z n´ do niektorého koncového vrcholu) a vypočítaj f(n´) = g(n´) + h(n´), kde g(n´) = g(n) + c(n, n´) a g(s) = 0. b. ak n´ je alebo v OTVOR alebo ZATVOR, nasmeruj smerník na tú cestu, ktorá poskytuje najnižšie g(n´). c. ak n´ vyžadovalo zmenu smerníka podľa bodu b. a bolo v ZATVOR, daj ho do OTVOR. 6. Choď na 2

  3. Algoritmus A* III • Algoritmus Z* má rovnaké kroky ako A*, okrem kroku 5a, kde výpočet f(n´) môže byť ľubovoľná funkcia v tvare F[E(n), f(n), h(n´)] • Podobne v kroku 5b. presmeruje algoritmus Z* smerník na najnižšie f(n) namiesto g(n). • Ak h =0 a c(n, n´) =1, dostaneme z A* hľadanie do šírky • Ak h = 0, dostaneme stratégiu rovnomernej ceny • Hľadanie do hĺbky dostaneme zo Z* , ak nastavíme f(n´) = f(n) – 1 a f(s) = 0.

  4. Algoritmus AO* 1. Vytvor prehľadávací graf G´, ktorý na začiatku obsahuje ibavrchol s. Daj s do OTVOR. Nech G0 obsahuje na začiatku iba s. 2. Sleduj označené spojenia grafu G0(ktorý zodpovedá nasľubnejšej báze riešenia a ktorého spojenia sú označené v kroku 7) a preskúmaj jeho koncové vrcholy 3. Ak prienik OTVOR a G0 prázdny, skonči s G0 ako riešením. 4. S použitím f2 vyber vrchol n, ktorý je v OTVOR a v G0, zober ho z OTVOR a daj ho do ZATVOR.

  5. Algoritmus AO* II 5. Expanduj n a daj jeho synov do OTVOR a do grafu G´ spolu so smerníkom na n. 6. Pre každého neterminálneho syna n´ vypočítaj heuristický odhad prínosu h(n´). Ak n´ je terminálny s cenou v(n´), nastav h(n´) = v(n´) a presuň n´ z OTVOR do ZATVOR. Ak n´ je neriešiteľný, nastav h(n´) na mínus nekonečno. Ak n´ je už v G´, tak nastav h(n´) = e(n´). 7. Zmeň ohodnotenie e(.) pre vrchol n a všetkých jeho predkov s použitím spätnej funkcie F.

  6. Algoritmus AO* III Označ najlepšiu hranu pre každý vrchol typu ALEBO so zmenenou hodnotou na identifikáciu G0 8. Ak e(s) je zmenené na mínus nekonečno, skonči s neúspechom. Inak odstráň z G´ všetky vrcholy, ktoré viac nemôžu ovplyvniť hodnotu s. 9. Choď na 2.

  7. Algoritmus AO* IV • Algoritmus skončí, keď súčasné G0nemá viac koncových vrcholov v zozname OTVOR, t.j., keď všetky koncové vrcholy sú označené ako terminál-ne (ak by bol hociktorý z nich neriešiteľný, tak s bude označené ako mínus nekonečno). • Ak boli váhy grafu riešenia počítané rekurzívne a odhady h(n) sú optimistické, potom AO* skončí s riešením optimálnej váhy • Odstraňovanie vrcholov v kroku 8 je bezpečné vtedy, ak sú neriešiteľné, inak nie.

More Related