Agenti risolutori di problemi · 2016-01-10 · l‟IA come quella disciplina abbastanza recente...

26
Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Tesi di laurea Intelligenza Artificiale Agenti risolutori di problemi Anno accademico 2014/2015 relatore Ch.ma prof. Flora Amato candidato Carlo Milano matr. N46/1724

Transcript of Agenti risolutori di problemi · 2016-01-10 · l‟IA come quella disciplina abbastanza recente...

Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica

Tesi di laurea Intelligenza Artificiale

Agenti risolutori di problemi

Anno accademico 2014/2015

relatore Ch.ma prof. Flora Amato candidato Carlo Milano matr. N46/1724

L'intelligenza artificiale non può battere la stupidità naturale.

(Lemma di Sullivan)

A mia madre, che mi ha insegnato a guardare in alto rimanendo sempre coi piedi per terra.

1

INDICE

Introduzione 2 Capitolo 1 Nascita degli agenti 4

Capitolo 2 Struttura degli agenti 7

Capitolo 3 L’ambiente di un agente 13

Capitolo 4 Agenti risolutori di problemi 16

Capitolo 5 Problemi vari 20 Conclusioni e sviluppi futuri 22 Bibliografia 24

2

Introduzione

Prima di inoltrarci nei meandri degli agenti intelligenti è d‟uopo chiederci cosa sia

l‟intelligenza artificiale. Una breve risposta data nell‟immediato sarebbe completamente

errata. Divideremo, quindi, la risposta in quattro definizioni: pensare umanamente e

agire umanamente, pensare razionalmente e agire razionalmente. Le prime due usano

come metro di paragone la somiglianza alle azioni umane, mentre le seconde

( razionalmente ndr) usano come metro di paragone l‟intelligenza, ovvero quella che noi

definiamo razionalità. Volendo dare anche una definizione generica, possiamo definire

l‟IA come quella disciplina abbastanza recente che nel corso degli ultimi anni ha dato

un contributo notevole allo sviluppo dell‟ informatica. L‟intelligenza artificiale si occupa

di tutte quelle tecniche che consentono di progettare sistemi hardware e software atti a

fornire all‟elaboratore elettronico prestazioni che, a un osservatore comune,

sembrerebbero appartenere all‟intelligenza umana. Nel corso degli anni, questa disciplina

è stata influenzata da altre materie quali la filosofia, la matematica, la psicologia ecc.

Il termine Intelligenza Artificiale nacque nell‟estate del 1956 a Dartmouth durante un

workshop di due mesi. Durante tale soggiorno, una decina di scienziati preselezionati,

avrebbero dovuto descrivere meticolosamente ogni caratteristica delle informazioni

apprese in modo tale che potesse essere costruita una macchina per la simulazione di

ognuna di esse. Ivi due ricercatori, Newell e Simon, inventarono un programma che era in

grado di ragionare- il Logic Theorist- : “Un programma per computer che era capace di

pensare in maniera non numerica”, così l‟aveva definito Simon.

I primi anni di ricerca e studio nel campo dell‟intelligenza artificiale portarono tanti

successi e soddisfazioni. Ogni qualvolta un computer svolgeva una minima azione diversa

dal solito era per gli scienziati dell‟epoca un qualcosa di fenomenale. I primi ricercatori di

IA erano abbastanza sicuri delle loro potenzialità e dei loro futuri successi. Infatti gli

3

ottimi risultati non tardarono ad arrivare, in particolare nei primi anni ‟70 e ‟80. C‟erano

comunque due tipi di problemi che fino ad allora non erano stati ancora presi in

considerazione.

Uno riguardava i primi sistemi che non avevano alcuna conoscenza riguardo le proprie

elaborazioni; l‟altro, invece, riguardava il metodo usato per affrontare i problemi; fin da

primi anni si andava avanti per combinazioni di passi. Inizialmente ciò porto ad una

illusione circa l‟illimitata potenza computazionale dei sistemi di elaborazione.

In seguito ad una prima presa di coscienza da parte degli studiosi di IA, in particolare a

partire dagli anni ‟90, fu rivalutato il problema degli agenti intelligenti: sistemi software

in computer e/o reti che assistono gli utenti nell’esecuzione di attività legate all’uso delle

tecnologie computer-based (Maes, 2001). Una definizione di intelligenza che corrisponde

ad una visione moderna dell‟intelligenza artificiale è quella dell‟Enciclopedia Britannica:

“Qualità mentale che consiste nell‟abilità di apprendere dall‟esperienza, capace quindi di

adattarsi a nuove situazioni, comprendere e gestire concetti astratti e allo stesso tempo

utilizzare la conoscenza per agire sul proprio ambiente”. Quest‟ultima definizione è quella

che più si avvicina al concetto di agenti intelligenti; agenti che a lungo andare dovrebbero

