90
1 AI Introduzione e Controllo 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.

INTELLIGENZA ARTIFICIALE - lia.deis.unibo.itlia.deis.unibo.it/Courses/AI/Lucidi/strategie.pdf · Argomenti contro: • Ci sono cose che i computer non possono fare ... gram ( neg

Embed Size (px)

Citation preview

1 AI Introduzione e Controllo

INTELLIGENZA ARTIFICIALE

Il campo dell’Intelligenza Artificiale o AI(dall’inglese Artificial Intelligence) tenta di capire ecostruire entità intelligenti.

Nata nel 1956. Quale definizione di Intelligenza?Quale definizione di Intelligenza Artificiale?

Alcune definizioni:"È lo studio di come far fare ai calcolatori coseche, ora come ora, gli esseri umani fanno meglio"(definizione transitoria...., scacchi.....)

"È la costruzione di un manipolatore di simboliche è in grado di soddisfare il test di Turing"

Test di Turing:Interazione con un terminale in cui io posso faredomande e ottengo risposte. Dall'altra parte c’è ouna persona o un computer. Se dopo 30 minutinon sono in grado di distinguere fra persona ecomputer....

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.

2 AI Introduzione e Controllo

Questioni filosofiche legate all’IntelligenzaArtificiale:

AI debole: è possibile costruire macchine in modoche 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 chepensino intelligentemente? (che abbiano menticoscienti reali?)solleva alcuni dei problemi concettuali più difficilidi tutta la filosofia.

I fondamenti dell’IA sono:

- Filosofia;- Matematica (logica);- Psicologia;- Linguistica;- Ingegneria dei calcolatori.

3 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 comeelaboratore aritmetico. General Problem Solver,Programmi per il Gioco della Dama in torneo, RetiNeurali, 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), altrierano intrattabili (esplosione combinatoria). Lereti neurali erano inadeguate.

4 AI Introduzione e Controllo

- (1969-1979)Sistemi basati sulla conoscenza: la chiave delpotere?

Conoscenza intensiva su un dominio di ampiezzalimitata. 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 propagazioneall’indietro.Delusione sui sistemi basati sulla conoscenza.

- Eventi recenti e futuri sviluppiPiù 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 vafiltrata in modo intelligente.

5 AI Introduzione e Controllo

Intelligenza Artificiale: due grosse branche

MACCHINE INTELLIGENTI: si costruisconoprogrammi che raggiungono un alto livello dicompetenza nella conoscenza di problemiparticolari

approccio ingegneristico

Non ci si occupa di simulare l'attività umana diragionamento, ma di emularla selettivamente.

SCIENZA COGNITIVA: si cerca di modellare ilcomportamento umano e i suoi processi diinformazione

approccio di filosofi, psicologi, linguisti, biologi.

Il computer è un mezzo di sperimentazione.

Siamo ancora lontani dalla costruzione dellamacchina "intelligente", per cui ci si è limitati peradesso a problemi più semplici e trattabili.

6 AI Introduzione e Controllo

Categorie di Attività in Intelligenza Artificiale:

Attività Normali (ovvero come è possibile checose così semplici siano così complicate?):Processo del linguaggio naturale:

- Comprensione;- Generazione;- Traduzione.

Percezione:- Visione;- Linguaggio parlato.

Ragionamento di buon sensoControllo 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 medicaAnalisi finanziariaAnalisi scientifica ecc.

7 AI Introduzione e Controllo

L'Intelligenza Artificiale è una disciplina giovane enon ancora assestata.

Dopo una fase empirica si sono trovati alcuniprincipi astratti comuni.

Intelligenza Artificiale ha tre grosse aree:

1. Strategie di Ricerca2. Rappresentazione della Conoscenza3. Applicazioni

Visione simbolica e dichiarativa.

Alternative (sistemi sub-simbolici):Connessionismo, reti neurali;Brooks e la costruzione di piccoli sistemiartificiali reattivi (insetti).

Noi seguiremo principalmente la visione simbolicae dichiarativa (AI "classica").

I due approcci possono essere integrati.

8 AI Introduzione e Controllo

SISTEMI BASATI SULLA CONOSCENZA

Un sistema di Intelligenza Artificiale generalmenteesamina un largo numero di possibilità ecostruisce dinamicamente una soluzione.

"La potenza di un programma intelligente nelrisolvere un problema dipende primariamentedalla quantità e qualità di conoscenza chepossiede su tale problema". (Feigenbaum)

Il programma non è un insieme di istruzioniimmutabili che rappresentano la soluzione delproblema, ma un ambiente in cui:

* rappresentare* utilizzare* modificare

una base di conoscenza.

9 AI Introduzione e Controllo

PRINCIPI ARCHITETTURALI

* Ogni sistema basato sulla conoscenza deveriuscire ad esprimere due tipi di conoscenza:

Conoscenza sul dominio dell’applicazione(COSA);

Conoscenza su COME utilizzare taleconoscenza per risolvere problemi -CONTROLLO.

Questi due tipi di conoscenza dovrebberoessere tenuti SEPARATI:

ALTA MODULARITÀ

10 AI Introduzione e Controllo

PROGRAMMAZIONE DICHIARATIVA

PROGRAMMA=CONOSCENZA+CONTROLLO

* La conoscenza sul problema è espressaindipendentemente dal suo utilizzo (COSAnon COME);

* Alta modularità e flessibilità;

* I moderni linguaggi e AMBIENTI perIntelligenza Artificiale tendono a riprodurretale schema;

* Definire un ambiente (linguaggio) in taleschema significa definire come ilprogrammatore può esprimere la conoscenzae quale tipo di controllo può utilizzare;

* Problematiche di rappresentazione dellaconoscenza;

* Problematiche di organizzazione del problemae strategie di controllo;

* Linguaggi e Ambienti per Sistemi basati sullaconoscenza:

11 AI Introduzione e Controllo

DICHIARATIVO - PROCEDURALE

Esempio: Tracciare una circonferenza

DICHIARATIVO

La circonferenza è l'insieme dei punti equidistantida un dato punto detto centro.

PROCEDURALE

Per tracciare una circonferenza ........

Esempio: Ordinamento di una lista

DICHIARATIVO

"Il risultato dell'ordinamento di una lista vuota è lalista vuota"

"Il risultato dell'ordinamento di una lista L è L' sela lista L' è ordinata ed è una permutazione di L"

