introduzione all` intelligenza artificiale

Transcript

introduzione all` intelligenza artificiale
NOTE
I N T R O DU Z I O NE A LL ’ I N T E LL I G E N Z A
A R T I FI C IA L E
STEFANO DE LUCA
S E T TE M B R E 2 0 1 0
i
Introduzione all’Intelligenza Artificiale
Stefano De Luca
INTRODUZIONE
L‟obiettivo di queste note è essere di supporto al corso di intelligenza artificiale del corso di laurea
triennale di informatica. Vogliono quindi essere un supporto didattico più che un testo scientifico auto
contenuto; difficilmente quindi le note saranno esaustive, ma si rimanderà a fonti esterne più complete.
Una delle problematiche emerse durante gli anni di insegnamento, è che non esistono testi che trattino
l‟interezza della materia: o sono del tutto sbilanciati verso l‟intelligenza artificiale simbolica, basata su
logica, o trattano esclusivamente degli approcci sub simbolici basati su apprendimento automatico.
Queste note vogliono cercare di dare un‟introduzione alla materia mostrando pregi e difetti di entrambi
gli approcci, a nostro avviso necessari per realizzare sistemi che possano mostrare almeno un barlume
di intelligenza.
1
Introduzione all’Intelligenza Artificiale
Stefano De Luca
1 STORIA DELL’INTELLIGENZA ARTIFICIALE E SUA
DEFINIZIONE
1.1 NASCITA DELL’INTELLIGENZA ARTIFICIALE
Il desiderio di creare intelligenze simili a quelle umane, ma artificialmente prodotto, è antico quasi
quanto l‟uomo. Già nell‟antica Grecia, si riteneva che Efesto, dio del fuoco e della metallurgia, avesse
creato degli automi che lo aiutavano nel lavoro, e addirittura troviamo citato nell‟Iliade (Omero, 1997,
p. XVIII, 417-421), che:
due ancelle si affaticavano a sostenere il signore,
auree, simili a fanciulle vive;
avevano mente nel petto e avevano voce
e forza, sapevano l’opere per dono dei numi immortali;
queste si affaticavano a sostenere il signore;
Come riporta la Pugliara (Pugliara, 2002, p. 86), “il dio fabbro infonde dunque una sorta di „animazione
artificiale‟ che possiede la medesima collocazione corporea, il medesimo nome e le medesime
potenzialità dell‟animazione umana”.
Addirittura, “le ancelle d‟oro […] sono istruite dagli dei
immortali, cioè „sanno‟ come comportarsi grazie all‟intervento degli dei; ciò presuppone, da parte loro,
una capacità di apprendimento” (ibidem). Queste caratteristiche di animazione e capacità di
apprendimento sono elementi ancor oggi fondanti dell‟intelligenza artificiale.
Anche Aristotele (Aristotele, 1997, p. I A, 4, 1253b), ha inteso mostrare questa tensione verso strumenti
automatici intelligenti:
"Se ogni strumento riuscisse a compiere la sua funzione o dietro un comando o prevedendolo in anticipo, come si dice
delle statue di Dedalo o dei tripodi di Efesto... e le spole tessessero da sé e i plettri toccassero la cetra, i capi artigiani
non avrebbero davvero bisogno di subordinati, né i padroni di schiavi”
La storia è ricca di automi che hanno tentato di replicare quelli d‟oro di Efesto, tra cui uno addirittura di
Leonardo da Vinci, che progettò un automa cavaliere nel 1495. In alcuni casi il desiderio di esprimere
una vera intelligenza fece si che si produssero dei clamorosi falsi, il cui caso più noto è quello del Turco
Meccanico, un automa della seconda metà del 1700 che giocava splendidamente a scacchi. Solo dopo
molti anni si scoprì che vi era una persona dentro.
Tutti questi sono visti oggi come tentativi poetici o primordiali di cercare di ottenere degli artefatti che
mostrassero caratteristiche proprie dell‟umanità; tra questi l‟attenzione mirata principalmente ai robot
(sebbene il termine sia stato creato dallo scrittore ceco Karel Čapek soltanto nel 1920), a macchine che
sapessero giocare, e in particolare il più intellettuale dei giochi, quello degli scacchi.
Oggi si fa risalire la nascita dell‟intelligenza artificiale moderna a due lavori: quello di Alan Turing,
“Computing Machinery and Intelligence”(Turing, 1950), l‟articolo di Shannon (Shannon, 1950) sulla
programmazione di un programma di scacchi (un antenato del turco meccanico!). Siamo agli albori
dell‟informatica , ma è già viva l‟istanza di realizzare automi e programmi intelligenti.
È anche importante sottolineare come l‟intelligenza artificiale nasca sin dal primo momento come
l‟unione dell‟informatica e della filosofia. Non è un caso se il suo inventore sia un logico matematico
(Turing), che Shannon pubblichi il suo contributo su una rivista di filosofia. Questa necessità fu
rimarcata dopo qualche anno anche dal più che autorevole McCarthy nell‟articolo “Some philosophical
2
Introduzione all’Intelligenza Artificiale
Stefano De Luca
problems from the standpoint of artificial intelligence”(McCarthy & Hayes, Some philosophical problems from
the standpoint of artificial intelligence, 1969).
La fase iniziale degli anni ‟50 fu ricca di proposte estremamente innovative (come la proposta di
Turing di usare algoritmi evolutivi). Un momento particolarmente importante per questo settore fu la
conferenza di Dartmouth, tenutasi nel 1956 col nome di “Dartmouth Summer Research Conference on
Artificial Intelligence” presso il Dartmouth College, dove insegnava McCarthy, e supportata da altri
nomi importantissimi come quelli di Marvin Minsky, Nathaniel Rochester e Claude Shannon. Questa
conferenza durò circa un mese e servì come laboratorio e scambio di idee e quindi anche come
piattaforma di lancio di molti dei lavori successivi. Il termine stesso “intelligenza artificiale” venne
proprio coniato, da McCarthy, nella proposta della conferenza.
McCarthy, il cui nome abbiamo già trovato spesso, avrà modo di lasciare altre impronte fortissime
nell‟intelligenza artificiale: suo il linguaggio LISP (1958), in assoluto il linguaggio di programmazione
più importante nell‟intelligenza artificiale, e suo anche il situation calculus (1963), un sistema logico per la
rappresentazione e il calcolo delle pianificazioni.
1.2 DEFINIZIONE DI INTELLIGENZA ARTIFICIALE
Finora non abbiamo dato alcuna definizione di “intelligenza artificiale” (IA), e in realtà non è affatto
facile darne una di una qualche validità. Si potrebbe dire che l‟IA è il settore dell‟informatica che si
occupa di creare macchine intelligenti, ma rimane il problema aperto che nessuno ha definito in modo
oggettivo, o quanto meno ampiamente condiviso, cosa sia l‟intelligenza stessa.
In genere, si intende per intelligenza la capacità di completare compiti e risolvere problemi nuovi
(problem solving), eventualmente sorti durante il completamento del compito originale, nonché la capacità
di adattarsi all‟ambiente e ai suoi mutamenti. Si vuole aggiungere a questa definizione alquanto
pragmatica ed operativa anche la capacità della comprensione della realtà (qualunque cosa questa sia),
includendo in questa anche la comprensione del linguaggio. Oggi giorno si tende a superare questa
forma di intelligenza orientata alla parte intellettuale, e si parla anche di altre tipologie di intelligenze,
come l‟intelligenza emotiva, quella relazionale ed altre,
La versione informatica dovrebbe quindi essere capace di rispondere a questi compiti estremamente
complessi. La verità è che inizialmente l‟IA ha privilegiato gli aspetti più intellettuali e mentali
dell‟intelligenza, e in buona parte continua a farlo. Facciamo un esempio: se mentre scriviamo un
articolo, vogliamo rispondere all‟obiettivo di mangiare, potremo farlo pianificando di andare in cucina,
prendere il pane, del formaggio, tagliare il pane, tagliare il formaggio, porlo dentro al pane e finalmente
potremo mangiare. Questa è la cosiddetta attività di pianificazione, e rientra indiscutibilmente
nell‟ambito dell‟intelligenza artificiale (anche se è oggetto di altre branche dell‟informatica, ad es. della
ricerca operativa). Ma per operare un simile compito avremo bisogno di numerose altre abilità, che non
abbiamo nemmeno menzionato: dovremo avere un apparato visivo capace non solo di vedere ma anche
di distinguere la porta, il pavimento, il pane e gli altri oggetti utili; non solo, ma è anche importante saper
riconoscere ciò che è mangiabile da ciò che non lo è, e se il formaggio che abbiamo preso ha della
muffa, dovremo poterlo dire e scartare quel particolare pezzo di formaggio; dovremo essere capaci di
camminare, di aprire porte, tagliare il pane… Abbiamo quindi bisogno di una parte di intelligenza più
simbolica, capace di manipolare la pianificazione, ma anche di altri elementi, quelli meno simbolici,
come la visione e il movimento, che oggi sono riconosciuti cardine di un sistema veramente intelligente.
Si pensi che per una compiuta critica all‟eccessiva preponderanza della parte intellettuale si è iniziata a
fare solo verso la fine degli anni ‟80 e nei primi anni ‟90, con l‟articolo di Brooks, “Intelligence without
representation” (Brooks, 1991).
Vediamo storicamente le distinzioni che sono state fatte nell‟intendere il concetto di AI.
3
Introduzione all’Intelligenza Artificiale
Stefano De Luca
1.3 INTELLIGENZA ARTIFICIALE FORTE
Inizialmente l‟IA ha avuto una pozione, chiamata IA forte (strong artificial intelligence), che si è posta
l‟obiettivo di replicare esattamente l‟intelligenza umana, e in particolare la parte intellettuale
dell‟esecuzione dei compiti. Un magnifico paradigma letterario dell‟IA forte sono i robot di Asimov,
degli alter ego umani con cervelli positronici e capacità di essere senzienti tipicamente almeno
equivalenti a quelle umane, e spesso anche superiori.
FIGURA 1 UN ESEMPIO LETTERARIO DI IA FORTE
Il termine IA forte è stato introdotto dal filosofo della mente John Searle, che ha voluto dividere l‟IA in
due categorie (Searle J. , 1980):


