RPPNS- algoritmit kaavioiden etsimiseen | |
---|---|
Nimetty | Hae ensimmäisen parhaan osuman perusteella |
Tekijä | Richard E. Korf [d] |
Tietorakenne | kaavio |
pahin aika |
Rekursiivinen paras ensimmäinen haku (RBFS ) on yksinkertainen rekursiivinen algoritmi , joka yrittää jäljitellä tavallisen ensimmäisen parhaan haun toimintaa , mutta käyttäävain lineaarista tilaa .
Sillä on samanlainen rakenne kuin rekursiivisella syvyys-ensimmäisellä haulla , mutta sen sijaan, että se kulkisi loputtomasti nykyistä polkua pitkin, tämä algoritmi ohjaa parhaan vaihtoehtoisen polun f-arvoa, joka on saatavilla miltä tahansa nykyisen solmun esi-isältä. Jos nykyinen solmu ylittää annetun rajan, rekursion nykyinen vaihe lopetetaan ja rekursio jatkuu vaihtoehtoista polkua pitkin. Tämän RPPN - algoritmin rekursiovaiheen päätyttyä kunkin solmun f-arvo tietyllä polulla korvataan sen lapsisolmun parhaalla f -arvolla. Tästä johtuen unohdetun alipuun parhaan lehtisolmun f-arvo jää muistiin RPPN- algoritmiin, joten jossain seuraavassa vaiheessa voidaan tehdä päätös laajentaako tätä alipuuta uudelleen [1] .
RPPNS- algoritmi on hieman tehokkaampi kuin IDA* , mutta sen haittana on kuitenkin se, että solmut uusiutuvat liian usein [2] . Nämä päätösmuutokset tapahtuvat, koska joka kerta kun nykyinen paras polku rullataan auki, on hyvä mahdollisuus, että sen f-arvo kasvaa, koska h - funktiosta tulee yleensä vähemmän optimistinen, kun kohdetta lähempänä olevia solmuja puretaan. Kun tämä tilanne tapahtuu, varsinkin suurissa hakutiloissa, toiseksi paras polku voi itse tulla parhaaksi poluksi, joten hakualgoritmin on suoritettava paluu seuratakseen sitä. Jokainen päätösmuutos vastaa yhtä IDA* -algoritmin iteraatiota ja saattaa vaatia useita unohdettujen solmujen uudelleenlaajennuksia parhaan polun toistamiseksi ja polun laajentamiseksi yhteen solmuun.
Kuten hakualgoritmi A* , RPPN on optimaalinen algoritmi, jos heuristinen funktio h(n) on sallittu. Sen avaruuden monimutkaisuus on 0(bd) , mutta aikamonimutkaisuutta on melko vaikea luonnehtia : se riippuu sekä heuristisen funktion tarkkuudesta että siitä, kuinka usein paras polku muuttui solmujen käyttöönoton yhteydessä. Sekä IDA* - että RPPN- algoritmi ovat alttiita kaaviohakuihin liittyvän monimutkaisuuden mahdolliselle eksponentiaaliselle lisääntymiselle, koska nämä algoritmit eivät pysty havaitsemaan muita toistuvia tiloja kuin nykyisellä polulla olevia. Siksi nämä algoritmit pystyvät toistuvasti tutkimaan samaa tilaa.
IDA*- ja RPPNS-algoritmien haittana on, että ne käyttävät liian vähän muistia. Iteraatioiden välillä IDA* -algoritmi tallentaa vain yhden numeron, nykyisen f-kustannusrajan . RPPN- algoritmi tallentaa enemmän tietoa muistiin, mutta siinä käytetyn muistin määrä mitataan vain arvolla 0(bd) : vaikka muistia olisi enemmän, RPPN- algoritmi ei pysty käyttämään sitä.
Kuvassa esitetyssä esimerkissä 1, 2 ja 3, RPPNS- algoritmi seuraa ensin polkua RimnicuVilcea- solmun läpi , sitten "muuttaa mielensä" ja yrittää kulkea Fagaras -solmun läpi , minkä jälkeen se palaa aiemmin hylättyyn ratkaisuun,
mutta hän viittaa alkuperäisen artikkelin keskeneräiseen Sovellusosaan .Kaavion hakualgoritmit | ||
---|---|---|
Tietämättömät menetelmät | ||
Tietoon perustuvat menetelmät | ||
Pikanäppäimet | ||
Vähintään ulottuva puu | ||
Muut |