PROCEDURALE

"Controlla prima se la lista è vuota; se sì dai comerisultato la lista vuota"

"Altrimenti calcola una permutazione L' di L econtrolla se è ordinata; se sì termina dando comerisultato L', altrimenti calcola un'altrapermutazione di L etc...."

12 AI Introduzione e Controllo

VANTAGGI DELL’APPROCCIO DICHIARATIVO

a) ALTO LIVELLO:è più semplice impostare il problema (catenadi IF..THEN);

b) GENERALITÀ:posso usare la stessa conoscenza in differentimodi;

c) FLESSIBILITÀfacile modifica, debugging ecc.cambio del controllo

13 AI Introduzione e Controllo

UNA NUOVA MACCHINA VIRTUALE

COMPUTER

SISTEMAOPERATIVO

LINGUAGGIO DIPROGRAMMAZIONE

AMBIENTE perSISTEMI BASATI sulla

CONOSCENZA

ACQUISIZIONE

SPIEGAZIONE

INTERFACCIAUTENTE

BASE DICONOSCENZA

CONTROLLO

14 AI Introduzione e Controllo

Un altro esempio:Semplicissimo problema di diagnostica:prescrivere una medicina in base ai risultati di unesame di laboratorio.

GOAL: prescribe(Drug)cioè "prescrivere una medicina adeguata per undeterminato paziente".

FATTI: gram(neg).not(allergic(antb)).

REGOLE:1) gram ( neg ) --> id ( ecoli )."Se il risultato dell'esame è gram-negativo alloral'identità è enterium-coli "

2) gram ( pos ) --> id ( strep )."Se il risultato dell'esame è gram-positivo alloral'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 ilpaziente non è allergico a tale medicina, allora sipuò prescrivere tale medicina al paziente"

5) id ( ecoli ) --> ind ( antb )."Se l'identità è enterium-coli allora è bene indicareantibiotici"

15 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))

SIind(pen) ind(antb)

Act R3 Act R3 Act R5

id(strep) id(bact) id(ecoli)

Match R2 Match R1

Act R2 Act R1

gram(pos) gram(neg)

NO SI

or

Match R3{X/pen}

Match R5{X/antb}

id(strep) NO id(ecoli)

16 AI Introduzione e Controllo

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

17 AI Introduzione e Controllo

Alcune considerazioni sul particolareproblema (tipico problema di diagnosi):

* I fatti iniziali sono molto numerosi e dunque èbene domandarli selettivamente all'utentequando 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 diantibiotici.

====================================

18 AI Introduzione e Controllo

SESSIONE DI SPIEGAZIONE

Sys: È la coltura Graam positiva ?

User: WHY? < perchè è importante determinare taleinformazione? >.

Sys: Tale informazione è di aiuto per determinare se(R1) l'identità dell'organismo è streptococco.

User: WHY?

Sys: Tale informazione è di aiuto perchè per taleorganismo è 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 antibioticipoichè sono indicati per tale infezione (prem1) eil paziente non è allergico (prem2).

User: HOW Premessa 1 ? <come puoi concludere chesono indicati gli antibiotici?>

Sys: Ho utilizzato la regola R5: sono indicati antibioticipoichè l'organismo che ha causato l'infezione èecoli.

19 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’ thenbegin

write('il paziente è allergico allapenicillina?');read(Answer);if Answer='No' thenbegin

write('allora prescriverei unacura a base di penicillina');presc:=true

end;end;if not presc thenbegin

write('coltura Graam Negativa?');read(Answer);if Answer='Si' thenbegin

write('il paziente è allergicoagli antibiotici?');

read(Answer);if Answer='No' thenbegin

write('allora prescrivereiuna cura a base diantibiotici');presc:=true

end;end;

end;if not presc then

write('prescrizione impossibile'); end.

20 AI Introduzione e Controllo

SOLUZIONE DEL PROBLEMA COMERICERCA IN UNO SPAZIO DEGLI STATI:

Gran parte dei problemi di Intelligenza Artificialehanno la ricerca (o controllo) come componentefondamentale.

I problemi si possono modellare come Problemi diRicerca in uno spazio degli stati (Strategie diRicerca).

Spazio degli stati

Lo spazio degli stati è l’insieme di tutti glistati raggiungibili dallo stato iniziale con unaqualunque 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 sonodisponibili da parte dell’agente (Operatori chetrasformano uno stato in un altro o piùformalmente una funzione successore S(X) chericeve in ingresso uno stato e restituiscel’insieme degli stati raggiungibili).

Un cammino è una sequenza di azioni checonduce da uno stato a un altro.

21 AI Introduzione e Controllo

Esiste poi un Test OBIETTIVO per determinarese l’agente ha raggiunto il goal

La verifica può essere solo l’appartenenza dellostato raggiunto all’insieme dello stato (o deglistati) goal.

A volte lo stato obiettivo può essere decritto inmodo “astratto” attraverso proprietà (si pensi allostato di scacco matto).

Altri obiettivi (non solo raggiungere il goal, ma...):

* trovare la sequenza di operatori che arrivano algoal;

* trovare tutte le soluzioni;

* trovare una soluzione ottima.

In quest’ultimo caso vuol dire che una soluzionepuò essere preferibile a un’altra.

Una funzione costo di cammino assegna uncosto a un cammino (in gran parte dei casi qualesomma del costo delle azioni individuali lungo ilcammino).

22 AI Introduzione e Controllo

Discussione:

Misurare l’efficacia della ricerca:

1. Si riesce a trovare una soluzione?

2. È una buona soluzione? (con basso costo dicammino – costo in linea)

3. Qual è il costo della ricerca? (tempo per trovareuna soluzione – costo fuori linea)

Costo totale di ricerca = costo di cammino + costodi ricerca.

Scegliere stati e azioni Å L’importanzadell’astrazione

23 AI Introduzione e Controllo

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 G: 1 2 3 1 6 4 8 4 7 5 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

2 8 3 1 6 4 7 5

2 8 3 1 4 7 6 5

2 3 1 8 4 7 6 5

2 8 3 1 6 4 7 5

24 AI Introduzione e Controllo

Altri esempi:(problemi giocattolo e del mondo reale)

Il problema dei Missionari e dei Cannibali:3 missionari e 3 cannibali devono attraversare unfiume. C'è una sola barca che può contenere almassimo due persone. Per evitare di esseremangiati i missionari non devono mai esseremeno dei cannibali sulla stessa sponda (stati difallimento).

