Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
11
Intelligenza ArtificialeIntelligenza Artificiale
Ricerca InformataRicerca Informata
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
22
OutlineOutline
Best-first searchBest-first search Ricerca ARicerca A** EuristicheEuristiche Hill-climbingHill-climbing Simulated annealingSimulated annealing
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
33
Richiamo: Ricerca generaleRichiamo: Ricerca generale
functionfunction GENERAL-SEARCH( GENERAL-SEARCH(p:problemp:problem, QUEUING-FN), QUEUING-FN)returns una soluzione o fallimentoreturns una soluzione o fallimento
nodinodi MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[ MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[pp]))]))loop doloop do
if if nodi nodi è vuotoè vuotothen returnthen return fallimento fallimentonodonodo REMOVE-FRONT( REMOVE-FRONT(nodinodi))ifif GOAL-TEST[ GOAL-TEST[pp] applicato a STATE(] applicato a STATE(nodonodo) si verifica) si verifica
then returnthen return nodonodonodi nodi QUEUING-FN( QUEUING-FN(nodinodi, EXPAND(, EXPAND(nodonodo,OPERATORS[,OPERATORS[pp]))]))
endend
Una strategia è definita stabilendo l’ordine di espansione dei nodiUna strategia è definita stabilendo l’ordine di espansione dei nodi
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
44
Ricerca Best-firstRicerca Best-firstIdea: usare una funzione di valutazione per ogni nodo - stima della “desiderabilità”Espandere il nodo più desiderabile non espanso
Implementation:QUEUEINGFN = inserisci i successori in ordine decrescente di desiderabilità
Casi particolari:ricerca greedy
ricerca A*
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
55
Canada con costi in KmCanada con costi in Km
Montreal
Edmonton
Dawson
Quèbec
Vancouver
Whitehorse
Calgary
Regina
St. John’s
Churchill
Winnipeg
Toronto
HalifaxOttawa
450
1650
2650
750
450
1600
1350
1250
850
500
1100
1800
1600400
950
1500
250
175
CalgaryCalgary 31003100 QuèbecQuèbec 400400
ChurchillChurchill 21002100 ReginaRegina 23023000
DawsonDawson 47004700 St. John’sSt. John’s 18518500
EdmontonEdmonton 30003000 TorontoToronto 400400
HalifaxHalifax 10001000 VancouverVancouver 38538500
MontrealMontreal 150150 WhitehorseWhitehorse 44544500
OttawaOttawa 00 WinnipegWinnipeg 18018000
Distanze in linea d’area da Ottawa
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
66
Ricerca greedyRicerca greedy
Funzione di valutazione h(n) (euristica)Funzione di valutazione h(n) (euristica)
= stima del costo da = stima del costo da n n all’all’obiettivoobiettivo
Cioè, Cioè, hhSLD(n)SLD(n) = distanza in linea d’area da = distanza in linea d’area da nn
a Ottawaa Ottawa
La ricerca greedy espande i nodi cheLa ricerca greedy espande i nodi che
sembranosembrano più prossimi all’obiettivo più prossimi all’obiettivo
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
77
Esempio di ricerca greedyEsempio di ricerca greedyWhitehorse
4450
Vancouver3850
Dawson4700
Edmonton3000
Calgary3100
Winnipeg1800
Churchill2100
Whitehorse4450
Regina2300
Edmonton3000
Churchill2100
Ottawa0
Toronto400
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
88
Proprietà della ricerca greedyProprietà della ricerca greedy CompletaCompleta ?? ??
– No – si può entrare in loopNo – si può entrare in loop– Completa in spazi finiti con il controllo per la Completa in spazi finiti con il controllo per la
ripetizione degli statiripetizione degli stati Tempo Tempo ?? ??
– O(bO(bmm),), ma una buona euristica può dare notevoli ma una buona euristica può dare notevoli miglioramentimiglioramenti
SpazioSpazio ?? ?? – O(bO(bmm) (mantiene tutti i nodi in memoria)) (mantiene tutti i nodi in memoria)
OttimalitàOttimalità ?? ?? – NONO
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
99
Ricerca ARicerca A** Idea: Evitare l’espansione di percorsi che Idea: Evitare l’espansione di percorsi che
– sono già costosi, esono già costosi, e– che costeranno ancora parecchioche costeranno ancora parecchio
Funzione di valutazione Funzione di valutazione f(n) = g(n)+h(n)f(n) = g(n)+h(n)– g(n)g(n) = costo sostenuto per raggiungere = costo sostenuto per raggiungere nn– h(n)h(n) = costo stimato per raggiungere l’obiettivo da = costo stimato per raggiungere l’obiettivo da nn– f(n)f(n) = costo totale stimato del percorso attraverso = costo totale stimato del percorso attraverso nn per per
raggiungere l’obiettivoraggiungere l’obiettivo La ricerca ALa ricerca A** usa una euristica usa una euristica ammissibileammissibile
– hh (n) (n) non sovrastima mai l’effettiva distanzanon sovrastima mai l’effettiva distanza
Teorema:Teorema: La ricerca A La ricerca A** è ottima è ottima
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1010
Esempio di ricerca AEsempio di ricerca A**
Whitehorse4450
Vancouver5500
Dawson5150
Edmonton4600
Calgary5150
Winnipeg4650
Churchill5050
Whitehorse7650
Regina5650
Edmonton7100
Churchill6050
Ottawa4650
Toronto4850
1160
1600180011001250500
160013501250450
1650450
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1111
Ottimalità di AOttimalità di A** (dim. standard) (dim. standard)Supponiamo che qualche obiettivo sub-ottimale Supponiamo che qualche obiettivo sub-ottimale GG22 è stato generato ed è stato generato ed
è nella coda. Sia n un nodo non espanso di un percorso più breve ad un è nella coda. Sia n un nodo non espanso di un percorso più breve ad un obiettivo ottimo obiettivo ottimo GG11
f(G2) = g(G2) poiché h(G2) = 0 > g(G1) poiché G2 è sub-ottimale ≥ f(n) poiché h è ammissibile Poiché f(G2) > f(n), A* non selezionerà mai G2 per l’espansione
GG2
n
Inizio
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1212
Proprietà di AProprietà di A**
CompletaCompleta ?? ?? – Si, a meno che non ci siano infiniti nodi con f Si, a meno che non ci siano infiniti nodi con f ≤ f(G)≤ f(G)
Tempo Tempo ?? ?? – Esponenziale in [errore relativo in h * lunghezza Esponenziale in [errore relativo in h * lunghezza
della soluzione]della soluzione] SpazioSpazio ?? ??
– Mantiene tutti i nodi in memoriaMantiene tutti i nodi in memoria OttimalitàOttimalità ?? ??
– SiSi
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1313
Lemma: PathmaxLemma: PathmaxPer qualche euristica ammissibile, Per qualche euristica ammissibile, f f può diminuire durante il può diminuire durante il percorso di ricerca. Cioè, supponiamo che percorso di ricerca. Cioè, supponiamo che n’n’ è un successore di è un successore di nn
Stiamo perdendo informazione !f(n) = 9 costo reale di un percorso attraverso n è ≥ 9Quindi anche il vero costo di un percorso attraverso n’ ≥ 9 Modifica pathmax ad A*:
Invece di f(n’) = g(n’) + h(n’), si usa f(n’) = max( g(n’) + h(n’), f(n) )Con pathmax, f è sempre non decrescente attraverso un qualsiasicammino
n
1
n’
g = 5 h = 4 f = 9
g’ = 6 h’ = 2 f’ = 8
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1414
Euristica ammissibileEuristica ammissibileCioè, per il puzzle a 8:Cioè, per il puzzle a 8:HH11(n) = numero di caselle fuori posto(n) = numero di caselle fuori postoHH22(n) = somma delle distanze di Manhattan(n) = somma delle distanze di Manhattan
(cioè, il numero di caselle di distanza da quella desiderata (cioè, il numero di caselle di distanza da quella desiderata per ogni casella)per ogni casella)
H1(S) = ??H2(S) = ??
11 22 33
8 8 44
77 66 55
55 44
66 11 88
77 33 22
Stato iniziale Stato finale
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1515
Euristica ammissibileEuristica ammissibileCioè, per il puzzle a 8:Cioè, per il puzzle a 8:HH11(n) = numero di tessere sbagliate(n) = numero di tessere sbagliateHH22(n) = somma delle distanze di Manhattan(n) = somma delle distanze di Manhattan
(cioè, il numero di caselle da quella desiderata di ogni (cioè, il numero di caselle da quella desiderata di ogni tessera)tessera)
H1(S) = ?? 7 H2(S) = ?? 2+3+3+2+4+2+0+2 = 18
11 22 33
8 8 44
77 66 55
55 44
66 11 88
77 33 22
Stato iniziale Stato finale
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1616
EsercizioEsercizio
Se l’euristica h soddisfa la disuguaglianza triangolare allora Se l’euristica h soddisfa la disuguaglianza triangolare allora il costo della f è non decrescenteil costo della f è non decrescente::
Dim.: Dim.: – Dis. Triangolare Dis. Triangolare → → h(n) h(n) ≤ k(n,n’)+ h(n’) dove k(n,n’) è il costo del ≤ k(n,n’)+ h(n’) dove k(n,n’) è il costo del
cammino più breve da n a n’.cammino più breve da n a n’.– f non decr. vuol dire f(n) ≤ f(n’), cioè:f non decr. vuol dire f(n) ≤ f(n’), cioè:
g(n)+h(n) ≤ g(n’)+h(n’) g(n)+h(n) ≤ g(n’)+h(n’) se n’ è un successore di n. se n’ è un successore di n.
– Dalla dis. tr.: h(n) + g(n) ≤ k(n,n’)+ h(n’) + g(n)Dalla dis. tr.: h(n) + g(n) ≤ k(n,n’)+ h(n’) + g(n)– Ma g(n) + k(n,n’) = g(n’) !Ma g(n) + k(n,n’) = g(n’) !– Dim. CompletaDim. Completa
Vale anche il viceversa. Vale anche il viceversa.
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1717
DominanzaDominanza
Che fare se abbiamo più di una euristica ?Che fare se abbiamo più di una euristica ? Se hSe h22(n) (n) ≥ h≥ h11(n) per tutti gli n (entrambe (n) per tutti gli n (entrambe
ammissibili) allora hammissibili) allora h22 domina h domina h11 ed è ed è
migliore per la ricerca !migliore per la ricerca ! Perchè ?Perchè ?
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1818
Problemi rilassatiProblemi rilassati
Come facciamo a trovare buone euristiche (ammissibili) Come facciamo a trovare buone euristiche (ammissibili) per un problema ?per un problema ?
Le euristiche ammissibili possono essere derivate dal costo Le euristiche ammissibili possono essere derivate dal costo della soluzione della soluzione esattaesatta di una versione di una versione rilassatarilassata del del problema.problema.
Esempi:Esempi:– Se le regole del puzzle a 8 sono rilassate in maniera tale che un Se le regole del puzzle a 8 sono rilassate in maniera tale che un
quadrato può essere mosso quadrato può essere mosso dovunquedovunque, allora , allora hh11(n)(n) fornisce la fornisce la soluzione più breve soluzione più breve
– Se le regole sono rilassate in maniera tale che un quadrato può Se le regole sono rilassate in maniera tale che un quadrato può essere mosso in una essere mosso in una qualunque casella adiacentequalunque casella adiacente, allora , allora hh22(n)(n) fornisce la soluzione più brevefornisce la soluzione più breve
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1919
EsercizioEsercizio
Dato un piano con Dato un piano con ostacoli, come fare a ostacoli, come fare a trovare la distanza più trovare la distanza più breve tra due punti ?breve tra due punti ?– Quanti stati ci sono ? Quanti stati ci sono ?
E’ vero che il cammino più E’ vero che il cammino più breve tra due vertici di breve tra due vertici di poligoni, è fatto da poligoni, è fatto da segmenti che uniscono segmenti che uniscono vertici di poligoni ? vertici di poligoni ?
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2020
Algoritmi a miglioramenti iterativiAlgoritmi a miglioramenti iterativi
In molti problemi di ottimizzazione, il percorso è irrilevante; In molti problemi di ottimizzazione, il percorso è irrilevante; lo stato obiettivo è la soluzionelo stato obiettivo è la soluzione
spazio degli stati = insieme di configurazioni “complete”; spazio degli stati = insieme di configurazioni “complete”; – trova la configurazione ottima, ad esempio, TSP o, trova la configurazione ottima, ad esempio, TSP o, – trova la configurazione soddisfacente i vincoli, ad esempio, il trova la configurazione soddisfacente i vincoli, ad esempio, il
problema delle n-regineproblema delle n-regine In tali casi, possono essere usati algoritmi a miglioramenti In tali casi, possono essere usati algoritmi a miglioramenti
iterativi; mantenendo un singolo stato corrente e provando a iterativi; mantenendo un singolo stato corrente e provando a migliorarlomigliorarlo
Spazio costante, adattabile sia per ricerca online che offlineSpazio costante, adattabile sia per ricerca online che offline
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2121
Esempio: n-regineEsempio: n-regine Collocare n regine su una scacchiera n*n in maniera tale che non vi Collocare n regine su una scacchiera n*n in maniera tale che non vi
siano due regine sulla stessa riga, colonna o diagonale.siano due regine sulla stessa riga, colonna o diagonale. Euristica dei “minimi conflitti”.Euristica dei “minimi conflitti”.
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2222
Hill-climbingHill-climbing……(o gradiente ascendente/discendente)(o gradiente ascendente/discendente)““Come scalare l’Everest con nebbia fitta quando si soffre d’amnesia”Come scalare l’Everest con nebbia fitta quando si soffre d’amnesia”
functionfunction Hill-Climbing ( Hill-Climbing (problemaproblema))
returnsreturns uno stato soluzione uno stato soluzione
input:input: problemaproblema, un problema, un problema
variabili locali:variabili locali: correntecorrente, un nodo, un nodo
prossimoprossimo, un nodo, un nodo
correntecorrente MAKE-NODE(INITIAL-STATE[ MAKE-NODE(INITIAL-STATE[problemproblem])])
loop doloop do
next next il successore con valore maggiore del nodo il successore con valore maggiore del nodo correntecorrente
ifif VALUE[ VALUE[prossimoprossimo] < VALUE[] < VALUE[correntecorrente] ] then returnthen return correntecorrente
correntecorrente prossimoprossimo
endend
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2323
Hill-climbing (cont.)Hill-climbing (cont.)Problema: in funzione dello stato iniziale ci Problema: in funzione dello stato iniziale ci possiamo bloccare su un massimo localepossiamo bloccare su un massimo locale
massimo globale
massimo locale
valore
stati
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2424
Simulated annealingSimulated annealingIdea: fuga dai massimi locali permettendo qualche mossa “cattiva” ma Idea: fuga dai massimi locali permettendo qualche mossa “cattiva” ma decrementare gradatamente la loro misura e frequenzadecrementare gradatamente la loro misura e frequenza
functionfunction SIMULATED-ANNEALING ( SIMULATED-ANNEALING (problemaproblema, , scheduleschedule))
returns returns uno stato soluzioneuno stato soluzione
inputsinputs: : problemaproblema, un problema, un problema
scheduleschedule, una corrispondenza dal tempo alla “temperatura” , una corrispondenza dal tempo alla “temperatura”
variabili locali:variabili locali: correntecorrente, un nodo, un nodo
prossimoprossimo, un nodo, un nodo
TT, una “temperatura” per controllare la probabilità di , una “temperatura” per controllare la probabilità di
step discendentistep discendenti
correntecorrente MAKE-NODE(INITIAL-STATE[ MAKE-NODE(INITIAL-STATE[problemproblem])])
for for tt 1 to 1 to ∞ do∞ do
T T schedule[schedule[tt]]
ifif TT = 0 = 0 then returnthen return correntecorrente
successivosuccessivo un successore selezionato in maniera random del nodo un successore selezionato in maniera random del nodo correntecorrente
∆∆E E Value[ Value[nextnext] – Value[] – Value[correntecorrente]]
if if ∆∆ E > 0 E > 0 then then correntecorrente successoresuccessore
else else correntecorrente successore successore soltanto con probabilità esoltanto con probabilità e∆E∆E/T/T
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2525
Proprietà del simulated annealingProprietà del simulated annealing A “temperatura” fissa A “temperatura” fissa T,T, la probabilità di la probabilità di
raggiungere uno stato è governata dalla raggiungere uno stato è governata dalla distribuzione di Boltzmandistribuzione di Boltzman
P(x) = P(x) = ααeeE(x)/kTE(x)/kT
Se T decresce abbastanza lentamente Se T decresce abbastanza lentamente si si raggiunge sempre lo stato miglioreraggiunge sempre lo stato migliore
Proposto nel 1953, per la modellizzazione di Proposto nel 1953, per la modellizzazione di processi fisiciprocessi fisici
Ampiamente usato nella progettazione di VLSI, Ampiamente usato nella progettazione di VLSI, programmazione di linee aeree , etc.programmazione di linee aeree , etc.
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2626
Ricerca euristica a memoria Ricerca euristica a memoria limitatalimitata
A* is optimally efficient: A* is optimally efficient: – given the information in h,no other optimal search given the information in h,no other optimal search
method can expand fewer nodes.method can expand fewer nodes. Complete: Complete:
– Unless there are infinitely many nodes with f(n) < f . Unless there are infinitely many nodes with f(n) < f . Assume locally finite: (1) finite branching, (2) every Assume locally finite: (1) finite branching, (2) every operator costs at least δ > 0.operator costs at least δ > 0.
Complexity (time and space): Complexity (time and space): – Still exponential because of breadth-first nature. Unless Still exponential because of breadth-first nature. Unless
|h(n) − h | ≤ O(log(h (n)), with h true cost of getting to |h(n) − h | ≤ O(log(h (n)), with h true cost of getting to goal.goal.
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2727
Migliorare A*: IDA*Migliorare A*: IDA*
Memory is a problem for the A* algorithms.Memory is a problem for the A* algorithms. IDA* is like iterative deepening, but uses an IDA* is like iterative deepening, but uses an
f-cost limit rather than a depth limit.f-cost limit rather than a depth limit. At each iteration, the cutoff value is the At each iteration, the cutoff value is the
smallest f-cost of any node that exceeded smallest f-cost of any node that exceeded the cutoff on the previous iteration.the cutoff on the previous iteration.
Each iteration uses conventional depth-first Each iteration uses conventional depth-first search.search.
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2828
Recursive Best First SearchRecursive Best First Search
Similar to a DFS, but keeps track of the f-Similar to a DFS, but keeps track of the f-value of the best alternative path available value of the best alternative path available from any ancestor of the current node.from any ancestor of the current node.
If current node exceeds this limit, recursion If current node exceeds this limit, recursion unwinds back to the alternative path, unwinds back to the alternative path, replacing the f-value of each node along the replacing the f-value of each node along the path with the best f-value of its children.path with the best f-value of its children.
RBFS remembers the f-value of the best RBFS remembers the f-value of the best leaf in the forgotten subtree.leaf in the forgotten subtree.
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2929
RBFS: pseudo-codeRBFS: pseudo-code
functionfunction RECURSIVE-BEST-FIRST-SEARCH( RECURSIVE-BEST-FIRST-SEARCH(problemproblem) ) returnreturn a solution or failure a solution or failurereturn return RFBS(RFBS(problemproblem,MAKE-NODE(INITIAL-STATE[,MAKE-NODE(INITIAL-STATE[problemproblem]),∞)]),∞)
functionfunction RFBS( RFBS( problem, node, f_limitproblem, node, f_limit) ) returnreturn a solution or failure and a new a solution or failure and a new f-costf-cost limit limitifif GOAL-TEST[ GOAL-TEST[problemproblem](STATE[](STATE[nodenode]) ]) then return then return nodenodesuccessors successors EXPAND(EXPAND(node, problemnode, problem))ifif successorssuccessors is empty then return failure, ∞ is empty then return failure, ∞for eachfor each ss inin successorssuccessors dodo
f f [[ss] ] max( max(g(s)g(s) + + h(s)h(s), , f f [[nodenode])])repeatrepeat
bestbest the lowest the lowest ff-value node in -value node in successorssuccessorsifif f f [[bestbest]] > f_limit > f_limit then returnthen return failure, failure, f f [[bestbest]]alternativealternative the second lowest the second lowest ff-value among -value among successorssuccessorsresultresult, , f f [[bestbest] ] RBFS RBFS(problem, best,(problem, best, min( min(f_limit, alternativef_limit, alternative))))ifif resultresult failure failure then returnthen return resultresult
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3030
Properties of RBFSProperties of RBFS
Keeps track of the f-value of the best-alternative Keeps track of the f-value of the best-alternative path available.path available.– If current f-values exceeds this alternative f-value than If current f-values exceeds this alternative f-value than
backtrack to alternative path.backtrack to alternative path.– Upon backtracking change f-value to best f-value of its Upon backtracking change f-value to best f-value of its
children.children.– Re-expansion of this result is thus still possible.Re-expansion of this result is thus still possible.
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3131
RBFS: Ex. RomaniaRBFS: Ex. Romania
Path until Rumnicu Vilcea is already expandedPath until Rumnicu Vilcea is already expanded Above node; Above node; ff-limit for every recursive call is -limit for every recursive call is
shown on top.shown on top. Below node: Below node: f(n)f(n) The path is followed until Pitesti which has a The path is followed until Pitesti which has a ff--
value worse than the value worse than the f-limitf-limit..
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3232
RBFS: Ex. RomaniaRBFS: Ex. Romania
Unwind recursion and store best Unwind recursion and store best ff-value for current best -value for current best leaf Pitestileaf Pitesti
resultresult, , f f [[bestbest] ] RBFS RBFS(problem, best,(problem, best, min( min(f_limit, alternativef_limit, alternative))))
bestbest is now Fagaras. Call RBFS for new is now Fagaras. Call RBFS for new bestbest– bestbest value is now 450 value is now 450
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3333
RBFS: Ex. RomaniaRBFS: Ex. Romania
Unwind recursion and store best Unwind recursion and store best ff-value for current best leaf Fagaras-value for current best leaf Fagarasresultresult, , f f [[bestbest] ] RBFS RBFS(problem, best,(problem, best, min( min(f_limit, alternativef_limit, alternative))))
bestbest is now Rimnicu Viclea (again). Call RBFS for new is now Rimnicu Viclea (again). Call RBFS for new bestbest– Subtree is again expanded.Subtree is again expanded.– Best Best alternativealternative subtree is now through Timisoara. subtree is now through Timisoara.
Solution is found since because 447 > 417.Solution is found since because 447 > 417.
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3434
RBFS: EvaluationRBFS: Evaluation
RBFS is a bit more efficient than IDA*RBFS is a bit more efficient than IDA*– Still excessive node generation (mind changes)Still excessive node generation (mind changes)
Like A*, optimal if Like A*, optimal if h(n)h(n) is admissible is admissible Space complexity is Space complexity is O(bd)O(bd)..
– IDA* retains only one single number (the current f-IDA* retains only one single number (the current f-cost limit)cost limit)
Time complexity difficult to characterizeTime complexity difficult to characterize– Depends on accuracy if h(n) and how often best path Depends on accuracy if h(n) and how often best path
changes.changes. IDA* and RBFS suffer from IDA* and RBFS suffer from too littletoo little memory memory
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3535
(simplified) memory-bounded A*(simplified) memory-bounded A*
Use all available memory.Use all available memory.– I.e. expand best leafs until available memory is fullI.e. expand best leafs until available memory is full– When full, SMA* drops worst leaf node (highest When full, SMA* drops worst leaf node (highest ff-value)-value)– Like RFBS backup forgotten node to its parentLike RFBS backup forgotten node to its parent
What if all leafs have the same What if all leafs have the same ff-value?-value?– Same node could be selected for expansion and deletion.Same node could be selected for expansion and deletion.– SMA* solves this by expanding SMA* solves this by expanding newestnewest best leaf and deleting best leaf and deleting
oldestoldest worst leaf. worst leaf.
SMA* is complete if solution is reachable, optimal if optimal SMA* is complete if solution is reachable, optimal if optimal solution is reachable.solution is reachable.