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