permettere di progettare macchine con intelligenza superiore a quella umana. Ecco perché

osservando la figura sottostante, si può notare un notevole “Human progress”, di cui

l‟omino ne ignora i reali benefici, non essendo lui il soggetto principale di tale evoluzione.

4

Capitolo 1

1. Nascita degli agenti intelligenti

Uno degli ambienti che negli anni‟90 favorì lo sviluppo degli agenti fu Internet. Non è un

caso infatti che le tecnologie riguardanti l‟intelligenza artificiale siano le fondamenta di

motori di ricerca e aggregatori di siti web. In generale un agente intelligente (razionale)

può essere considerato come un sistema al cui interno possiamo trovare anche altri agenti

razionali indipendenti, con i quali l'agente stesso deve saper poi interagire. Un agente

percepisce l‟ambiente in cui si trova attraverso i sensori, per poi operare all‟interno dello

stesso mediante gli attuatori. I sensori sono dei dispositivi che permettono all'agente di

percepire le varie informazioni provenienti dall‟ambiente e dagli altri agenti del sistema.

Ecco l‟esempio di un agente:

Quando parleremo di percezione, però, faremo sempre riferimento al modo di indicare gli

ingessi di un agente in un determinato istante. Chiameremo, invece, percept sequence

l‟insieme delle informazioni ricevute dall‟agente durante il corso della sua “vita”.

5

La sequenza di percezioni, quindi, fino ad un determinato istante, può influenzare in

maniera decisiva la scelta di un agente. La corrispondenza matematica tra la sequenza e

l‟azione dell‟agente viene detta funzione agente. Quest‟ultima può essere intesa come una

grande tabella che sarebbe quasi infinita se non le assegnassimo noi un limite. Essa può

essere ricostruita mediante una serie di combinazioni, registrando poi come risultato finale

l‟azione scelta dall‟agente. La funzione agente viene implementata attraverso un

programma agente, il quale, però, è solo l‟implementazione concreta dell‟astratta

spiegazione matematica della funzione. Mentre un programma agente elabora i dati

provenienti dall‟ambiente e destinati allo stato corrente, la funzione agente elabora tutta la

sequenza percettiva, quindi l‟insieme dei dati prelevati dall‟ambiente e allocati in slot di

memoria. Alla luce di quanto appena detto possiamo concludere che un programma agente

non ha bisogno di una memoria per il suo funzionamento, cosa invece non vera per la

funzione che per essere usata deve usufruire di una memoria. Qui di seguito è mostrato un

esempio illustrativo di un “mondo dell‟aspirapolvere con due sole posizioni”.

La figura sovrastante si divide in due sezioni, la parte A che indica l‟agente

“aspirapolvere” e la parte B che indica la polvere. L‟agente ha libero arbitrio sulle scelte

da applicare, quindi allo stesso tempo può pulire come può non far nulla. Rifacendoci alla

definizioni date prima , una funzione agente per l‟esempio mostrato sopra potrebbe essere

la seguente: “ se trovi sporco pulisci, viceversa non fare nulla”.

6

Un programma agente che ben implementa la funzione agente descritta sopra è quello

mostrato qui di seguito:

L‟esempio è abbastanza chiaro, ma sorgono delle domande immediate circa la

correttezza dell‟algoritmo presentato. “È l‟unico algoritmo che si può implementare?”,

“Può essere implementato all‟interno di un piccolo agente?” e ancora “Quali sono gli

elementi che rendono un agente intelligente o non intelligente?” .

Le risposte a tutte queste domande saranno oggetto dei prossimi capitoli.

7

2. Struttura degli agenti

Nel capitolo precedente si è dato ampio spazio alla nascita degli agenti e al loro compito

all‟interno di un ambiente. In questo capitolo verrà spiegato nel dettaglio come si comporta

un agente intelligente. Un agente altro non è che la somma di un‟ architettura e di un

programma. Progettare il programma di un agente vuol dire scrivere una funzione che

implementa la corrispondenza dell‟agente dalle percezioni alle azioni. Il programma,

quindi, possiede un‟architettura, cioè un meccanismo di calcolo che può basarsi sia su

hardware che su software. Compito dell‟architettura è quello di fornire le percezioni

ottenute dai sensori, eseguire il programma e trasmettere le scelte al programma degli

attuatori. È ovvio che un programma debba essere adattato per una specifica architettura,

cioè se il nostro programma prevede la funzione „osservare’, si presuppone che la propria

architettura abbia gli occhi.

Come già detto in precedenza un programma agente riceve in ingesso la sola percezione

corrente a differenza della funzione che, invece, prende in ingresso l‟insieme di tutte le

percezioni. Quindi l‟agente deve tener traccia della sequenza di percezioni; il tutto avviene