Stato: sequenza ordinata di tre numeri cherappresentano il numero di missionari, cannibali ebarche sulla sponda del fiume da cui sono partiti.Perciò lo stato iniziale è: (3,3,1) (notal’importanza dell’astrazione).

Operatori: gli operatori devono portare in barca 1missionario, 1 cannibale, 2 missionari, 2cannibali, 1 missionario e 1 cannibale.Al più 5 operatori (grazie all’astrazione sullo statoscelta).

Test Obiettivo: (0,0,0)

Costo di cammino: numero di traversate.

25 AI Introduzione e Controllo

La criptoaritmetica:

S E N D +M O R E =

____________________

M O N E Y

• Stati: un rompicapo di criptoaritmetica conlettere e numeri;

• Operatori: sostituisci tutte le stesse lettere conuna cifra che non compare nel rompicapo;

• Test obiettivo: il rompicapo contiene solo cifree rappresenta una somma corretta;

• Costo di cammino: 0

Il problema delle 8 regine

Inserire 8 regine su una scacchiera in modo chenon si mangino.

• Stati: qualsiasi configurazione da 0 a 8 reginesulla scacchiera;

• Operatori: aggiungi una regina in un qualsiasiquadrato;

• Test obiettivo: 8 regine sulla scacchiera,nessuna minacciata;

• Costo di cammino: zero.

26 AI Introduzione e Controllo

Altri esempi (proposti e da modellare comeproblemi di ricerca in uno spazio degli stati):

La torre di Hanoi

(1) (2) (3)

Spostare i cilindri concentrici da (1) a (3) nellastessa configurazione di (1) utilizzandoeventualmente anche (2). Un cilindro più grandenon può essere inserito su un cilindro più piccolo.

Il problema del commesso viaggiatore:Un commesso viaggiatore ha una lista di città chedeve visitare tutte una sola volta. Vi sono stradedirette fra ogni coppia di città. Si trovi la strada piùbreve che il commesso deve seguire percompiere un viaggo completo che inizi e temini inuna qualsiasi delle città.(esplosione combinatoria, per 10 città è 10!)

Il problema della scimmia e la banana:Afferrare una banana appesa al soffitto (avendo adisposizione una sedia e bastone).

27 AI Introduzione e Controllo

Il problema della capra, il lupo e il cavolo:Portare capra, lupo e cavolo dall’altra parte senzache si mangino (si mangiano se rimangonoassieme senza il conducente della barca). Nellabarca 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)

R R

T U O

E R A

Giochi: scacchi

28 AI Introduzione e Controllo

SCHEMA ARCHITETTURALE: SISTEMA DIPRODUZIONE

* 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 inbase al pattern-matching)

29 AI Introduzione e Controllo

ARCHITETTURA GENERALE:

INTERPRETEO CONTROLLO

MEMORIADI LAVORO

REGOLE OOPERATORI

REGOLEAPPLICABILI

MatchingSelezioneEsecuzione

30 AI Introduzione e Controllo

DUE MODALITÀ DI "RAGIONAMENTO"

FORWARD O DATA-DRIVEN:

* La memoria di lavoro nella sua configurazioneiniziale contiene la conoscenza iniziale sulproblema, cioè i fatti noti.

* Le regole di produzione applicabili sono quelle ilcui antecedente può fare matching con lamemoria di lavoro (F-rules).

* Ogni volta che una regola viene selezionata edeseguita nuovi fatti dimostrati vengono inseritinella memoria di lavoro.

* Il procedimento termina con successo quandonella memoria di lavoro viene inserito anche ilgoal da dimostrare (condizione di terminazione).

BACKWARD O GOAL-DRIVEN:

* La memoria di lavoro iniziale contiene il goal (o igoal) del problema.

* Le regole di produzione applicabili sono quelle ilcui conseguente può fare matching con lamemoria di lavoro (B-rules).

* Ogni volta che una regola viene selezionata edeseguita, nuovi subgoals da dimostrarevengono inseriti nella memoria di lavoro.

* Il procedimento termina con successo quandonella memoria di lavoro vengono inseriti fattinoti (CONDIZIONE DI TERMINAZIONE).

31 AI Introduzione e Controllo

QUANDO APPLICARE BACKWARD EQUANDO FORWARD:

* Esistono più Stati Iniziali o più Goals?

* Quale è il numero medio di rami generati da unsingolo nodo?