IA forte: un‟intelligenza artificiale che può pensare e avere una mente;
IA debole: un‟intelligenza artificiale che agisce come se pensasse e avesse una mente.
Questa disputa, che oggi può sembrare alquanto distante dalla reale attività del ricercatore o dallo
specialista del settore, è stata considerata essenziale negli anni ‟70 e ‟80. Si consideri che tutta quasi l‟IA
del primo periodo (fino alla fine degli anni ‟80) ha abbracciato la posizione forte, e c‟è stato un forte
ostracismo alle altre varianti dell‟IA.
I punti su cui l‟IA forte si è concentrata maggiormente sono:




la rappresentazione della conoscenza, in particolare tramite logica matematica;
uso del ragionamento, e di meccanismi di dimostrazione automatica;
pianificazione, in particolare tramite l‟applicazione di algoritmi basati su grafi;
analisi del linguaggio naturale, nel tentativo di rendere automatica la comprensione e la produzione di
espressioni della lingua umana.
Si è dato invece poco spazio ad altri elementi oggi ritenuti essenziali, come:

4
l‟apprendimento automatico, per cui un sistema apprende a funzionare meglio sulla base delle esperienze
registrate (si potrebbe anche dire “vissute”, applicando una metafora che agli intelligenti artificiali viene
molto naturale);
Introduzione all’Intelligenza Artificiale
Stefano De Luca

capacità di riconoscere pattern, trend e classificare.
La tecnologia emblematica dell‟IA forte è stata quella dei sistemi esperti, ovvero insiemi di regole che
descrivono in forma logica (o approssimativamente tale) e sulla base dei quali un motore inferenziale
riesce a trarre deduzioni. L‟idea sottostante era che si potesse in questo modo riversare tutta la
conoscenza di un esperto di dominio in un sistema esperto, e questo avrebbe potuto essere equivalente
(e quindi sostituibile) ad una persona. Il problema reale non è stato tanto la scelta della tecnologia,
ancora oggi usata in forma più limitata, ma piuttosto questa promessa di poter avere tanti piccoli robot
asimoviani pronti a lavorare per noi.
Questa promessa, fatta con la tecnologia di quegli anni, e con computer a dir poco molto meno potenti
degli attuali, ha fatto si che il termine “Intelligenza artificiale” sia quasi del tutto inusabile, e rimanga
legato a promesse non mantenute che hanno portato al cosidetto “fallimento dell‟intelligenza
artificiale”. Una testimonianza interessante arriva dal giornalista scientifico John Horgan, noto per il
libro “The End of Science”. In un articolo di revisione, “The End of Science Revisited” (Horgan,
2004), parla proprio di questo fallimento:
“One would think that chaoplexologists would also be chastened by the failure of artificial intelligence to live up to
expectations. AI researchers have come up with some useful inventions, including devices that can translate languages,
recognize voices, judge loan applications, interpret cardiograms, and play chess. But these advances pale beside the
hopes that AI pioneers once had for their field. In 1984, I edited an article for IEEE Spectrum in which AI
expert Frederick Hayes-Roth predicted that expert systems were going to “usurp human roles” in professions such as
medicine, science, and the business world. When I called Hayes-Roth recently to ask how he thought his predictions
had held up, he cheerfully admitted that the field of expert systems, and AI generally, had stalled since their heyday in
the early 1980s.”
Rispetto a chi puntava a sostituire le persone, è evidente che la “nuova” intelligenza artificiale sia
“ferma” (stalled). I risultati che l‟IA oggi ha portato (e non aveva potuto portare in questa presunta era
d‟oro), negano fermamente questa posizione.
1.4 INTELLIGENZA ARTIFICIALE DEBOLE
La posizione dell‟intelligenza artificiale debole è una posizione utilitaristica. Non si pone più l‟obiettivo
di realizzare intelligenze simili a quelle umane, ma piuttosto realizzare software che possano sostituire
alcune funzioni umane, come ad es. la traduzione automatica di testi, o la previsione di atti criminali,
che sono senz‟altro funzioni complesse non immediatamente riconducibili a sistemi formali, ma la cui
soluzione non potrà far dire che “nuove intelligenze” vivono tra noi.
L‟importante è che il software agisca come un soggetto intelligente, non che lo sia davvero. Se un navigatore
satellitare ci consente di arrivare a destinazione, fornendoci informazioni con una voce sintetica
suadente, magari addirittura confrontandosi con il traffico reale sulle strade, a chi segue l‟IA debole non
importerà il modo in cui ci arriva, mentre un seguace dell‟IA forte potrà obiettare che non è così che le
persone ragionano. È curioso come questa obiezione si potrebbe applicare anche ai sistemi esperti, o ai
programmi che giocano a scacchi, ma questo non è stato fatto.
In conclusione, oggi questa polemica sembra fuori tempo e mal posta, basandosi su assunti sulla mente
umana assolutamente non scientifici, e tantomeno utili allo sviluppo del settore; ad es. vi fu una
posizione negativa verso le reti neurali artificiali, oggi una delle tecnologie di maggior successo.
5
Introduzione all’Intelligenza Artificiale
Stefano De Luca
Non si può però negare che la posizione di avere intelligenze almeno simili a quelle umane sia un
obiettivo ancora oggi assolutamente affascinante, e che la possibilità di avere i famosi robot di Asimov
è il sogno di chiunque si avvicini a questa materia.
1.5 TEST DI TURING
Una soluzione pragmatica e operativa al problema dell‟espressione dell‟intelligenza in una macchina è
stata avanzata da Turing nel già citato articolo (Turing, 1950). L‟idea è che una persona sa riconoscere
un sistema intelligente quando lo incontra, sia esso una persona o un automa; invece di proporre una
lunga e probabilmente controversa lista di caratteristiche richieste ad un computer per essere
considerato intelligente, Turing ha suggerito un test basato sull‟impossibilità di distinguerlo da entità
che lo sono indubbiamente: gli esseri umani.
Il computer passerà il test se un esaminatore umano, dopo aver posto alcune domande in forma scritta,
non sarà in grado di capire se le risposte provengono da una persona o no. Le domande possono essere
di qualsiasi tipo, e possono riguardare la conoscenza enciclopedica (“dimmi qual è la capitale di Italia”),
capacità di calcolo (“quanto fa 2 alla 3?”), esperienze anche emotive (“come ti senti quando guardi il
mare?”), domande con co-referenza (“ti piace la città di cui abbiamo già parlato?”) e qualsiasi altra cosa
venga in mente all‟esaminatore. Si noti che non sempre rispondere correttamente indurrà nella persona
l‟idea che l‟altro sia una persona, ad es. pochi di noi saprebbero dire qual è la radice quadrata di
102,21391, cosa invece semplice per un automa.
FIGURA 2 IL TEST DI TURING: UNA PERSONA ESAMINA UNA PERSONA E UN AUTOMA
Il computer quindi, dovrebbe possedere le seguenti capacità:

Interpretazione del linguaggio naturale per comunicare con l’esaminatore nel suo
linguaggio umano.

Rappresentazione della conoscenze per memorizzare quello che sa o sente.

Ragionamento automatico per utilizzare la conoscenza memorizzata in modo da
rispondere alle domande e trarre nuove conclusioni.