all‟interno di una memoria. Si osservi lo schema di un agente semplice.

È possibile anche definire sistemi ad agenti cooperanti per applicazioni più complesse.

Un altro esempio di agente è quello di agente con tabella. Abbiamo già parlato di tabella in

occasione dell‟esempio sull‟aspirapolvere. In questo caso l‟agente utilizza la tabella come

una sorta di promemoria, al fine di memorizzare l‟intera sequenza delle percezioni. È

importante sottolineare che la tabella stessa viene specificata a priori, ergo nei passi

successivi essa non verrà mai aggiornata.

8

Sia M l‟insieme di tutte le possibili percezioni e T il tempo di vita dell‟agente ( quindi

l‟insieme di tutte le percezioni che esso riceverà), la tabella in esame dovrà essere

progettata per contenere al suo interno tT

tM ||

1 righe.

Questo metodo, da una parte presenta il vantaggio di poter essere progettato in maniera

semplice,efficace e soprattutto completa; dall‟altra, però, ci sono innumerevoli svantaggi.

Primo dei tanti è quello dell‟eccessivo numero di righe che la tabella deve contenere,

inoltre vi è un notevole dispendio di tempo per il progettista, il quale non avrebbe alcun

metodo specifico per riempire le righe anche se si trovasse dinanzi ad un ambiente

abbastanza piccolo. Infine nessun agente avrà mai il tempo necessario per apprendere le

righe in maniera corretta sfruttando la propria esperienza. Alla luce degli svantaggi appena

elencati, l‟intelligenza artificiale si prefigge il compito di implementare programmi che

forniscono un comportamento razionale con una piccola quantità di codice anziché con

una tabella di grosse dimensioni.

Questo obiettivo in altre discipline è stato raggiunto come nelle tabelle di radici quadrate

utilizzate dagli ingegneri negli anni‟70. Esse sono state poi surrogate da programmi

composti da poche righe che ben implementano il metodo di Newton nelle odierne

calcolatrici tascabili. Detto ciò, ad oggi, l‟intelligenza artificiale dispone dei mezzi

necessari per sviluppare sistemi intelligenti.

Vi sono quattro programmi agenti che stanno alla base di tutti i sistemi. Ciascuno di essi

connette tra loro determinate caratteristiche per dar luogo a delle azioni. Ecco di seguito

l‟elenco:

a) Agenti reattivi semplice

b) Agenti reattivi basati su modello

c) Agenti basati su obiettivi

d) Agenti basati sull’utilità

Faremo di seguito una panoramica generale degli agenti sopra elencati.

a) Gli agenti reattivi semplici selezionano le azioni in base alla percezione corrente, non

avendo alcuna considerazione di tutta la storia precedente. L‟esempio sull‟aspirapolvere

trattato nel capitolo precedente corrisponde ad un tipo di agente semplice.

Azioni semplici si verificano anche in casi più specifici, tipo l‟esempio del taxi

automatizzato dove occorrono degli input per compiere una determinata azione. Questa

regola è chiamata regola condizione-azione o anche if-then:

9

If macchina posta davanti frena then inizia a frenare. Tali regole consentono all‟agente di

interconnettere percezione-azione. Eccone un esempio:

I rettangoli indicano lo stato corrente interno del processo, mentre le figure ovali

rappresentano l‟insieme delle informazioni usate nel processo. Unico neo di questi agenti è

che possiedono un‟intelligenza limitata. Possono entrare in difetto se l'ambiente circostante

non è completamente osservabile. Un ambiente è osservabile se è possibile prendere la

decisione corretta in base alla sola percezione corrente. In questi casi, gli agenti razionali

semplici corrono il rischio di incappare in cicli infiniti (loop). Ad esempio, un‟ aspirapolvere

robot che torna indietro sui suoi passi se vede una mattonella pulita, potrebbe restare

inattivo nel caso in cui attorno a lui ci siano delle mattonelle pulite pur essendo la restante

superficie del pavimento sporca. Ciò accade in quanto l'agente razionale semplice non ha

memoria, ma soltanto una parziale visione dell‟ambiente esterno. Per risolvere questo

problema è necessario che l‟agente sia in grado di randomizzare le sue azioni, cioè

assegnare dei valori casuali in una data variabile.

b) A differenza di quelli semplici, gli agenti reattivi basati su modello hanno uno stato

interno che permette loro di mantenere le informazioni del mondo esterno non osservabili

nell‟istante corrente. Col trascorrere del tempo, però, è opportuno che venga aggiornata

l‟informazione di stato; ciò è reso possibile se l‟agente in questione tiene traccia sia delle

informazioni sull‟evoluzione dell‟ambiente che delle informazioni sull‟effetto che le sue

azioni hanno sul mondo. Ecco perché questi tipi di agente vengono detti basati su modello,

