INTELLIGENZA ARTIFICIALE
Il campo dell’Intelligenza Artificiale o AI
(dall’inglese Artificial Intelligence) tenta di capire e
costruire entità intelligenti.
Nata nel 1956. Quale definizione di Intelligenza?
Quale definizione di Intelligenza Artificiale?
Alcune definizioni:
"È lo studio di come far fare ai calcolatori cose
che, ora come ora, gli esseri umani fanno meglio"
(definizione transitoria...., scacchi.....)
"È la costruzione di un manipolatore di simboli
che è in grado di soddisfare il test di Turing"
Test di Turing:
Interazione con un terminale in cui io posso fare
domande e ottengo risposte. Dall'altra parte c’è o
una persona o un computer. Se dopo 30 minuti
non sono in grado di distinguere fra persona e
computer....
Il computer deve avere le seguenti capacità:
- Elaborazione del linguaggio naturale;
- Rappresentazione della conoscenza;
- Ragionamento automatico;
- Apprendimento automatico.
Test di Turing totale (interazioni fisiche dirette):
- Visione artificiale;
- Robotica.
1 AI Introduzione e Controllo
Questioni filosofiche legate all’Intelligenza
Artificiale:
AI debole: è possibile costruire macchine in modo
che agiscano come se fossero intelligenti?
Argomenti contro:
• Ci sono cose che i computer non possono fare
indipendentemente da come li si programmi
(incompletezza dei sistemi formali);
• Fallimento nel lungo periodo (apprendimento);
• L’effettiva costruzione di programmi appropriati
non è fattibile (complessità della conoscenza).
AI forte: è possibile costruire macchine che
pensino intelligentemente? (che abbiano menti
coscienti reali?)
solleva alcuni dei problemi concettuali più difficili
di tutta la filosofia.
I fondamenti dell’IA sono:
- Filosofia;
- Matematica (logica);
- Psicologia;
- Linguistica;
- Ingegneria dei calcolatori.
2 AI Introduzione e Controllo
La storia dell’ IA in periodi:
- (1943-1956)
La gestazione dell’ IA
reti neurali, programmi per il gioco degli scacchi,
dimostratori di teoremi;
- (1952-1969)
Entusiasmo Iniziale, Grandi Aspettative
prima il calcolatore era solo concepito come
elaboratore aritmetico. General Problem Solver,
Programmi per il Gioco della Dama in torneo, Reti
Neurali, Il linguaggio LISP.
Due filoni:
• McCarthy (Stanford) Logica
• Minsky (MIT) Visione anti-logica, Micromondi
(mondo a blocchi)
- (1966-1974)
Una dose di realtà
Alcuni programmi non erano davvero competenti
(ELIZA, traduzioni puramente sintattiche), altri
erano intrattabili (esplosione combinatoria). Le
reti neurali erano inadeguate.
3 AI Introduzione e Controllo
- (1969-1979)
Sistemi basati sulla conoscenza: la chiave del
potere?
Conoscenza intensiva su un dominio di ampiezza
limitata. Sistemi Esperti.
- (1980-1988)
L’ AI diventa un’ industria
Sistemi Esperti commerciali di successo;
Progetto quinta generazione giapponese (1981);
Compagnie per lo sviluppo di sistemi di AI;
Fondi per la ricerca.
- (1986-oggi)
Il ritorno delle reti neurali
Algoritmo di apprendimento con propagazione
all’indietro.
Delusione sui sistemi basati sulla conoscenza.
- Eventi recenti e futuri sviluppi
Pi ù realismo e nuova consapevolezza.
Superamento dei micromondi;
AI in molti campi pratici quali pianificazione,
scheduling, agenti intelligenti distribuiti;
Ulteriori aree :
Internet, conoscenza troppo ampia che va
filtrata in modo intelligente.
4 AI Introduzione e Controllo
Intelligenza Artificiale: due grosse branche
MACCHINE INTELLIGENTI: si costruiscono
programmi che raggiungono un alto livello di
competenza nella conoscenza di problemi
particolari
approccio ingegneristico
Non ci si occupa di simulare l'attività umana di
ragionamento, ma di emularla selettivamente.
SCIENZA COGNITIVA: si cerca di modellare il
comportamento umano e i suoi processi di
informazione
approccio di filosofi, psicologi, linguisti, biologi.
Il computer è un mezzo di sperimentazione.
Siamo ancora lontani dalla costruzione della
macchina "intelligente", per cui ci si è limitati per
adesso a problemi più semplici e trattabili.
5 AI Introduzione e Controllo
Categorie di Attività in Intelligenza Artificiale:
Attività Normali (ovvero come è possibile che
cose così semplici siano così complicate?):
Processo del linguaggio naturale:
- Comprensione;
- Generazione;
- Traduzione.
Percezione:
- Visione;
- Linguaggio parlato.
Ragionamento di buon senso
Controllo di Robot
Attività Formali:
Giochi:
- Scacchi;
- Dama
Matematica e Logica:
- Prova automatica di Teoremi;
- Geometria;
- Calcolo differenziale;
- Dimostrazione di proprietà di programmi.
Attività Specializzate:
Ingegneria
- Progetto;
- Ricerca di guasti (diagnosi);
- Pianificazione della produzione;
- Programmazione automatica
Diagnosi medica
Analisi finanziaria
Analisi scientifica ecc.
6 AI Introduzione e Controllo
L'Intelligenza Artificiale è una disciplina giovane e
non ancora assestata.
Dopo una fase empirica si sono trovati alcuni
principi astratti comuni.
Intelligenza Artificiale ha tre grosse aree:
1. Strategie di Ricerca
2. Rappresentazione della Conoscenza
3. Applicazioni
Visione simbolica e dichiarativa.
Alternative (sistemi sub-simbolici):
Connessionismo, reti neurali;
Brooks e la costruzione di piccoli sistemi
artificiali reattivi (insetti).
Noi seguiremo principalmente la visione simbolica
e dichiarativa (AI "classica").
I due approcci possono essere integrati.
7 AI Introduzione e Controllo
SISTEMI BASATI SULLA CONOSCENZA
Un sistema di Intelligenza Artificiale generalmente
esamina un largo numero di possibilità e
costruisce dinamicamente una soluzione.
"La potenza di un programma intelligente nel
risolvere un problema dipende primariamente
dalla quantità e qualità di conoscenza che
possiede su tale problema". (Feigenbaum)
Il programma non è un insieme di istruzioni
immutabili che rappresentano la soluzione del
problema, ma un ambiente in cui:
* rappresentare
* utilizzare
* modificare
una base di conoscenza.
8 AI Introduzione e Controllo
PRINCIPI ARCHITETTURALI
* Ogni sistema basato sulla conoscenza deve
riuscire ad esprimere due tipi di conoscenza:
Conoscenza sul dominio dell’applicazione
(COSA);
Conoscenza su
conoscenza per
CONTROLLO.
COME utilizzare tale
risolvere problemi -
Questi due tipi di conoscenza dovrebbero
essere tenuti SEPARATI:
ALTA MODULARITÀ
9 AI Introduzione e Controllo
PROGRAMMAZIONE DICHIARATIVA
PROGRAMMA=CONOSCENZA+CONTROLLO
*
La conoscenza sul problema è espressa
indipendentemente dal suo utilizzo (COSA
non COME);
*
Alta modularità e flessibilità;
*
I moderni linguaggi e AMBIENTI per
Intelligenza Artificiale tendono a riprodurre
tale schema;
*
Definire un ambiente (linguaggio) in tale
schema
significa
definire
come
il
programmatore può esprimere la conoscenza
e quale tipo di controllo può utilizzare;
*
Problematiche
conoscenza;
*
Problematiche di organizzazione del problema
e strategie di controllo;
*
Linguaggi e Ambienti per Sistemi basati sulla
conoscenza:
10 AI Introduzione e Controllo
di
rappresentazione
della
DICHIARATIVO - PROCEDURALE
Esempio: Tracciare una circonferenza
DICHIARATIVO
La circonferenza è l'insieme dei punti equidistanti
da un dato punto detto centro.
PROCEDURALE
Per tracciare una circonferenza ........
Esempio: Ordinamento di una lista
DICHIARATIVO
"Il risultato dell'ordinamento di una lista vuota è la
lista vuota"
"Il risultato dell'ordinamento di una lista L è L' se
la lista L' è ordinata ed è una permutazione di L"
PROCEDURALE
"Controlla prima se la lista è vuota; se sì dai come
risultato la lista vuota"
"Altrimenti calcola una permutazione L' di L e
controlla se è ordinata; se sì termina dando come
risultato
L',
altrimenti
calcola
un'altra
permutazione di L etc...."
11 AI Introduzione e Controllo
VANTAGGI DELL’APPROCCIO DICHIARATIVO
a)
ALTO LIVELLO:
è più semplice impostare il problema (catena
di IF..THEN);
b)
GENERALITÀ:
posso usare la stessa conoscenza in differenti
modi;
c)
FLESSIBILITÀ
facile modifica, debugging ecc.
cambio del controllo
12 AI Introduzione e Controllo
UNA NUOVA MACCHINA VIRTUALE
INTERFACCIA
UTENTE
ACQUISIZIONE
SPIEGAZIONE
BASE DI
CONTROLLO
CONOSCENZA
AMBIENTE per
SISTEMI BASATI sulla
CONOSCENZA
LINGUAGGIO DI
PROGRAMMAZIONE
SISTEMA
OPERATIVO
COMPUTER
13 AI Introduzione e Controllo
Un altro esempio:
Semplicissimo problema di diagnostica:
prescrivere una medicina in base ai risultati di un
esame di laboratorio.
GOAL: prescribe(Drug)
cioè "prescrivere una medicina adeguata per un
determinato paziente".
FATTI: gram(neg).
not(allergic(antb)).
REGOLE:
1) gram ( neg ) --> id ( ecoli ).
"Se il risultato dell'esame è gram-negativo allora
l'identità è enterium-coli "
2) gram ( pos ) --> id ( strep ).
"Se il risultato dell'esame è gram-positivo allora
l'identità è streptococco"
3) id ( strep ) OR id ( bact ) -->ind ( pen ).
"Se l'identità è streptococco o bactero allora è
bene indicare penicillina"
4) ind (X) AND not (allergic (X))--> prescribe ( X ).
"Se è bene indicare una certa medicina e il
paziente non è allergico a tale medicina, allora si
può prescrivere tale medicina al paziente"
5) id ( ecoli ) --> ind ( antb ).
"Se l'identità è enterium-coli allora è bene indicare
antibiotici"
14 AI Introduzione e Controllo
CONTROLLO (Backward)
GrafoAND/OR:
GOAL: prescribe(Drug)
Match R4
{Drug/X}
prescribe(X)
and
Act R4
ind(X)
not (allergic(X))
Match R5
{X/antb}
Match R3
{X/pen}
SI
ind(pen)
ind(antb)
or
Act R3
Act R3
id(strep) id(bact)
Match R2
id(strep)
Act R5
id(ecoli)
Match R1
NO
Act R2
id(ecoli)
Act R1
gram(pos)
NO
15 AI Introduzione e Controllo
gram(neg)
SI
FORWARD:
Grafo AND/OR:
FATTI: gram(neg) and not(allergic(antb))
gram(neg)
not(allergic(antb))
Match1
gram(neg)
Act1
id(ecoli)
Match5
id(ecoli)
Match4
Act5
ind(antb)
Match4
ind(antb) and not(allergic(antb))
Act4
prescribe(antb)
Match con goal
Drug=antb
16 AI Introduzione e Controllo
Alcune
considerazioni
sul
particolare
problema (tipico problema di diagnosi):
* I fatti iniziali sono molto numerosi e dunque è
bene domandarli selettivamente all'utente
quando necessario.
* L'impostazione del problema preferibile è
backward.
askable: gram e allergic.
===================================
Esempio di sessione di lavoro:
User: esecuzione
Sys: È la coltura Graam positiva ?
User: NO.
Sys: È la coltura Graam negativa?
User: SI.
Sys: Il paziente è allergico agli antibiotici ?
User: NO.
Sys: Allora prescriverei una cura a base di
antibiotici.
====================================
17 AI Introduzione e Controllo
SESSIONE DI SPIEGAZIONE
Sys: È la coltura Graam positiva ?
User: WHY? < perchè è importante determinare tale
informazione? >.
Sys: Tale informazione è di aiuto per determinare se
(R1) l'identità dell'organismo è streptococco.
User: WHY?
Sys:
Tale informazione è di aiuto perchè per tale
organismo è indicata la penicilina ( R3 ).
Sys: ... Allora prescriverei una cura a base di antibiotici.
User: HOW? <come puoi concludere tale responso? >
Sys: Ho utilizzato la regola R4: ho prescritto antibiotici
poichè sono indicati per tale infezione (prem1) e
il paziente non è allergico (prem2).
User: HOW Premessa 1 ? <come puoi concludere che
sono indicati gli antibiotici?>
Sys: Ho utilizzato la regola R5: sono indicati antibiotici
poichè l'organismo che ha causato l'infezione è
ecoli.
18 AI Introduzione e Controllo
STRUTTURA ALGORITMICA
program prescribe(input,output);
var Answer: string[2]; presc: boolean;
begin
presc:=false;
write(’e la coltura Graam Positiva?’);
read(Answer);
if Answer=’Si’ then
begin
write('il paziente è allergico alla
penicillina?');
read(Answer);
if Answer='No' then
begin
write('allora prescriverei una
cura a base di penicillina');
presc:=true
end;
end;
if not presc then
begin
write('coltura Graam Negativa?');
read(Answer);
if Answer='Si' then
begin
write('il paziente è allergico
agli antibiotici?');
read(Answer);
if Answer='No' then
begin
write('allora
prescriverei
una
cura
a
base
di
antibiotici');
presc:=true
end;
end;
end;
if not presc then
write('prescrizione impossibile'); end.
19 AI Introduzione e Controllo
SOLUZIONE
DEL
PROBLEMA
COME
RICERCA IN UNO SPAZIO DEGLI STATI:
Gran parte dei problemi di Intelligenza Artificiale
hanno la ricerca (o controllo) come componente
fondamentale.
I problemi si possono modellare come Problemi di
Ricerca in uno spazio degli stati (Strategie di
Ricerca).
Spazio degli stati
Lo spazio degli stati è l’insieme di tutti gli
stati raggiungibili dallo stato iniziale con una
qualunque sequenza di operatori.
Lo Spazio degli Stati è Caratterizzato da:
• Uno stato iniziale in cui l’agente sa di trovarsi
(non noto a priori);
• Un insieme di azioni possibili che sono
disponibili da parte dell’agente (Operatori che
trasformano uno stato in un altro o più
formalmente una funzione successore S(X) che
riceve in ingresso uno stato e restituisce
l’insieme degli stati raggiungibili).
Un cammino è una sequenza di azioni che
conduce da uno stato a un altro.
20 AI Introduzione e Controllo
Esiste poi un Test OBIETTIVO per determinare
se l’agente ha raggiunto il goal
La verifica può essere solo l’appartenenza dello
stato raggiunto all’insieme dello stato (o degli
stati) goal.
A volte lo stato obiettivo può essere decritto in
modo “astratto” attraverso proprietà (si pensi allo
stato di scacco matto).
Altri obiettivi (non solo raggiungere il goal, ma...):
* trovare la sequenza di operatori che arrivano al
goal;
* trovare tutte le soluzioni;
* trovare una soluzione ottima.
In quest’ultimo caso vuol dire che una soluzione
può essere preferibile a un’altra.
Una funzione costo di cammino assegna un
costo a un cammino (in gran parte dei casi quale
somma del costo delle azioni individuali lungo il
cammino).
21 AI Introduzione e Controllo
Discussione:
Misurare l’efficacia della ricerca:
1. Si riesce a trovare una soluzione?
2. È una buona soluzione? (con basso costo di
cammino – costo in linea)
3. Qual è il costo della ricerca? (tempo per trovare
una soluzione – costo fuori linea)
Costo totale di ricerca = costo di cammino + costo
di ricerca.
Scegliere stati
dell’astrazione
22 AI Introduzione e Controllo
e
azioni
Å
L’importanza
ESEMPIO:
Il rompicapo dell’8
• Stati: posizione di ciascuna delle tessere;
• Operatori: lo spazio vuoto si sposta a destra, a
sinistra, in alto e in basso;
• Test obiettivo: descrizione dello stato finale;
• Costo di cammino: ciascun passo costa 1.
I: 2 8 3
1 6 4
7
5
G: 1 2 3
8
4
7 6 5
I: 2 8 3
1 6 4
7
5
2 8 3
1 6 4
7 5
2 8 3
1 4
7 6 5
23 AI Introduzione e Controllo
2 8 3
1
4
7 6 5
2
3
1 8 4
7 6 5
2 8 3
1 6 4
7 5
2 8 3
1 6 4
7
5
Altri esempi:
(problemi giocattolo e del mondo reale)
Il problema dei Missionari e dei Cannibali:
3 missionari e 3 cannibali devono attraversare un
fiume. C'è una sola barca che può contenere al
massimo due persone. Per evitare di essere
mangiati i missionari non devono mai essere
meno dei cannibali sulla stessa sponda (stati di
fallimento).
Stato: sequenza ordinata di tre numeri che
rappresentano il numero di missionari, cannibali e
barche sulla sponda del fiume da cui sono partiti.
Perciò lo stato iniziale è: (3,3,1) (nota
l’importanza dell’astrazione).
Operatori: gli operatori devono portare in barca 1
missionario, 1 cannibale, 2 missionari, 2
cannibali, 1 missionario e 1 cannibale.
Al più 5 operatori (grazie all’astrazione sullo stato
scelta).
Test Obiettivo: (0,0,0)
Costo di cammino: numero di traversate.
24 AI Introduzione e Controllo
La criptoaritmetica:
S
E N D +
M
O R E =
____________________
M
O
N
E
Y
• Stati: un rompicapo di criptoaritmetica con
lettere e numeri;
• Operatori: sostituisci tutte le stesse lettere con
una cifra che non compare nel rompicapo;
• Test obiettivo: il rompicapo contiene solo cifre
e rappresenta una somma corretta;
• Costo di cammino: 0
Il problema delle 8 regine
Inserire 8 regine su una scacchiera in modo che
non si mangino.
• Stati: qualsiasi configurazione da 0 a 8 regine
sulla scacchiera;
• Operatori: aggiungi una regina in un qualsiasi
quadrato;
• Test obiettivo: 8 regine sulla scacchiera,
nessuna minacciata;
• Costo di cammino: zero.
25 AI Introduzione e Controllo
Altri esempi (proposti e da modellare come
problemi di ricerca in uno spazio degli stati):
La torre di Hanoi
(1)
(2)
(3)
Spostare i cilindri concentrici da (1) a (3) nella
stessa
configurazione
di
(1)
utilizzando
eventualmente anche (2). Un cilindro più grande
non può essere inserito su un cilindro più piccolo.
Il problema del commesso viaggiatore:
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 viaggo completo che inizi e temini in
una qualsiasi delle città.
(esplosione combinatoria, per 10 città è 10!)
Il problema della scimmia e la banana:
Afferrare una banana appesa al soffitto (avendo a
disposizione una sedia e bastone).
26 AI Introduzione e Controllo
Il problema della capra, il lupo e il cavolo:
Portare capra, lupo e cavolo dall’altra parte senza
che si mangino (si mangiano se rimangono
assieme senza il conducente della barca). Nella
barca se ne può trasportare uno solo alla volta.
Soluzione:
* Porta la capra sull'altra sponda;
* Torna indietro
* Porta il cavolo sull'altra sponda
* Porta indietro la capra
* Porta il lupo sull'altra sponda
* Torna indietro
* Porta la capra sull'altra sponda
Le parole crociate:
(spazio di ricerca ampissimo)
T
U
R
E
Giochi: scacchi
27 AI Introduzione e Controllo
O
R
R
A
SCHEMA ARCHITETTURALE: SISTEMA DI
PRODUZIONE
* Insieme di Operatori (regole);
*Uno o più database (Memorie di lavoro);
*Strategia di Controllo.
MODULARITÀ - FLESSIBILITÀ
operatori:
IF <pattern> THEN <body>
(non si chiamano per nome, ma si attivano in
base al pattern-matching)
28 AI Introduzione e Controllo
ARCHITETTURA GENERALE:
INTERPRETE
O CONTROLLO
Matching
Selezione
Esecuzione
REGOLE
APPLICABILI
29 AI Introduzione e Controllo
MEMORIA
DI LAVORO
REGOLE O
OPERATORI
DUE MODALITÀ DI "RAGIONAMENTO"
FORWARD O DATA-DRIVEN:
* La memoria di lavoro nella sua configurazione
iniziale contiene la conoscenza iniziale sul
problema, cioè i fatti noti.
* Le regole di produzione applicabili sono quelle il
cui antecedente può fare matching con la
memoria di lavoro (F-rules).
* Ogni volta che una regola viene selezionata ed
eseguita nuovi fatti dimostrati vengono inseriti
nella memoria di lavoro.
* Il procedimento termina con successo quando
nella memoria di lavoro viene inserito anche il
goal da dimostrare (condizione di terminazione).
BACKWARD O GOAL-DRIVEN:
* La memoria di lavoro iniziale contiene il goal (o i
goal) del problema.
* Le regole di produzione applicabili sono quelle il
cui conseguente può fare matching con la
memoria di lavoro (B-rules).
* Ogni volta che una regola viene selezionata ed
eseguita, nuovi subgoals da dimostrare
vengono inseriti nella memoria di lavoro.
* Il procedimento termina con successo quando
nella memoria di lavoro vengono inseriti fatti
noti (CONDIZIONE DI TERMINAZIONE).
30 AI Introduzione e Controllo
QUANDO
APPLICARE
QUANDO FORWARD:
BACKWARD
E
* Esistono più Stati Iniziali o più Goals?
* Quale è il numero medio di rami generati da un
singolo nodo?
* Quale è la modalità di ragionamento più
naturale? (spiegazione all'utente)
BIDIREZIONALE O MISTO:
• È la combinazione
precedentemente;
dei
metodi
descritti
• La memoria di lavoro viene suddivisa in due
parti l`una contenente i fatti e l'altra i goals o
subgoals;
• Si applicano simultaneamente F-rules e B-rules
alle due parti di memoria di lavoro e si termina
il procedimento con successo quando la parte
di memoria di lavoro ricavata mediante
backward chaining è uguale o un sottoinsieme
di quella ricavata mediante (CONDIZIONE DI
TERMINAZIONE).
31 AI Introduzione e Controllo
Più precisamente:
Un agente con diverse opzioni immediate di esito
sconosciuto può decidere cosa fare esaminando
prima le differenti sequenze possibili di azioni che
conducono a stati di esito conosciuto scegliendo,
poi, quella migliore.
Il processo di cercare tale sequenza è chiamato
ricerca.
L’idea è quella di mantenere ed estendere un
insieme di sequenze soluzioni parziali.
È utile pensare al processo di ricerca come la
costruzione di un albero di ricerca i cui nodi
sono stati e i cui rami sono operatori.
Un algoritmo di ricerca prende come input un
problema e restituisce una soluzione nella forma
di una sequenza di azioni.
Una volta che viene trovata la soluzione, le azioni
suggerite possono essere realizzate.
Questa fase è chiamata esecuzione.
32 AI Introduzione e Controllo
STRATEGIE DI RICERCA
I problemi che i sistemi basati sulla conoscenza
devono risolvere sono non-deterministici (don’t
know)
In un certo istante più azioni possono essere
svolte (azioni: applicazioni di operatori)
STRATEGIA: è un'informazione sulla conoscenza
che sarà applicata potendone invocare molteplici.
POSSIBILITÀ
Non utilizzare alcuna conoscenza sul dominio:
applicare regole in modo arbitrario (strategie noninformate) e fare una ricerca ESAUSTIVA.
Impraticabile
complessità.
per
problemi
di
una
certa
La strategia di controllo deve allora utilizzare
CONOSCENZA EURISTICA SUL PROBLEMA
per la selezione degli operatori applicabili:
STRATEGIE INFORMATE
ESTREMO:
La conoscenza sulla strategia è così completa da
selezionare ogni volta la regola CORRETTA
REGIME IRREVOCABILE (ALTRIMENTI PER
TENTATIVI)
33 AI Introduzione e Controllo
Altre caratteristiche del problema:
IL SISTEMA È DECOMPONIBILE?
Esempio:
•X + 3X + sin X * cos X dX
corrisponde alla somma degli integrali:
•X dX + •3X dX + •sin X * cos X dX
NON TUTTI I SISTEMI SONO DECOMPONIBILI:
Si possono avere sottoproblemi interagenti,
34 AI Introduzione e Controllo
Esempio:
il MONDO A BLOCCHI (planning)
GOAL
STATO INIZIALE
A
C
A
B
C
B
Stato Iniziale:
handempty.
on(c,a).
clear(b).
ontable(a).
clear(c).
ontable(b).
Operatori:
clear(X) --> ontable(X)
clear(X) and clear(Y) -->on(X,Y)
Goal:
on(b,c) and on(a,b)
I due sottogoals NON POSSONO ESSERE
RISOLTI
SEPARATAMENTE
perchè
interagiscono.
35 AI Introduzione e Controllo
Altre domande:
• Esiste interazione con l’utente (spiegazione,
conoscenza incompleta)?
• Si possono ignorare dei passi? (come nella
dimostrazione di teoremi)
• Si possono annullare dei passi (8-puzzle) o il
sistema è irricoverabile (scacchi)?
36 AI Introduzione e Controllo
SISTEMI DI PRODUZIONE MONOTONI:
L’applicazione di una regola R non invalida la
possibilità di applicare regole applicabili all'atto
della selezione di R.
NON C'È NECESSITÀ DI BACKTRCKING
Esempio (logica-dimostratore di teoremi)
fatto: a.
a→e
a → d.
d → f.
goal: f.
Non è il caso del mondo a blocchi
Nota:
Il formalismo dei sistemi di produzioni è generale
(può rappresentare tutte le funzioni computabili).
È possibile trasformare un sistema di produzione
non-monotono in uno monotono (formulazione di
Green; formulazione di Kowakski). La trattazione,
però, si complica notevolmente.
37 AI Introduzione e Controllo
Altri tipi di problemi:
Problema a stati singoli:
Lo stato è sempre accessibile.
L’agente conosce esattamente che cosa produce
ciascuna delle sue azioni e può calcolare
esattamente in quale stato sarà dopo qualunque
sequenza di azioni.
Problema a stati multipli:
Lo stato non è completamente accessibile.
L’agente deve ragionare su possibili stati che
potrebbe raggiungere.
In più: anche l’effetto delle azioni può essere
sconosciuto o imprevisto.
Spesso risolvere questi problemi richiede
capacità di rilevamento durante la fase di
esecuzione.
→ Agire nel mondo reale piuttosto che in un suo
modello.
Tratteremo estesamente solo problemi a stati
singoli.
38 AI Introduzione e Controllo
Cercare soluzioni
Generare sequenze di azioni.
Espansione: si parte da uno stato e applicando gli
operatori (o la funzione successore) si generano
nuovi stati.
Strategia di ricerca: ad ogni passo scegliere quale
stato espandere.
Albero di ricerca: rappresenta l’espansione degli
stati a partire dallo stato iniziale (la radice
dell’albero).
Le foglie dell’albero rappresentano gli stati da
espandere.
39 AI Introduzione e Controllo
STRATEGIE DI RICERCA
La scelta di quale stato espandere nell’albero di
ricerca prende il nome di strategia.
Abbiamo strategie informate e non informate.
Le stategie si valutano in base a quattro criteri:
1. Completezza: la strategia garantisce di trovare
una soluzione quando ne esiste una?
2. Complessità temporale: quanto tempo occorre
per trovare una soluzione?
3. Complessità spaziale: Quanta memoria occorre
per effettuare la ricerca?
4. Ottimalità: la strategia trova la soluzione di
“qualità massima” quando ci sono più soluzioni?
NON-INFORMATE:
1. breadth-first;
2. depth-first;
3. depth-first a profondità limitata;
4. ad approfondimento iterativo.
40 AI Introduzione e Controllo
BREADTH-FIRST
Definizione di profondità:
La PROFONDITÀ del nodo da cui si parte è
uguale a 0; la profondità di un qualunque altro
nodo è la profondità del genitore più 1.
ESPANDE sempre i nodi MENO PROFONDI
dell'albero.
Nel caso peggiore, se abbiamo profondità d e
fattore di ramificazione b il numero massimo di
d
nodi espansi nel caso peggiore sarà b .
(complessità temporale).
2
3
d
d
1 + b + b + b +…+(b – 1) --> b
All’ultimo livello sottraiamo 1 perchè il goal non
viene ulteriormente espanso.
Questo valore coincide anche con la complessità
spaziale (numero di nodi che manteniamo
contemporaneamente in memoria).
L'esplorazione dell'albero avviene tenendo
CONTEMPORANEAMENTE aperte più strade.
41 AI Introduzione e Controllo
Tale strategia garantisce la COMPLETEZZA, ma
NON
permette
una
EFFICIENTE
IMPLEMENTAZIONE
su
sistemi
monoprocessore (architetture multi-processore).
In particolare, con profondità 10 e fattore di
10
ramificazione 10 dovremmo espandere 10 nodi,
(tempo 128 giorni e 1 terabyte di memoria
immaginando che un nodo richieda 100 byte di
memoria e vengano espansi 1000 nodi al
secondo.
Il problema della memoria sembra essere il più
grave.
Trova sempre il cammino a costo minimo se il
costo coincide con la profondità (altrimenti
dovremmo utilizzare un’altra strategia che
espande sempre il nodo a costo minimo Å
strategia a costo uniforme).
42 AI Introduzione e Controllo
È completa e, a differenza della ricerca in
ampiezza, ottimale anche quando gli operatori
non hanno costi uniformi. (complessità temporale
e spaziale uguale a quella in ampiezza).
n0
n1
n11
n2
n12
n13
n21
n3
n4
n31 n32 n33 n41
n22
n42
0
1
5
2
6
7
8
3
9
43 AI Introduzione e Controllo
4
10
11
12
13
14
DEPTH FIRST
ESPANDE per primi nodi PIÙ PROFONDI;
I nodi di UGUALE PROFONDITÀ vengono
selezionati ARBITRARIAMENTE (quelli più a
sinistra).
La ricerca in profondità richiede un’occupazione
di memoria molto modesta.
Per uno spazio degli stati con fattore di
ramificazione b e profondità massima d la ricerca
richiede la memorizzazione di b*d nodi.
La complessità temporale è invece analoga a
quella in ampiezza.
Nel caso peggiore, se abbiamo profondità d e
fattore di ramificazione b il numero massimo di
d
nodi espansi nel caso peggiore sarà b .
(complessità temporale).
BACKTRACKING:
Cronologico ⇒ Intelligente
44 AI Introduzione e Controllo
n0
n1
n11
n2
n12
n13
n21
n3
n4
n31 n32 n33 n41
n22
n42
0
1
2
5
3
4
6
8
7
12
9
10
11
13
14
EFFICIENTE dal punto di vista implementativo:
può essere memorizzata una sola strada alla
volta (un unico stack)
Può essere NON-COMPLETA (possibili loops in
presenza di rami infiniti).
(INTERPRETE PROLOG).
45 AI Introduzione e Controllo
ALGORITMO DI RICERCA:
1. Sia L una lista dei nodi iniziali del problema;
2. Sia n il primo nodo di L. Se L è vuota fallisci;
3. Se n è il goal fermati e ritorna esso piu' la
strada percorsa per raggiugerlo.
4. Altrimenti rimuovi n da L e aggiungi a L tutti i
nodi figli di n, con label la strada percorsa
partendo dal nodo iniziale. Ritorna al passo 2
DEPTH-FIRST:
figli espansi aggiunti in testa a L.
BREADTH-FIRST:
figli espansi aggiunti in coda a L.
46 AI Introduzione e Controllo
ESEMPIO:
n0
n1
n11
n2
n12
n13
n21
n22
GOAL
n3
n31 n32 n33 n41
n4
n42
Depth-first:
n0
n1,n2,n3,n4
n11,n12,n13,n2,n3,n4
n11,n12,n13,n2,n3,n4
n12,n13,n2,n3,n4
n13,n2,n3,n4
n2,n3,n4
n21,n22,n3,n4 Successo
Breadh-first:
n0
n1,n2,n3,n4
n2,n3,n4,n11,n12,n13
n3,n4,n11,n12,n13,n21,n22
n4,n11,n12,n13,n21,n22,n31,n32,n33
n11,n12,n13,n21,n22,n31,n32,n33,n41,n42
n12,n13,n21,n22,n31,n32,n33,n41,n42
n13,n21,n22,n31,n32,n33,n41,n42
n21,n22,n31,n32,n33,n41,n42 Successo
47 AI Introduzione e Controllo
RICERCA A PROFONDITÀ LIMITATA
In generale si può prevedere una PROFONDITÀ
MASSIMA di ricerca.
Quando si raggiunge il MASSIMO di profondità o
un
FALLIMENTO si considerano STRADE
ALTERNATIVE della stessa profondità (se
esistono), poi minori di una unità e così via
(BACKTRACKING).
Si possono stabilire limiti massimi di profondità
(non necessariamente risolvono il problema della
completezza).
48 AI Introduzione e Controllo
AD APPROFONDIMENTO ITERATIVO
La ricerca ad approfondimento iterativo evita il
problema di scegliere il limite di profondità
massimo provando tutti i possibili limiti di
profondità.
Prima 0, poi 1, poi 2 ecc…
Combina i vantaggi delle due strategie. È
completa e sviluppa un solo ramo alla volta.
In realtà tanti stati vengono espansi più volte, ma
questo non peggiora sensibilmente i tempi di
esecuzione.
In particolare, il numero totale di espansioni è:
2
d-2
d-1
d
(d+1)1 + (d)b + (d-1)b +…+ 3b + 2b +b .
In generale è il preferito quando lo spazio di
ricerca è molto ampio.
49 AI Introduzione e Controllo
STRATEGIE INFORMATE
"L'intelligenza di un sistema non è misurabile in
termini di capacità di ricerca, ma nella capacità di
utilizzare conoscenza sul problema per eliminare
il pericolo dell'esplosione combinatoria.
Se il sistema avesse un qualche controllo
sull'ordine nel quale vengono generate le possibili
soluzioni, sarebbe allora utile disporre questo
ordine in modo che le soluzioni vere e proprie
abbiano un'alta possibilità di comparire prima.
L’intelligenza, per un sistema con capacità di
elaborazione limitata consiste nella saggia
scelta di cosa fare dopo.....".
Newell-Simon:
I metodi di ricerca precedenti in uno spazio di
profondità d e fattore di ramificazione b risultano
di complessità proporzionale a bd per trovare un
goal in una delle foglie.
Questo è inaccettabile per problemi di una certa
complessità. Invece di espandere i nodi in modo
qualunque utilizziamo conoscenza euristica sul
dominio (funzioni di valutazione) per decidere
quale nodo espandere per primo.
Le funzioni di valutazione danno una stima
computazionale dello sforzo per raggiungere lo
stato finale.
50 AI Introduzione e Controllo
Nota:
Il tempo speso per valutare mediante una
funzione euristica il nodo da espandere deve
corrispondere a una riduzione nella dimensione
dello spazio esplorato.
Trade-off fra tempo necessario nel risolvere il
problema (livello base) e tempo speso nel
decidere come risolvere il problema (metalivello).
Le ricerche non informate non hanno attività di
meta-livello.
51 AI Introduzione e Controllo
PROBLEMI:
Come trovare le funzioni di valutazione corrette,
cioè come si fa a valutare bene quale è il nodo
più "promettente"?
È difficile caratterizzare numericamente
conoscenza empirica sul problema.
la
Non sempre la scelta più ovvia è la migliore.
Esempio:
Scelta euristica: muoversi sempre per ridurre la
distanza dall'uscita.
Nel caso di questo labirinto sceglieremmo la
strada più lunga.
52 AI Introduzione e Controllo
Esempio: gioco del filetto
La distanza dal goal è stimata in base al numero
di caselle fuori posto:
1
7
6
Goal:
1
8
7
2
8
3
4
5
2
3
4
5
6
Sinistra: distanza 2
Destra: distanza 4
Su: distanza 3
(non è detto che la distanza stimi esattamente il
numero di mosse necessarie)
1
7
6
2
8
3
4
5
Distanza=3 ma in realtà sono necessarie 4 mosse
per arrivare alla soluzione.
53 AI Introduzione e Controllo
RICERCA GREEDY (golosa): Cerca di muoversi
verso il massimo (minimo) di una funzione che
“stima” il costo per raggiungere il goal.
Best-first (greedy):
1. Sia L una lista dei nodi iniziali del problema,
ordinati secondo la loro distanza dal goal
(nodi più vicini al goal precedono quelli più
lontani);
2. Sia n il primo nodo di L. Se L è vuota fallisci;
3. Se n è il goal fermati e ritorna esso più la
strada percorsa per raggiugerlo
4. Altrimenti rimuovi n da L e aggiungi a L tutti i
nodi figli di n con label la strada percorsa
partendo dal nodo iniziale. Poi ordina tutta la
lista L in base alla stima della distanza
relativa dal goal. Ritorna al passo 2
54 AI Introduzione e Controllo
Problemi di questo approccio:
La ricerca di questo tipo non è ottimale e può
essere incompleta (presenta gli stessi difetti della
ricerca in profondità).
Nel caso peggiore, se abbiamo profondità d e
fattore di ramificazione b il numero massimo di
d
nodi espansi sarà b . (complessità temporale).
Poichè, inoltre, tiene in memoria tutti i nodi la
complessità spaziale coincide con quella
temporale.
Con una buona funzione euristica, la complessità
spaziale e temporale possono essere ridotte
sostanzialmente.
55 AI Introduzione e Controllo
Ricerca lungo il cammino migliore
La ricerca in salita non è detto che trovi la
soluzione migliore, ovvero il cammino migliore
per arrivare alla soluzione (si pensi all'esempio
del labirinto).
Questo perchè la tecnica best-first cerca di
trovare il più presto possibile un nodo con
distanza 0 dal goal senza curarsi di trovare quel
nodo che ha profondità più bassa.
3 (1)
(2) 2
4
(3) 1
1
(4) 1
goal
(5) 1
(6) 1
(7) goal
56 AI Introduzione e Controllo
Invece di considerare solo la distanza dal goal,
noi consideriamo anche il "costo" nel raggiungere
il nodo N dalla radice.
Espandiamo quindi i nodi in ordine crescente di
f(n) = g(n) + h’(n)
Dove g(n) è la profondità del nodo e h'(n) la
distanza dal goal.
Scegliamo come nodo da espandere quello per
cui questa somma è più piccola.
In pratica cerchiamo di combinare i vantaggi della
ricerca in salita (efficienza) e della ricerca a costo
uniforme (ottimalità e completezza).
0+3 (1)
(2) 1+2
(3) 2+1
(4) 3+1
(5) 4+1
5+ 1
goal
57 AI Introduzione e Controllo
1+4 (6)
2+1 (7)
3+0 (8)
goal
Algoritmo A*:
1. Sia L una lista dei nodi iniziali del problema.
2. Sia n il nodo di L per cui g(n) + h'(n) è
minima. Se L è vuota fallisci;
3. Se n è il goal fermati e ritorna esso più la
strada percorsa per raggiungerlo
4. Altrimenti rimuovi n da L e aggiungi a L tutti i
nodi figli di n con label la strada percorsa
partendo dal nodo iniziale. Ritorna al passo 2
Nota: ancora una volta l'algoritmo non garantisce
di trovare la strada ottima. Nell'esempio, se il
nodo con label 5 fosse stato il goal sarebbe stato
trovato prima di quello sulla strada destra
(ottimale).
58 AI Introduzione e Controllo
ESEMPIO:
Il gioco del filetto f(n)=g(n)+h’(n) dove:
g(n) = profondità del nodo n;
h'(n) = numero di numeri nel posto scorretto
(1) f=0+4
2 8 3
1 6 4
7
5
f=6
2 8 3
1 6 4
7 5
f=4 (2)
2 8 3
1
4
7 6 5
f=5 (3)
2 8 3
1 4
7 6 5
f=6
8 3
2 1 4
7 6 5
f=6
2 8 3
1 6 4
7 5
f=5 (4)
2
3
1 8 4
7 6 5
f=7
2 8 3
7 1 4
6 5
f=5 (5)
2 3
1 8 4
7 6 5
f=5 (6)
1 2 3
8 4
7 6 5
f=5+0
1 2 3
8
4
7 6 5
59 AI Introduzione e Controllo
f=6
2 8 3
1 4
7 6 5
1 2 3
7 8 4
6 5
f=7
2 3
1 8 4
7 6 5
A* non garantisce di trovare la soluzione ottima
(dipende dalla funzione euristica).
Si supponga di indicare con h(n) la vera distanza
fra il nodo corrente e il goal.
La funzione euristica h'(n) è ottimistica se
abbiamo sempre che h'(n) <= h(n).
Tale funzione euristica è chiamata ammissibile.
Teorema:
Se h'(n) <= h(n) per ogni nodo, allora l'algoritmo
A* troverà sempre il nodo goal ottimale.
Ovviamente l'euristica perfetta h' = h è sempre
ammissibile.
Se h' = 0 otteniamo sempre una funzione
euristica ammissibile ⇒ ricerca breadh-first
(ovviamente la depth-first non lo sarà mai).
60 AI Introduzione e Controllo
Esempio:
Ricerca
con
ammissibile
una
funzione
0+3 (1)
(2) 1+2
(3) 2+1
3+1
4+1
5+ 1
goal
61 AI Introduzione e Controllo
1+2 (4)
2+1 (5)
3+0 (6)
goal
euristica
La scelta precedente per il gioco del filetto
(contare le tessere fuori posto h') è sempre
ammissibile perchè ogni mossa può ridurlo al più
di 1.
Si può pensare a un'altra euristica, ad esempio la
distanza spaziale. Per ogni tessera fuori posto si
calcola la distanza in termini di righe e colonne.
Poi si sommano tutte le distanze.
Esempio:
N:
6 2
3
4 7
8
5
1
Goal:
1
8
7
3
4
5
2
6
distanza di 1 = 4
distanza totale = h'* =4 + 0 + 2 +3 + 1 + 3 + 1 + 3
= 17
ammissibile anche essa in quanto ogni mossa
riesce al più a mettere a posto un elemento.
Poichè h'<=h'*<=h la migliore è h'*.
È meglio usare una funzione euristica con valori
più alti, a patto che sia ottimista.
62 AI Introduzione e Controllo
Inventare funzioni euristiche
Spesso il costo di una soluzione esatta per un
problema rilassato è una buona euristica per il
problema originale.
Se la definizione del problema è descritta in un
linguaggio formale è possibile costruire problemi
rilassati automaticamente.
Esempio: gioco del filetto
Descrizione: una tessera può muoversi dal
quadrato A al quadrato B se A è adiacente a B e
B è vuoto.
Problemi rilassati che rimuovono alcune
condizioni:
(a) una tessera può muoversi dal quadrato A al
quadrato B se A è adiacente a B.
(b) una tessera può muoversi dal quadrato A al
quadrato B se B è vuoto.
63 AI Introduzione e Controllo
Da alberi a grafi:
Abbiamo assunto fin qui che lo spazio di ricerca
sia un albero e non un grafo. Non è quindi
possibile raggiungere lo stesso nodo da strade
diverse.
L'assunzione è ovviamente semplicistica: si pensi
al gioco del filetto, ai missionari e cannibali ecc.
Come si estendono gli algoritmi precedenti per
trattare con i grafi?
Due liste:
Nodi espansi e rimossi dalla lista per evitare di
esaminarli nuovamente (nodi chiusi);
Nodi ancora da esaminare (nodi aperti).
A* che cerca in un grafo invece che in un
albero
Modifiche:
Aggiunta della lista dei nodi chiusi e assunzione
che g(n) valuta la distanza minima del nodo n dal
nodo di partenza.
64 AI Introduzione e Controllo
Algoritmo A* per grafi:
1. Sia La una lista aperta dei nodi iniziali del
problema.
2. Sia n il nodo di La per cui g(n) + h'(n) è
minima. Se La è vuota fallisci;
3. Se n è il goal fermati e ritorna esso più la
strada percorsa per raggiungerlo
4. Altrimenti rimuovi n da La, inseriscilo nella
lista dei nodi chiusi Lc e aggiungi a La tutti i
nodi figli di n con label la strada percorsa
partendo dal nodo iniziale. Se un nodo figlio è
già in La, non riaggiungerlo, ma aggiornalo
con la strada migliore che lo connette al nodo
iniziale. Se un nodo figlio è già in Lc, non
aggiungerlo a La, ma, se il suo costo è
migliore, aggiorna il suo costo e i costi dei
nodi già espansi che da lui dipendevano.
Ritorna al passo 2
65 AI Introduzione e Controllo
Esempio:
0 + 2 (1)
1 + 1 (2)
2 + 1 (4)
3 + 1 (6)
1 + 1 (3)
2 + 1 (5)
1 + 3 (8)
2 + 2 (9)
3 + 1 (7)
3+2
4+1
5+0
goal
4 + 1 (10)
3+1
4+1
4+0
goal
5+0
goal
66 AI Introduzione e Controllo
ALGORITMI COSTRUTTIVI e ALGORITMI DI
RICERCA LOCALE
Gli algoritmi costruttivi (visti fino ad ora) generano
una soluzione ex-novo aggiungendo ad una
situazione di partenza (vuota o iniziale) delle
componenti in un particolare ordine fino a
“costruire” la soluzione completa.
Gli algoritmi di ricerca locale partono da una
soluzione iniziale e iterativamente cercano di
rimpiazzare la soluzione corrente con una “migliore”
in un intorno della soluzione corrente. In questi casi
non interessa la “strada” per raggiungere l’obiettivo.
Diversi problemi (ad esempio, il problema delle 8
regine) hanno la proprietà che la descrizione
stessa dello stato contiene tutte le informazioni
necessarie per la soluzione (il cammino è
irrilevante).
In questo caso gli algoritmi con miglioramenti
iterativi spesso forniscono l’approccio più pratico.
Ad esempio, possiamo cominciare con tutte le
regine sulla scacchiera e poi spostarle per ridurre
il numero di attacchi.
67 AI Introduzione e Controllo
RICERCA LOCALE
La ricerca locale è basata sull’esplorazione iterativa
di “soluzioni vicine”, che possono migliorare la
soluzione corrente mediante modifiche locali.
Struttura dei “vicini” (neighborhood).
Una struttura dei “vicini” è una funzione F che
assegna a ogni soluzione s dell’insieme di soluzioni
S un insieme di soluzioni N(s) sottoinsieme di S.
La scelta della funzione F è fondamentale per
l’efficienza del sistema e definisce l’insieme delle
soluzioni che possono essere raggiunte da s in un
singolo passo di ricerca dell’algoritmo.
Tipicamente è definita implicitamente attraverso le
possibili mosse.
La soluzione trovata da un algoritmo di ricerca
locale non è detto sia ottima globalmente, ma può
essere ottima rispetto ai cambiamenti locali.
Massimo (minimo) locale
Un massimo locale è una soluzione s tale che per
qualunque s’ appartenente a N(s), data una
funzione di valutazione f, f(s) ≥ f(s’).
Quando
risolviamo
un
problema
di
massimizzazione (minimizzazione) cerchiamo un
massimo (minimo) globale sopt cioè tale che per
qualunque s, f(sopt) > f(s).
68 AI Introduzione e Controllo
Più è largo il neighborhood più è probabile che un
massimo locale sia anche un massimo globale (ma
ovviamente esiste un problema di complessità
computazionale). Quindi, più è largo un
neighborhood più aumenta la qualità della soluzione
L’algoritmo base a cui ci si riferisce è detto
“iterative improvement” (miglioramentio iterativo).
Tipicamente, tale algoritmo parte con una soluzione
di tentativo generata in modo casuale o mediante
un procedimento costruttivo e cerca di migliorare la
soluzione corrente muovendosi verso i vicini. Se fra
i vicini c’è una soluzione migliore, tale soluzione va
a rimpiazzare la corrente. Altrimenti termina in un
massimo (minimo) locale.
69 AI Introduzione e Controllo
Algoritmo più noto (Hill-climbing):
function HILL-CLIMBING (problem) returns a solution state
inputs: problem
local variables: current-node, next-node
current-node Ä MAKE-NODE(INITIAL-STATE(problem))
loop do
next-nodeÄ a highest-valued successor of current-node
if VALUE(next-node) < VALUE(current-node)
then return current-node
else current-node Ä next-node
end
Si noti che l’algoritmo non tiene traccia dell’albero di
ricerca.
Un modo semplice per capire questo algoritmo è di
immaginare che tutti gli stati facciano parte di una
superficie di un territorio. L’altezza dei punti
corrisponde alla loro funzione di valutazione.
Dobbiamo muoverci cercando le sommità più alte
tenendo conto solo dello stato corrente e dei
vicini immediati.
Hill climbing si muove verso i valori più alti (o bassi)
che corrispondono a massimi (o minimi) locali
Problema: l’algoritmo può incappare in un minimo
(massimo) locale di scarsa qualità
70 AI Introduzione e Controllo
Ha il limite di essere un metodo locale che non
valuta tutta la situazione, ma solo gli stati
abbastanza vicini a quello corrente.
L’algoritmo non gestisce un albero di ricerca, ma
solo lo stato e la sua valutazione.
PROBLEMI
Massimi locali
Stati migliori di tutti i vicini, ma peggiori di altri
stati che non sono nelle vicinanze. Il metodo ci
spinge verso il massimo locale, peggiorando la
situazione.
Pianori o Altopiani:
Zone piatte dello stato di ricerca in cui gli stati
vicini hanno tutti lo stesso valore. In quale
direzione muoversi (scelta casuale)?
Crinali:
È una zona più alta di quelle adiacenti verso cui
dovremmo andare, ma non possiamo andarci in
modo diretto. Dobbiamo quindi muoverci in
un'altra direzione per raggiungerlo.
Una possibile (semplice) soluzione: ripartire con
una nuova ricerca da una soluzione di partenza
random o generata in modo costruttivo. Si salva
poi la soluzione migliore dopo una serie di
tentativi (bound dovuto al tempo di CPU o
numero di iterazioni).
71 AI Introduzione e Controllo
META EURISTICHE
Si definiscono meta-euristiche l’insieme di algoritmi,
tecniche e studi relativi all’applicazione di criteri
euristici per risolvere problemi di ottimizzazione (e
quindi di migliorare la ricerca locale con criteri
abbastanza generali).
Ne citiamo alcuni (li approfondiremo con un
seminario)
ANT colony optimization:
ispirata al comportamento di colonie di insetti.
Tali insetti mostrano capacità globali nel trovare, ad
esempio, il cammino migliore per arrivare al cibo dal
formicaio (algoritmi di ricerca cooperativi)
Tabu search:
La sua caratteristica principale è l’utilizzo di una
memoria per guidare il processo di ricerca in modo
da evitare la ripetizione di stati già esplorati.
Algoritmi genetici:
Sono algoritmi evolutivi ispirati ai modelli
dell’evoluzione delle specie in natura. Utilizzano il
principio della selezione naturale che favorisce gli
individui di una popolazione che sono più adatti ad
uno specifico ambiente per sopravvivere e
riprodursi.
Ogni individuo rappresenta una soluzione con il
corrispondente valore della funzione di valutazione
(fitness). I tre principali operatori sono: selezione,
mutazione e ricombinazione.
72 AI Introduzione e Controllo
META EURISTICHE (Continua)
Simulated Annealing
Cerca di evitare il problema dei massimi locali,
seguendo in pratica la strategia in salita, ma ogni
tanto fa un passo che non porta a un incremento
in salita.
Quando rimaniamo bloccati in un massimo locale,
invece di cominciare di nuovo casualmente
potremmo permettere alla ricerca di fare alcuni
passi in discesa per evitare un massimo locale.
Ispirato al processo di raffreddamento dei metalli.
In pratica, ci suggerisce di esaminare, ogni tanto,
nella ricerca un nodo anche se sembra lontano
dalla soluzione.
73 AI Introduzione e Controllo
Ricerca in grafi AND/OR
Fino a questo momento abbiamo discusso
strategie di ricerca per grafi OR nei quali
vogliamo trovare un singolo cammino verso la
soluzione.
Il grafo (o albero) AND/OR risulta appropriato
quando si vogliono rappresentare problemi che si
possono risolvere scomponendoli in un insieme di
problemi più piccoli che andranno poi tutti risolti.
⇒ arco AND che deve puntare a un qualunque
numero di nodi successori che si devono tutti
risolvere per risolvere il nodo AND stesso.
Dal nodo AND possono anche partire rami OR
che indicano soluzioni alternative.
Esempio:
Obiettivo: munirsi di TV
Rubare TV
74 AI Introduzione e Controllo
Ottenere Denaro
Comprare TV
L’algoritmo di ricerca va opportunamente
modificato per essere in grado di trattare gli archi
AND.
In particolare, va opportunamente trattato il
cammino migliore.
Infatti:
A
(38)
(18)
B
C
(17)
D
(27)
(9)
E
F
G
(5)
(10)
(3)
H
I
(4) (15)
J
(10)
Ora dobbiamo calcolare che un nodo AND
necessita la soluzione di tutti i nodi figli.
Supponiamo che il costo di ogni arco sia 1.
Il nodo più promettente se preso singolarmente è
G che ha valore 3 per f' e che è parte dell'arco più
promettente G-H il cui costo totale è 9.
Ma questo arco non fa parte del cammino
migliore perchè è accoppiato all'arco I-J che ha
costo 27.
Il cammino che va da A a i nodi E e F passando
per B è migliore avendo costo 18.
Dunque il prossimo nodo da espandere va
cercato esaminando E e F.
75 AI Introduzione e Controllo
Algoritmo
di
riduzione
del
problema
(algoritmo semplificato dell’algoritmo AO*)
Introduciamo un nuovo valore: COSTO-LIMITE,
che se superato dal costo stimato di una
soluzione ci porta ad abbandonare la ricerca.
COSTO-LIMITE
anche se trovassimo una soluzione sarebbe
troppo alta per essere accettata.
76 AI Introduzione e Controllo
Algoritmo:
1) Inizializza il grafo al nodo iniziale;
2) Si intraprende il seguente ciclo finchè o al nodo
iniziale viene associata l'etichetta RISOLTO o il
suo costo supera COSTO-LIMITE:
(a) si attraversa il grafo, partendo dal nodo
iniziale e, percorrendo il miglior cammino
corrente, si accumula l'insieme dei nodi lungo
tale cammino che non sono ancora stati
espansi o etichettati come risolti.
(b) si sceglie uno di questi nodi e lo si
espande. Se non ci sono successori si
associa a tale nodo il valore di COSTOLIMITE. Altrimenti, si aggiungono al grafo i
suoi successori e per ognuno di essi si calcola
il valore di f' (utilizzando solo h' e ignorando
g). Se il valore di f' per un nodo risulta 0 lo si
marca come RISOLTO.
(c) Si modifica la stima f' del nodo appena
espanso in modo da tenere conto della nuova
informazione fornita dai successori e si
propaga all'indietro nel grafo tale modifica. Se
da un nodo parte un arco i cui discendenti
sono tutti etichettati con RISOLTO si etichetta
il nodo stesso con RISOLTO.
A ogni nodo che viene visitato risalendo nel
grafo si decide quale dei suoi archi uscenti è
più promettente e lo si marca come parte del
cammino migliore corrente: ciò può avere
come effetto che il cammino migliore corrente
cambi.
77 AI Introduzione e Controllo
Esempio:
Prima del passo 1
A
(5)
Prima del passo 2
A
(6)
(9)
D
B
C
(3)
(4)
(5)
Prima del passo 3
A
(11)
(9)
B
C
(3)
(4)
78 AI Introduzione e Controllo
D
(10)
E
F
(4)
(4)
Prima del passo 4
A
(12)
(6)
B
(10)
D
(4)
C
G
H
E
F
(5)
(7)
(4)
(4)
Alcune osservazioni sull’algoritmo:
Il cammino migliore da un nodo all'altro non è
sempre quello a minor costo. Ciò è dovuto alla
presenza di nodi AND per cui singoli cammini da
nodo a nodo non possono essere considerati
indipendentemente da altri cammini che passano
per nodi connessi con quelli originari attraverso
archi AND.
Esempio: Un cammino più lungo può essere
migliore
A
B
G
D
C
E
H
I
79 AI Introduzione e Controllo
J
F
Insolubile
I nodi sono espansi nell’ordine alfabetico. Il
cammino verso E da J è più lungo di quello che
passa per C, ma dal momento che qust'ultimo
dipende da D che è insolubile è migliore il
cammino che passa da J.
Inoltre alcuni sottoproblemi possono interagire.
Esempio:
A
D
C
E
(5)
(2)
Il grafo indica che per risolvere A si devono
risolvere sia C sia D. Ma poi considera
separatamente il problema di risolvere C e D. Se,
risolvendo prima D, E risulta essere il cammino
migliore risolverà E, mentre a livello globale
sarebbe stato più opportuno utilizzare C.
80 AI Introduzione e Controllo
TRASFORMAZIONE DI ALBERI AND/OR
IN ALBERI DI RICERCA:
g.
e.
i.
s → a.
c and e → a.
f → c.
g → c.
h → b.
i → b.
Goal: a and b
81 AI Introduzione e Controllo
ALBERO AND/OR:
a and b
a
s
b
c and e
h
i
SI
c
f
e
SI
g
SI
ALBERO DI RICERCA
ab
sb
ceb
feb
geb
eb
b
SI
Nota: non ha alcuna influenza, al fine del
raggiungimento della soluzione, l’ordine di
espansione dei golas in AND.
82 AI Introduzione e Controllo
ALTRO ESEMPIO:
FATTI:
F1: b(a).
F2: b(b).
F3: e(b).
F4: e(a).
F5: f(b).
R1: f(a) → a(X).
R2: b(X) and c(X) → a(X).
R3: d(Y) → c(Y).
R4: e(X) and f(X) → d(X).
R5: b(a) → a(a).
GOAL: a(X)
83 AI Introduzione e Controllo
ALBERO DI RICERCA BACKWARD:
a(X)
R1
{X/a}
f(a)
R2
R5
b(X),c(X)
F1 {X/a}
b(a)
F2 {X/b}
F1
fail
c(a)
R3
d(a)
R4
R3
d(b)
R4
e(a),f(a)
F4
f(a)
fail
84 AI Introduzione e Controllo
c(b)
e(b),f(b)
F3
f(b)
SI
X=b
SI
X=a
ALTRE TECNICHE EURISTICHE
SCELTA IN BASE AGLI OPERATORI
(regole, task inseriti in un’agenda):
a) Insita
nel
controllo
e
IMPLICITAMENTE dall’utente:
influenzata
Prolog: ordine testuale delle regole
OPS:
strategie in base alla
dell’antecedente (LEX MEA)
forma
b) Influenzata ESPLICITAMENTE dall’utente:
Attribuire alle regole dei valori di priorità
rappresentati come numeri interi; in questo
modo l’interprete selezionerà sempre la
regola applicabile a più alta priorità.
85 AI Introduzione e Controllo
ESEMPIO:
R1: IF <la temperatura è maggiore di 100 gradi>,
AND <la pressione ha valore p1>
THEN <attiva la valvola .....>
AND <segnala una situazione di allarme
all'operatore> --- priorità 10
R2: IF <la pressione ha valore p1>
THEN <attiva la procedura di funzionamento
normale PROC5> --- priorità 5.
PRIORITÀ DINAMICHE:
Fattori:
a) lo stato della memoria di lavoro;
b) la presenza di particolari regole applicabili;
c) la precedente esecuzione di regole correlate;
d) l'andamento dell’esecuzione per particolari
scelte fatte precedentemente.
PROBLEMI:
1) risulta particolarmente complesso individuare il
corretto valore di priorità;
2) l’attribuzione dei valori di priorità è oscura:
diventa dunque carente nel sistema la capacità
di spiegazione.
3) la modificabilità della base di conoscenza
diminuisce: controllo e conoscenza sul dominio
non separati; le regole presentano dipendenze
implicite.
86 AI Introduzione e Controllo
META-CONOSCENZA
=
CONOSCENZA SULLA CONOSCENZA
Può risolvere i problemi precedentemente citati
(vasta applicazione non solo per il controllo).
meta-regola:
MR1 "Usa regole che esprimono situazioni di
allarme prima di regole che esprimono
situazioni di funzionamento normale".
ESEMPI: Sistemi Esperti: Molgen, Neomycin,
Teiresias.
VANTAGGI:
a)
il sistema è maggiormente flessibile e
modificabile; un cambiamento nella strategia
di controllo implica semplicemente il
cambiamento di alcune meta-regole.
b) la strategia di controllo è semplice da capire e
descrivere.
c) potenti meccanismi di spiegazione del proprio
comportamento.
87 AI Introduzione e Controllo
TEIRESIAS:
META-CONOSCENZA
INFLUENZARE IL CONTROLLO
PER
Tale meta-conoscenza ha tre scopi fondamentali:
a) sono utilizzate meta-regole per definire
strategie di controllo;
b) sono utilizzati "modelli" per descrivere regole
di livello oggetto;
c) sono utilizzati metodi descrittivi espliciti per
descrivere la rappresentazione utilizzata e
dunque poterla modificare.
CONTROLLO:
Meta-Regola 1
IF <ci sono regole che menzionano........>
AND <ci sono regole che menzionano........>.
THEN <le prime dovrebbero essere eseguite
prima delle seconde> (FC=0.4).
Meta-Regola 2
IF <il paziente è......>
AND <ci sono regole che menzionano ...>
THEN <è certo che nessuna di esse
sarà utile ulteriormente> (FC=1).
meta-regola 1: ordine parziale sulle regole di
livello oggetto;
meta-regola 2: utilità di certe regole di livello
oggetto;
NOTA: La sintassi delle meta-regole e` identica a
quella di livello oggetto
88 AI Introduzione e Controllo
NUOVE FUNZIONI:
MENTIONS: serve per referenziare le regole di
livello oggetto;
UTILITY e BEFORE:
servono per influenzare la strategia di
controllo.
FUNZIONAMENTO:
1) Trova le regole di livello oggetto applicabili (L);
2) Trova le meta-regole associate (L’);
3) Valuta ogni meta-regola di L' e determina se è
applicabile per alcune regole di L;
4) Ordina o toglie elementi da L in accordo ai
criteri delle meta-regole;
5) Esegue ogni regola rimasta in L nell'ordine
ottenuto.
89 AI Introduzione e Controllo
META-CONOSCENZA PER IL CONTROLLO:
NUOVA ARCHITETTURA
Così si espande anche l'interprete:
INTERPRETE
O CONTROLLO
Matching
Selezione
Esecuzione
METAREGOLE
APPLICABILI
90 AI Introduzione e Controllo
MEMORIA
DI LAVORO
META-REGOLE O
META-OPERATORI