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