10

poiché essi sviluppano una teoria scientifica, quindi un modello circa l‟evoluzione del

mondo. Ecco di seguito l‟esempio di una struttura di agente basato su modello.

e relativo programma..

Come possiamo notare nell‟immagine sopra riportata, la funzione aggiorna-stato è quella

preposta alla creazione dello stato interno. Quest‟ultimo non deve effettuare una

descrizione minuziosa dell‟aspetto corrente del mondo. Un esempio per chiarire il

concetto potrebbe essere il seguente: consideriamo un taxi che si sta dirigendo verso una

data destinazione e che secondo una regola data ad un certo punto deve fermarsi per fare

carburante. L‟azione del dirigersi verso una destinazione corrisponde ad un aspetto dello

stato interno dell‟agente e non un aspetto dello stato del mondo. Avvalorando tale tesi

11

possiamo considerare l‟esempio fatto poc‟anzi del taxi, il quale potrebbe trovarsi nello

stesso istante allo stesso punto, ma con destinazione diversa da quella precedente.

c) Un altro caso interessante, sempre considerando l‟esempio del taxi, potrebbe essere

quello in cui il taxi appunto arrivato ad un incrocio, decide dove svoltare a seconda della

destinazione. In termini tecnici, occorre che l‟agente determini un obiettivo, cioè un goal

che ben descrive la situazione desiderata. Gli agenti che hanno un modello dell‟ambiente

e quindi un obiettivo da raggiungere sono detti agenti basati su obiettivi.

Agenti di questo tipo tengono traccia di un insieme di obiettivi selezionando poi l‟azione

che quanto prima li potrà soddisfare. Un agente siffatto potrebbe risultare come quello

meno efficiente tra quelli visti fino ad ora, ma in realtà esso è il più flessibile, dal

momento che la conoscenza che dirige le sue azioni è ben specificata ed è facilmente

modificabile.

Infatti se consideriamo l‟esempio della macchina e supponiamo che tutto d‟un tratto inizi a

piovere; a questo punto bisogna aggiornare la conoscenza dell‟agente considerato. Per un

agente reattivo occorre riscrivere tutte le regole situazione-azione, mentre per un agente

basato su obiettivo basta semplicemente rettificare la destinazione e impostarla come

nuovo goal da raggiungere.

d) Talvolta può accadere che nel soddisfare degli obiettivi, ci siano azioni più efficaci e

veloci rispetto ad altre. L‟agente deve decidere quali prendere in considerazione e quali

scartare. Questa operazione è resa possibile grazie ad una funzione di utilità che associa

ad uno stato obiettivo un numero reale che ne descrive il grado associato di “felicità” o in

modo tecnico di utilità. Agenti di questo tipo vengono detti agenti basati sull’utilità, i

quali presentano copiosi vantaggi rispetto agli agenti precedenti. Il maggiore vantaggio si

ha in particolare quando non si possono ricevere contemporaneamente più obiettivi. In

questi casi entra in gioco la funzione di utilità, preposta a specificare la priorità degli

obiettivi. Un altro vantaggio di questi tipi di agenti riguarda il concetto di utilità, usato

quando si hanno a disposizione vari obiettivi e nessuno di essi è raggiungibile per certo.

L‟utilità mette a paragone la probabilità di successo e l‟importanza degli obiettivi.

12

Ecco un esempio di un agente che si basa sull‟utilità, ma che possiede anche un modello

dell‟ambiente esterno.

Un agente basato sull‟utilità ha il compito fondamentale di massimizzare l‟utilità attesa

dei risultati, ovvero la media dell‟utilità di ogni risultato per la probabilità che

quest‟ultimo si verifichi.

13

3. L’ambiente di un agente

Definire un problema per un agente significa caratterizzare l‟ambiente in cui l‟agente

opera (ambiente operativo). Quando stiamo definendo l‟ambiente in cui l‟agente sta

operando, stiamo semplicemente specificando un problema inerente un agente. Detto in

altri termini stiamo dando una descrizione PEAS: acronimo di Performance

Environment Actuators Sensors. La specifica, quindi, che sta alla base della

progettazione di un agente razionale è proprio quella che si rifà al task environment,

cioè l‟ambiente operativo. Rifacendoci all‟ormai noto esempio dell‟agente “taxi

automatizzato” (ovviamente non realizzabile nella realtà) ecco la tabella che meglio

descrive i vari tipi di ambiente in cui esso può operare:

Osservando la figura sopra, possiamo notare come l‟ambiente in cui l‟agente “taxi” può

operare non sia univoco, bensì comprende strade, pedoni ecc. Oltre a quelli osservabili,

l‟agente potrebbe selezionare anche altri ambienti, andando specificare per esempio la