Apprendimento per adattarsi a nuove circostanze, individuare ed estrapolare pattern.
Bisogna dare credito a Turing di aver concepito un test che è rimasto significativo a distanza di
cinquant‟anni. Sono state fatte delle estensioni al test per introdurre elementi multimediali, ma
fondamentalmente il test ancora oggi è considerato piuttosto valido.
6
Introduzione all’Intelligenza Artificiale
Stefano De Luca
FIGURA 3 UNA VERSIONE DIVERTENTE DEL TEST DI TURING
Un tentativo di superare la posizione del test di Turing è stata fatta da Searle. Ipotizza l‟esistenza di una
stanza dove è possibile introdurre dei testi scritti in una lingua, e da dove verranno emessi dei testi
tradotti in un‟altra lingua, ad es. i testi originali in inglese e i testi tradotti in cinese. Un osservatore potrà
pensare che chi sta facendo le traduzioni, sia esso una persona o un automa, sia intelligente, mentre,
obietta Searle, questa operazione potrà essere eseguita in modo del tutto automatico e meccanico, ad es.
osservando un libro di regole o un dizionario. Non è necessario quindi che chi opera la traduzione
conosca la lingua di traduzione e nemmeno la lingua originale: l‟operazione non ha nulla di intelligente.
FIGURA 4 LA STANZA CINESE DI SEARLE
La posizione di Searle non ha l‟obiettivo di contestare il test di Turing in sé, quanto piuttosto l‟aderenza
di questo alla posizione dell‟IA forte.
A sua volta, però, anche le sue osservazioni sono attaccabili. Sostenere che sia possibile l‟operazione di
traduzione sulla base di un dizionario è un‟affermazione palesemente falsa (famosa la traduzione di “la
carne è debole e lo spirito è forte”, tradotta nella lingua finale come “il liquore è forte e la bistecca è
avariata”); si prende così un compito estremamente arduo e se ne ipotizza una soluzione banale, per
7
Introduzione all’Intelligenza Artificiale
Stefano De Luca
poter sostenere che non c‟è pensiero; ma se questa soluzione fosse possibile, il compito non sarebbe
complesso e non rientrerebbe nell‟ambito dell‟IA e della specificità dell‟intelligenza umana.
Rimane da analizzare il punto dell‟IA forte contestato da Searle: è necessario che i programmi
“pensino”, o quanto meno seguano gli stessi processi delle persone, per poter risolvere task tipici
dell‟intelligenza?
Il problema è particolarmente mal posto, in quanto non è stato stabilito ancora in modo in cui noi
persone “pensiamo”. Vi è addirittura chi mette in dubbio l‟esistenza del pensiero stesso diviso dai suoi
effetti operativi (ed è una delle posizioni prevalenti della moderna psicologia, quella del
comportamentismo e ancora di più la scuola cognitivo-comportamentale), o altri che fanno risalire alle
emozioni la base dell‟intelligenza (in questo caso è un medico di fama internazionale, Antonio Damasio
(Damasio, 2000)). La critica di Searle risulta quindi non indirizzabile al test di Turing, ma a letture di
questo che ne hanno senz‟altro travisato il senso.
Non vi sono i benché minimi fondamenti scientifici per supportare oggi (o al momento della sua
formulazione) la posizione dell‟IA forte; non rimane quindi che la posizione dell‟IA debole, che
potremmo oggi piuttosto redifinire come IA “pragmatica”. Questo non vuol dire che gli obiettivi
dell‟IA forte, come la creazione di robot e automi antropomorfi, debbano essere abbandonati, ma solo
che è possibile cercare di raggiungerli anche in altri modi diversi dall‟approccio al pensiero che però
risulta più simile a quello della scuola medievale della Scolastica che quello che deriva dai risultati reali
della medicina, della psicologia e della filosofia moderne.
Da ultimo, non si pensi che questa attenzione ai temi filosofici e più fondazionali sia eccessiva. L‟IA da
sempre usa e modella i propri tentativi su teorie filosofiche, e non è un caso, ad esempio, che la
grandissima parte dell‟intelligenza artificiale distribuita, i cosiddetti sistemi di agente (MAS – Multi Agent
Systems) si basino su una metodologia, la BDI – Belief Desire Intention, derivata dalle teorie
sull‟intenzionalità del filosofo della mente Daniel Dennett (Dennett, 1971), e addirittura tutti i linguaggi
di comunicazione tra agenti (KIF, FIPA ACL) si basino sul lavoro del filosofo del linguaggio Austin
(Austin, 1975)(Searle J. R., 1970).
1.6 USI DELL’IA
L‟obiettivo che ai nostri giorni si attribuisce all‟IA, o ai sistemi intelligenti, o anche ai sistemi adattativi, che
sono altri modi di chiamare questo settore, è quello di risolvere compiti che tipicamente siano associati
all‟intelligenza umana e, specie di recente, anche a quella animale.
Si va quindi da grandi obiettivi, come la realizzazione di automi del tutto equivalenti alle persone,
magari anche con una coscienza morale, o la creazione di nuove forme di intelligenza, fino a compiti
estremamente più pratici.
Alcuni di questi sono già oggi sotto gli occhi di tutti: il riconoscimento automatico di caratteri (OCR),
cosa che oggi diamo per scontata ma che già negli anni ‟70 e ‟80 sarebbero stati considerati
fantascienza; il riconoscimento e il rendering del parlato; sistemi di governo come i piloti automatici,
ormai così economici che vengono venduti anche sulle automobili di fascia media (Volkswagen Touran,
Toyota Prius) per parcheggiare da sé; addirittura veicoli che riescono a guidare automobili nel deserto,
senza alcun intervento umano; sistemi di profilazione utente che sanno quale musica farci ascoltare
sulla base del gradimento mostrato per i brani già ascoltati (LastFm.com, Bose LifeStyle 48); sistemi
capaci di capire i sentimenti espressi in un testo, come quelli positivi, negativi, di critica sociale etc.;
robot capaci di riconoscere le emozioni delle persone o di simularle tramite mimica facciale; sistemi che
prevedono con precisione il futuro consumo di energia elettrica, o di individuare gli elementi comuni
8
Introduzione all’Intelligenza Artificiale
Stefano De Luca
tra gli acquirenti di un prodotto; sistemi di supporto alle decisioni (DSS) capaci di aiutare gli
investigatori a riconoscere potenziali minacce (threath analysis) o individuare i colpevoli di un crimine
(Evodevo Mimesis) … è un elenco che potrebbe andare avanti a lungo, a dimostrazione che mai come
oggi l‟IA funziona e viene usata davvero, sempre più spesso e sempre meno con quell‟aura di “magia”
che accompagnava, ad es. , i primi programmi di scacchi. Ormai l‟IA non è più un settore di nicchia, ma
mainstream.
FIGURA 5PARCHEGGIO AUTOMATICO
FIGURA 6 HYPE CYCLE DI GARTNER, 2005
Vediamo qualche applicazione tipica dell‟intelligenza artificiale.
Robotica
Come abbiamo visto, l‟idea di avere dei simulacri umani, e sempre più spesso animali, è connaturato
all‟umanità, ed è uno dei settori maggiormente studiati dell‟IA. Probabilmente proprio per questo non è
facile definire in modo univoco cosa sia un robot. Normalmente si conviene che un robot sia un
sistema che agisce sull‟ambiente fisico. Lo standard ISO 8373, sui robot industriali, li definisce come:
9
Introduzione all’Intelligenza Artificiale
Stefano De Luca
“An automatically controlled, reprogrammable, multi-purpose manipulator programmable in three or more axes,
which may be either fixed in place or mobile for use in industrial automation applications.” (ISO 8373, 1994)
FIGURA 7 ROBOT AUTONOMI SU MARTE
La definizione è talmente ampia che anche un forno a micro-onde può essere considerato un robot.
Altri studiosi, come Alan Mackworth, presidente della American Association for Artificial Intelligence,
ritengono che i robot debbano avere uno scopo, ed agire in accordo ad esso. Rodney Brooks, che
abbiamo già incontrato ed è una delle figure più autorevoli dell‟intelligenza artificiale e della robotica in
particolare, ritiene che:
“To me a robot is something that has some physical effect on the world, but it does it based on how it senses the world
and how the world changes around it. You might say that a dishwasher is a robotic system for cleaning dishes but to
me it's not really. First it doesn't have any action outside the confines of its body. Secondly, it doesn't know about the
dishes inside it. It just spurts hot water around and swishes it and whether there are dishes there or not doesn't affect
its behaviour, so it's not really situated in the world, it's not understanding the world around it in any sort of
meaningful way.” (CBC News, 2007)
I punti critici, per Brooks, sono quindi la possibilità di agire sul mondo, la capacità
di percepirlo e, in definitiva essere situato nel mondo e percepirlo. È una
definizione eccellente, e la troveremo in seguito quando andremo a definire un
agente.
Forse la migliore definizione è però quella di Joseph Engelberger, considerato uno
dei padri della robotica, che, intervistato, disse “non so definire cosa sia un robot,
ma lo so riconoscere quando ne vedo uno”!
Usi dei robot sono veramente innumerevoli. Sono usati con successo nelle fabbriche (ed è opportuno
aggiungere che l‟Italia è una delle nazioni leader in questo settore) per l‟automazione industriale; sono
usati in ambito medico per supportare i medici nelle operazioni più complesse, come quelle al cervello,
per agire a distanza come forma estrema di tele-medicina; sono impiegati per la produzione di arti
artificiali (braccia, gambe…) e addirittura organi interni; vengono usati a scopi di esplorazione in
condizioni difficili, ad esempio in una tubatura di una fogna, o nel mare profondo, fino ad arrivare
10
Introduzione all’Intelligenza Artificiale
Stefano De Luca
all‟esplorazione dello spazio esterno, come è già successo con i robot rover Spirit e Opportunity inviati
su Marte dalla NASA1.
I robot vengono distinti in guidati da persone e autonomi, ovvero capaci di rispondere ad un obiettivo
(goal) e alle situazioni ambientali senza alcun intervento da persone.
Una competizione molto famosa è Robocup 2 , sponsorizzata da società giapponesi tra cui Sony.
L‟obiettivo della gara è mettere in competizione e, cosa più in importante, in comunicazione centri di
ricerca e aziende, con l‟obiettivo di creare robot autonomi capaci di giocare a calcio; vi sono diverse
categorie, andando da piccoli robot a robot umanoidi nelle forme e nelle dimensioni.
FIGURA 8 ROBOT NELLA COMPETIZIONE ROBOCUP
Una derivazione della Robocup molto interessante è la Rescue League3, il cui obiettivo è creare robot
capaci di dare supporto alle situazioni di disastri, come terremoti, incendi, attacchi terroristici; tra gli
obiettivi principali, la ricerca di persone ferite e la creazione di mappe delle zone e degli edifici
trasformatei dell‟evento disastroso. Robot sono impiegati sempre di più anche su scenari militari, sia per
operazioni di scouting che per vere e proprie azioni di difesa e supporto.
FIGURA 9RESCUE LEGUE: ROBOT PER LE EMEREGENZE
http://marsrover.nasa.gov/technology/is_autonomous_mobility.html
http://www.robocup.org/
3 http://www.robocuprescue.org/
1
2
11
Introduzione all’Intelligenza Artificiale
Stefano De Luca
Alcuni robot sono solo parzialmente autonomi, ma questo non vuol dire che non si richieda
intelligenza: il coordinamento di bracci meccanici, la traduzione di un ordine in azione concreta sono
spesso operazioni estremamente complesse.
Di recente la ricerca si è attestata su forme di robotica meno convenzionali. Tra queste vi è la possibilità
di lavorare con gruppi (o sciami) di robot (swarm robotics), in modo da distribuire il carico
dell‟intelligenza tra tutti i membri dello sciame: il paradigma è il comportamento degli insetti, in
particolare le formiche e le api.
Molta attenzione si sta prestando ai robot emozionali, capaci di esprimere emozioni tramite espressioni
del viso e del corpo, ed eventualmente anche riconoscere le stesse emozioni nelle persone.
Trattamento dei testi e del linguaggio
L‟obiettivo della comprensione del linguaggio è, e sarà ancora per molto, uno dei prioritari di tutta l‟IA.
Comprendere il linguaggio ha diversi obiettivi:

Permettere ad una persona di dare ordini a un sistema artificiale.

Capire un testo, e fornirne una sintesi: estrarne un riassunto (summarization), comprendere i
concetti principali espressi (classificazione) o i sentimenti di chi scrive (sentiment analysis, opionion
mining).

Tradurre un testo da una lingua all‟altra.

Trovare elementi ricorrenti tra testi, usato anche per riconoscere che un testo è di una data
persona.

Poter ricercare testi (ma anche la parte parlata di oggetti multimediali come i film) non più sulla
base dei termini contenuti ma a partire dal significato, sia quello implicito contenuto nel testo
che eventualmente correlabile (ad es. trovare la Divina Commedia o l‟Orlando Furioso a partire
dalla ricerca “capolavori italiani”).

Trovare i termini e i concetti correlati ad un argomento dato: fornendo il tema di ricerca “Alfa
Romeo”, si potranno trovare temi come “velocità”, “passione”, “FIAT”, “corse” e così via; si
potrà creare una nuvola di concetti, che esprimerà meglio la semantica dei termini dati. Questa
operazione rientra nella categoria del text mining.