* Quale è la modalità di ragionamento piùnaturale? (spiegazione all'utente)

BIDIREZIONALE O MISTO:

• È la combinazione dei metodi descrittiprecedentemente;

• La memoria di lavoro viene suddivisa in dueparti l`una contenente i fatti e l'altra i goals osubgoals;

• Si applicano simultaneamente F-rules e B-rulesalle due parti di memoria di lavoro e si terminail procedimento con successo quando la partedi memoria di lavoro ricavata mediantebackward chaining è uguale o un sottoinsiemedi quella ricavata mediante (CONDIZIONE DITERMINAZIONE).

32 AI Introduzione e Controllo

Più precisamente:

Un agente con diverse opzioni immediate di esitosconosciuto può decidere cosa fare esaminandoprima le differenti sequenze possibili di azioni checonducono a stati di esito conosciuto scegliendo,poi, quella migliore.

Il processo di cercare tale sequenza è chiamatoricerca.

L’idea è quella di mantenere ed estendere uninsieme di sequenze soluzioni parziali.

È utile pensare al processo di ricerca come lacostruzione di un albero di ricerca i cui nodisono stati e i cui rami sono operatori.

Un algoritmo di ricerca prende come input unproblema e restituisce una soluzione nella formadi una sequenza di azioni.

Una volta che viene trovata la soluzione, le azionisuggerite possono essere realizzate.

Questa fase è chiamata esecuzione.

33 AI Introduzione e Controllo

STRATEGIE DI RICERCA

I problemi che i sistemi basati sulla conoscenzadevono risolvere sono non-deterministici (don’tknow)

In un certo istante più azioni possono esseresvolte (azioni: applicazioni di operatori)

STRATEGIA: è un'informazione sulla conoscenzache sarà applicata potendone invocare molteplici.

POSSIBILITÀNon utilizzare alcuna conoscenza sul dominio:applicare regole in modo arbitrario (strategie non-informate) e fare una ricerca ESAUSTIVA.

Impraticabile per problemi di una certacomplessità.

La strategia di controllo deve allora utilizzareCONOSCENZA EURISTICA SUL PROBLEMAper la selezione degli operatori applicabili:STRATEGIE INFORMATE

ESTREMO:La conoscenza sulla strategia è così completa daselezionare ogni volta la regola CORRETTA

REGIME IRREVOCABILE (ALTRIMENTI PERTENTATIVI)

34 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,

35 AI Introduzione e Controllo

Esempio: il MONDO A BLOCCHI (planning)

STATO INIZIALE

GOAL

A

C

B

A

B

C

Stato Iniziale:handempty. clear(b). clear(c).on(c,a). ontable(a). 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 ESSERERISOLTI SEPARATAMENTE perchèinteragiscono.

36 AI Introduzione e Controllo

Altre domande:

• Esiste interazione con l’utente (spiegazione,conoscenza incompleta)?

• Si possono ignorare dei passi? (come nelladimostrazione di teoremi)

• Si possono annullare dei passi (8-puzzle) o ilsistema è irricoverabile (scacchi)?

37 AI Introduzione e Controllo

SISTEMI DI PRODUZIONE MONOTONI:

L’applicazione di una regola R non invalida lapossibilità di applicare regole applicabili all'attodella selezione di R.

NON C'È NECESSITÀ DI BACKTRCKING

Esempio (logica-dimostratore di teoremi)

fatto: a.a → ea → 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 produzionenon-monotono in uno monotono (formulazione diGreen; formulazione di Kowakski). La trattazione,però, si complica notevolmente.

38 AI Introduzione e Controllo

Altri tipi di problemi:

Problema a stati singoli:Lo stato è sempre accessibile.L’agente conosce esattamente che cosa produceciascuna delle sue azioni e può calcolareesattamente in quale stato sarà dopo qualunquesequenza di azioni.

Problema a stati multipli:Lo stato non è completamente accessibile.L’agente deve ragionare su possibili stati chepotrebbe raggiungere.

In più: anche l’effetto delle azioni può esseresconosciuto o imprevisto.

Spesso risolvere questi problemi richiedecapacità di rilevamento durante la fase diesecuzione.

→ Agire nel mondo reale piuttosto che in un suomodello.

Tratteremo estesamente solo problemi a statisingoli.

39 AI Introduzione e Controllo

Cercare soluzioni

Generare sequenze di azioni.

Espansione: si parte da uno stato e applicando glioperatori (o la funzione successore) si generanonuovi stati.

Strategia di ricerca: ad ogni passo scegliere qualestato espandere.

Albero di ricerca: rappresenta l’espansione deglistati a partire dallo stato iniziale (la radicedell’albero).

Le foglie dell’albero rappresentano gli stati daespandere.

40 AI Introduzione e Controllo

STRATEGIE DI RICERCA

La scelta di quale stato espandere nell’albero diricerca 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.

41 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 altronodo è la profondità del genitore più 1.

ESPANDE sempre i nodi MENO PROFONDIdell'albero.

Nel caso peggiore, se abbiamo profondità d efattore di ramificazione b il numero massimo dinodi espansi nel caso peggiore sarà bd.(complessità temporale).1 + b + b2 + b3 +…+(bd – 1) --> bd

All’ultimo livello sottraiamo 1 perchè il goal nonviene ulteriormente espanso.

Questo valore coincide anche con la complessitàspaziale (numero di nodi che manteniamocontemporaneamente in memoria).

L'esplorazione dell'albero avviene tenendoCONTEMPORANEAMENTE aperte più strade.

42 AI Introduzione e Controllo

Tale strategia garantisce la COMPLETEZZA, maNON permette una EFFICIENTEIMPLEMENTAZIONE su sistemi mono-processore (architetture multi-processore).

In particolare, con profondità 10 e fattore diramificazione 10 dovremmo espandere 1010 nodi,(tempo 128 giorni e 1 terabyte di memoriaimmaginando che un nodo richieda 100 byte dimemoria e vengano espansi 1000 nodi alsecondo.

Il problema della memoria sembra essere il piùgrave.

Trova sempre il cammino a costo minimo se ilcosto coincide con la profondità (altrimentidovremmo utilizzare un’altra strategia cheespande sempre il nodo a costo minimo Åstrategia a costo uniforme).

43 AI Introduzione e Controllo

È completa e, a differenza della ricerca inampiezza, ottimale anche quando gli operatorinon hanno costi uniformi. (complessità temporalee spaziale uguale a quella in ampiezza).

n0

n1 n2 n3 n4

n11 n12 n13 n21 n22 n31 n32 n33 n41 n42

0

1 2 3 4

5 6 7 8 9 10 11 12 13 14

44 AI Introduzione e Controllo

DEPTH FIRST

ESPANDE per primi nodi PIÙ PROFONDI;

I nodi di UGUALE PROFONDITÀ vengonoselezionati ARBITRARIAMENTE (quelli più asinistra).

La ricerca in profondità richiede un’occupazionedi memoria molto modesta.

Per uno spazio degli stati con fattore diramificazione b e profondità massima d la ricercarichiede la memorizzazione di b*d nodi.

La complessità temporale è invece analoga aquella in ampiezza.

Nel caso peggiore, se abbiamo profondità d efattore di ramificazione b il numero massimo dinodi espansi nel caso peggiore sarà bd.(complessità temporale).

BACKTRACKING:

Cronologico ⇒ Intelligente

45 AI Introduzione e Controllo

n0

n1 n2 n3 n4

n11 n12 n13 n21 n22 n31 n32 n33 n41 n42

0

1 5 8 12

2 3 4 6 7 9 10 11 13 14

EFFICIENTE dal punto di vista implementativo:può essere memorizzata una sola strada allavolta (un unico stack)

Può essere NON-COMPLETA (possibili loops inpresenza di rami infiniti).

(INTERPRETE PROLOG).

46 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 percorsapartendo 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.

47 AI Introduzione e Controllo

ESEMPIO:n0

n1 n2 n3 n4

n11 n12 n13 n21GOAL

n22 n31 n32 n33 n41 n42

Depth-first:n0n1,n2,n3,n4n11,n12,n13,n2,n3,n4n11,n12,n13,n2,n3,n4n12,n13,n2,n3,n4n13,n2,n3,n4n2,n3,n4n21,n22,n3,n4 Successo

Breadh-first:n0n1,n2,n3,n4n2,n3,n4,n11,n12,n13n3,n4,n11,n12,n13,n21,n22n4,n11,n12,n13,n21,n22,n31,n32,n33n11,n12,n13,n21,n22,n31,n32,n33,n41,n42n12,n13,n21,n22,n31,n32,n33,n41,n42n13,n21,n22,n31,n32,n33,n41,n42n21,n22,n31,n32,n33,n41,n42 Successo

48 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à oun FALLIMENTO si considerano STRADEALTERNATIVE della stessa profondità (seesistono), poi minori di una unità e così via(BACKTRACKING).

Si possono stabilire limiti massimi di profondità(non necessariamente risolvono il problema dellacompletezza).

49 AI Introduzione e Controllo

AD APPROFONDIMENTO ITERATIVO

La ricerca ad approfondimento iterativo evita ilproblema di scegliere il limite di profonditàmassimo provando tutti i possibili limiti diprofondità.

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, maquesto non peggiora sensibilmente i tempi diesecuzione.

In particolare, il numero totale di espansioni è:(d+1)1 + (d)b + (d-1)b2 +…+ 3bd-2 + 2bd-1 +bd.

In generale è il preferito quando lo spazio diricerca è molto ampio.

50 AI Introduzione e Controllo

STRATEGIE INFORMATE

"L'intelligenza di un sistema non è misurabile intermini di capacità di ricerca, ma nella capacità diutilizzare conoscenza sul problema per eliminareil pericolo dell'esplosione combinatoria.

Se il sistema avesse un qualche controllosull'ordine nel quale vengono generate le possibilisoluzioni, sarebbe allora utile disporre questoordine in modo che le soluzioni vere e proprieabbiano un'alta possibilità di comparire prima .

L’intelligenza, per un sistema con capacità dielaborazione limitata consiste nella saggiascelta di cosa fare dopo.....".

Newell-Simon:I metodi di ricerca precedenti in uno spazio diprofondità d e fattore di ramificazione b risultanodi complessità proporzionale a bd per trovare ungoal in una delle foglie.

Questo è inaccettabile per problemi di una certacomplessità. Invece di espandere i nodi in modoqualunque utilizziamo conoscenza euristica suldominio (funzioni di valutazione) per deciderequale nodo espandere per primo.

Le funzioni di valutazione danno una stimacomputazionale dello sforzo per raggiungere lostato finale.

51 AI Introduzione e Controllo

Nota:

Il tempo speso per valutare mediante unafunzione euristica il nodo da espandere devecorrispondere a una riduzione nella dimensionedello spazio esplorato.

Trade-off fra tempo necessario nel risolvere ilproblema (livello base) e tempo speso neldecidere come risolvere il problema (meta-livello).

Le ricerche non informate non hanno attività dimeta-livello.

52 AI Introduzione e Controllo

PROBLEMI:

Come trovare le funzioni di valutazione corrette,cioè come si fa a valutare bene quale è il nodopiù "promettente"?

È difficile caratterizzare numericamente laconoscenza empirica sul problema.

Non sempre la scelta più ovvia è la migliore.

Esempio:

Scelta euristica: muoversi sempre per ridurre ladistanza dall'uscita.

Nel caso di questo labirinto sceglieremmo lastrada più lunga.

53 AI Introduzione e Controllo

Esempio: gioco del filetto

La distanza dal goal è stimata in base al numerodi caselle fuori posto:

1 2 37 8 46 5

Goal:1 2 38 47 6 5

Sinistra: distanza 2Destra: distanza 4Su: distanza 3

(non è detto che la distanza stimi esattamente ilnumero di mosse necessarie)

1 2 37 46 8 5

Distanza=3 ma in realtà sono necessarie 4 mosseper arrivare alla soluzione.

54 AI Introduzione e Controllo

RICERCA GREEDY (golosa): Cerca di muoversiverso 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 raggiugerlo4. Altrimenti rimuovi n da L e aggiungi a L tutti i

nodi figli di n con label la strada percorsapartendo dal nodo iniziale. Poi ordina tutta lalista L in base alla stima della distanzarelativa dal goal. Ritorna al passo 2

55 AI Introduzione e Controllo

Problemi di questo approccio:

La ricerca di questo tipo non è ottimale e puòessere incompleta (presenta gli stessi difetti dellaricerca in profondità).

Nel caso peggiore, se abbiamo profondità d efattore di ramificazione b il numero massimo dinodi espansi sarà bd. (complessità temporale).

Poichè, inoltre, tiene in memoria tutti i nodi lacomplessità spaziale coincide con quellatemporale.

Con una buona funzione euristica, la complessitàspaziale e temporale possono essere ridottesostanzialmente.

56 AI Introduzione e Controllo

Ricerca lungo il cammino migliore

La ricerca in salita non è detto che trovi lasoluzione migliore, ovvero il cammino miglioreper arrivare alla soluzione (si pensi all'esempiodel labirinto).

Questo perchè la tecnica best-first cerca ditrovare il più presto possibile un nodo condistanza 0 dal goal senza curarsi di trovare quelnodo che ha profondità più bassa.

3 (1)

4

1

goal

(2) 2

(3) 1

(4) 1

(5) 1

(6) 1

(7) goal

57 AI Introduzione e Controllo

Invece di considerare solo la distanza dal goal,noi consideriamo anche il "costo" nel raggiungereil nodo N dalla radice.

Espandiamo quindi i nodi in ordine crescente dif(n) = g(n) + h’(n)

Dove g(n) è la profondità del nodo e h'(n) ladistanza dal goal.

Scegliamo come nodo da espandere quello percui questa somma è più piccola.

In pratica cerchiamo di combinare i vantaggi dellaricerca in salita (efficienza) e della ricerca a costouniforme (ottimalità e completezza).

0+3 (1)

1+4 (6)

2+1 (7)(3) 2+1

(4) 3+1

(5) 4+1

5+ 1

goal

3+0 (8)

goal

(2) 1+2

58 AI Introduzione e Controllo

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 raggiungerlo4. Altrimenti rimuovi n da L e aggiungi a L tutti i

nodi figli di n con label la strada percorsapartendo dal nodo iniziale. Ritorna al passo 2

Nota: ancora una volta l'algoritmo non garantiscedi trovare la strada ottima. Nell'esempio, se ilnodo con label 5 fosse stato il goal sarebbe statotrovato prima di quello sulla strada destra(ottimale).

59 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+42 8 31 6 47 5

f=6 f=4 (2) f=62 8 3 2 8 3 2 8 31 6 4 1 4 1 6 47 5 7 6 5 7 5

f=5 (3) f=5 (4) f=62 8 3 2 3 2 8 3 1 4 1 8 4 1 47 6 5 7 6 5 7 6 5

f=6 f=7 f=5 (5) f=78 3 2 8 3 2 3 2 3

2 1 4 7 1 4 1 8 4 1 8 47 6 5 6 5 7 6 5 7 6 5

f=5 (6)1 2 3

8 47 6 5

f=5+01 2 3 1 2 38 4 7 8 47 6 5 6 5

60 AI Introduzione e Controllo

A* non garantisce di trovare la soluzione ottima(dipende dalla funzione euristica).

Si supponga di indicare con h(n) la vera distanzafra il nodo corrente e il goal.

La funzione euristica h'(n) è ottimistica seabbiamo sempre che h'(n) <= h(n).

Tale funzione euristica è chiamata ammissibile.

Teorema:Se h'(n) <= h(n) per ogni nodo, allora l'algoritmoA* troverà sempre il nodo goal ottimale.

Ovviamente l'euristica perfetta h' = h è sempreammissibile.

Se h' = 0 otteniamo sempre una funzioneeuristica ammissibile ⇒ ricerca breadh-first(ovviamente la depth-first non lo sarà mai).

61 AI Introduzione e Controllo

Esempio:Ricerca con una funzione euristicaammissibile

0+3 (1)

1+2 (4)

2+1 (5)(3) 2+1

3+1

4+1

5+ 1

goal

3+0 (6)

goal

(2) 1+2

62 AI Introduzione e Controllo

La scelta precedente per il gioco del filetto(contare le tessere fuori posto h') è sempreammissibile perchè ogni mossa può ridurlo al piùdi 1.

Si può pensare a un'altra euristica, ad esempio ladistanza spaziale. Per ogni tessera fuori posto sicalcola la distanza in termini di righe e colonne.Poi si sommano tutte le distanze.

Esempio:N:

6 2 83 5

4 7 1

Goal:1 2 38 47 6 5

distanza di 1 = 4distanza totale = h'* =4 + 0 + 2 +3 + 1 + 3 + 1 + 3= 17

ammissibile anche essa in quanto ogni mossariesce al più a mettere a posto un elemento.

Poichè h'<=h'*<=h la migliore è h'*.

È meglio usare una funzione euristica con valoripiù alti, a patto che sia ottimista.

63 AI Introduzione e Controllo

Inventare funzioni euristiche

Spesso il costo di una soluzione esatta per unproblema rilassato è una buona euristica per ilproblema originale.

Se la definizione del problema è descritta in unlinguaggio formale è possibile costruire problemirilassati automaticamente.

Esempio: gioco del filetto

Descrizione: una tessera può muoversi dalquadrato A al quadrato B se A è adiacente a B eB è vuoto.

Problemi rilassati che rimuovono alcunecondizioni:(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.

64 AI Introduzione e Controllo

Da alberi a grafi:

Abbiamo assunto fin qui che lo spazio di ricercasia un albero e non un grafo. Non è quindipossibile raggiungere lo stesso nodo da stradediverse.

L'assunzione è ovviamente semplicistica: si pensial gioco del filetto, ai missionari e cannibali ecc.

Come si estendono gli algoritmi precedenti pertrattare con i grafi?

Due liste:Nodi espansi e rimossi dalla lista per evitare diesaminarli nuovamente (nodi chiusi);Nodi ancora da esaminare (nodi aperti).

A* che cerca in un grafo invece che in unalbero

Modifiche:

Aggiunta della lista dei nodi chiusi e assunzioneche g(n) valuta la distanza minima del nodo n dalnodo di partenza.

65 AI Introduzione e Controllo

Algoritmo A* per grafi:

1. Sia La una lista aperta dei nodi iniziali delproblema.

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ù lastrada percorsa per raggiungerlo

4. Altrimenti rimuovi n da La, inseriscilo nellalista dei nodi chiusi Lc e aggiungi a La tutti inodi figli di n con label la strada percorsapartendo dal nodo iniziale. Se un nodo figlio ègià in La, non riaggiungerlo, ma aggiornalocon la strada migliore che lo connette al nodoiniziale. Se un nodo figlio è già in Lc, nonaggiungerlo a La, ma, se il suo costo èmigliore, aggiorna il suo costo e i costi deinodi già espansi che da lui dipendevano.

Ritorna al passo 2

66 AI Introduzione e Controllo

Esempio:

0 + 2 (1)

5 + 0

goal

2 + 1 (5)

4 + 1

1 + 1 (3)

3 + 1 (7)3 + 1 (6)

2 + 1 (4)

1 + 1 (2)

5 + 0goal

4 + 1

3 + 2

2 + 2 (9)

1 + 3 (8)

4 + 0goal

4 + 1 (10)3 + 1

67 AI Introduzione e Controllo

ALGORITMI COSTRUTTIVI e ALGORITMI DIRICERCA LOCALE

Gli algoritmi costruttivi (visti fino ad ora) generanouna soluzione ex-novo aggiungendo ad unasituazione di partenza (vuota o iniziale) dellecomponenti in un particolare ordine fino a“costruire” la soluzione completa.

Gli algoritmi di ricerca locale partono da unasoluzione iniziale e iterativamente cercano dirimpiazzare la soluzione corrente con una “migliore”in un intorno della soluzione corrente. In questi casinon interessa la “strada” per raggiungere l’obiettivo.

Diversi problemi (ad esempio, il problema delle 8regine) hanno la proprietà che la descrizionestessa dello stato contiene tutte le informazioninecessarie per la soluzione (il cammino èirrilevante).

In questo caso gli algoritmi con miglioramentiiterativi spesso forniscono l’approccio più pratico.

Ad esempio, possiamo cominciare con tutte leregine sulla scacchiera e poi spostarle per ridurreil numero di attacchi.

68 AI Introduzione e Controllo

RICERCA LOCALE

La ricerca locale è basata sull’esplorazione iterativadi “soluzioni vicine”, che possono migliorare lasoluzione corrente mediante modifiche locali.

Struttura dei “vicini” (neighborhood).Una struttura dei “vicini” è una funzione F cheassegna a ogni soluzione s dell’insieme di soluzioniS un insieme di soluzioni N(s) sottoinsieme di S.

La scelta della funzione F è fondamentale perl’efficienza del sistema e definisce l’insieme dellesoluzioni che possono essere raggiunte da s in unsingolo passo di ricerca dell’algoritmo.

Tipicamente è definita implicitamente attraverso lepossibili mosse.

La soluzione trovata da un algoritmo di ricercalocale non è detto sia ottima globalmente, ma puòessere ottima rispetto ai cambiamenti locali.

Massimo (minimo) locale

Un massimo locale è una soluzione s tale che perqualunque s’ appartenente a N(s), data unafunzione di valutazione f, f(s) ≥ f(s’).

Quando risolviamo un problema dimassimizzazione (minimizzazione) cerchiamo unmassimo (minimo) globale sopt cioè tale che perqualunque s, f(sopt) > f(s).

69 AI Introduzione e Controllo

Più è largo il neighborhood più è probabile che unmassimo locale sia anche un massimo globale (maovviamente esiste un problema di complessitàcomputazionale). Quindi, più è largo unneighborhood 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 soluzionedi tentativo generata in modo casuale o medianteun procedimento costruttivo e cerca di migliorare lasoluzione corrente muovendosi verso i vicini. Se frai vicini c’è una soluzione migliore, tale soluzione vaa rimpiazzare la corrente. Altrimenti termina in unmassimo (minimo) locale.

70 AI Introduzione e Controllo

Algoritmo più noto (Hill-climbing):

function HILL-CLIMBING (problem) returns a solution stateinputs: problemlocal variables: current-node, next-node

current-node Ä MAKE-NODE(INITIAL-STATE(problem))loop do

next-nodeÄ a highest-valued successor of current-nodeif VALUE(next-node) < VALUE(current-node)

then return current-nodeelse current-node Ä next-node

end

Si noti che l’algoritmo non tiene traccia dell’albero diricerca.

Un modo semplice per capire questo algoritmo è diimmaginare che tutti gli stati facciano parte di unasuperficie di un territorio. L’altezza dei punticorrisponde alla loro funzione di valutazione.

Dobbiamo muoverci cercando le sommità più altetenendo conto solo dello stato corrente e deivicini 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à

71 AI Introduzione e Controllo

Ha il limite di essere un metodo locale che nonvaluta tutta la situazione, ma solo gli statiabbastanza vicini a quello corrente.

L’algoritmo non gestisce un albero di ricerca, masolo lo stato e la sua valutazione.

PROBLEMI

Massimi localiStati migliori di tutti i vicini, ma peggiori di altristati che non sono nelle vicinanze. Il metodo cispinge verso il massimo locale, peggiorando lasituazione.

Pianori o Altopiani:Zone piatte dello stato di ricerca in cui gli stativicini hanno tutti lo stesso valore. In qualedirezione muoversi (scelta casuale)?

Crinali:È una zona più alta di quelle adiacenti verso cuidovremmo andare, ma non possiamo andarci inmodo diretto. Dobbiamo quindi muoverci inun'altra direzione per raggiungerlo.

Una possibile (semplice) soluzione: ripartire conuna nuova ricerca da una soluzione di partenzarandom o generata in modo costruttivo. Si salvapoi la soluzione migliore dopo una serie ditentativi (bound dovuto al tempo di CPU onumero di iterazioni).

72 AI Introduzione e Controllo

META EURISTICHE

Si definiscono meta-euristiche l’insieme di algoritmi,tecniche e studi relativi all’applicazione di criterieuristici per risolvere problemi di ottimizzazione (equindi di migliorare la ricerca locale con criteriabbastanza generali).

Ne citiamo alcuni (li approfondiremo con unseminario)

ANT colony optimization:ispirata al comportamento di colonie di insetti.Tali insetti mostrano capacità globali nel trovare, adesempio, il cammino migliore per arrivare al cibo dalformicaio (algoritmi di ricerca cooperativi)

Tabu search:La sua caratteristica principale è l’utilizzo di unamemoria per guidare il processo di ricerca in mododa evitare la ripetizione di stati già esplorati.

Algoritmi genetici:Sono algoritmi evolutivi ispirati ai modellidell’evoluzione delle specie in natura. Utilizzano ilprincipio della selezione naturale che favorisce gliindividui di una popolazione che sono più adatti aduno specifico ambiente per sopravvivere eriprodursi.Ogni individuo rappresenta una soluzione con ilcorrispondente valore della funzione di valutazione(fitness). I tre principali operatori sono: selezione,mutazione e ricombinazione.

73 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 ognitanto fa un passo che non porta a un incrementoin salita.

Quando rimaniamo bloccati in un massimo locale,invece di cominciare di nuovo casualmentepotremmo permettere alla ricerca di fare alcunipassi 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 lontanodalla soluzione.

74 AI Introduzione e Controllo

Ricerca in grafi AND/OR

Fino a questo momento abbiamo discussostrategie di ricerca per grafi OR nei qualivogliamo trovare un singolo cammino verso lasoluzione.

Il grafo (o albero) AND/OR risulta appropriatoquando si vogliono rappresentare problemi che sipossono risolvere scomponendoli in un insieme diproblemi più piccoli che andranno poi tutti risolti.

⇒ arco AND che deve puntare a un qualunquenumero di nodi successori che si devono tuttirisolvere per risolvere il nodo AND stesso.

Dal nodo AND possono anche partire rami ORche indicano soluzioni alternative.

Esempio:

Obiettivo: munirsi di TV

Rubare TV Ottenere Denaro Comprare TV

75 AI Introduzione e Controllo

L’algoritmo di ricerca va opportunamentemodificato per essere in grado di trattare gli archiAND.

In particolare, va opportunamente trattato ilcammino migliore.

Infatti:

A

JIHGFE

DCB

(38)(18)

(17) (9) (27)

(5) (10) (3) (4) (15) (10)

Ora dobbiamo calcolare che un nodo ANDnecessita 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 camminomigliore perchè è accoppiato all'arco I-J che hacosto 27.Il cammino che va da A a i nodi E e F passandoper B è migliore avendo costo 18.Dunque il prossimo nodo da espandere vacercato esaminando E e F.

76 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 unasoluzione ci porta ad abbandonare la ricerca.

COSTO-LIMITEanche se trovassimo una soluzione sarebbetroppo alta per essere accettata.

77 AI Introduzione e Controllo

Algoritmo:

1) Inizializza il grafo al nodo iniziale;2) Si intraprende il seguente ciclo finchè o al nodoiniziale viene associata l'etichetta RISOLTO o ilsuo costo supera COSTO-LIMITE:

(a) si attraversa il grafo, partendo dal nodoiniziale e, percorrendo il miglior camminocorrente, si accumula l'insieme dei nodi lungotale cammino che non sono ancora statiespansi o etichettati come risolti.(b) si sceglie uno di questi nodi e lo siespande. Se non ci sono successori siassocia a tale nodo il valore di COSTO-LIMITE. Altrimenti, si aggiungono al grafo isuoi successori e per ognuno di essi si calcolail valore di f' (utilizzando solo h' e ignorandog). Se il valore di f' per un nodo risulta 0 lo simarca come RISOLTO. (c) Si modifica la stima f' del nodo appenaespanso in modo da tenere conto della nuovainformazione fornita dai successori e sipropaga all'indietro nel grafo tale modifica. Seda un nodo parte un arco i cui discendentisono tutti etichettati con RISOLTO si etichettail nodo stesso con RISOLTO.A ogni nodo che viene visitato risalendo nelgrafo si decide quale dei suoi archi uscenti èpiù promettente e lo si marca come parte delcammino migliore corrente: ciò può averecome effetto che il cammino migliore correntecambi.

78 AI Introduzione e Controllo

Esempio:

Prima del passo 1

A (5)

Prima del passo 2

A

B C D

(3) (4) (5)

(9)

(6)

Prima del passo 3

A

B C D

(3) (4)

(10)

(9)

(11)

(4)(4)

E F

79 AI Introduzione e Controllo

Prima del passo 4A

B C D(6) (4) (10)

(12)

(4)(4)

E FG H

(5) (7)

Alcune osservazioni sull’algoritmo:Il cammino migliore da un nodo all'altro non èsempre quello a minor costo. Ciò è dovuto allapresenza di nodi AND per cui singoli cammini danodo a nodo non possono essere consideratiindipendentemente da altri cammini che passanoper nodi connessi con quelli originari attraversoarchi AND.

Esempio: Un cammino più lungo può esseremigliore

A

B C D

G H E F

I J

Insolubile

80 AI Introduzione e Controllo

I nodi sono espansi nell’ordine alfabetico. Ilcammino verso E da J è più lungo di quello chepassa per C, ma dal momento che qust'ultimodipende da D che è insolubile è migliore ilcammino che passa da J.

Inoltre alcuni sottoproblemi possono interagire.

Esempio:

A

C

D

E

(5) (2)

Il grafo indica che per risolvere A si devonorisolvere sia C sia D. Ma poi consideraseparatamente il problema di risolvere C e D. Se,risolvendo prima D, E risulta essere il camminomigliore risolverà E, mentre a livello globalesarebbe stato più opportuno utilizzare C.

81 AI Introduzione e Controllo

TRASFORMAZIONE DI ALBERI AND/ORIN ALBERI DI RICERCA:

g.e.i.

s → a.c and e → a.f → c.g → c.h → b.i → b.

Goal: a and b

82 AI Introduzione e Controllo

ALBERO AND/OR:a and b

a b

s c and e h i

SI

c e

f g SI

SI

ALBERO DI RICERCAa b

s b c e b

f e b g e b

e b

b

SI

Nota: non ha alcuna influenza, al fine delraggiungimento della soluzione, l’ordine diespansione dei golas in AND.

83 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)

84 AI Introduzione e Controllo

ALBERO DI RICERCA BACKWARD:

a(X)

R1 R2 R5 {X/a} f(a) b(X),c(X) b(a)

F1 {X/a} F2 {X/b} F1fail

c(a) c(b) SI X = a R3 R3

d(a) d(b)

R4 R4

e(a),f(a) e(b),f(b)

F4 F3

f(a) f(b)

fail SI X = b

85 AI Introduzione e Controllo

ALTRE TECNICHE EURISTICHE

SCELTA IN BASE AGLI OPERATORI(regole, task inseriti in un’agenda):

a) Insita nel controllo e influenzataIMPLICITAMENTE dall’utente:

Prolog: ordine testuale delle regole

OPS: strategie in base alla formadell’antecedente (LEX MEA)

b) Influenzata ESPLICITAMENTE dall’utente:

Attribuire alle regole dei valori di prioritàrappresentati come numeri interi; in questomodo l’interprete selezionerà sempre laregola applicabile a più alta priorità.

86 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 allarmeall'operatore> --- priorità 10

R2: IF <la pressione ha valore p1>THEN <attiva la procedura di funzionamentonormale 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 particolariscelte 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 conoscenzadiminuisce: controllo e conoscenza sul dominionon separati; le regole presentano dipendenzeimplicite.

87 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 diallarme prima di regole che esprimonosituazioni di funzionamento normale".

ESEMPI: Sistemi Esperti: Molgen, Neomycin,Teiresias.

VANTAGGI:

a) il sistema è maggiormente flessibile emodificabile; un cambiamento nella strategiadi controllo implica semplicemente ilcambiamento di alcune meta-regole.

b) la strategia di controllo è semplice da capire edescrivere.

c) potenti meccanismi di spiegazione del propriocomportamento.

88 AI Introduzione e Controllo

TEIRESIAS: META-CONOSCENZA PERINFLUENZARE IL CONTROLLO

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 edunque poterla modificare.

CONTROLLO:Meta-Regola 1IF <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 2IF <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 dilivello oggetto;meta-regola 2: utilità di certe regole di livellooggetto;

NOTA: La sintassi delle meta-regole e` identica aquella di livello oggetto

89 AI Introduzione e Controllo

NUOVE FUNZIONI:

MENTIONS: serve per referenziare le regole dilivello oggetto;

UTILITY e BEFORE:servono per influenzare la strategia dicontrollo.

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 aicriteri delle meta-regole;

5) Esegue ogni regola rimasta in L nell'ordineottenuto.

90 AI Introduzione e Controllo

META-CONOSCENZA PER IL CONTROLLO:NUOVA ARCHITETTURA

Così si espande anche l'interprete:

META-

INTERPRETEO CONTROLLO

MEMORIADI LAVORO

META-REGOLE O

META-OPERATORIREGOLEAPPLICABILI

MatchingSelezioneEsecuzione