città in cui va a “operare”. Avremo, perciò, a disposizione altre informazioni come le

condizione meteorologiche dell‟ambiente oppure il tipo di guida o altro ancora.

Tecnicamente quando noi andiamo a specificare l‟ambiente dell‟agente, stiamo

semplificando la progettazione di quest‟ultimo.

14

Continuando ad analizzare la tabella si possono osservare le voci relative agli attuatori e

sensori. Gli attuatori sono il mezzo che l‟agente usa per interagire con l‟ambiente. Esempi

di attuatori possono essere freni e clacson. L‟altra voce è quella dei sensori, i quali

permettono all‟agente di percepire l‟ambiente e tutto ciò che lo comprende. Infine

osservando ancora la figura, notiamo telecamere e GPS, esempi di sensori. L‟ ambiente in

cui l‟agente opera può essere completamente o parzialmente osservabile. Esso sarà

completamente osservabile se l‟agente, grazie all‟azione dei sensori, ha pieno accesso

allo stato completo del mondo intorno all‟agente; indi per cui non occorre che l‟agente

memorizzi informazioni circa l‟ambiente.

Un ambiente, invece, si dirà parzialmente osservabile quando l‟agente non è capace di

percepire tutte le informazioni necessarie. Una causa potrebbe essere il cattivo

funzionamento dei sensori oppure rumori che vanno a inficiare negativamente sulla

percezione dei dati.

Poi abbiamo ambienti ad agente singolo e multi agente. Nei primi l‟agente opera da solo

o meglio si modella da solo, mentre nei sistemi multi-agenti (MAS) ci sono più agenti che

interagiscono tra loro mediante regole stabilite. Una di esse, per esempio, consiste nel fatto

che ad un agente non è dato sapere le informazioni di un altro agente. Riguardo la

predicibilità, invece, l‟ambiente può essere deterministico o stocastico. Si dice

deterministico se lo stato successivo dell‟ambiente può essere totalmente determinato a

partire dallo stato corrente e dall‟azione dell‟agente stesso, viceversa l‟ambiente sarà

stocastico. Un esempio di ambiente stocastico può essere il famoso “taxi” automatizzato,

dove non è possibile prevedere tutte le casistiche che potrebbero verificarsi come una

foratura della gomma oppure traffico improvviso. L‟agente aspirapolvere, invece, opera in

un ambiente quasi deterministico. Altre qualità di un ambiente sono la staticità e

dinamicità. Parleremo di ambiente dinamico se vi è una qualsiasi variazione dell‟ambiente

nel momento in cui un agente sta pensando, viceversa parliamo di ambiente statico. Se,

invece, si verifica una situazione in cui vi sono cambiamenti inerenti la valutazione della

prestazione dell‟agente, ma l‟ambiente col trascorrere del tempo non subisce alcuna

variazione , allora ci troviamo dinanzi ad un ambiente semidinamico.

15

Se noi infatti consideriamo l‟esempio dell‟ormai celebre “taxi automatizzato”, diremo che

la guida e lo stato sono continui, poiché variano con continuità al passare del tempo.

Affinché un agente possa analizzare un ambiente talvolta deve necessariamente ridurre la

complessità dell‟ambiente reale (ambiente continuo) in un ambiente più limitato

(ambiente discreto). Ovviamente in tutto ciò c‟è uno svantaggio di fondo da tenere in

considerazione, ovvero la crescente complessità dell‟algoritmo di decisione dovuta

all‟elaborazione dell'ambiente. Volendo essere più rigorosi, la distinzione

continuo/discreto non deve essere attribuita all‟ambiente, bensì allo stato dell‟ambiente.

Continuando con lo stesso rigore usato per le definizioni degli ambienti precedenti, diremo

che uno stato di conoscenza dell‟agente è noto se si conoscono i risultati per ognuna delle

azioni, in caso contrario (ignoto) l‟agente dovrà istruirsi in virtù delle decisioni future da

prendere sull‟ambiente. Per chiudere questa analisi approfondita sulle varie classi di

ambienti mancano ancora all‟appello gli ambienti episodico/sequenziale.

Nel primo (episodico) l‟esperienza dell‟agente è suddivisa in vari episodi atomici, in

ognuno dei quali l‟agente percepisce informazioni dall‟ambiente e poi compie una

determinata azione. Vengono detti atomici, perché, ogni episodio è del tutto indipendente

dagli altri. Gli ambienti sequenziali, invece, sono caratterizzati dal fatto che ogni

decisione può influenzare le altre.

Nella figura mostrata sopra si può osservare un esempio di rappresentazione atomica in

cui i due stati B e C identificano una scatola nera senza una struttura interna.

16

4. Agenti risolutori di problemi

Gli agenti risolutori di problemi sono agenti basati su obiettivi. Essi usano una

rappresentazione atomica, in cui ciascun stato dell‟ambiente ha una propria struttura

interna e non può essere scisso in altri stati. Lo scopo primario di questi agenti è quello di

massimizzare le prestazioni in funzione dell‟obiettivo che si deve raggiungere. Un

esempio pratico e veloce potrebbe essere l‟agente risolutore che viene utilizzato negli

attuali navigatori satellitari GPS. Essi sono adibiti a elaborare la rotta stradale più

efficiente tenendo conto della posizione attuale, della destinazione e altre informazioni

relative all'ambiente. Un altro esempio che possiamo considerare è quello di un agente che

sta trascorrendo delle vacanze ad Arad, città della Romania.Un agente siffatto presenta

prestazioni composte da vari fattori come: miglioramento della lingua, visita presso vari

posti ecc. Immaginiamo che l‟agente in vacanza ad Arad in un certo giorno debba partire

per Bucarest e che abbia già acquistato il biglietto. Alla luce di quanto appena detto esso

potrà scartare a priori tutta la sequenza di azioni che gli impedirebbe di arrivare a

Bucarest. Questo primo passo viene detto formulazione dell’obiettivo e si basa sulle

azioni che l‟agente deve tenere in considerazione per la risoluzione del problema (arrivare

a Bucarest). Un obiettivo è l‟insieme degli stati della realtà in cui esso viene

completamente soddisfatto. Compito finale dell‟agente è quello di raggiungere tale

obiettivo; a tal fine esso (oppure noi al posto suo) deve selezionare le azioni e gli stati da

intraprendere per il conseguimento dell‟obiettivo.

In un secondo momento l‟agente passa alla formulazione del problema, ovvero quel

processo che, considerato un certo obiettivo, seleziona le o la sequenza di azioni che

dovrebbero permettere il raggiungimento dell‟obiettivo posto. Tornando all‟esempio

dell‟agente in vacanza in Romania, l‟agente non saprà con certezza quale strada prendere,

tra le varie a disposizione, per arrivare a Bucarest. Esso, infatti, potrà decidere cosa fare

andando ad elaborare le azioni future che alla fine gli consentiranno di arrivare a stati noti.

Se ipotizziamo che l‟ambiente in cui si trova l‟agente disponga di stati con un numero

finito di azioni selezionabili, allora stiamo parlando di un ambiente discreto.

17

Inoltre supponiamo, anche, che l‟ambiente sia deterministico e quindi per ogni azione

avremo una sola soluzione. Durante questa fase l‟agente cerca di individuare la sequenza

di azioni che gli permette di raggiungere l‟obiettivo: operazione nota col nome di ricerca.

Un algoritmo di ricerca prende in ingresso un certo problema, inviando poi in output una

soluzione nella forma di sequenze di azioni. Pervenuto ad una soluzione, l‟agente può

realizzare o implementare le sequenze di azioni specifiche, completando la fase di

esecuzione. Riassumendo quanto appena detto, l‟operato dell‟agente si può schematizzare

in tre punti: formulazione, ricerca ed esecuzione. Ecco di seguito un esempio di agente

risolutore di problemi:

Si può notare che inizialmente l‟agente pone un obiettivo e il relativo problema, in seguito

effettua una ricerca sulla sequenza di azioni che può risolvere il problema stesso. Di solito

si seleziona la prima azione della sequenza. In ultima istanza esegue le azioni

singolarmente. Una volta completato il ciclo, si comincia daccapo ponendo un altro

obiettivo e un altro problema da risolvere.

18

Quanto al problema esso si divide in quattro parti:

1. Uno stato iniziale che indica la posizione dell‟agente

2. Una descrizione delle possibili azioni dell’agente,ciascuno delle quali viene

eseguita nello stato a dove con a si vuole identificare lo stato “a, AZIONI(a)”.

L‟altra descrizione nota come modello di transizione specifica l‟operato di

ciascuna azione. Essa è specificata da una funzione che elabora un certo risultato

dell‟azione c nello stato a.

Le prime due parti sopra specificate formano lo spazio degli stati del problema, cioè tutti

gli stati raggiungibili tramite una certa sequenza di azioni. Lo spazio dà luogo ad un grafo,

in cui i nodi indicano gli stati, mentre gli archi tra i nodi rappresentano le azioni. La

sequenza di stati che ne deriva prende il nome di cammino.

Esempio mappa del Canada in cui si possono notare nodo, archi e cammino.

19

Le altre due parti del problema sono:

3. Test obiettivo che indica se un dato stato può essere considerato come obiettivo o

meno. Vi sono anche casi in cui l‟obiettivo prevede un insieme di stati, in tal caso

il test deve solo verificare se lo stato considerato appartiene o meno a

quest‟insieme.

4. La funzione costo di cammino che attribuisce un certo costo numerico a ciascun

