Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Risoluzione di problemi e ricerca
Slides Intelligenza Artificiale, Vincenzo Cutello
2
Slides Intelligenza Artificiale, Vincenzo Cutello
Outline Agenti risolutori di problemi Tipi di problema Formulazione del problema Esempi di problemi Algoritmi di base per la ricerca Slides Intelligenza Artificiale, Vincenzo Cutello
3
Agenti risolutori di problemi
Forma 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 offline La risoluzione di problemi online implica azioni senza una completa conoscenza del problema e della soluzione Slides Intelligenza Artificiale, Vincenzo Cutello
4
Slides Intelligenza Artificiale, Vincenzo Cutello
Esempio: Canada Dawson Whitehorse Churchill St. John’s Edmonton Quèbec Winnipeg Calgary Halifax Regina Ottawa Vancouver Montreal Slides Intelligenza Artificiale, Vincenzo Cutello Toronto
5
Slides Intelligenza Artificiale, Vincenzo Cutello
Esempio: 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, Vincenzo Cutello
6
Slides Intelligenza Artificiale, Vincenzo Cutello
Tipi 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, Vincenzo Cutello
7
Esempio: il mondo dell’aspirapolvere
Stato singolo, inizia al #5 Soluzione ?? Stato multiplo, inizia al {1,2,3,4,5,6,7,8} Cioè, Destra va al {2,4,6,8} Contingenza, inizia al #5 Legge di Murphy: si può sporcare un tappeto pulito Sensori locali: presenza e posizione della polvere. 1 2 3 4 5 6 7 8 Slides Intelligenza Artificiale, Vincenzo Cutello
8
Formulazione del problema a stato singolo
Un 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ò essere esplicito, 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, Vincenzo Cutello
9
Selezionando 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, Vincenzo Cutello
10
Slides Intelligenza Artificiale, Vincenzo Cutello
Esempio: Il puzzle a 8 5 4 6 1 8 7 3 2 1 2 3 8 4 7 6 5 Stato iniziale Stato finale Stati ??: Posizioni intere delle tessere (ignoriamo le posizioni intermedie) Operatori ??: Muovi il bianco a sinistra, destra, sopra, sotto Verifica dell’obiettivo ??: = stato obiettivo (dato) Costo del cammino ??: 1 per mossa Nota: La soluzione ottima per la famiglia dei puzzle a n è NP-hard Slides Intelligenza Artificiale, Vincenzo Cutello
11
Grafo dello spazio degli stati per il mondo dell’aspirapolvere
Stati ??: Locazione dello sporco e del robot (ignoriamo la quantità di sporco) Operatori ??: Sinistra, Destra, Aspira Verifica dell’obiettivo ??: assenza di sporco Costo del cammino ??: 1 per operatore Slides Intelligenza Artificiale, Vincenzo Cutello
12
Slides Intelligenza Artificiale, Vincenzo Cutello
Esempi: Il problema delle 8 regine; Criptoaritmetica undici + dieci = ventuno; Missionari e cannibali (capre e cavoli); Per ognuno: Stati – Operatori – Obiettivo - Costo Slides Intelligenza Artificiale, Vincenzo Cutello
13
Slides Intelligenza Artificiale, Vincenzo Cutello
Esempio: Il problema delle 8 regine; Stati ?? Operatori ?? Obiettivo ?? Costo ?? Slides Intelligenza Artificiale, Vincenzo Cutello
14
Slides Intelligenza Artificiale, Vincenzo Cutello
Esempi: Criptoaritmetica undici + dieci = ventuno; Missionari e cannibali (capre e cavoli); Per ognuno: Stati – Operatori – Obiettivo - Costo Slides Intelligenza Artificiale, Vincenzo Cutello
15
Slides Intelligenza Artificiale, Vincenzo Cutello
Esempio: SOKOBAN; Stati ?? Operatori ?? Obiettivo ?? Costo ?? Slides Intelligenza Artificiale, Vincenzo Cutello
16
Slides Intelligenza Artificiale, Vincenzo Cutello
Algoritmi di ricerca Idea 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, Vincenzo Cutello
17
Esempio di ricerca generale
Whitehorse Edmonton Dawson Vancouver Whitehorse Winnipeg Calgary Churchill Regina Churchill Ottawa Toronto Slides Intelligenza Artificiale, Vincenzo Cutello
18
Implementazione di algoritmi di ricerca
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, Vincenzo Cutello
19
Implementazione: 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 ! genitori 5 4 6 1 8 7 3 2 profondità = 6 g = 6 stato figli La funzione EXPAND crea nuovi nodi, riempendo i vari campi e usando OPERATORS (o SuccessorsFn) del problema per creare gli stati corrispondenti. Slides Intelligenza Artificiale, Vincenzo Cutello
20
Slides Intelligenza Artificiale, Vincenzo Cutello
Strategie 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, Vincenzo Cutello
21
Strategie 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, Vincenzo Cutello
22
Ricerca breadth-first
Espandi il nodo meno profondo non espanso Implementazione: QUEUEINGFN = metti i nodi successori alla fine della coda Slides Intelligenza Artificiale, Vincenzo Cutello
23
Ricerca breadth-first
Whitehorse Edmonton Dawson Vancouver Whitehorse Churchill Whitehorse Calgary Whitehorse Calgary Churchill Winnipeg Slides Intelligenza Artificiale, Vincenzo Cutello
24
Proprietà della ricerca breadth-first
Completa ?? Si (se b è finita) Tempo ?? 1+b+b2+b3+…+bd =O(bd), cioè, esponenziale in d Spazio ?? O(bd) (mantiene ogni nodo in memoria) Ottimalità ?? Si (se il costo = 1 ad ogni passo); non ottimale in generale Lo spazio è il grande problema; si possono facilmente generare nodi a 1MB/sec così 24hrs = 86GB Slides Intelligenza Artificiale, Vincenzo Cutello
25
Slides Intelligenza Artificiale, Vincenzo Cutello
Canada con costi in Km Dawson 450 2650 Whitehorse Churchill 1600 St. John’s 1350 Edmonton 1650 1500 1100 450 950 1250 Quèbec 750 850 Winnipeg Calgary 500 1800 250 Halifax Regina Ottawa Vancouver Montreal 175 1600 400 Toronto Slides Intelligenza Artificiale, Vincenzo Cutello
26
Ricerca a costo uniforme
Espandi il nodo meno costoso non ancora espanso Implementazione: QUEUEINGFN = inserisce i nodi in ordine crescente rispetto al costo del cammino Slides Intelligenza Artificiale, Vincenzo Cutello
27
Ricerca a costo uniforme
Whitehorse 450 1650 1600 Dawson Edmonton Vancouver 450 1250 2650 1600 450 1350 Whitehorse Churchill Calgary Winnipeg Churchill Whitehorse Slides Intelligenza Artificiale, Vincenzo Cutello
28
Proprietà della ricerca a costo uniforme
Completa ?? Si, se il costo di ogni passo è ≥ ε Tempo ?? # di nodi con g ≤ costo della soluzione ottima Spazio ?? Ottimalità ?? Si Slides Intelligenza Artificiale, Vincenzo Cutello
29
Slides Intelligenza Artificiale, Vincenzo Cutello
Ricerca depth-first Espandi il nodo più profondo non ancora espanso Implementazione: QUEUEINGFN = inserisce i nodi all’inizio della coda Slides Intelligenza Artificiale, Vincenzo Cutello
30
Slides Intelligenza Artificiale, Vincenzo Cutello
Ricerca depth-first Whitehorse Dawson Edmonton Vancouver Whitehorse Churchill Dawson Edmonton Vancouver Slides Intelligenza Artificiale, Vincenzo Cutello
31
Ricerca Depth-first: Problemi
La ricerca depth-first può eseguire percorsi con infiniti cicli Necessitiamo di uno spazio di ricerca finito e non ciclico (o un controllo sulla ripetizione degli stati) Slides Intelligenza Artificiale, Vincenzo Cutello
32
Proprietà della ricerca depth-first
Completezza ?? No: fallisce in spazi con profondità infinita, spazi con cicli Evitando la ripetizione degli stati attraverso il cammino completezza in spazi finiti Tempo ?? O(bm): terribile se m è molto più grande di d ma se le soluzioni sono dense, potrebbe essere più veloce della breadth-first Spazio ?? O(bm), cioè, spazio lineare ! Ottimalità ?? No Slides Intelligenza Artificiale, Vincenzo Cutello
33
Ricerca a profondità limitata
= ricerca depth-first con limite di profondità l Implementazione: I nodi a profondità h non hanno successori Slides Intelligenza Artificiale, Vincenzo Cutello
34
Slides Intelligenza Artificiale, Vincenzo Cutello
Ricerca iterativa function ITERATIVE-DEEPENING-SEARCH(problema) returns una soluzione input: problema, un problema for h 0 to ∞ do risultato DEPTH-LIMITED-SEARCH(problem, h) if P(risultato) then return risultato end Slides Intelligenza Artificiale, Vincenzo Cutello
35
Slides Intelligenza Artificiale, Vincenzo Cutello
Ricerca iterativa h=0 Whitehorse Slides Intelligenza Artificiale, Vincenzo Cutello
36
Slides Intelligenza Artificiale, Vincenzo Cutello
Ricerca iterativa h=1 Whitehorse Dawson Edmonton Vancouver Slides Intelligenza Artificiale, Vincenzo Cutello
37
Slides Intelligenza Artificiale, Vincenzo Cutello
Ricerca iterativa h=2 Whitehorse Dawson Edmonton Vancouver Whitehorse Churchill Whitehorse Calgary Churchill Winnipeg Whitehorse Calgary Slides Intelligenza Artificiale, Vincenzo Cutello
38
Proprietà della ricerca iterativa
Completezza ?? Si Tempo ?? (d+1)b0+db1+(d-1)b2+…+bd=O(bd) Spazio ?? O(bd) Ottimalità ?? Si, se il costo di un passo = 1 Può essere modificata per esplorare alberi a costo uniforme Slides Intelligenza Artificiale, Vincenzo Cutello
39
Slides Intelligenza Artificiale, Vincenzo Cutello
Riassunto Solitamente la formulazione del problema richiede astrazione dai dettagli del mondo reale per definire uno stato degli spazi che può essere facilmente esplorato Varietà di strategie di ricerca non informata La ricerca iterativa usa spazio lineare e non molto più tempo degli altri algoritmi di ricerca non informata Slides Intelligenza Artificiale, Vincenzo Cutello
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.