Ricerca best-first ricorsiva

algoritmo di ricerca
(Reindirizzamento da Recursive best-first search)

La ricerca best-first ricorsiva[2][3] (in inglese recursive best-first search, nota anche con l'acronimo RBFS) è un algoritmo di ricerca euristico proposto da Richard Korf nel 1992. Si tratta di un'estensione dell'algoritmo best-first search che sfrutta uno spazio lineare anziché esponenziale.[4][5]

Ricerca best-first ricorsiva
ClasseAlgoritmo di ricerca
Struttura datiGrafo
Caso peggiore spazialmente[1]
Ottimale
Completo

Descrizione modifica

Proprietà modifica

Come per A*, RBFS garantisce una soluzione ottimale per il problema del cammino minimo quando la funzione euristica   è ammissibile,[6] ovvero tale che

 

per tutti i nodi   del grafo, dove   è il costo effettivo per raggiungere la soluzione a partire dal nodo  .

La sua complessità, in termini di spazio è lineare rispetto alla soluzione più profonda, mentre in termini di tempo è più difficile da qualificare.[6] Sperimentalmente, rispetto al best-first search quest'ultima sembra peggiorare di un fattore costante.[4]

RBFS è particolarmente utile quando si opera in un sistema con memoria limitata. D'altro canto, in generale, rispetto ad altri algoritmi RBFS usa fin troppa poca memoria, che potrebbe essere invece sfruttata per migliorarne la velocità (cfr. memoizzazione).[6] È comunque leggermente più veloce di IDA*, rispetto al quale occupa poca memoria in più.[2]

Note modifica

  1. ^ Dove   è il fattore di diramazione (branching factor) e   è la profondità della soluzione.
  2. ^ a b Nilsson, 2002, p. 172.
  3. ^ Russell & Norvig, 2005, p. 134.
  4. ^ a b Korf, 1992.
  5. ^ Russell & Norvig, 2009, p. 99.
  6. ^ a b c Russell & Norvig, 2009, p. 101.

Bibliografia modifica

Voci correlate modifica

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica