Agenti che risolvono problemi attraverso la ricerca in uno spazio di

Università di Bergamo
Facoltà di Ingegneria
Intelligenza Artificiale
Paolo Salvaneschi
A5_1 V1.4
Agenti che risolvono problemi attraverso
la ricerca in uno spazio di stati
Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto a lezioni universitarie.
Ogni altro uso è riservato, e deve essere preventivamente autorizzato dall’ autore.
Sono graditi commenti o suggerimenti per il miglioramento del materiale
Nota: è utilizzato in parte il materiale didattico associato al testo di Stuart J. Russell, Peter Norvig
A5 Ricerca Spazio Stati
Paolo Salvaneschi
1
INDICE
•
•
•
•
•
Risolvere problemi con una ricerca
Modellazione del problema
Applicazioni
Algoritmi di ricerca
Misure di prestazioni (complessità di
algoritmi e problemi)
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
2
2
Risolvere problemi con una ricerca
Model-based Goal-based agent
• Agenti basati su un modello del mondo in cui il
mondo è descritto come uno spazio di stati nel
quale applicare un processo di ricerca
• Agenti dotati di un obiettivo
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
3
3
Risolvere problemi con una ricerca
• I problemi si possono modellare come problemi
di ricerca in uno spazio degli stati
• Spazio degli stati: lo spazio degli stati è l’insieme di
tutti gli stati raggiungibili dallo stato iniziale con
una qualunque sequenza di operatori.
• Strategie di ricerca.
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
4
4
Risolvere problemi con una ricerca
Formulazione del problema
Definizione degli stati
Definizione dell’obiettivo
Definizione delle azioni (transizioni tra stati)
Problema
Ricerca di una soluzione
Esame di diverse sequenze di azioni e scelta di una sequenza
che permetta di raggiungere l’obiettivo
Soluzione: sequenza di azioni
Esecuzione
Realizzazione della sequenza di azioni trovata
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
5
5
Risolvere problemi con una ricerca
• Schema di funzionamento dell’agente (dato uno
stato iniziale restituisce una singola azione)
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
6
6
Risolvere problemi con una ricerca
• Dato uno stato iniziale restituisce una singola azione
– Se è invocato con una lista di azioni vuota
• Definisce lo stato di partenza
• Formula un obiettivo
• Formula il problema (quali sono gli stati, quali sono le azioni
applicabili agli stati)
• Esegue una ricerca e produce una sequenza di azioni da eseguire
• Estrae un’azione dalla sequenza e la restituisce
– Altrimenti
• Estrae un’azione dalla sequenza e la restituisce
• Aspetti diversi: Formulazione obiettivo e modellazione
del problema; Ricerca; Esecuzione
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
7
7
Risolvere problemi con una ricerca
• Nota:
• L’agente percepisce il mondo esterno solo all’inizio
(stato iniziale)
• Quando esegue la sequenza di azioni ignora le
percezioni e suppone che la soluzione trovata funzioni
in ogni caso
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
8
8
Risolvere problemi con una ricerca
• Tipo di agente
• Statico: la formulazione e la soluzione del problema
non considerano cambiamenti nell’ambiente
• Ambiente completamente osservabile: lo stato
iniziale è noto
• Discreto
• Deterministico
• Open Loop System
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
9
9
Modellazione del problema
Esempio
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
10
10
Modellazione del problema
Esempio
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
11
11
Modellazione del problema
• Definizione del problema
• Un problema è definito da quattro elementi:
–
–
–
–
Stato iniziale
Funzione successore
Test obiettivo
Costo del cammino
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
12
12
Modellazione del problema
• Stato iniziale Es. “in Arad”
• Funzione successore S(x)
Un insieme di coppie azione-stato
Es.
• Test obiettivo
Un test per verificare se abbiamo raggiunto l’obiettivo
Può essere esplicito Es. “in Bucharest” o implicito (la proprietà
“scaccomatto” nel gioco degli scacchi)
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
13
13
Modellazione del problema
• Costo del cammino g
Somma dei costi delle singole azioni lungo il cammino (es.
somma delle distanze, numero di azioni eseguite)
C(x,a,y) costo del singolo step >= 0
• Soluzione
Sequenza di azioni che portano dallo stato iniziale allo stato
obiettivo
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
14
14
Modellazione del problema
• Soluzione
• Una sequenza di azioni che porta dallo stato iniziale
allo stato obiettivo
• Soluzione ottima
• Soluzione a path cost minimo tra tutte le soluzioni
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
15
15
Modellazione del problema
• Modellazione degli stati e degli operatori
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
16
16
Modellazione del problema
• Gli algoritmi di ricerca sono stati oggetto di
ampio studio
• La modellazione è un processo creativo
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
17
17
Applicazioni
Esempio
NB
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
18
18
Applicazioni
Esempio
j
j
j
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
19
19
Applicazioni
• Il problema del commesso viaggiatore:
Esempio
– Un commesso viaggiatore ha una lista di città che
deve visitare tutte una sola volta.
– Vi sono strade dirette fra ogni coppia di città.
– Si trovi la strada più breve che il commesso deve
seguire per compiere un viaggio completo che inizi
e termini in una qualsiasi delle città.
Problema NP-Hard
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
20
20
Applicazioni
• Pianificazione dei movimenti delle perforatrici Esempio
automatiche di circuiti su schede
• VLSI layout
– Posizionamento dei componenti e delle piste su un
circuito
• Navigazione di un robot
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
21
21
Algoritmi di ricerca
• Algoritmi di ricerca
• Idea di base: generare un albero (grafo) di ricerca
Nota: grafo – lo stesso stato può essere raggiunto da percorsi multipli
Vedi “Il problema degli stati ripetuti”
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
22
22
Algoritmi di ricerca
• Algoritmi di ricerca
• Idea di base: generare un albero (grafo) di ricerca
– Stato iniziale
– Stato finale
– Operatore (trasforma uno stato in un altro)
– Funzione successore (dato uno stato attuale lo espande –
genera gli stati che si raggiungono applicando tutti gli
operatori che si possono applicare)
– Soluzione (sequenza di operatori la cui applicazione
trasforma lo stato iniziale nello stato finale)
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
23
23
Algoritmi di ricerca
• Strategia di ricerca
– Regole di scelta dello stato da espandere
• Nota: lo spazio degli stati e l’albero di ricerca
sono due concetti distinti
– Es. nell’esempio di ricerca del percorso da Arad a
Bucharest ci sono:
• 20 stati (uno per città)
• un infinito numero di possibili percorsi (è un grafo) =>
albero di ricerca con infiniti nodi
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
24
24
Algoritmi di ricerca
• Stati del problema e nodi dell’albero di ricerca
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
25
25
Algoritmi di ricerca
• Definizioni
– Parent. Nodo che ha generato il nodo che si considera
– Children. Nodo generato dal nodo che si considera
– Fringe (confine, frontiera). Collezione dei nodi generati ma
non ancora espansi
– Depth. Numero di passi lungo il percorso dal nodo iniziale
– Path Cost. costo g(x) dallo stato iniziale al nodo che si
considera
• Implementazione dell’albero di ricerca
– Coda
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
26
26
Algoritmi di ricerca
• Nota: due costi diversi:
– Costo della ricerca
– Costo dell’esecuzione
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
27
27
Algoritmi di ricerca
Nodi espansi
Nodi generati ma non ancora espansi
Nodi non ancora generati
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
28
28
Algoritmi di ricerca
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
29
29
Algoritmi di ricerca
Fringe
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
30
30
Algoritmi di ricerca
GENERAL TREE SEARCH ALGORITHM
Per ogni possibile effetto
di ogni possibile azione
della funzione successore
(insieme di coppie
azione-stato)
del nodo corrente
Costruisci
la struttura di dati
del nuovo nodo
espanso
Restituisci i nodi
successori
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
31
31
Algoritmi di ricerca
GENERAL TREE SEARCH ALGORITHM
I nodi sono conservati in
memoria. Trovato il nodo
goal, attraverso il puntatore
al node genitore si
ricostruisce il cammino
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Nota: la struttura di dati contiene:
-- Il puntatore al nodo genitore
-- L’azione che ha portato al nodo dal nodo
genitore (una volta trovato il goal sarà
possibile ricostruire all’indietro il percorso e
la sequenza di azioni da eseguire)
-- Il costo del percorso
-- La profondità del nodo
Paolo Salvaneschi
Paolo Salvaneschi
32
32
Algoritmi di ricerca
• Nota
• La struttura dati di fringe è una coda
• Non è detto in che modo i dati sono inseriti
/estratti dalla coda
• Il tipo di coda (FIFO, LIFO) incide sull’ordine
della ricerca
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
33
33
Algoritmi di ricerca
• Strategie di ricerca. Una strategia è definita
dall’ordine con cui si espandono i nodi (es. in
larghezza o in profondità)
• Classi di strategie
– Non informate (cieche). Non ci sono
informazioni aggiuntive relativamente agli stati
rispetto a quelle fornite dalla definizione del
problema
– Informate (euristiche). Ci sono informazioni
aggiuntive (uno stato è più “promettente” di altri)
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
34
34
Misure di prestazioni
• Misura delle prestazioni degli algoritmi di
ricerca
shallowest goal node
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
35
35
Misure di prestazioni
Esempio
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
36
36
Misure di prestazioni
• Nota: Analisi di algoritmi e notazione O()
• Domanda: quali prestazioni ha un algoritmo in
termini di risorse (tempo, memoria)?
• Primo modo:
• Benchmarking
– Specifico del contesto di esecuzione
– Di limitata estrapolazione
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
37
37
Misure di prestazioni
• Secondo modo
• Analisi dell’algoritmo indipendentemente dalla
specifica implementazione
T(n) = 2n+2
Numero totale T di passi dell’algoritmo (N. righe di
codice eseguite. Astrazione dell’implementazione)
Lunghezza n della sequenza
in ingresso (Astrazione
dell’input)
– Difficoltà di condurre un’analisi esatta di algoritmi
complessi
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
38
38
Misure di prestazioni
• Terzo modo (Indipendentemente dalla specifica implementazione)
• Analisi asintotica (Ordine)
• Importa come cresce l’utilizzo delle risorse al
crescere della dimensione dell’ingresso
Risorse
Dimensione dell’ingresso
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
39
39
Misure di prestazioni
• Ordine; Notazione O (o grande)
f(n) è O(g(n))
Date due costanti positive c ed n0, una funzione
f(n) appartiene all’insieme O(g(n)), ovvero
f(n) ∈O(g(n))
se: ∃ c, n0 > 0 | ∀ n > n0, 0 ≤ f(n) ≤ c g(n)
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
40
40
Misure di prestazioni
•Significato:
A partire da una certa dimensione n0 del dato di ingresso, la
funzione g(n) maggiora la funzione f(n).
La g(n) rappresenta un limite superiore per la f(n).
Il limite non è “stretto”. Se f(n) ∈O(n 2 ) vuol dire che f(n), da un
certo punto in poi, è maggiorata da n 2 : se ciò è vero, anche n 3
maggiorerà la f(n), e quindi f(n) appartiene anche a O(n 3 ), limite
meno stretto del precedente
Nota sull’uso improprio
L’utilizzo corretto delle notazioni asintotiche è in espressioni del tipo
f(n) ∈ O(g(n))
E’ prassi comune l’utilizzo del tipo f(n) = O(n 2 ).
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
41
41
Misure di prestazioni
•Significato:
Il comportamento per tutti gli n < n0 non è tenuto in conto, per
cui potranno esserci dei valori di n < n0 tali che f(n) > g(n),
Esempio di funzione
f(n) che appartiene
all’insieme O(g(n))
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
42
42
Misure di prestazioni
• Complessità
– lineare O(n)
Es.: ricerca sequenziale
– n log n O(n log n)
Es.: Algoritmi di ordinamento ottimi.
– nk , con k>=2 O(nk)
Es.: moltiplicazione di due 2 matrici
– Esponenziale O(kn)
Es.: un algoritmo che debba produrre tutte le possibili
stringhe lunghe n di k simboli
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
43
43
Misure di prestazioni
• Confronto tra complessità polinomiale e
esponenziale
Tempo di esecuzione di tre algoritmi
su un calcolatore che esegue
un’operazione in 10-6 secondi
n.operazioni
n
n2
complessità O(g(n)) n5
2n
s= secondi, m= minuti, c=secoli
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
44
44
Misure di prestazioni
• Nota:Analisi di complessità dei problemi
• Domanda:dato un problema, quale è la classe di
complessità degli algoritmi che lo risolvono
(indipendentemente dallo specifico algoritmo)?
• Scopo: comprendere le prestazioni massime
raggiungibili da un algoritmo applicato a un
problema
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
45
45
Misure di prestazioni
• P classe dei problemi polinomiali
– Possono essere risolti in un tempo O(nk)
per un qualche k
– “facili”. Attenzione: includono anche O(n1000)
• NP classe dei problemi non deterministici
polinomiali
– Esiste un algoritmo che ipotizza una soluzione e
verifica in un tempo polinomiale se la soluzione è
corretta. Se si hanno tanti processori o si è fortunati
i problemi NP diventano P
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
46
46
Misure di prestazioni
• NP è equivalente a P se non si ha un’infinità di
processori ? Problema aperto
• NP- completo (NP-hard) sottoclasse della
classe NP
– Dato un problema np-completo non esiste un
algoritmo che risolve tutte le istanze del problema
in un tempo polinomiale
– Specifiche istanze possono essere risolte
efficientemente
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
47
47
Misure di prestazioni
• co-NP complemento di NP
– Per ogni problema di decisione in NP c’è un
corrispondente problema in co-NP con le risposte si
e no invertite
• co-NP- completo idem
A5 Ricerca Spazio Stati
A5 Ricerca Spazio Stati
Paolo Salvaneschi
Paolo Salvaneschi
48
48