Poter condurre conversazioni, come nei chatbot, agenti che si collegano ad una chat e riescono
ad interagire con gli altri utenti, o negli NPC – Non-Player Character, i personaggi di un gioco non
controllati da un giocatore, da cui vogliamo sempre più naturalezza e interattività.
Analisi dei database (Knowledge Discovery in Database, Data Mining)
Se ad una persona vengono mostrati molti dati, è del tutto naturale che riesca a scoprire regolarità,
pattern e riconoscere alcune regole sottostanti alla creazione dell‟insieme di informazioni;
eventualmente si potrà cercare di capire quale sarà la curva tendenziale degli eventi, ad es. che tipo di
libro comprerà una persona. Questi sono proprio i temi che affronta l‟estrazione di conoscenza dalle
basi dati, o Knowledge Discovery in Database, più spesso chiamata Data Mining, l‟operazione del minatore
che estrae a colpi di piccone la conoscenza nascosta.
Il data mining viene usato regolarmente da organizzazioni di vendita, in particolare da parte della
grande distribuzione organizzata come i supermercati, o le aziende di telecomunicazioni, o le banche.
L‟obiettivo può essere il riconoscimento di un gruppo omogeneo di consumatori, ad esempio per
12
Introduzione all’Intelligenza Artificiale
Stefano De Luca
scegliere un gruppo su cui attivare una campagna promozionale; il modo migliore di vendere un
prodotto accostandolo ad un altro; la previsione di vendita di un particolare acquirente, che si potrà
concretizzare in offerte specifiche e sconti personalizzati; la possibilità di interesse di un prodotto
ancora nella sua fase iniziale di ideazione.
Il data mining permette anche di riconoscere situazioni criminali, come le frodi o possibili attentati. Un
caso di successo è quello della VISA che ha usato tecniche di data mining (in particolare le reti neurali)
per l‟antifrode:
"Credit card fraud costs the industry about a billion dollars a year, or 7 cents out of every $100 spent on plastic. But
that is down significantly from its peak about a decade ago, Sorrentino says, in large part because of powerful
technology that can recognize unusual spending patterns.” (The Washington Post, 2006)
Giochi
L‟umanità gioca da sempre, e sarebbe stato impossibile che l‟IA non fosse stata applicata, sin dai primi
anni, alla produzione di giochi e giocatori artificiali.
Inizialmente l‟attenzione si è concentrata sui giochi da tavolo, affrontando quelli più semplici, come la
dama, per poi passare a giochi che hanno una parte di alea come il backgammon, e tentando più volte
con i giochi più difficili, come gli scacchi e il go.
Tutti questi giochi sono stati “risolti”, ovvero i programmi artificiali giocano al livello dei campioni del
mondo, meno il go, che ancora resiste anche grazie al fatto che si gioca su una scacchiera 19x19, che fa
esplodere in modo combinatorio le mosse possibili.
FIGURA 10 LA SCACCHIERA DEL BACKGAMMON E DEL GO
Fece particolare impressione quando un programma scritto da Hans Berliner vinse, nel 1979, il
campione del mondo, l‟italiano Luigi Villa. Era già stato prodotto un software capace di battere il
campione del mondo di dama, ma non si pensava che fosse possibile per un software trattare con
l‟incertezza data dall‟uso dei dati, e della capacità di gestire il rischio.
Per gli scacchi, innumerevoli scienziati hanno lavorato per costruire programmi sempre più forti,
producendo una grandissima quantità di teoria usata in applicazioni anche molto lontane dai giochi. Nel
1997, un programma dell‟IBM, Deep Blue, su un hardware dedicato, sconfisse il campione del mondo
Garry Kasparov, sebbene ci siano numerosi dubbi sulla realtà della sconfitta. Già l‟anno successivo un
software commerciale, su un normale computer, sconfisse l‟allora vicecampione del mondo. Ormai
13
Introduzione all’Intelligenza Artificiale
Stefano De Luca
programmi da poche decine di euro, come quello mostrato in figura, Fritz, possono vincere maestri
internazionali di scacchi.
FIGURA 11 PROGRAMMI CHE GIOCANO A SCACCHI: FRITZ
Ormai si sta anche spostando l‟interesse, dall‟avere programmi imbattibili ad avere strumenti che
aiutino le persone a giocare, dando suggerimenti utili, come si vede in figura.
L‟uso dell‟IA nei giochi è uno dei temi più importanti a livello industriale. I giochi al computer nel 2009
hanno prodotto, soltanto negli USA, un fatturato di circa 10,5 miliardi di dollari (fonte ESA 4). I giochi
hanno superato la redditività dei film, tanto che ormai si è invertita la tendenza di fare giochi a partire
dai film andando verso film modellati sui giochi.
Anche la competizione tra giochi concorrenti viene spesso basata sulla capacità del gioco di
comportarsi in modo naturale, di prevedere i comportamenti del giocatore e saperli controbattere, di
simulare situazioni e mondi complessi. Un gioco sarà tanto più venduto quanto più l‟ “intelligenza
artificiale” è “forte”. Un gioco (Rainbow Six Lockdown) con questa recensione “Intelligenza artificiale
inadatta, scarso appeal, meccaniche di gioco snaturate dalla loro originale veste tattica e poco invitanti.” non avrà molta
possibilità di avere successo. Anche giochi già molto noti come Civilization, nella sua versione V,
possono produrre recensioni come questa5:
Il secondo fattore che lascia più dubbiosi è l'intelligenza artificiale, o meglio il suo comportamento in base al livello di
difficoltà scelto: lo studio dell'IA in sé è infatti più che buono, il problema è che diminuendo il grado di sfida sembra
che gli avversari perdano in varietà di mosse e non solo nella loro efficacia; non un difetto in termini assoluti quindi,
piuttosto un possibile motivo di monotonia per coloro iniziassero solo ora l'avventura nel mondo di Civilization.
(multiplayer.it, 2010)
4
5
http://www.theesa.com/facts/pdfs/VideoGames21stCentury_2010.pdf
http://multiplayer.it/recensioni/80719-civilization-v-battaglie-allultimo-turno.html
14
Introduzione all’Intelligenza Artificiale
Stefano De Luca
Vale la pena di ricordare che giochi molto fortunati, come SimCity, Cesar III, Sims, sono applicazioni
dirette di tecniche di intelligenza artificiale, nemmeno particolarmente complesse.
Vi sono ancora altre aree di utilizzo dell‟IA nei giochi; citeremo soltanto la capacità di commentare le
azioni di gioco, molto usate nei giochi di calcio, e l‟efficacia della simulazione del mondo dove si muove
il giocatore.
Sistemi di controllo
I sistemi di controllo sono ormai un‟applicazione estremamente comune ed importante delle tecniche
di IA. Vediamo qualche esempio.
La Toyota usa un sistema a regole, Gensym G2, per la pianificazione della catena di montaggio. Il
compito è estremamente complesso anche solo per una tipologia di modello, ma l‟operazione viene
complicata dalla produzione on demand, ovvero la possibilità del cliente finale di chiedere un numero
elevato di varianti che risultato in azioni diverse. Ci sono circa 3.000 operazioni basilari per ogni
veicolo, che coinvolgono circa 200 operatori. Il sistema è capace di indicare quale operatore deve fare
quale operazione, e dove, identificando possibili intoppi e conflitti di azioni durante l‟operazione di
costruzione.
Anche la Volkswagen usa un sistema a regole per gestire la produzione.
L‟Enel usa sistemi basati su reti neurali per mantenere sotto controllo le centrali di produzione e
smistamento di energia elettrica. In questo contesto, il controllo dell‟energia prodotta, la quantità di
calore sprigionata, sono critiche da controllare, per impedire malfunzionamenti o situazioni di pericolo.
Un caso di successo “spaziale” è quello della sonda Deep Space 1. Riportiamo un pezzo di un articolo
molto interessante6, di più di 20 anni fa:
Remote Agent Experiment: missione compiuta
Gli agenti software della NASA sono riusciti a manovrare una navetta spaziale a milioni di chilometri di distanza
La sonda Deep Space 1 della NASA. Fino a ieri era più che altro materia per romanzi di fantascienza. Ebbene, è
giunto il momento in cui la fiction diventa realtà: un agente software di intelligenza artificiale è riuscito a manovrare
una navicella spaziale lontana milioni di chilometri dalla Terra. Nella settimana tra il 17 e il 21 maggio, gli esperti
dell'Ames Research Center e del Jet Propulsion Laboratory della NASA sono riusciti nell'impresa di condurre a
termine il Remote Agent, un esperimento progettato per far progredire l'autonomia dei veicoli spaziali. I loro sforzi prodotti per tenere il controllo della sonda Deep Space 1 della NASA - hanno dimostrato che questo sofisticato
software di intelligenza artificiale è in grado di svolgere compiti di alto livello assumendo persino il comando di un
veicolo spaziale. Fatto ancora più importante, la missione ha dimostrato che il Remote Agent è anche in grado di
«giocare al dottore» diagnosticando i suoi stessi problemi e sviluppando piani d'azione efficaci per ritornare in buona
salute. Quest'ultima qualità è emersa inaspettatamente a meno di 24 ore dall'inizio dell'esperimento, quando il
Remote Agent è riuscito ad accendere il motore ionico della sonda, ma ha fallito nel tentativo di spegnerlo. Era chiaro
che c'era qualche baco nel software, ma qual era, esattamente, il problema? Dando un'impressionante dimostrazione
di forza, il Remote Agent ha fornito esso stesso agli scienziati gli indizi utili a diagnosticare e risolvere il problema.
(Marco Cattaneo, Le Scienze, 1999)
Il fatto che si sia permesso ad un software di controllare un oggetto il cui lancio è di molti milioni di
dollari è emblematico, e se pensiamo alla potenza dei computer degli anni ‟90 si potrà apprezzare
ancora di più il lavoro degli autori del sistema di controllo.
6
http://lescienze.espresso.repubblica.it/articolo/Remote_Agent_Experiment:_missione_compiuta/1292156
15
Introduzione all’Intelligenza Artificiale
Stefano De Luca
Potremmo continuare con molte altre applicazioni, sia su larghe installazioni come per il controllo delle
acque, ma merita anche citare i piloti automatici degli aeroplani, i sistemi di controllo delle frenate o
dello sbandamento, ABS e ESB, che ci supportano sempre più nel controllo dei veicoli.
Artificial Life
La vita artificiale, o artificial life, anche abbreviato in alife, è una visione particolare dell‟intelligenza
artificiale che è orientato allo studio di sistemi e intelligenze artificiali che non sono date dall‟inizio e
nemmeno basate su quella umana, ma piuttosto che emergano naturalmente tramite un meccanismo di
evoluzione darwinistica. Il termine è stato coniato da Christofer Langton nel 1986,
L‟obiettivo dell‟alife è totalmente diverso in quanto non si vogliono realizzare agenti finalizzati ad uno
scopo, ma l‟unico scopo interessante è l‟adattamento all‟ambiente; cosa farà l‟agente e come lo farà, sarà
scoperto e deciso dall‟evoluzione del sistema.
FIGURA 12 COPERTINA DELLA RIVISTA "ARTIFICIAL INTELLIGENCE"
È evidente da questa definizione che l‟alife è orientata a forme di replica dei meccanismi della vita, e lo
studio di sistemi darwinistici è essenziale per questa area. Le tecnologie impiegate sono quelle degli
automi cellulari, degli algoritmi genetici, delle reti neurali. Importanti per quest‟area è lo studio dei
sistemi di animali, come i batteri e, di nuovo, animali sociali come le formiche e le termiti.
Area assolutamente minoritaria dell‟intelligenza artificiale, sta trovando una nuova vita nella
modellazione di sistemi complessi e nella robotica evolutiva.
1.7 CONNESSIONISMO
Il connessionismo è stata una delle reazioni forti all‟eccesso di attenzioni all‟approccio logico-matematico,
o simbolico. L‟idea del connessionismo è che l‟intelligenza possa essere raggiunta da piccole unità
computazionali, i neuroni artificiali, grazie all‟elevata quantità di connessioni; si va oltre il paradigma del
sistema di calcolo centralizzato a favore di un meccanismo intrinsecamente distribuito; inoltre, l‟idea è
quella di ispirarsi alla natura, cercando di copiare il cervello umano e le sue reti neurali. L‟idea iniziale è
degli psicologi americani David Rumelhart e James McClelland.
Il connessionismo nell'intelligenza artificiale propone un nuovo modello per la costruzione e
programmazione di hardware e software ispirati al cervello umano che elabora le informazioni dei vari
sensi in maniera parallela, evitando il cosiddetto collo di bottiglia di von Neumann, dei modelli
16
Introduzione all’Intelligenza Artificiale
Stefano De Luca
contemporanei, dove tutte le informazioni devono passare per la CPU serialmente, e abbandonando
l‟idea che sia necessario manipolare esplicitamente simboli per raggiungere l‟intelligenza.
Oltre a questo suggerisce un modello distribuito per la rappresentazione delle informazioni nella
memoria. Le informazioni all'interno di una rete neurale (biologica o artificiale che sia) sono distribuite
per tutti i vari nodi della rete e non in un "posto" singolo. Non si può più quindi puntare ad una parte
determinata del sistema e dire che questa unità contiene una determinata informazione o svolge un
determinato compito specifico.
Il connessionismo suggerisce quindi un modello di "Parallel Distributed Processing" (PDP):
Elaborazione a parallelismo distribuito delle informazioni.
Molti vedono il connessionismo in opposizione al simbolismo. Il simbolismo è una forma specifica del
cognitivismo che sostiene che l'attività mentale sia solo calcolo, cioè che la mente funziona
essenzialmente come una macchina di Turing. Le differenze di fondo sono le seguenti:

I simbolisti presuppongono modelli di simboli che non assomigliano per niente alla struttura del
cervello, mentre i connessionisti esigono che i loro modelli assomiglino alle strutture
neurologiche.

I simbolisti generalmente si interessano solo alla struttura dei simboli e delle regole sintattiche
per la loro manipolazione, mentre i connessionisti guardano all'apprendimento da stimoli
ambientali e alla memorizzazione di queste informazioni nei collegamenti fra neuroni.

I simbolisti credono che l'attività mentale interna consista nella manipolazione dei simboli
(come nella teoria del linguaggio del pensiero di Fodor), mentre i connessionisti credono che la
manipolazione di simboli sia un modello dell'attività mentale molto povero e semplificato.
Non va comunque dimenticato che anche il connessionismo è una rappresentazione estremamente
semplificata della natura, e che le reti neurali artificiali (di cui si parlerà in seguito) sono solo una pallida
imitazione di quelle naturali.
Negli anni ‟80 vi sono state dispute molto intense sul tema connessionismo contro simbolismo. Ora si
può cercare di andare oltre questa dicotomia, cercando piuttosto di lavorare per una integrazione dei
modelli, ancora oggi molto lontana.
Tra gli studiosi di maggiore spicco vi è Domenico Parisi(Parisi, 1989) che, insieme a Stefano Nolfi, ha
anche creato il nuovo settore della robotica evolutiva.
1.8 INTELLIGENZA ARTIFICIALE DISTRIBUITA: SISTEMI MULTI-AGENTE
I sistemi multi-agente (Multi-Agent System, MAS) sono la concretizzazione di un nuovo approccio,
basato sull‟idea del divide et impera, ovvero distribuire fortemente la computazione in tanti elementi più
semplici; diversamente dal connessionismo, questi elementi, gli agenti, hanno però una spiccata capacità
sociale che li rende capaci di fornire e chiedere informazioni agli altri agenti, di richiedere esecuzione di
compiti ed operare una pianificazione collettiva, di cooperare per eseguire insieme compiti complessi.
Questi agenti, detti agenti autonomi, non sono qualificati sulla tecnologia, e possono essere basati su
logica, su reti neurali, su algoritmi genetici e così via. In ogni caso, però, avranno a disposizione un
meccanismo di comunicazione. Oggi vi sono due standard per la comunicazione tra agenti, uno basato
su uno standard del DARPA, detto KQML(Finin, Fritzson, McKay, & McEntire, 1994), Knowledge Query
and Manipulation Language, e sul linguaggio di rappresentazione della conoscenza KIF, Knowledge
Interchange Format; e un altro più moderno e più rigoroso dal punto di vista formale che è standard della
17
Introduzione all’Intelligenza Artificiale
Stefano De Luca
FIPA, Foundations of Intelligent Physical Agents 7 , noto come FIPA ACL, Agent Communication
Language(Bellifemine, Caire, Poggi, & Rimassa, 2008). Lo standard ACL è stato sottoscritto anche da
IEEE, e sta progressivamente diventando il nuovo standard per le comunicazioni tra agenti.
1.9 FRONTIERE
IA emotiva, comprensione del testo più accurata, invisibile agents, pervasive computing.
1.10 ASSOCIAZIONI DI RICERCA
ACM: http://www.acm.org/.
IEEE: http://www.ieee.org/index.html; Computer society: http://www.computer.org/.
Associazione Italiana per l’Intelligenza Artificiale, AI*IA: http://www.aixia.it/
AAAI: http://www.aaai.org/home.html
Convegni. AAMAS: http://www.cse.yorku.ca/AAMAS2010/.
7
http://www.fipa.org/
18
Introduzione all’Intelligenza Artificiale
Stefano De Luca
2 AGENTI INTELLIGENTI
L‟intelligenza artificiale come diventa concreta e si realizza? I primi tentativi sono stati rivolti a sistemi
esperti che non avevano interazione con il mondo esterno; quel che era necessario conoscere del
mondo veniva fornito tramite tastiera da una persona, gli effetti del “ragionamento” venivano
comunicati di nuovo a quella persona, che avrebbe poi deciso cosa farne.
Oggi questo è considerato un modo troppo cerebrale ed anche poco efficace. Sulla spinta della robotica
e dei suoi successi, nella seconda metà degli anni ‟90 si è venuta a creare una spinta all‟identificazione
dell‟IA con i cosiddetti agenti autonomi, e in particolare gli agenti intelligenti.
Cos‟è un agente? Una definizione iniziale è quella data da Jennings e Wooldrige nel 1995:
An agent is a computer system that is situated in some environment, and that is capable of autonomous
action in this environment in order to meet its design objectives.
I punti che vengono esaltati da questa definizione è l‟essere l‟agente situato in un ambiente, ed essere
capace di rispondere ad un obiettivo tramite azioni autonome. Uno dei problemi delle definizioni è che
spesso suonano logiche e naturali, pur nascondendo in realtà molte scelte filosofiche; in questo caso, i
punti critici sono il fatto che gli agenti siano dati come un sistema informatico, e che vi siano degli
obiettivi dati a priori. Abbiamo già visto come vi siano settori dell‟IA, in particolare l‟alife, che non
pongono obiettivi, e che gli agenti siano necessariamente computerizzati è ormai del tutto obsoleta, e si
preferisce considerare come agenti anche le persone e gli altri esseri viventi presenti nel sistema.
La definizione data prevede un macro-schema di un agente che riesce ad acquisire informazioni
dall‟ambiente tramite sensori ed agisce su quest‟ultimo tramite azioni prodotte dagli effettori.
Agente
Sensori
Azioni
Ambiente
FIGURA 13 AGENTE IN RELAZIONE ALL‟AMBIENTE
Lo schema è interessante in quanto mette l‟accento sull‟interrelazione tra agente ed ambiente, ma è
troppo cartesiano, ponendo una distinzione netta tra agente ed ambiente che è del tutto innaturale;
l‟agente, essendo esso stesso parte dell’ambiente, influirà su di esso anche senza necessità di azioni specifiche;
si pensi ad es. ad un robot che si muove alla ricerca di persone, e nascondendo la vista ad altri agenti
(sia robot che persone), o ricevendo informazioni da possibili feriti che lo vedono alla ricerca, e tutto
questo per la sola ragione che un agente ha un corpo e che questo corpo è parte dell‟ambiente. Non va
trascurato inoltre che l‟agente con le azioni influisce, oltre che sull‟ambiente, su se stesso; immaginiamo
il nostro agente che pone una mina per liberare un passaggio interrotto, e nel fare questo si può
danneggiare.
È già più rispondente alla realtà lo schema che segue, dove l‟agente e l‟ambiente si sovrappongono e
compenetrano.
19
Introduzione all’Intelligenza Artificiale
Stefano De Luca
Agente
Sensori
Ambiente
Azioni
FIGURA 14 AGENTE IN RELAZIONE ALL‟AMBIENTE, REVISIONE
L‟agente acquisirà le informazioni sul mondo tramite dei sensori ed agirà sul mondo tramite degli
effettori. I sensori sono tutti gli organi di acquisizione di informazione, siano essi materiali o
immateriali: non solo occhi, microfoni, sensori chimici, misuratori di velocità, ma anche accesso a
database, interrogazioni a servizi informativi, analisi di log files. Gli attuatori sono gli apparati che
permettono di modificare il mondo, e di nuovo possono essere fisici o immateriali: mani, braccia
meccaniche, relais di apertura di un cancello, o anche invocazioni a funzioni, scrittura su database, invio
di una mail, invio di una risposta a video o tramite altoparlante.
Assumiamo che i sensori e gli effettori siano collegati ad una parte “pensante”, che analizzerà gli input
dei sensori per trasformarli in output degli effettori. Questa visione, mostrata in una figura ripresa da
Russell e Norvig (Russell & Norvig, 2003) è una utile semplificazione, ma come tale è anche eccessiva,
in quanto non considera l‟intelligenza all‟interno dei sensori e degli effettori, e il modo in cui questi
sono correlati; si dà troppa attenzione alla parte cognitiva dell‟intelligenza, e così facendo si trascurano
elementi importanti.
FIGURA 15 SENSORI ED EFFETTORI (RUSSELL&NORVIG)
Si pensi ad esempio alla visione dell‟occhio: quando noi guardiamo una scena, lo facciamo non soltanto
con la parte “ottica” del sensore, ma sulla base di ciò che ci interessa vedremo meglio alcuni elementi e
non altri; questa operazione non avviene solo nel cervello, ma anche nel sensore, capace di operare
operazioni di filtraggio ed adattamento, come l‟aggiustamento alla luminosità o alla velocità dell‟oggetto
percepito(Brajovic, 2004). Allo stesso tempo i sensori sono influenzati dall‟ambiente (ad es. gli effetti
dell‟umidità e del calore sulle percezioni tattili) e possono a loro volta influenzarlo (se tocchiamo con
una mano bagnata un fiore, come facciamo a sapere se era bagnato o no?). Del tutto analoga la
situazione con gli effettori. Sensori ed effettori vanno quindi considerati parte integrante
20
Introduzione all’Intelligenza Artificiale
Stefano De Luca
dell‟intelligenza dell‟agente, e non meri strumenti che afferiscono dati ed eseguono ordini da parte del
“cervello”.
Un ulteriore problema della definizione è che anche sistemi di controllo rientrano nella definizione di
agente: un termostato è situato nell‟ambiente, lo sa leggere tramite sensori, quello di temperatura, e sa
agire sull‟ambiente, accendendo o spengendo una caldaia. Nessuno di noi considererà però un
termostato un oggetto dell‟IA, potendo realizzare l‟obiettivo di questo agente con un semplice test: se la
temperatura è inferiore a quella fissata, accendi la caldaia, se è superiore, spengila.
La particolare categoria di agenti che ci interessa è dunque quella degli agenti intelligenti. Da questi agenti
ci aspettiamo di più che un comportamento totalmente reattivo. Potremmo pensare ad un termostato
intelligente, capace di riconoscere se ci sono o meno persone dentro casa, se non ci sono persone
prevedere la possibilità che qualcuno venga (ad es. durante il weekend per una casa in montagna) e sulla
base di chi c‟è stabilire qual è la temperatura migliore da mantenere, più o meno alta in base ai gusti
personali. Il termostato potrebbe andare ancora oltre, e provvedere ad ordinare carburante qualora
questo stia per finire, o avvisare un tecnico qualora la caldaia avesse dei problemi di malfunzionamento
o fossero giunti i termini di legge per i controlli.
Un agente di questo tipo esprimerà caratteristiche di adattamento, di capacità di agire in modo
indipendente e di comunicazione che vanno nella direzione di un sistema intelligente. Per quanto il
termine “intelligente” vada sempre usato con moderazione (anche un termostato complesso come
quello presentato è poco probabile che riesca ad imparare a giocare a carte, o a commentare un film),
stiamo sicuramente andando nella direzione giusta.
Riprendendo di nuovo le definizioni di Wooldridge e Jennigs, le tre caratteristiche più importanti sono
sono:
Reattività: gli agenti intelligenti percepiscono l‟ambiente e sanno rispondere ai cambiamenti che
occorrono per raggiungere gli obiettivi fissati.
Proattività: gli agenti intelligenti sono capace di comportamenti finalizzati all‟obiettivo anche
prendendo autonomamente l‟iniziativa.
Abilità sociali: gli agenti intelligenti sono capaci di comunicare con altri agenti per raggiungere gli
obiettivi.
Il nostro termostato intelligente mostra tutte queste caratteristiche: si accorge della differenza di
temperatura e sa in che giorno siamo della settimana, sa riconoscere gli abitanti della casa e sapere che
ci sono; conoscendo le caratteristiche dei possessori deciderà se e quando accendere la caldaia, e si
preoccuperà della sua manutenzione; è capace di interagire con altri agenti, come il responsabile della
manutenzione (in questo caso, un agente umano) o il sistema di acquisto del carburante (probabilmente,
un altro agente artificiale).
Questi comportamenti possono essere messi in azione da diverse tipologie di agenti. Ne esistono molte
definizioni e categorie, ma senz‟altro due di esse sono particolarmente importanti, gli agenti reattivi e
quelli deliberativi.
Gli agenti reattivi agiscono rispondendo direttamente agli stimoli che ricevono, reagendo in un ciclo
stimolo-risposta. Sono agenti tipicamente abbastanza semplici (ma non sempre), ed hanno il pregio di
essere tipicamente molto veloci nei tempi di risposta; hanno però il difetto di non avere un meccanismo
di pianificazione ed analisi, che li rende meno adatti a compiti complessi.
Gli agenti deliberativi provano a creare un modello del mondo sulla cui base deliberano il modo migliore di
rispondere all‟obiettivo; vi è quindi un momento di creazione del modello del mondo e un momento di
scelta, che permette di avere una maggiore capacità di risposta a sistemi complessi, a fronte però di
tempi di risposta più lunghi.
21
Introduzione all’Intelligenza Artificiale
Stefano De Luca
Inutile dire che esistono anche agenti ibridi, che sono in parte reattivi e in parte deliberativi, nell‟ottica di
saper essere veloci e complessi allo stesso tempo.
Proviamo ora a dare una formalizzazione degli agenti, per poi passare ad un‟anatomia delle diverse
tipologie.
2.1 AMBIENTE
Seguendo la classificazione di Russell e Norvig (Russell & Norvig, 2003), possiamo classificare gli
ambienti seguendo alcune proprietà fondamentali:
Accessibile/Inaccessibile: un ambiente accessibile permette all‟agente di ottenere informazioni
complete e precise sugli stati ambientali; molto spesso gli ambienti non sono completamente
accessibili.
Deterministico/Indeterministico: un ambiente deterministico ha la caratteristica per cui un
azione in un determinato stato ha sempre gli stessi effetti; al contrario, in un ambiente
indeterministico, un‟azione potrebbe avere più di un effetto, o comportamenti del tutto casuali.
Statico/Dinamico: un ambiente statico rimane uguale a se stesso a meno di modifiche apportate
dall‟agente. È evidente che già un mondo in cui ci siano più agenti non sarà più statico dal
punto di vista di ogni agente. Raramente gli ambienti per cui si progettano agenti sono statici.
Discreto/Continuo: un ambiente è discreto se ha un numero di stati ambientali e di elementi
percepiti limitato.
Naturalmente l‟ambiente ideale per chi progetta agenti sarà completamente accessibile, deterministico,
statico e discreto e, altrettanto naturalmente, dovremo invece lavorare con ambienti solo parzialmente
accessibili, solo parzialmente deterministici, dinamici e di per sé continui.
L‟abilità sarà riuscire a definire questi mondi complessi in modo da poterli trattare, elaborandoli come il
mondo più semplice possibile – ovvero semplificato fino al punto che un‟ulteriore semplificazione
farebbe perdere potenza semantica.
In generale, è piuttosto semplice l‟operazione di rendere discreto un mondo continuo. Non altrettanto
si può fare con l‟aspetto del determinismo. Il punto è che quest‟ultima proprietà è necessaria per
permettere agli agenti di operare una pianificazione, ovvero di ipotizzare gli effetti di un‟azione
sull‟ambiente.
Anche l‟avere il mondo dinamico complica l‟operazione di pianificazione, in quanto questa sarà
comunque soggetta ad un controllo periodico per analizzare se il mondo è cambiato nel frattempo (dal
momento in cui si è pianificato al momento in cui si sta agendo).
2.2 ARCHITETTURA ASTRATTA DI UN AGENTE
Proviamo ora a definire in modo più formale un agente astratto. Innanzi tutto, l‟agente esisterà in un
ambiente; per semplicità assumiamo che questo ambiente sia discreto, e quindi lo possiamo vedere
come una successione (temporale) di situazioni, o stati ambientali:
dove i diversi ej sono i diversi stati ambientali che si possono raggiungere in un determinato ambiente.
Si noti che gli stati ambientali non vanno fatti coincidere con i diversi momenti temporali, perché
22
Introduzione all’Intelligenza Artificiale
Stefano De Luca
l‟ambiente potrebbe rimanere inalterato durante il tempo; quando l‟alterazione dell‟ambiente diventa
significativa per un agente, allora individuiamo un nuovo stato ambientale.
L‟agente avrà quindi un certo numero di azioni possibili:
Ad esempio, un agente robotico potrà andare in diverse direzioni, stare fermo, avvisare un operatore,
aprire una porta e così via.
L‟agente ha a disposizione un certo numero di effettori, o attuatori, con cui agisce sul mondo; sono gli
apparati con cui l‟agente può mettere in pratica le azioni. Nel caso di un robot, possono essere le ruote,
i bracci meccanici, mentre per un agente il cui obiettivo sia l‟acquisto di un libro su Internet sarà
l‟esecuzione di web service che gli permetteranno di acquistare il libro e provvedere al suo invio.
Poiché gli effettori si possono comportare diversamente sulla base di una richiesta, è opportuno parlare
di funzione degli effettori. Una funzione di un effettore è il suo comportamento, per cui la richiesta di
apertura di una porta consisterà in una rotazione di un braccio meccanico, mentre il sollevamento di un
corpo sarà un‟altra funzione dello stesso effettore. L‟agente avrà quindi un insieme di funzioni degli
effettori:
Il mondo verrà percepito tramite un certo numero di sensori:
I sensori sono gli apparati con cui l‟agente percepisce il proprio ambiente (il suo mondo). Per un robot,
possono essere delle telecamere, dei sensori infrarossi, dei sensori per la rilevazione del fumo etc.; per
l‟agente che acquista libri, possono essere web service da interrogare per avere informazioni sui costi,
funzioni di crawling su Internet per cercare commenti su un libro o su un venditore.
Anche i sensori possono essere usati in modi diversi, per cui avremo anche in questo caso delle funzioni
dei sensori:
Un agente sarà quindi definibile come una sestupla composta dal suo ambiente, dalle azioni che può
eseguire, dai sensori e le loro funzioni e gli effettori e le loro funzioni.
Il modello generale di un agente che interagisce con l‟ambiente è il seguente. L‟ambiente parte in uno
stato iniziale, l‟agente lo percepisce e quindi sceglie un‟azione da eseguire in quel particolare stato
ambientale. L‟ambiente viene quindi (possibilmente) mutato da quell‟azione, in un modo che può essere
previsto o meno (e se si, con precisione variabile) da parte dell‟agente. Il nuovo stato viene percepito
dall‟agente che sceglierà un‟altra azione, finché non avrà raggiunto il proprio obiettivo, che risulterà in
un certo stato ambientale obiettivo. Gli stati obiettivo finali possono essere molteplici; se un agente ha
l‟obiettivo di acquistare una copia del libro “Orlando Furioso”, questo potrà essere acquistato in
diverse librerie, o anche in diverse edizioni (e financo in diverse lingue); in ogni caso, se l‟agente
raggiungerà uno stato ambientale in cui possiede una copia di quel libro, avrà raggiunto il suo obiettivo.
23
Introduzione all’Intelligenza Artificiale
Stefano De Luca
Per raggiungere e soddisfare i requisiti, l‟agente eseguirà una esecuzione, o run, r, ovvero una sequenza
di azioni che portano dallo stato ambientale iniziale ad uno finale (sperabilmente uno stato obiettivo):
Per semplicità, rappresentiamo che in ogni momento l‟agente eseguirà una sola azione, mentre
ovviamente potrà eseguirne anche più contemporaneamente.
Le azioni sono la risultanza di una certa funzione di un attuatore.
Definiamo:



