slides intelligenza artificiale, vincenzo cutello 1 risoluzione di problemi e ricerca
TRANSCRIPT
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
11
Risoluzione di problemi e Risoluzione di problemi e ricercaricerca
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
22
OutlineOutline
Agenti risolutori di problemiAgenti risolutori di problemi Tipi di problemaTipi di problema Formulazione del problemaFormulazione del problema Esempi di problemiEsempi di problemi Algoritmi di base per la ricerca Algoritmi di base per la ricerca
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
33
Agenti risolutori di problemiAgenti risolutori di problemiForma ristretta di un agente generale
function SIMPLE-PROBLEM-SOLVING-AGENT(p)
returns un azione
Inputs: p, una percezione
Static: s, una sequenza di azioni, inizialmente vuota
state, una qualche descrizione dello stato corrente del mondo
g, un obiettivo, inizialmente nullo
problem, una formulazione del problema
state UPDATE-STATE(state,p)
if s è vuota then
g FORMULATE-GOAL(state)
problem FORMULATE-PROBLEM(state,g)
s SEARCH(problem)
action RECOMMENDATION(s,state)
s REMAINDER(s,state)
Return action
Nota: questa è una risoluzione di problema offlineLa risoluzione di problemi online implica azioni senza una completa conoscenza del problema e della soluzione
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
44
Esempio: CanadaEsempio: Canada
Montreal
Edmonton
Dawson
Quèbec
Vancouver
Whitehorse
Calgary
Regina
St. John’s
Churchill
Winnipeg
Toronto
HalifaxOttawa
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
55
Esempio: CanadaEsempio: Canada
Vacanza in Canada; attualmente a Whitehorse. Il volo parte domani da Ottawa Formulazione dell’obiettivo:
essere ad Ottawa Formulazione del problema:
stati: la varie cittàoperatori: guidare da una città all’altra
Trovare la soluzione: sequenza di città, cioè, Whitehorse, Edmonton, Winnipeg, Ottawa
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
66
Tipi di problemaTipi di problema
Deterministico, accessibile problema a stato singolo
Deterministico, inaccessibile problema a stato multiplo
Nondeterministico, inaccessibile problema di contingenza– è necessario l’uso di sensori durante l’esecuzione– la soluzione è un albero – spesso ricerca interleave, esecuzione
Spazio degli stati sconosciuto problema di esplorazione
(“online”)
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
77
Esempio: il mondo dell’aspirapolvereEsempio: il mondo dell’aspirapolvere
Stato singoloStato singolo, inizia al #5, inizia al #5Soluzione ??Soluzione ??Stato multiploStato multiplo, inizia al, inizia al{1,2,3,4,5,6,7,8}{1,2,3,4,5,6,7,8}Cioè, Destra va al {2,4,6,8}Cioè, Destra va al {2,4,6,8}Soluzione ??Soluzione ??ContingenzaContingenza, inizia al #5, inizia al #5Legge di Murphy: si può sporcare Legge di Murphy: si può sporcare
un tappeto pulitoun tappeto pulitoSensori locali: presenza e Sensori locali: presenza e
posizione della polvere.posizione della polvere.SoluzioneSoluzione ????
11 22
33 44
55 66
77 88
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
88
Formulazione del problema a stato singoloFormulazione del problema a stato singoloUn problema è definito da quattro elementi: Stato iniziale cioè, “a Whitehorse” Operatori (o funzione successore S(x))
cioè, Whitehorse Dawson Whitehorse Vancouver etc.
Verifica dell’obiettivo, può essereesplicito, cioè, x = “a Ottawa”implicito, cioè, Non_Sporco(x)
Costo del cammino (additivo)cioè, somma delle distanze, numero di operatori eseguiti, etc.
Una soluzione è una sequenza di operatori che conduce dallo stato iniziale allo stato obiettivo
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
99
Selezionando uno spazio degli statiSelezionando uno spazio degli stati
Il mondo reale è assurdamente complesso quindi lo spazio degli stati deve essere astratto per la risoluzione del problema
(Astratto) stato = insieme di stati reali (Astratto) operatore = combinazione complessa di stati reali cioè,
“Whitehorse Dawson” rappresenta un insieme complesso di rotte, fermate, etc.
Per garantire la realizzabilità, a un qualsiasi stato reale “a Whitehorse” deve corrispondere un qualche stato reale “a Dawson”
(Astratto) soluzione = l’insieme dei percorsi reali che sono soluzione nel mondo reale
Ogni azione astratta dovrebbe essere più facile rispetto al problema originale
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1010
Esempio: Il puzzle a 8Esempio: Il puzzle a 8
StatiStati ??: Posizioni intere delle tessere (ignoriamo le posizioni intermedie) ??: Posizioni intere delle tessere (ignoriamo le posizioni intermedie) OperatoriOperatori ??: Muovi il bianco a sinistra, destra, sopra, sotto ??: Muovi il bianco a sinistra, destra, sopra, sotto Verifica dell’obiettivoVerifica dell’obiettivo ??: = stato obiettivo (dato) ??: = stato obiettivo (dato) Costo del camminoCosto del cammino ??: 1 per mossa ??: 1 per mossa
Nota: La soluzione ottima per la famiglia dei puzzle a n è NP-hardNota: La soluzione ottima per la famiglia dei puzzle a n è NP-hard
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
1111
Grafo dello spazio degli stati per il mondo Grafo dello spazio degli stati per il mondo dell’aspirapolveredell’aspirapolvere
StatiStati ??: Locazione dello sporco e del robot (ignoriamo la ??: Locazione dello sporco e del robot (ignoriamo la quantità quantità di sporco)di sporco) OperatoriOperatori ??: ??: Sinistra, Destra, AspiraSinistra, Destra, Aspira Verifica dell’obiettivoVerifica dell’obiettivo ??: assenza di sporco ??: assenza di sporco Costo del camminoCosto del cammino ??: 1 per operatore ??: 1 per operatore
S D
SS
S
A A
D DD
AA
SA
S D
A
D
S
SA
R
D
A
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1212
Esempi:Esempi:
Il problema delle 8 regine;Il problema delle 8 regine;
Per ognuno:Per ognuno:
Stati – Operatori – Obiettivo - Stati – Operatori – Obiettivo - CostoCosto
Criptoaritmetica Criptoaritmetica undici + dieci = ventunoundici + dieci = ventuno;;
Missionari e cannibali (capre e cavoli);Missionari e cannibali (capre e cavoli);
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1313
Esempio:Esempio:
Il problema delle 8 regine;Il problema delle 8 regine;
Stati ??Stati ??
Operatori ??Operatori ??
Obiettivo ??Obiettivo ??
Costo ??Costo ??
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1414
Esempi:Esempi:
Per ognuno:Per ognuno:
Stati – Operatori – Obiettivo - CostoStati – Operatori – Obiettivo - Costo
Criptoaritmetica Criptoaritmetica undici + dieci = ventunoundici + dieci = ventuno;;
Missionari e cannibali (capre e cavoli);Missionari e cannibali (capre e cavoli);
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1515
Esempio:Esempio:
SOKOBAN;SOKOBAN;
Stati ??Stati ??
Operatori ??Operatori ??
Obiettivo ??Obiettivo ??
Costo ??Costo ??
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1616
Algoritmi di ricercaAlgoritmi di ricercaIdea di base:
offline, esplorazione simulata dello spazio degli stati tramite la generazione di successori di stati già esplorati
function GENERAL-SEARCH(problem,strategy)
returns una soluzione, o un fallimento
inizializza l’albero di ricerca usando lo stato iniziale del problema
loop do
if non ci sono candidati per l’espansione
then return fallimento
scegli una foglia per l’espansione in accordo alla strategia
if il nodo contiene uno stato obiettivo
then return la soluzione corrispondente
else espandi il nodo, aggiungendo i nodi risultanti all’albero di ricerca
end
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1717
Esempio di ricerca generaleEsempio di ricerca generaleWhitehorse
Dawson Vancouver Edmonton
Whitehorse Winnipeg Calgary Churchill
Regina Churchill Ottawa Toronto
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1818
Implementazione di algoritmi di Implementazione di algoritmi di ricercaricerca
function GENERAL-SEARCH(p:problem, QUEUING-FN)
returns una soluzione o fallimento
nodi MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[p]))
loop do
if nodi è vuoto
then return fallimento
nodo REMOVE-FRONT(nodi)
if GOAL-TEST[p] applicato a STATE(nodo) si verifica
then return nodo
nodi QUEUING-FN(nodi, EXPAND(nodo,OPERATORS[p]))
end
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
1919
Implementazione: stati vs. nodiImplementazione: stati vs. nodi Uno stato è una (rappresentazione di) una configurazione fisica Un nodo è una struttura dati che costituisce una parte dell’albero di
ricerca Include genitore, figli, profondità o costo del cammino g(x) Gli stati non hanno genitori, figli, profondità, o costo del cammino !
La funzione EXPAND crea nuovi nodi, riempendo i vari campi e usando OPERATORS (o SuccessorsFn) del problema per creare gli stati corrispondenti.
55 44
66 11 88
77 33 22figli
genitori
stato
profondità = 6g = 6
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2020
Strategie di ricercaStrategie di ricerca
Una strategia è definita stabilendo l’ordine di espansione dei nodi. Le strategie sono valutate mediante i seguenti criteri:
completezza – la soluzione viene sempre trovata se questa esiste ?
complessità temporale – numero di nodi generati/espansi
complessità spaziale – massimo numero di nodi in memoria
ottimalità – viene sempre trovata la soluzione meno costosa ? La complessità spaziale e temporale sono misurate in termini di
b – massimo fattore di ramificazione dell’albero di ricerca
d – profondità della soluzione meno costosa
m – massima profondità dello spazio degli stati (potrebbe essere infinito)
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2121
Strategie di ricerca non informataStrategie di ricerca non informata
Le strategie non informate usano soltanto l’informazione disponibile nella definizione del problema
Ricerca breadth-first Ricerca a costo uniforme Ricerca depth-first Ricerca depth-first limitata Ricerca iterativa
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2222
Ricerca breadth-firstRicerca breadth-first
Espandi il nodo meno profondo non espansoEspandi il nodo meno profondo non espanso
Implementazione:Implementazione:
QUEUEINGFN = metti i nodi successori alla QUEUEINGFN = metti i nodi successori alla fine della codafine della coda
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2323
Ricerca breadth-firstRicerca breadth-first
Edmonton
Whitehorse
VancouverDawson
WhitehorseChurchillWhitehorse Calgary CalgaryWhitehorse Churchill Winnipeg
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2424
Proprietà della ricerca breadth-firstProprietà della ricerca breadth-firstCompletaCompleta ?? ?? Si (se b è finita)Si (se b è finita)Tempo Tempo ?? ?? 1+b+b1+b+b22+b+b33+…+b+…+bd d =O(b=O(bdd),), cioè, esponenziale in cioè, esponenziale in ddSpazioSpazio ?? ?? O(bO(bdd) (mantiene ogni nodo in memoria)) (mantiene ogni nodo in memoria)OttimalitàOttimalità ?? ?? Si (se il costo = 1 ad ogni passo); non ottimale in Si (se il costo = 1 ad ogni passo); non ottimale in
generalegeneraleLo spazio è il grande problema; si possono facilmente Lo spazio è il grande problema; si possono facilmente
generare nodi a 1MB/sec così 24hrs = 86GB generare nodi a 1MB/sec così 24hrs = 86GB
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2525
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
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2626
Ricerca a costo uniformeRicerca a costo uniforme
Espandi il nodo meno costoso non ancora Espandi il nodo meno costoso non ancora
espansoespanso
Implementazione:Implementazione:
QUEUEINGFN = inserisce i nodi in ordine QUEUEINGFN = inserisce i nodi in ordine crescente rispetto al costo del camminocrescente rispetto al costo del cammino
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2727
Ricerca a costo uniformeRicerca a costo uniformeWhitehorse
EdmontonDawson
WhitehorseChurchillWinnipegCalgaryChurchillWhitehorse
Vancouver
450 16501600
450 2650 1600 450 1350 1250
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2828
Proprietà della ricerca a costo uniformeProprietà della ricerca a costo uniforme
CompletaCompleta ?? ?? Si, se il costo di ogni passo è Si, se il costo di ogni passo è ≥ ≥ εε
Tempo Tempo ?? ?? # di nodi con g ≤ costo della soluzione ottima# di nodi con g ≤ costo della soluzione ottima
SpazioSpazio ?? ?? # di nodi con g ≤ costo della soluzione ottima# di nodi con g ≤ costo della soluzione ottima
OttimalitàOttimalità ?? ?? SiSi
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
2929
Ricerca depth-firstRicerca depth-first
Espandi il nodo più profondo non ancora Espandi il nodo più profondo non ancora
espansoespanso
Implementazione:Implementazione:
QUEUEINGFN = inserisce i nodi all’inizio QUEUEINGFN = inserisce i nodi all’inizio della codadella coda
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3030
Ricerca depth-firstRicerca depth-firstWhitehorse
Dawson Edmonton Vancouver
Whitehorse Churchill
Dawson VancouverEdmonton
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3131
La ricerca depth-first può eseguire percorsi La ricerca depth-first può eseguire percorsi con infiniti ciclicon infiniti cicli
Necessitiamo di uno spazio di ricerca finito e Necessitiamo di uno spazio di ricerca finito e non ciclico (o un controllo sulla ripetizione non ciclico (o un controllo sulla ripetizione degli stati)degli stati)
Ricerca Depth-first: ProblemiRicerca Depth-first: Problemi
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3232
Proprietà della ricerca depth-firstProprietà della ricerca depth-firstCompletezzaCompletezza ?? ?? No: fallisce in spazi con profondità infinita, spazi con cicli No: fallisce in spazi con profondità infinita, spazi con cicli Evitando la ripetizione degli stati attraverso il cammino Evitando la ripetizione degli stati attraverso il cammino
completezza in spazi finiticompletezza in spazi finitiTempoTempo ?? ?? O(bO(bmm):): terribile se terribile se mm è molto più grande di è molto più grande di d d ma se le ma se le
soluzioni sono dense, potrebbe essere più veloce della soluzioni sono dense, potrebbe essere più veloce della breadth-firstbreadth-first
SpazioSpazio ?? ?? O(bm),O(bm), cioè, spazio lineare ! cioè, spazio lineare !OttimalitàOttimalità ?? ?? NoNo
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3333
Ricerca a profondità limitataRicerca a profondità limitata
= ricerca depth-first con limite di profondità= ricerca depth-first con limite di profondità l
Implementazione:Implementazione:
I nodi a profondità I nodi a profondità h non hanno successorinon hanno successori
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3434
Ricerca iterativaRicerca iterativa
functionfunction ITERATIVE-DEEPENING-SEARCH( ITERATIVE-DEEPENING-SEARCH(problemaproblema))returnsreturns una soluzione una soluzione
input: input: problemaproblema, un problema, un problemaforfor hh 0 0 toto ∞ ∞ dodo
risultatorisultato DEPTH-LIMITED-SEARCH( DEPTH-LIMITED-SEARCH(problemproblem, , hh)) ifif P( P(risultato) risultato)
then returnthen return risultatorisultatoendend
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3535
Ricerca iterativa Ricerca iterativa hh=0=0Whitehorse
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3636
Ricerca iterativa Ricerca iterativa hh=1=1Whitehorse
EdmontonDawson Vancouver
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3737
Ricerca iterativa Ricerca iterativa hh=2=2Whitehorse
EdmontonDawson Vancouver
Whitehorse Churchill Whitehorse Calgary Churchill Winnipeg Whitehorse Calgary
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3838
Proprietà della ricerca iterativaProprietà della ricerca iterativaCompletezzaCompletezza ?? ?? SiSiTempoTempo ?? ?? (d+1)b(d+1)b00+db+db11+(d-1)b+(d-1)b22+…+b+…+bdd=O(b=O(bdd))SpazioSpazio ?? ?? O(bd)O(bd)OttimalitàOttimalità ?? ?? Si, se il costo di un passo = 1Si, se il costo di un passo = 1 Può essere modificata per esplorare alberi a costo Può essere modificata per esplorare alberi a costo
uniformeuniforme
Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello
3939
RiassuntoRiassunto Solitamente la formulazione del problema Solitamente la formulazione del problema
richiede astrazione dai dettagli del mondo richiede astrazione dai dettagli del mondo reale per definire uno stato degli spazi che reale per definire uno stato degli spazi che può essere facilmente esploratopuò essere facilmente esplorato
Varietà di strategie di ricerca non informataVarietà di strategie di ricerca non informata La ricerca iterativa usa spazio lineare e La ricerca iterativa usa spazio lineare e
non molto più tempo degli altri algoritmi di non molto più tempo degli altri algoritmi di ricerca non informataricerca non informata