Alcune definizioni dell’AI •Sistemi che pensano come gli esseri umani: modellizzazione cognitiva. •Sistemi che pensano razionalmente: le leggi del pensiero. •Sistemi che operano •Sistemi che agiscono come gli esseri umani: razionalmente: l’agente test di Turing. razionale. Dario Bianchi 1999 Che cosa e’ l’Intelligenza Artificiale Pensare come gli esseri umani “Il nuovo sforzo entusiasmante di far pensare i computer … macchine con la mente in senso completo e letterale”(Haugeland, 1985) “L’automazione di attivita’ che che associamo al pensare umano, come prendere decisioni, risolvere problemi, apprendere…”(Bellman, 1978) Pensare razionalmente Lo studio di facolta` mentali mediante modelli computazionali” (Charniak e Mc Dermott, 1985) “Lo studio delle computazioni che rendono possibile percepire, ragionare e agire Operare come gli esseri umani Agire razionalmente “L’arte di creare macchine che eseguono funzioni che richiedono intelliogenza se vengono eseguite da persone” (Kurzweil, 1991) “Un campo di studio che cerca di spiegare ed emulare un comportamento intelligente in termini di processi computaszionali” (Schalkoff, 1990) “Lo studio di come far fare al computer delle cose che, attualmente, le persone fanno meglio” (Rich e Knight 1991) Il ramo dell’informatica che si occupa di automatizzare un comportamento intelligente” (Luger e Stubblefield, 1993) Le macchine possono pensare? • Il filosofo Jonh Searle crede che cio’ di cui siamo fatti sia fondamentale per la nostra intelligenza. Il pensiero puo’ esistere solo in “macchine” molto speciali, quelle viventi fatte di proteine. Una macchina fatta di proteine potrebbe pensare ma una fatta di silicio non potrebbe. • Newell e Simon propongono invece l’ipotesi del sistema di simboli fisico. Qualunque macchina capace di trattare dati simbolici puo’ agire in modo intelligente. Le macchine possono pensare? • Il cervello elabora nozioni in parallelo mentre I computer convenzionali lo fanno in serie. • Il computer convenzionale si basa sulla logica binaria vero/falso, I sistemi intelligenti dovrebbero usare una logica di tipo fuzzy. • I neuroni animali sono molto piu’ complessi degli interrruttori realizzati con i circuiti elettronici. Test di Turing • Proposto da Alan Turing nel 1950. In forma semplificata consiste nella interrogazione di un computer da parte di un essere umano attraverso una tastiera remota. Il test viene superato se l’interrogatore non riuascisse a capire se dall’altra parte c’e’ un computer o un uomo. Test di Turing Per superare il test il cacolatore dovrebbe essere in grado di: • Capire il linguaggio naturale (per comunicare con l’interlocutore) • Rappresentare la conoscenza (per immagazzinare le informazioni iniziali e quelle acquisite durante il dialogo) • Ragionare automaticamente sulle informazioni a disposizione per rispondere alle domande • Apprendere automaticamente per adattarsi a nuove situazioni o per costruire nuovi modelli Agenti razionali • Agiscono razionalmente per raggiungere degli obiettivi in base alle propre credenze. • Possono percepire e agire. • Possono essere oggetti fisici (dotati di sensori e attuatori) o oggetti software. • Possono interagire fra di loro (Intelligenza artificiale distribuita). Due differenti approcci all’ IA • Top Down o simbolico. Si rappresenta la conoscenza mediante simboli. Si usa spesso la logica e la capacita` di fare inferenze. • Bottom UP o sub-simbolico (basato sul segnale) Non c’e’ una rappresentazione esplicita della conoscenza. Si usano reti neurali, approcci evolutivi etc. Comportamento Emergente • Per costruremacchine intelligenti bisognerebbe prima imitare i sistemi biologici in comportamenti semplici come l’elaborazione di segnali e i sistemi di controllo. • L’ agente deve interagire con l’ambiente. Vari moduli elementari possono interagire con l’ambiente per fornire un comportamento complesso senza usare modelli centralizzati (Brooks) Ingegneria della conoscenza e sistemi esperti Introduzione Gli inizi (1952-1959) Giochi Dimostratori di teoremi (in logica, geometria) e risolutori di problemi matematici Micromondi Metodi basati sulla conoscenza (1969-1979) Sistemi esperti Fattori di certezza Analisi linguaggio naturale Affrontare problemi reali (1980-1999) Applicazioni di interesse industriale. Reti neurali Algoritmi genetici Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Introduzione Un esempio di problema risolto con il programma ANALOGY di Evans (1968) Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Introduzione MICROMONDI - Una scena dal mondo dei blocchi. Un compito per un robot potrebbe essere “prendi un blocco rosso grande”, espresso in linguaggio naturale o in una notazione formale. Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Introduzione Sistemi esperti Cercano di trasferire la conoscenza di un esperto, in un settore limitato, in un insienme di regole if condizione then azione Un esempio (da Mycin) if 1) the stain of the organism is gramneg, and 2) the morphology of the organism is rod, and 3) the aerobicity of the organism is aerobic then there is evidence 0.8 that the class of the organism is enterobacteriaceae. Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Introduzione Risoluzione di problemi Ragionamento con incertezza •Risolvere problemi con la ricerca Sistemi di ragionamento probabilistico •Metodi di ricerca informata Logica fuzzy •Giochi Decisioni Conoscenza e ragionamento Comunicazione •Logica proposizionale •Grammatiche e linguaggi formali •Logica del primo ordine •Analizzatori sintattici •Basi di conoscenza •Interpretazione semantica •Sistemi di ragionamento logico •Ambiguità Pianificazione Apprendimento Da esempi Reti neurali Per rinforzo (algoritmi genetici) •Elaborazione del linguaggio naturale Percezione •Elaborazione di immagini •Riconoscimento di oggetti •Riconoscimento del linguaggio parlato. Robotica Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Agenti intelligenti Gli agenti interagiscono con gli ambienti per mezzo di sensori e attuatori •Misura di prestazione •Sequenza di percezione •Conoscenza dell’ambiente •Conoscenza predefinita •Azioni che l’agente puo’ eseguire Agente razionale: Per ogni szequenza di percezione deve compiere l’azione che massimizza la misura di prestazione. Sistema autonomo: Il suo comportamento viene determinato dalla sua esperienza personale. Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Agenti intelligenti Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Agenti intelligenti Uno schema di agente. Ad ogni attivazione, la memoria dell’agente viene aggiornata per ripflettere la nuova percezione, viene scelta l’azione migliore e viene anche immagazzinato in memoria il fatto che l’azione è stata eseguita. La memoria persiste da una attivazione a quella successiva. Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Agenti intelligenti Un agente basato su una tabella di consultazione. L’agente tiene conto della sequenza di percezione e si limita a consultare l’azione migliore Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Agenti intelligenti L’agente di tipo tassista. •Agenti con riflessi semplici •Agenti che tengono conto del mondo •Agenti basati su obiettivi •Agenti basati su utilità Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Agenti intelligenti Un agente con riflessi semplici Regola condizione-azione: if macchina-davanti-sta-frenando then inizia-a-frenare Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Agenti intelligenti Un agente con riflessi semplici. Funziona trovando una regola le cui condizioni si accordano con lo stato corrente (come definito dalla percezione) e quindi compiendo l’azione associata a quella regola. Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Un agente con riflessi che ha uno stato interno.. Lo stato interno serve a tenere conto del mondo. Lo stato viene aggiornato: •in base a informazioni su come il mondo evolve •tenedo conto che le azioni dell’agente modificano il mondo. Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Agenti intelligenti Un agente con riflessi con stato interno. Funziona trovando una regola la cui condizione si accorda con la situazione corrente (come definita dalla percezione e dallo stato interno memorizzato) e compie quindi l`azione associata a questa regola. Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Un agente con obiettivi espliciti. •Risulta più flessibile. •Deve trovare sequenze di azioni opportune per raggiungere l’obiettivo usando ricerca e pianificazione. Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Agenti intelligenti Agente completo basato sull’ utilità. •A ciascuno stato corrisponde un grado di utilità o di felicità per l’agente. •Ci possono essere più obiettivi contrastanti e l’utilità fornosce un opportuno bilanciamento. •Ci possono essere diversi obiettivi, nessuno dei quali può essere raggiunto con certezza: la probabilità di successo può essere valutata rispetto all’importanza degli obiettivi. Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Agenti intelligenti Come può essere un ambiente: •Accessibile - l’apparato sensorio permette all’agente accesso allo stato completo dell’ambiente. •Deterministico - Lo stato successivo è determinato dallo stato attuale e dalle azioni degli agenti. •Episodico - Le azioni vengono selezionate solo in base allo stato corrente (non tenendo conto della storia). •Statico/Dinamico - Se l’ambiente rimane fisso o varia mentre l’agente delibera. •Discreto/Continuo - Se le percezioni e le azioni sono in numero limitato o variano con continuita’. Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Agenti intelligenti Il programma di base di un simulatore di ambienti: •Fornisce ad ogni agente la sua percezione. •Riceve una azione da ogni agente. •Aggiorna l’ambiente Dario Bianchi 1999 Ingegneria della conoscenza e sistemi esperti Testi consigliati: Russel e Norvig, Intelligenza Artificiale, Utet libreria. Nils N. Nillson Intelligenza Artificiale, Apogeo. Rolston, Sistemi Esperti, McGraw-Hill. Bratko, Programmare in Prolog per l’intelligenza artificiale, Masson Adorni, Gaglio e MassoneManuale di Intelligenza artificiale. Il linguaggio Prolog e le sue applicazioni, Nis La Nuova Italia Scientifica Dario Bianchi 1999