+ All Categories
Home > Documents > Intelligenza Artificiale

Intelligenza Artificiale

Date post: 08-Jan-2016
Category:
Upload: xanti
View: 50 times
Download: 1 times
Share this document with a friend
Description:
Intelligenza Artificiale. Ricerca Informata. Outline. Best-first search Ricerca A * Euristiche Hill-climbing Simulated annealing. Richiamo: Ricerca generale. function GENERAL-SEARCH( p:problem , QUEUING-FN) returns una soluzione o fallimento - PowerPoint PPT Presentation
Popular Tags:
35
Slides Intelligenza Artif Slides Intelligenza Artif iciale, Vincenzo Cutello iciale, Vincenzo Cutello 1 Intelligenza Intelligenza Artificiale Artificiale Ricerca Informata Ricerca Informata
Transcript
Page 1: Intelligenza Artificiale

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

11

Intelligenza ArtificialeIntelligenza Artificiale

Ricerca InformataRicerca Informata

Page 2: Intelligenza Artificiale

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

Page 3: Intelligenza Artificiale

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

Page 4: Intelligenza Artificiale

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*

Page 5: Intelligenza Artificiale

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

Page 6: Intelligenza Artificiale

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

Page 7: Intelligenza Artificiale

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

Page 8: Intelligenza Artificiale

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

Page 9: Intelligenza Artificiale

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

Page 10: Intelligenza Artificiale

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

Page 11: Intelligenza Artificiale

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

Page 12: Intelligenza Artificiale

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

Page 13: Intelligenza Artificiale

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

Page 14: Intelligenza Artificiale

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

Page 15: Intelligenza Artificiale

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

Page 16: Intelligenza Artificiale

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.

Page 17: Intelligenza Artificiale

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è ?

Page 18: Intelligenza Artificiale

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

Page 19: Intelligenza Artificiale

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 ?

Page 20: Intelligenza Artificiale

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

Page 21: Intelligenza Artificiale

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”.

Page 22: Intelligenza Artificiale

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

Page 23: Intelligenza Artificiale

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

Page 24: Intelligenza Artificiale

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

Page 25: Intelligenza Artificiale

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.

Page 26: Intelligenza Artificiale

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.

Page 27: Intelligenza Artificiale

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.

Page 28: Intelligenza Artificiale

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.

Page 29: Intelligenza Artificiale

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

Page 30: Intelligenza Artificiale

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.

Page 31: Intelligenza Artificiale

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..

Page 32: Intelligenza Artificiale

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

Page 33: Intelligenza Artificiale

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.

Page 34: Intelligenza Artificiale

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

Page 35: Intelligenza Artificiale

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.


Recommended