Intelligenza Artificiale marco ernandes email: ernandes@dii . unisi . it Gennaio – Aprile 2007 Intelligenza Artificiale - Problem Solving 1/105 Problem Solving Introduzione Introduzione Intelligenza Artificiale - Problem Solving 2/105 Intelligenza Artificiale - Problem Solving 3/105 “Risolvere problemi” E’ uno dei processi intellettivi che secondo il Comportamentismo richiede e definisce l’“attività intellettuale”. !" Induzione (Apprendimento) #" Sussunzione (Riconoscimento) $" Ragionamento (Deduzione) %" Problem Solving (implica tutte le precedenti) Approccio comportamentista: Test di Turing
27
Embed
Prob Solving 2007 - marco/ia/Materiale_didattico/Prob_Solving... · Intelligenza Artificiale - Problem Solving 8/105 Analisi Mezzi-Fini a)Identificare la pi grande differenza tra
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Intelligenza Artificiale - Problem Solving 2/105 Intelligenza Artificiale - Problem Solving 3/105
“Risolvere problemi”
E’ uno dei processi intellettivi che secondo il
Comportamentismo richiede e definisce
l’“attività intellettuale”.
!" Induzione (Apprendimento)
#" Sussunzione (Riconoscimento)
$" Ragionamento (Deduzione)
%" Problem Solving (implica tutte le precedenti)
Approccio comportamentista: Test di Turing
Intelligenza Artificiale - Problem Solving 4/105
PS: uomo & macchina
Il PS è un’attività tipicamente definita come “razionale”.
Razionale = ciò che si basa su procedimenti esprimibiliin formula chiusa (algoritmi)
L’AI ha dimostrato che più un task richiede “razionalità”in senso stretto più l’uomo perde il confronto con lamacchina.
Hard Computing vs. Soft Computing
Intelligenza Artificiale - Problem Solving 5/105
“Come” costruire un Problem Solver ?
Approccio Human-oriented (cognitivista)& Deve SIMULARE l’attività intelligente
& Risolvere problemi “pensando come un uomo”
Approccio Machine-oriented (comport.)& Deve MANIFESTARE attività intelligente
& Risolvere i problemi al meglio
Intelligenza Artificiale - Problem Solving 6/105
A cosa “serve” un Problem Solver?
Spiegare in maniera computazionale
come l’uomo risolve i problemi
Fornire all’uomo uno strumento di
supporto
Intelligenza Artificiale - Problem Solving 7/105
GPS: General Problem Solver(Newell, Simon e Shaw - 1958)
Risultato dell’approccio cognitivo
Esperienza previa con “Logic Theorist”
Uso di resoconti di PS umano
Analisi mezzi-fini
Intelligenza Artificiale - Problem Solving 8/105
Analisi Mezzi-Fini
a) Identificare la più grande differenza tra stato attuale e statodesiderato.
b) Creare un sotto-obiettivo che cancelli questa differenza.
c) Selezionare un operatore che raggiunga questo sotto-obiettivo
d) SE l’operatore può essere applicato ALLORA lo si applica e,arrivati nello stato successivo, si riapplica l’A-M-F.
e) SE l’operatore non può essere applicato ALLORA si usa l’A-M-F in modo ricorsivo per rimuovere la condizione di blocco.
Intelligenza Artificiale - Problem Solving 9/105
“Bias” della razionalità
Aristotele e l’ “animale razionale”
3 limiti della razionalità& Informativi
& Cognitivi
& Deliberativi
Uomo “irrazionale” nella presa di decisioni& Paradosso di Allais
& Ragionamento non Bayesiano
Per “irrazionalità” si intende contradditorietà diacronica nella presa didecisioni
Intelligenza Artificiale - Problem Solving 10/105
Paradosso di Allais (’53)
Tra 2 scommesse, quale preferite?
& A) vincere 30 Euro con probabilità 100%
& B) vincere 45 Euro con probabilità 80%
Eppure… l’utilità attesa è:
& A = 30 x 1,0 = 30 Euro
& B = 45 x 0,8 = 36 Euro
Il 78% degli intervistati risponde A!
Intelligenza Artificiale - Problem Solving 11/105
Kahneman & Tversky (’78)
Cosa preferite?
& A) vincere 120 Euro con probabilità 25%
& B) vincere 180 Euro con probabilità 20%
Eppure… l’utilità attesa è sempre la stessa:
& A = 120 x 0,25 = 30 Euro
& B = 180 x 0,20 = 36 Euro
Oltre il 50% risponde B!
Intelligenza Artificiale - Problem Solving 12/105
Ragionamento non-bayesiano
Secondo il Teorema di Bayes:
& P(M|T) = P(T|M) x P(M) / P(T)
& P (M+ | T+) = 0.99 x 0.001 =0.00099 (0,1%) ' Malato
& P (M- | T+ ) = 0.02 x 0.999 =0.01998 (2%) ' Sano
Mario si sottopone al test e risulta positivo. E’ più probabile chesia malato o che sia sano?
A Siena si è diffusa una malattia che interessa un soggetto su 1000. Seuna persona ammalata si sottopone al test diagnostico la malattia vienerilevata nel 99% dei casi. Se una persona sana si sottopone allo stessotest vengono rilevati un 2% di falsi positivi.
Cap. 14
Intelligenza Artificiale - Problem Solving 13/105
Alcune Conclusioni
Perde credito l’ipotesi simulativa su basi razionali.
Il ragionamento umano (PS e decisioni) non è
simulabile “razionalmente”
& E’ studiato dalla Psicologia Cognitiva
Può avere più senso usare le macchine:
& Sfruttando le loro potenzialità
& Come supporto per l’uomo
& (es: Problem Solving attuale, Sistemi Esperti)
Intelligenza Artificiale - Problem Solving 14/105
Approccio Machine-Oriented
Problem Solver che MANIFESTA intelligenza
& Algoritmi di Ricerca
Problem Solving = ricerca nello spazio degli stati.
& Perchè?
& PS = Hard Computing
Il bias della “potenza di calcolo”:
& Con calcolatori sufficientemente potenti si può “attaccare”
ogni tipo di problema.
& Falso: l'esplosione combinatoria rende futile la forza bruta
Intelligenza Artificiale - Problem Solving 15/105
Cosa è un problema? (I)
“Problema” è un concetto non definibile, soloesemplificabile. (Nilsson, 1982)
Alcuni esempi:& I puzzle “da tavola” ' in genere NP
& “Commesso viaggiatore”
& Rompicapo come il Cubo di Rubik
& SAT, Dimostrazione teoremi
& Giochi (Dama, Scacchi, etc.)
& VLSI
Intelligenza Artificiale - Problem Solving 16/105
Cosa è un problema? (II)
Formalizzazione:
& 5-tupla di elementi: P={X,SCS,x0,g,t}
2
87
654
317
25 8
16
43
Formalizzare = astrarre un problema
Ha senso quindi pensare ad un GPS?
Intelligenza Artificiale - Problem Solving 17/105
I giochi nell’IA e non solo
M. Minsky (1968):
“i giochi non vengono scelti perché sono chiari e semplici, ma
perché ci danno la massima complessità con le minime
strutture iniziali”
Pungolo Scientifico& Matematica: teoria dei grafi e complessità
& Computer Science: database e calcolo parallelo
& Economia: teoria dei giochi
Intelligenza Artificiale - Problem Solving 18/105
Teoria dei Giochi
Von Neumann & Morgenstern (1944)
Teoria della Decisione Teoria dei Giochi
Analizzare il comportamento
Individuale le cui azioni hanno
effetto diretto
Analizzare il comportamento
Individuale le cui azioni hanno effetto
che dipende dalle scelte degli altri
Scommesse &
Mondo dei Puzzle
Mondo dei Giochi
a + giocatori
Intelligenza Artificiale - Problem Solving 19/105
Problem Solving
Ricerca nello spazio degli statiRicerca nello spazio degli stati
“Blind” Search
Intelligenza Artificiale - Problem Solving 20/105
Ruolo del Search nell’AI
Anni ’60 – ‘80: cuore dell’AI
& “Tutto” è Search o Knowledge
Recentemente… nei textbooks& Nilsson (1980): 17%
& Rich (1983): 31%
& Norvig & Russel (1995): 13 %
& Pool, Mackworth & Goebel (1998): 10%
Intelligenza Artificiale - Problem Solving 21/105
Grafi e strategie
Spazio degli Stati ' X
Spazio della Ricerca ' (SCS(SCS(…(x0)…)))
& Alberi
& Nodi
Cosa vuol dire trovare una soluzione?
Cosa è una strategia di ricerca?
Intelligenza Artificiale - Problem Solving 22/105
Valutare le strategie
4 criteri fondamentali:
& Completezza
& Ottimalità
& Complessità Spaziale
& Complessità Temporale
Le “regole d’oro” di J.Pearl (1984)& Non dimenticarsi di cercare sotto ogni pietra
& Non alzare due volte la stessa
Intelligenza Artificiale - Problem Solving 23/105
Ricerca Cieca
Come espandere un nodo?
CodaCoda dei nodi aperti:
& CODA.insert(node);
& node = CODA.remove();
L’ordinamento dei nodi in CODA
determina la strategia di ricerca
Intelligenza Artificiale - Problem Solving 24/105
Algoritmo Generale di Search
Struttura Generale
1. if (goal_test(x0)== true) return SUCCESS
2. else CODA.insert(x0)
3. do {
if (CODA.isEmpty()) return FAILURE
nodo = CODA.remove()
figli[] = SCS(nodo)
CODA.insert(figli)
} while( goal_test(nodo)== false )
4. return SUCCESS
Intelligenza Artificiale - Problem Solving 25/105
“Breadth First”Ricerca in Ampiezza
Usa una memoria FIFO
E’ un algoritmo “difensivo”
E’ completo e ottimale
Complessità spaziale: O(bd)
Complessità temporale: O(bd)
Intelligenza Artificiale - Problem Solving 26/105
“Breadth First” - simulazione
GOAL
Intelligenza Artificiale - Problem Solving 27/105
Alcuni numeri
1 MB0,1 sec111114
>10 GB17 min>1088
>100 TB116 giorni>101212
>10000 TB
>1 TB
>100 MB
11 KB
Memoria
>1014
>1010
>106
111
N° nodi
32 anni14
28 ore10
10 sec6
1 msec2
Tempodepth
b =10, velocità ricerca = 100 mila nodi/sec., 100 byte/nodo
Korf: dagli anni ’60 la velocità di ricerca è cresciuta di 2 x 106.Quasi il 50% del contributo va ai miglioramenti algoritmici.
Intelligenza Artificiale - Problem Solving 28/105
“Depth First”Ricerca in Profondità
Usa una memoria LIFO
E’ un algoritmo “aggressivo”
E’ non completo e non ottimale
Complessità temporale: O(bm)
Complessità spaziale: O(mb)
Intelligenza Artificiale - Problem Solving 29/105
“Depth First” - simulazione
GOALbacktracking
Intelligenza Artificiale - Problem Solving 30/105
Come migliorarli?
Conoscendo lo stato goal
Non ripetendo gli stati& Evitando di espandere lo stato di provenienza
& Che effetto ha sui costi di ricerca?
& Evitando i cicli
& In generale: evitando di generare nodi con statigià visitati nella ricerca
Conoscendo il costo degli operatori
Intelligenza Artificiale - Problem Solving 31/105
Ricerca Bidirezionale(sfruttare la conoscenza dello stato goal)
Ricerca in Ampiezza& Dallo stato iniziale verso il goal
& Dal goal verso lo stato iniziale
Quando termina?
Perché non usare 2 “depth first”?
E’ completa e ottimale
Complessità spaziale: O(bd/2)
Complessità temporale: O(bd/2)
Intelligenza Artificiale - Problem Solving 32/105
Ricerca Bidirezionale - Simulazione
GOAL
X0
Intelligenza Artificiale - Problem Solving 33/105
Ricerca a profondità limitata(evitare di cadere in loop infiniti)
Ricerca in profondità
& Si stabilisce una profondità massima l
& Se la coda è vuota al raggiungimento di l si ritorna un
fallimento
Non è completa (se l<d) né ottimale
Complessità spaziale: O(bl)
Complessità temporale: O(bl)
PRO: evita loop infiniti senza usare memoria!
CON: richiede conoscenza a priori del problema
Intelligenza Artificiale - Problem Solving 34/105
Iterative Deepening Search(evitare di cadere in loop infiniti)
Ricerca a profondità limitata& Passo 1: l = 0
& Passo 2:
& si applica la ricerca a profondità limitata partendo da X0
& se la coda è vuota al raggiungimento di l si reitera il passo 2aumentando l
& una ricerca breadth-first visita tutti i nodi attorno al target e
poi vengono memorizzati i nodi della frontiera (perimeter)
con i loro valori di h* value (k nella figura sotto)
& ricerca IDA* forward usando front-to-front evaluations
front-to-front evaluations sono calcolate così:
& Per maggior velocità i
nodi “non necessari”
possono essere rimossi
max(h1 (A), mini! frontier
(h (A,Bi) + k (Bi))
Intelligenza Artificiale - Problem Solving 91/105
Perimeter search: valutazione
La perimeter search è efficiente solo in 2 casi:
& quando IDA* è “feasible” (operatori a costo unitario)
& quando la soluzione ottima non è molto profonda(altrimenti il perimetro contiene troppo poco del percorso)
Ottimi risultati con i puzzle, pessimi nel path-finding
2000x2000 path
finding: avg. d = ca.
3000, un perimetro di
50 copre solo l’1,7%
15-puzzle: avg. d = 52,7
(un perimetro di 15 copre
quasi il 30% della distanza)
Intelligenza Artificiale - Problem Solving 92/105
Problem Solving
Ricerca nello spazio degli statiRicerca nello spazio degli stati
Online Search
Intelligenza Artificiale - Problem Solving 93/105
Online Search
La differenza rispetto alla offline search è che l’agente
conosce SCS(n) (e i suoi costi) solo quando SI TROVA in n.
Nell’esempio sotto l’agente (senza lookahead) scopre che
l’operatore UP porta da (1,1) a (2,1) solo dopo averlo applicato!
L’agente deve muoversi con 2 scopi:
& esplorare lo spazio
& arrivare allo stato finale
Il costo è dato dalla somma degli operatori
applicati in tutta l’esplorazione
Intelligenza Artificiale - Problem Solving 94/105
Online Search
PROBLEMI:
& DEAD END: se gli operatori sono irreversibili allora non è possibile
garantire completezza (spazio non “safely explorable”) ' CR unbounded
& BLOCCO AVVERSARIO: (ambiente dinamico) un avversario potrebbe
porci degli ostacoli in modo da rendere il cammino altamente inefficiente
VANTAGGI:
& La ricerca online può attaccare problemi in un
ambiente dinamico (non avverso!)
(es: aggirare ostacoli che si muovono)
VALUTAZIONE ALGORITMI:Competitive Ratio (CR) = g cammino percorso / g cammino ottimo
(E’ molto difficile riuscire a porre bound su CR!)
Intelligenza Artificiale - Problem Solving 95/105
Algoritmi Online (Real Time)
Hill-Climbing:dato che è una ricerca locale può essere usata come algoritmoonline (ha il difetto di bloccarsi in un minimo locale, perchè ?)
Online Depth First Search (Online-DFS):usa il principio della ricerca in profondità con backtracking. Se adogni stato tutte le azioni sono state provate: backtracking fisico allostato predecessore!
& Richiede di mappare lo spazio “visitato” in una tabella:result[A,S1] ( S2
& Richiede di monitorare le zone dello spazio “da esplorare” con untabella indicizzata per ogni stato unexplored[S].
& Richiede di monitorare le zone dello spazio in cui poter farebacktracking con una tabella unbacktracked[S].
Intelligenza Artificiale - Problem Solving 96/105
Online Depth First Search
if (goal_test(sa)== true) return STOPif (UNEXPLORED[sa] == null) {
figli[] = SCS(sa)for all (figli != sp) UNEXPLORED[sa].add(figlio)
}
RESULT[ap,sp] ( saif (UNEXPLORED[sp].is_empty()==false)