è l‟insieme delle esecuzioni (run), ovvero l‟insieme di tutte le sequenze finite su E e su Ac
è il sotto-insieme di tutte le sequenze che terminano con un‟azione e
è il sotto-insieme di tutte le sequenze che terminano con uno stato ambientale.
Per rappresentare gli effetti dell‟agente sull‟ambiente, introduciamo una funzione di trasformazione dello
stato
La funzione di trasformazione di stato mappa gli effetti di una esecuzione che termina con un‟azione
all‟insieme di tutti i possibili stati ambientali (
è il power set degli stati ambientali), ovvero gli
insiemi risultanti dall‟azione. La funzione di trasformazione ha necessità di conoscere tutta l‟esecuzione
e non soltanto lo stato precedente e l‟ultima azione in quanto assumiamo che l‟ambiente dipenda dalla
storia, e quindi sia determinato anche dalle azioni che l‟agente ha eseguito precedentemente; una
persona si comporterà diversamente se la salutiamo una volta sola o piuttosto dodici volte di seguito.
La funzione permette anche di gestire effetti non deterministici, e quindi a parità di azione avere
risultati diversi, con una certa dose di incertezza nei risultati.
Se
, allora non ci sono stati successori, e si dice che l‟esecuzione termina, e l‟agente ha
terminato la sua esecuzione. Possiamo per semplicità ipotizzare che tutte le esecuzioni terminino.
L‟agente può avere una funzione che approssima la vera funzione di trasformazione di stato, la cui utilità
è la previsione degli effetti di funzione, ad es. per operare una pianificazione:
Definiamo quindi un ambiente come la tripla
, dove E è l‟insieme degli stati
ambientali,
è lo stato iniziale, e è la specifica funzione di trasformazione dello stato.
Una definizione di agente può essere quindi considerato un mapping che va dagli stati ambientali (più
precisamente dalle esecuzioni che terminano con un‟azione, per mantenere la storia) alle azioni:
o, per dirla altrimenti, un a funzione di un agente è la scelta dell‟azione da eseguire in un determinato
stato.
Un sistema è quindi la coppia formata da un ambiente e da un agente:
dire che una sequenza
Rappresenta l‟esecuzione di una agente Ag in un ambiente
1.
2.
24
. Possiamo quindi
se:
è lo stato iniziale di Env;
);
Introduzione all’Intelligenza Artificiale
Stefano De Luca
3.
dove
Due agenti sono equivalenti nel loro comportamento rispetto un certo ambiente Env se e solo se
.
2.2.1 AGENTI REATTIVI
Abbiamo finora considerato che l‟agente può essere espresso come una funzione che sceglie quale
azione compiere sulla base della storia della rilevazione degli stati ambientali e delle azioni
precedentemente scelte. Questo è importante perché vi sono stati ambientali raggiungibili più volte e
che vanno però trattati in un modo diverso; prendiamo ad es. un agente robotico che voglia
implementare le buone maniere: quando incontrerà una persona, o un altro agente robotico, lo saluterà
augurandogli una buona giornata, ovvero quando si verificherà un certo stato ambientale ej, che
coincide con la presenza di una persona, l‟agente lo saluterà. Il punto è che una volta salutato, lo stato
ambientale successivo sarà il medesimo, ovvero
Se l‟agente si basasse soltanto sul riconoscimento dello stato ambientale, non farebbe altro che
continuare a salutare, finché la persona non scomparisse dalla sua vista. La possibilità di conoscere
invece la storia permetterà all‟agente di evitare di salutare più volte inutilmente e quindi rispondere
meglio al suo obiettivo.
Gli agenti puramente reattivi invece si basano solamente sullo stato ambientale per scegliere l‟azione da
compiere. La funzione agente sarà quindi diversa da quella proposta, e diventerà la più semplice:
ovvero sarà l‟attuale stato ambientale a guidare.
Agenti semplici che si comportano in questo modo sono ad es. i termostati, che hanno solo bisogno
della temperatura attuale per decidere l‟azione (accendere o spegnere la caldaia o non eseguire alcuna
azione), o anche molti agenti reattivi presenti nei giochi al computer.
Il punto di forza degli agenti reattivi è la loro velocità: non dovendo basare la scelta sulla storia,
possono rispondere in modo molto rapido ai cambiamenti ambientali. Aggiungendo allo stato
ambientale anche la gestione degli stati interni dell‟agente, gli agenti reattivi possono essere
particolarmente efficaci.
2.2.2 PERCEZIONI
Per quanto si voglia semplificare l‟architettura degli agenti, non è possibile però immaginare che i
sensori siano direttamente collegati con la parte decisionale degli agenti. Questo è possibile solamente
in rarissimi (e fortunati) casi che non richiedono alcuna operazione di comprensione.
25
Introduzione all’Intelligenza Artificiale
Stefano De Luca
Dati ambientali
Sensore1
Dati ambientali
Sensore2
Agente
Decisione
Scelta dell’azione
Effettore1
Azione
ambientali
Effettore2
Azione
ambientali
FIGURA 16 AGENTE CON SENSORI ED EFFETTORI, PRIMA VERSIONE
Il punto è che tipicamente i sensori restituiscono informazioni di livello troppo basso per poter essere
facilmente trattate dal modulo decisionale, ed è necessario trattarle e renderle più adatte al trattamento,
specie quello simbolico (ma non solo).
Supponiamo di voler creare un sistema di allarme abbastanza intelligente da riconoscere la persona che
sta accedendo all‟abitazione, e che userà questa informazione per stabilire se far scattare l‟allarme. La
parte dei sensori è delegata ad una telecamera che inq uadrerà il campo. I sensori, direttamente,
riportano una bitmap di una stanza, e quindi una matrice 640x480, con 8 bit di colore, che è la
rappresentazione della telecamera del mondo reale; in effetti, questa è già una discretizzazione di un
mondo che, se pur non del tutto continuo, è molto vicino ad esserlo. Il nostro agente sarà capace di
trattare direttamente questa informazione, e da questa bitmap direttamente capire se azionare l‟allarme o no?
La parte di scelta dell‟azione dell‟agente dovrebbe essere piuttosto semplice, espressa da una regola che
dice:
Se la persona inquadrata non appartiene ad uno dei proprietari, allora attiva l’allarme
Sono stati messi in rilievo due aspetti, quelli di dover rilevare una persona e, tra tutte le persone possibili,
uno dei proprietari. Bisognerà quindi trasformare prima capire se la bitmap sta inquadrando un essere
umano, e poi eseguire un‟operazione di riconoscimento. Queste sono operazioni estremamente
complesse, al punto che riguardano due funzioni tipicamente distinte tra loro e che usano tecniche
diverse; ad es., per il riconoscimento dei volti, abbiamo il face detection, che si occuperà di trovare in una
foto o video una faccia, e il face recognition che invece cercherà di capire di chi è quella faccia. Per fare
questo si potranno esaminare le bitmap per vedere se contengono dei pattern di livello più alto, come
rettangoli, cerchi, linee, e quindi usare un algoritmo che usi questi pattern per dedurre se è stata
inquadrata una persona.
Non dissimilmente accade per gli agenti immateriali. Un agente che debba scartare un contributo di un
utente perché contiene giudizi eccessivamente negativi al punto di violare la legge, avrà come proprio
sensore la lettura di pagine web; la parte decisionale sarà anche in questo caso semplice:
Se il testo contiene giudizi negativi illegali, scartare il testo
mentre la difficoltà sarà l‟interpretazione della pagina che ci permetta di avere questa informazione di
alto livello, o di livello intermedio: l‟informazione di alto livello sarà semplicemente un valore di verità
che ci dica se il testo contiene giudizi illegali o no, quella intermedia saranno un insieme di elementi che
ci possono portare a capirlo, come ad es. la presenza di parolacce, di termini razzisti, aggressivi etc.
Vediamo quindi che le mere sensazioni che arrivano da un sensore sono di livello troppo basso per
essere trattate. Per questo conviene introdurre un livello di analisi che permetta all‟agente di lavorare
sulla base di percezioni, ovvero sensazioni che siano già aggregate ad un livello superiore.
26
Introduzione all’Intelligenza Artificiale
Stefano De Luca
Le percezioni sono quindi analisi preliminari di quanto direttamente percepito (sentito) dai sensori;
quanto queste siano aggregate dipende dall‟operazione di creazione delle percezioni. Nel caso del sistema
di allarme, a le percezioni prodotte a partire dalla bitmap iniziale potrebbero essere figure geometriche,
analisi topologiche, wavelets, o anche direttamente informazioni simboliche come “è una persona”, “è
Maria”, “è uno dei proprietari”. L‟agente quindi opererà questa operazione tramite uno, o più, sottosistemi di creazione di percezioni, che potremmo chiamare funzione see() .
Decisione
Sensore1
Dati ambientali
Sensore 2
See
Creazione
percezioni
Scelta dell’azione
Effettore1
Azione
ambientali
Effettore2
Azione
ambientali
Percezioni
FIGURA 17 AGENTE CON SENSORI ED EFFETTORI, CON PERCEZIONI
La funzione see() trasformerà gli stati ambientali in percezioni:
e l’agente quindi sceglierà le azioni sulla base della somma delle percezioni ricevute:
Rispetto questo modello, l‟agente è una coppia
effettori e dei sensori.
, che incorpora in sé le funzioni degli
2.3 AGENTI CON STATI
La rappresentazione degli agenti che abbiamo finora visto impone che l‟agente tenga conto di tutta la
storia rappresentata dagli stati ambientali percepiti e le azioni eseguite. Questa è un‟operazione faticosa
sia in termini computazionali che per memoria utilizzata, e anche molto lontana dalla pratica di
programmazione. Possiamo quindi utilizzare un modello più ricco, che incorpori la possibilità degli
agenti di avere stati interni, che rappresentano una memoria di quanto fatto e percepito.
Per questo introduciamo una nuova funzione next(), che permetterà di registrare stati interni in un
database degli stati sulla base delle percezioni I e degli stati già registrati:
27
Introduzione all’Intelligenza Artificiale
Stefano De Luca
Dati ambientali
See
Creazione
percezioni
Percezioni
Next
Creazione
stati interni
Stati
interni
Action
Scelta ed
esecuzione
azioni
FIGURA 18 AGENTE CON STATI INTERNI
La funzione action muterà in accordo:
Gli stati interni verranno modificati sulla base delle percezioni ricevute e lo stato iniziale degli stati
interni (che può anche essere l‟insieme vuoto):
; le azioni saranno scelte sulla base del
risultato, ovvero:
. Una volta eseguita l‟azione, l‟agente continua con il suo
ciclo, potenzialmente alterando l‟ambiente, che sarà quindi percepito, trasformato in percezioni e quindi
in stati interni, e da ultimo risultando in una nuova azione, e così via fino al termine dell‟esecuzione.
2.4 FUNZIONE DI UTILITÀ
Ora ci dobbiamo porre la domanda: quanto si sta comportando bene il nostro agente? Ovvero, dato un
compito da eseguire, il nostro agente sta rispondendo a quel compito? La risposta può essere di tipo
booleano o, meglio, un valore che ci dica se l‟agente si è almeno avvicinato alla soluzione.
Vogliamo quindi avere una funzione, detta funzione di utilità, che associ un numero reale ad una
situazione ambientale:
Questa funzione ci dirà, ad es. che uno stato goal ha un valore alto, mentre una situazione del tutto
inutile un valore basso. Con questa funzione possiamo quindi dire quanto sia efficace il raggiungimento
di uno stato dopo aver eseguito un‟azione (calcolata eventualmente tramite la funzione di
approssimazione alla trasformazione di stato, ).
La difficoltà maggiore di questo approccio è che non è spesso semplice capire quanto un‟azione
intermedia ci stia avvicinando al nostro obiettivo. Per questo spesso conviene utilizzare una funzione di
utilità basata sull‟intera esecuzione, più che sul singolo stato ambientale:
Prendiamo un esempio molto noto, nato proprio per valutare diverse architetture di agenti, il
Tileworld(Pollack & Ringuette, 1990), o “mondo delle mattonelle”.
Questo è un mondo discreto, in cui l‟unità minima è un quadrato dove si muove un agente il cui
obiettivo è chiudere dei buchi che appaiono e scompaiono, rendendo il mondo dinamico; i buchi
rimangano per un tempo dato (life expectancy), e vi è un tempo dato per la creazione di un nuovo buco
28
Introduzione all’Intelligenza Artificiale
Stefano De Luca
(hole gestation time); questi tempi possono anche essere casuali. Per chiudere un buco, l‟agente dovrà
spingere delle mattonelle (le tiles) dentro il buco.
FIGURA 19 UNA SITUAZIONE DEL TILEWORLD(POLLACK & RINGUETTE, 1990)
Le azioni che potrà compiere l‟agente saranno quindi dei movimenti nelle quattro direzioni che, qualora
l‟agente sia a contatto con una mattonella, la faranno muovere nella stessa direzione. In questo mondo
vi sono ostacoli che sono statici e inamovibili, delle barriere al movimento.
Il Tileworld è stato creato come mondo dove testare diverse tipologie di agenti, in una simulazione di
comportamento robotico. L‟agente sarà tanto più efficace quanti più buchi riuscirà a chiudere,
spingendoci dentro le mattonelle; è probabile che per fare questo l‟agente sceglierà percorsi se non
ottimali quanto meno adeguati. Possiamo anche dare una funzione di utilità:
Il vantaggio di questa funzione di utilità è che è anche normalizzata in [0..1]. Poiché vi sono aspetti
randomici (la posizione dei buchi, eventualmente il tempo di apparizione e scomparsa degli stessi), è
opportuno far eseguire diverse simulazioni agli agenti per ridurre questa componente casuale.
Se facciamo eseguire l‟esecuzione dei test ad agenti diversi, potremmo valutare quanto uno compari
rispetto ad un altro, e potendo quindi scegliere il migliore agente in quel particolare ambiente. Si noti che
al variare delle caratteristiche del mondo, possono anche cambiare quali agenti siano migliori.
29
Introduzione all’Intelligenza Artificiale
Stefano De Luca
FIGURA 20RISULTATI DI UN'ESPERIMENTO SUL TILEWORLD
In Figura 20 vediamo che in una modalità, ad una certa velocità, l‟agente migliore sia quello umano,
mentre ad una velocità di molto superiore siano uno degli agenti sintetici, SEU, ad avere una
performance migliore: gli umani pensano meglio, ma più lentamente!
Per questo Russell e Subramanian (Russell & Subramanian, 1995) hanno introdotto il concetto di
ottimalità limitata (bounded optimality), intendendo per questa l‟essere il miglior agente date le limitazioni
di tempo, di calcolo e così via. Il problema è importante, poiché spesso è possibile creare agenti
particolarmente complessi e capaci di gestire situazioni, ma che richiedono un tempo di calcolo
eccessivo per poter essere eseguiti sull‟hardware a disposizione e per poter rispondere nei tempi dati.
Non si pensi che questo sia un problema che interessa sempre meno, poiché il fatto di avere a
disposizione processori sempre più veloci non vuol dire che li possiamo sempre impiegare: se stiamo
realizzando un robot per pulire casa, il cui prezzo al cliente finale sarà di 450 euro, il processore che
potremo utilizzare potrà costare solamente pochi euro, con caratteristiche lontanissime da un qualsiasi
processore da computer.
2.5 AMBIENTE DI ESECUZIONE
Per definire un agente, è importante definire gli obiettivi che deve raggiungere. Questi possono essere
dichiarati in modo implicito definendo una funzione di utilità, ma è talvolta importante, e comunque
sempre utile, poter definire il compito da far eseguire all‟agente.
Possiamo definire con una specifica del compito da eseguire, tipicamente data in modo formale
tramite logica, e che stabilisce se un‟esecuzione di un agente risponde o meno all‟obiettivo dato; in altre
parole
, sulla base del raggiungimento dell‟obiettivo.
Un ambiente di esecuzione è quindi la coppia
, dove Env è un ambiente e
è una funzione:
L‟agente dato sarà quindi capace di operare con successo in un determinato ambiente di esecuzione se
riuscirà a rispondere positivamente sempre, nel caso di una formulazione massimalista e pessimista, o
almeno talvolta, in una formulazione più riduttiva ed ottimistica.
Possiamo divedere grossolanamente i compiti in due famiglie:
compiti di realizzazione, dove l‟obiettivo è il raggiungimento di un certo stato;
compiti di mantenimento, dove invece si deve mantenere nel tempo un certo stato.
Nel caso dei compiti di realizzazione, l‟agente avrà un certo numero di stati che possiamo definire stati
obiettivo. Ad es., per un agente che gioca a scacchi saranno tutte le posizioni in cui l‟agente avrà dato
scacco matto all‟avversario; per un agente che deve acquistare un libro su Internet, tutte le condizioni
per cui il libro sarà stato comprato e ricevuto, indifferentemente da dove, ma purché all‟interno del
budget fissato.
30
Introduzione all’Intelligenza Artificiale
Stefano De Luca
I compiti di mantenimento sono più tipici dei sistemi di controllo, ad es. garantire che una centrale di
produzione di elettricità non superi una certa temperatura, o che i parametri vitali di un paziente siano
sempre mantenuti sani e vitali.
In alcuni casi si possono avere compiti misti, che riuniscono raggiungimento e mantenimento.
In conclusione, un agente sarà quindi definibile come una ottupla composta dal suo ambiente, dalle
azioni che può eseguire, dai sensori e le loro funzioni e gli effettori e le loro funzioni, la definizione del
task e la funzione di utilità capace di valutare un run dell‟agente.
.
31
Introduzione all’Intelligenza Artificiale
Stefano De Luca