cammino del grafo. Il compito dell‟agente risolutore di problemi è quello di

selezionare una funzione di costo che ben rispecchia la sua misura di prestazione.

Ad esempio si potrebbe scegliere la funzione di costo in base al tempo.

Avendo descritto le componenti di un problema, non ci resta che dire qual è la soluzione

ottima dello stesso. Una soluzione in generale presuppone una sequenza di azioni che

parte dallo stato iniziale e arriva all‟obiettivo finale. La soluzione ottima, accennata

prima, sarà quella con il costo minimo tra tutte le altre. In tutti gli esempi citati riguardo

l‟agente che deve arrivare a Bucarest, non abbiamo considerato alcuni dettagli quali ad

esempio le condizioni meteorologiche, compagnia di viaggio e tanto altro; l‟azione del

tralasciare taluni dettagli viene detta astrazione inerente lo stato. Ciò di solito viene fatto,

perché sono poche le informazioni necessarie per prendere una certa decisione. Questo

processo implica vari livelli di astrazione. La velocità di scelta del processo sarà

direttamente proporzionale al livello di astrazione, inoltre al crescere del livello si

consumeranno sempre meno risorse per una decisione. C‟è da sottolineare che vi è un

limite superiore di questi livelli oltre il quale è possibile trascurare dettagli rilevanti ai fini

della scelta decisionale. Come dice un famoso proverbio, però, “talvolta il troppo

stroppia”, quindi fare analisi sempre più nel dettaglio non è una cosa positiva. L‟unica

alternativa è quella di scegliere il livello di astrazione ideale al fine di massimizzare

quanto più è possibile l‟efficacia di un processo decisionale. Infatti, dato un sistema di un

auto con guida automatica, è opportuno che il processo di decisione sia quanto più rapido

possibile. In sintesi, bisogna scegliere un livello di astrazione che assicuri al contempo

efficienza ed efficacia.

20

5. Problemi vari

“Credo che tra circa 50 anni sarà possibile programmare computer con una memoria di

un miliardo di byte in maniera tale che essi giochino il gioco dell’imitazione tanto bene

che una persona comune non avrà più del 70% di identificarli dopo 5 minuti di

interrogatorio”

(Computing machinery and intelligence, Turing 1950). Così asseriva mezzo secolo fa

Alan Turing, uno dei più grandi informatici del XX secolo; salvo poi ammettere in seguito

che ce ne sarebbero voluti “almeno 100 di anni”. Numeri a parte, l‟obiettivo ancora non è

stato raggiunto. A partire dal 1991, infatti, si tengono delle gare annuali tra programmi al

fine di raggiungere tale obiettivo, ma ad oggi la soluzione è ancora ignota.

Si propongono di seguito vari esempi di problemi con relative soluzioni. Essi si dividono

in problemi giocattolo, il cui scopo è quello di mettere a disposizione vari metodi

risolutivi e problemi del mondo reale, le cui soluzioni destano grande interesse alle

persone.

Il primo esempio che esaminiamo è quello del mondo dell‟aspirapolvere, già affrontato

nei capitoli precedenti. Possiamo suddividere il nostro problema giocattolo in stati, azioni,

modello di transizione, test obiettivo e costo di cammino.

Si osservi la figura sottostante e la relative descrizione del problema:

21

Dato che l‟agente può trovarsi in una delle due caselle e ciascuna delle quali può avere due

stati, sporco e pulito, si avranno, quindi, 2 x 22 = 8 stati possibili dell‟ambiente .

Ogni stato può avere al più tre azioni, andare a sinistra, destra e aspirare. Il test

obiettivo verifica che le caselle risultino pulite. Infine il costo di cammino che è uguale al

numero di passi che lo costituiscono, ovvero 1. Quindi arrivare alla soluzione finale

implica che si inizi dagli stati iniziali per poi proseguire con gli archi e raggiungere infine

degli stati puliti.

Un esempio di problema del mondo reale è quello della ricerca dell‟itinerario, anch‟esso

già analizzato nei capitoli precedenti.

Supponiamo che l‟itinerario per la gestione di un viaggio venga gestito da un sito web.

A guisa di come abbiamo trattato il toy problem, suddividiamo il problema nei suoi stati,

azioni, modello, test e costo di cammino. Ciascuno degli stati si troverà in un dato luogo

ad una certa ora. In aggiunta verranno tracciate anche informazioni aggiuntive come

viaggi precedenti, tariffe che vanno ad inficiare sul costo finale. Ogni azione consiste

nello spostarsi da una locazione all‟altra dopo un certa ora stabilita. Il test obiettivo

corrisponde all‟arrivo alla destinazione specificata inizialmente. Infine il costo di

cammino dipenderà da molteplici variabili quali tempi di attesa, orari, tipo di aereo ecc.

