Algoritmi RPPNS pentru căutarea pe grafice | |
---|---|
Numit după | Căutați după prima potrivire |
Autor | Richard E. Korf [d] |
Structură de date | grafic |
cel mai rău moment |
Recursive Best -First Search (RBFS ) este un algoritm recursiv simplu care încearcă să imite munca unei căutări standard de prima cea mai bună potrivire, darfolosinddoar spațiu liniar .
Are o structură similară căutării recursive prin adâncime , dar în loc să parcurgă la infinit pe calea curentă, acest algoritm controlează valoarea f a celei mai bune căi alternative disponibile de la orice strămoș al nodului curent. Dacă nodul curent depășește limita dată, atunci etapa curentă a recursiei este încheiată și recursiunea continuă pe o cale alternativă. După terminarea acestei etape de recursivitate în algoritmul RPPN , valoarea f a fiecărui nod de-a lungul căii date este înlocuită cu cea mai bună valoare f a nodului său copil. Datorită acestui fapt, valoarea f a celui mai bun nod frunză din subarborele uitat este amintită în algoritmul RPPN și, prin urmare, la un moment următor, se poate lua o decizie dacă să se extindă din nou acest subarbore [1] .
Algoritmul RPPNS este puțin mai eficient decât IDA* , dar suferă totuși de dezavantajul regenerării prea des a nodurilor [2] . Aceste schimbări de decizie apar deoarece de fiecare dată când cea mai bună cale curentă este derulată, există șanse mari ca valoarea sa f să crească, deoarece funcția h devine de obicei mai puțin optimistă pe măsură ce nodurile mai apropiate de țintă sunt derulate. Odată ce apare această situație, în special în spațiile mari de căutare, calea care a fost cea mai potrivită poate deveni ea însăși cea mai bună cale, așa că algoritmul de căutare trebuie să efectueze backtracking pentru a o urma. Fiecare modificare a deciziei corespunde unei iterații a algoritmului IDA* și poate necesita mai multe re-extindere a nodurilor uitate pentru a reproduce cea mai bună cale și a extinde calea către încă un nod.
Ca și algoritmul de căutare A* , RPPN este un algoritm optim dacă funcția euristică h(n) este admisibilă. Complexitatea sa spațială este 0(bd) , dar este destul de dificil de caracterizat complexitatea timpului : depinde atât de acuratețea funcției euristice, cât și de cât de des s-a schimbat calea cea mai bună pe măsură ce nodurile au fost implementate. Atât algoritmul IDA* , cât și algoritmul RPPN sunt predispuși la o potențială creștere exponențială a complexității asociate cu căutările grafice, deoarece acești algoritmi nu pot detecta prezența unor stări repetate, altele decât cele din calea curentă. Prin urmare, acești algoritmi sunt capabili să exploreze în mod repetat aceeași stare.
Algoritmii IDA* și RPPNS suferă de dezavantajul că folosesc prea puțină memorie. Între iterații, algoritmul IDA* salvează doar un singur număr, limita actuală a costului f . Algoritmul RPPN stochează mai multe informații în memorie, dar cantitatea de memorie folosită în acesta este măsurată doar cu valoarea 0(bd) : chiar dacă ar fi mai multă memorie disponibilă, algoritmul RPPN nu este capabil să o folosească.
În exemplul prezentat în fig. 1, 2 și 3, algoritmul RPPNS urmează mai întâi calea prin nodul RimnicuVilcea , apoi „se răzgândește” și încearcă să treacă prin nodul Făgăraș , după care revine la soluția respinsă anterior,
dar se referă la o secțiune de aplicație neterminată din articolul original.Algoritmi de căutare grafică | ||
---|---|---|
Metode neinformate | ||
Metode informate | ||
Comenzi rapide | ||
Arborele de întindere minim | ||
Alte |