Se volessimo scendere nei particolari e adottare una soluzione ottima del problema in

esame, dovremmo prendere in considerazione altri parametri come piani di riserva e

prenotazioni aggiuntive su altri voli, quindi tutte possibili e valide alternative al piano

originale.

22

Conclusioni e sviluppi futuri

Uno dei problemi maggiormente affrontati inerenti l‟intelligenza artificiale è quello se in

futuro assisteremo o meno alla nascita di un‟intelligenza artificiale che possa eguagliare o

addirittura superare l‟intelligenza umana. Secondo aggiornamenti recenti, in Giappone

pare che un‟intelligenza artificiale molto potente abbia superato con esito positivo i test

d‟ingresso universitari, per di più i risultati ottenuti sono stati superiori a quelli degli

studenti. Numeri alla mano, l‟IA ha raggiunto un punteggio di 511 su 950 rispetto ad una

media degli studenti di 416 su 950 ( le risposte migliori sono state date in matematica e

storia). A tal proposito, il CEO di Facebook, Mark Zuckerberg, ha dichiarato di voler

sviluppare una IA entro una decina di anni. Quest‟ultima deve essere in grado di

“superare il livello umano in tutti i sensi principali”.

Questa nuova forma di intelligenza

avrà come fonte di alimentazione

l‟enorme mole di dati che compone

Facebook. La famosa applicazione di

Zuckerberg già in passato ha dato

segnali concreti con software capaci

di riconoscere struttura di oggetti e

persone all‟interno di una foto. Un

esempio di “Intelligenza artificiale Facebook” potrebbe essere quello di mostrare all‟IA

una foto che ritrae “una torre Jenga” e l‟intelligenza dopo una attenta analisi ci direbbe

quante probabilità ci sono che la torre possa cadere.

Anche altri colossi dell‟informatica come Apple, Google e Microsoft stanno investendo

nel campo dell‟intelligenza artificiale, ma la domanda principale non dovrebbe essere

tanto se entro la fine del secolo venga realizzata o meno un‟intelligenza artificiale, ma se

la sua eventuale nascita e sviluppo porterà con sé effetti negativi o positivi. Quando e se

avverrà una cosa del genere, ci troveremo comunque di fronte ad una svolta epocale, come

23

se ci stessimo preparando alla nascita di una nuova forma di vita, non umana bensì

artificiale.

Nell‟introduzione di quest‟elaborato è stata inserita appositamente un‟immagine che

rappresenta il progresso umano col passare del tempo. Pensare e rappresentare

l‟evoluzione dell‟uomo su di una linea retta non è corretto, altrettanto si direbbe per una

retta esponenziale, poiché se osservassimo attentamente quest‟ultima in un certo tratto,

essa ci risulterebbe uniforme. Ecco perché secondo Raymond Kurzweil, informatico e

statista statunitense, il progresso dell‟uomo deve essere rappresentato tramite curve a “S”.

Possiamo osservare dapprima una crescita lenta, poi man mano una rapida evoluzione ed

infine un livellamento che rappresenta il “il punto di maturità” della crescita evolutiva.

Oggi noi stiamo nella seconda fase, quindi possiamo concludere che nei prossimi decenni

la nostra società continuerà ad evolversi così tanto che ad un certo punto si raggiungerà il

punto di maturità. Dopodiché la vita sulla terra cambierà in maniera così veloce che noi a

stento ce ne accorgeremo. Mi piacerebbe concludere quest‟elaborato con una frase di

Martin Minsky, informatico e scienziato statunitense, che mi ha colpito particolarmente:

“The question is not whether intelligent machines can have emotions, but whether

machines can be intelligent without any emotions”.

24

Bibliografia

[1] Intelligenza Artificiale Intelligenza artificiale. Un approccio moderno, Volume 1, S.Russell

P.Norvig

[2] http://www.repstatic.it/content/nazionale/img/2013/10/25/123047651-e1893c92-c176-

4 e4e-af50-f4314ce195c5.jpg

[3] http://waitbutwhy.com/2015/01/artificial-intelligence-revolution-1.html

[4] Agenti intelligenti- Maria Simi 2014/2015.ppt

[5] Slides Intelligenza Artificiale, Vincenzo Cutello.ppt

[6] Introduzione all‟IA e agli agenti intelligenti – M. Simi 2006/2007.ppt

[7] Agenti intelligenti M.T. PAZIENZA a.a. 2009-2010.ppt

[8] http://www.tomshw.it/news/l-intelligenza-artificiale-passa-i-test-universitari-entro-10-

anni-alla-pari-con-gli-umani-71990

[9] http://www.okpedia.it/intelligenza_artificiale

[10] Ricerca di soluzioni a problemi M.T. PAZIENZA 2007/08.ppt