Breve introduzione all’IA
Alessandro Cappellini
9 Aprile 2004
[email protected]
Churh - Turing
• Negli anni ’20 David Hilbert ha proposto il
problema della decidibilità come “sfida” della
moderna matematica.
• Secondo Turing: “Non è possibile stabilire in
maniera certa e meccanica la verità o la falsità
di tutti gli enunciati matematici”.
• Per dimostrarlo Turing teorizza la logical
computing machine.
Una macchina di Turing consta in
un nastro cartaceo diviso in
singole celle, che serve sia per
l’input che per l’output, una
testina per scrivere e cancellare
sul nastro e un interprete.
Algoritmi
E' un procedimento per la soluzione di un problema.
Esiste un qualcuno (una macchina o in generale un interprete) che
esegue ciò che l’algoritmo specifica (le istruzioni):
• azioni che devono essere eseguite;
• ordine con cui devono essere eseguite.
Un algoritmo può essere paragonato a una ricetta (entità astratta).
La ricetta scritta in un libro di cucina sarà un programma scritto
con un formalismo (linguaggio di programmazione).
Nel definire un problema algoritmico dobbiamo specificare:
• l'insieme degli input ammissibili;
• l'insieme degli output desiderati in funzione degli input.
Un problema algoritmico è risolto se si trova un algoritmo
appropriato (che deve fornire output corretti partendo da tutti gli
input ammissibili).
Problemi
•
•
•
•
Fortemente Indecidibili (Tiling Problem con spazio infinito)
Indecidibili (Halting Problem, Tiling Problem)
Intrattabili (Torri di Hanoi, Scacchi, Blocchi stradali)
Decidibili
TSP, Scheduling, problema dello zaino, massimizzazione,
problemi economici e di ricerca operativa sono NP-Completi (il
loro tempo di soluzione nei worst-case è non polinomiale).
Il calcolo parallelo aiuta la ricerca di soluzioni in casi adatti (e.g.
scavare un pozzo o un fossato).
I metodi Montecarlo e Las Vegas possono ridurre i problemi NP
alla classe RP. Ma ogni algoritmo casuale può essere simulato
da uno deterministico, ricadendo nella tesi di Church-Turing.
Halting Problem
Un programma si ferma davvero per tutti gli input
fornendo un risultato?
Secondo il teorema di Rice non possiamo dire “un bel
niente” sui programmi e non esiste un algoritmo in
grado di stabilire se una certa computazione ha
qualsiasi proprietà non banale.
Uno dei più famosi Halting problem è quello proposto da
L. Collatz in 1937, noto anche come 3x+1
(http://mathworld.wolfram.com/CollatzProblem.html).
Non è provato che si fermi per tutti gli input positivi, e
crea cicli per input negativi (-1, -5…)
Collatz – “3X+1”
#include <stdio.h>
// 3x+1 problem aka Collatz (1937)
La sequenza (hailstone
numbers) generata dal
numero 27 è lunga 111
elementi.
int main ()
{
int number,i;
i=0;
printf("choose an integer and hit return: \n");
scanf("%d", &number);
printf("\n");
while (number!=1)
{
10000
if (number%2==0)
9000
{number = number/2;}
8000
else {number = 3*number+1;}
7000
i++;
6000
printf("%d %d
\n",i,number); 5000
}
4000
return 0;
3000
2000
}
1000
106
99
92
85
78
71
64
57
50
43
36
29
22
15
8
1
0
Test di Turing
1950 Computing Machinery and Intelligence: “Can
machines Think?”
Il test proposto è una conversazione (chat) tra un umano e
alcuni soggetti (umani o macchine). Se l’esaminatore
non distinguerà la macchina dall’umano questa potrà
essere considerata intelligente.
Di solito si chiede al computer/programma di affrontare
sessioni diverse con diversi esaminatori per rendere il
giudizio meno soggettivo.
Molti pensano che nessun computer lo supererà mai.
Ogni anno si tiene il premio Loebner che premia chi più
si avvicina a superare il test di Turing.
Nessuno lo ha mai superato.
Storia
Blaise Pascal nel 1642 realizza la “Pascalina”, una
macchina calcolatrice meccanica.
Charles Babbage a fine 1800 progetta l’Analytic
Engine, un primo computer, mai realizzato e
Ada Byron (Lady Lovelace) inventa le basi
della programmazione.
Nel 1889 Herman Hollerith idea una macchina
calcolatrice a schede perforate per il censimento
americano e dopo poco fonda la International
Business Machines – I BM.
Computer Bellici
Konrad Zuse nel 1931 costruisce Z1, il primo calcolatore digitale
tedesco, usato per le traiettorie delle V2.
Turing collabora al progetto ULTRA che prevede la costruzione di
elaboratori per decifrare il codice tedesco Enigma, basato sui
numeri primi. A Bletchley Park verrà costruito Colossus, e nel
1943 si decifrerà il codice.
ENIAC (electronic numerical integrator and computer) di Prepser
Eckert e John Mauchly sarà usato per il calcolo delle tabelle di
artiglieria e per il progetto Manhattan. Ha il difetto che pochi
minuti di calcolo costano ore di settaggi di relè e interruttori.
EDVAC (electronic discrete variables automatic computer) è il
successore di ENIAC ed è programmabile.
Architettura von Neumann
Nel giugno 1945, durante la costruzione di EDVAC viene
formalizzata l’architettura di von Neumann, oggi
usata nella maggior parte dei calcolatori, che consta
in:
1. una memoria che contenga il programma (nella
macchina di Turing il lungo nastro cartaceo);
2. una unità di calcolo che riceve i dati ed esegue le
operazioni richieste dal programma;
3. una unità di controllo che interpreta le istruzioni di
programma in memoria e fa effettuare all’unità di
calcolo le operazioni corrispondenti.
Summer Research Project on Artificial Intelligence
Dartmouth College, NH, 1956
1. Migliorare la potenza di calcolo e raffinare i metodi di
programmazione;
2. Programmare un computer che “possieda un linguaggio”
manipoli simboli e concetti in maniera simile a una mente
umana;
3. Costruire sistemi di neuroni artificiali capaci di ricreare il
comportamento di sistemi nervosi biologici e di formare
concetti;
4. Stimare la durata di un calcolo o come trovare delle euristiche
per abbreviarla;
5. Automiglioramento dei calcolatori (che imparano da soli e
modificano il proprio programma);
6. Come far sì che i calcolatori possano formare concetti e
astrazioni;
7. Come mettere nei calcolatori una qualche forma di creatività e
libero arbitrio.
Allen Newel, Cilff Shaw, Herbert Simon
Logic theorist LT 1955-56 – viene definito il primo programma di IA.
Dimostra i teoremi contenuti nei Principia Mathematica di Russell e
Whitehead.
The General Problem Solver GPS 1957 – risolve la torre di Hanoi e il dilemma
di “lupo, capra e cavoli”. Si critica che il programma riceve una descrizione
tanto dettagliata del problema da contenere la soluzione dello stesso.
Edward Feigenbaum 1967 – Sistemi Esperti
Sono knowledge-based system composti principalmente da due parti: una base di
conoscenza e un motore inferenziale.
La base di conoscenza raccoglie in maniera simbolica tutte le conoscenze che un
esperto umano usa per risolvere il problema. Il metodo più utilizzato è costruire
una gran serie di regole (rule-based reasoning) del tipo “se X allora Y”.
Con Joshua Lederberg, Bruce Buchanan, George Sutherland scrive Heuristic
Dendral, un sistema esperto per la chimica che nel 1975 scopre nuove molocole.
Sistemi Esperti
Mycin (1974) di Edward Shortliffe è un sistema esperto in diagnosi su meningite
e infezioni del sangue con 400 regole, che batte diversi medici nella diagnosi.
Vantaggi:
• Sanno risolvere problemi scomponendoli in più sottoproblemi;
• Possono fornire una traccia della loro linea di ragionamento;
• Di fronte a informazioni incomplete o contraddittorie se ne rendono conto e
chiedono spiegazioni;
• La loro conoscenza non è stabilita, è possibile accrescerla.
Svantaggi:
• Sono rigidi: non escono dal loro settore specialistico;
• Non hanno creatività e non possono immaginare nuove strategie oltre a
schemi di aggiornamento prefissati;
• La comunicazione con l’uomo è scarsa e non flessibile;
• Sono privi del senso comune.
Un sistema esperto in uso alla Ford per concedere i prestiti, ne concesse uno a un
ragazzo di vent’anni, che vantava dieci anni di onorata carriera: non sapeva
cosa significasse avere vent’anni o dieci.
Douglas Lenat
Automatic Mathematician AM 1982 è un programma
LISP con possibilità di automodificarsi, che partendo
da semplici assiomi impara la matematica (insiemi,
addizioni, ecc.). Automodificandosi corre il rischio di
bloccarsi.
Eurisko è stato usato anche per una variante della
battaglia navale, e crea una strategia con molte navi
piccolissime e veloci, vincendo il campionato.
Cyc, da encyclopedia,1984 contiene 2000000 di regole
che descrivono le conoscenze umane anche più banali
come: “esistono cose che si possono toccare”. Alcune
versioni preliminari di Cyc gestiscono grandi database
“intelligenti”.
Joseph Weizenbaum – Eliza
Lo script Doctor impersona uno psicologo di scuola rogeriana che incoraggia il
paziente a parlare, durante tutta la seduta.
Ma di fronte a frasi come:
“Ho litigato con mia madre” o “Ho visto la Regina Madre” ci chiederebbe
comunque “Mi parli della sua famiglia”.
Kenneth Colby – Parry
Paziente paranoico che si ricorda l’andamento della conversazione.
Traduzioni automatiche
“Ho visto un film con Sharon Stone” – la frase ha due interpretazioni, di cui una
(la presenza fisica di Sharon Stone) viene scartata a priori dagli umani.
Terry Winograd – Shrdlu – 1971
Risposta ai sistemi esperti. Un robot virtuale in un mondo di giocattoli che può:
• Costruirsi una conoscenza completa del mondo e un senso comune sulle
proprietà degli oggetti;
• Modificare il mondo applicando piani e strategie diversi;
• Capire domande e ordini sottoposti in linguaggio naturale.
Giochi
Nel 1950, Claude Shannon, che aveva introdotto l’uso
dell’algebra booleana, teorizza una applicazione per
computer per giocare a scacchi.
Arthur Samuel nel 1960 inventa un programma che gioca
a dama Chinook che usa la regola del min-max. Dopo
poche mosse, osservati gli effetti della scelta, poteva
modificare i propri parametri di scelta del min-max,
migliorandosi.
11 maggio 1997 Deep Blue batte Garry Kasparov a
scacchi (Deep Thought il predecessore, aveva perso
con lui nel 1989).
A detta degli stessi programmatori Deep Blue non pensa
ma usa forza bruta.
Min-max
Secondo la teoria dei giochi di John von Neumann e Oskar
Morgenstern, in ogni momento l’algoritmo del minmax negli
scacchi e in altri giochi può stabilire la mossa migliore da fare. La
mossa massimizzerà il numero di posizioni favorevoli per un
giocatore, minimizzando quelle favorevoli all’avversario. Per
trovarla basta esplorare l’albero della soluzioni quanto più
approfonditamente possibile.
Euristiche
• Sono Regole Pratiche.
• Istruzioni che formalizzano idee intuitive che
eliminano rami interi dell’albero delle soluzioni.
• Un processo che può risolvere un certo problema, ma
che non offre nessuna garanzia di riuscirci, viene detto
un’euristica per quel problema (George Polya).
Cibernetica
• Norbert Wiener applica un potenziometro di
controllo all’artiglieria tenendo conto del
feedback. Sarà il padre della cibernetica, da
kybernetè timoniere.
• 1948 Walter Grey Walter tartarughe elettroniche
Elsie Electro Light sensitive Internal Externsal e
Elmer Electro Mechanical Robot.
• 1957 Planebot braccio robot industriale. Sono
capaci di montaggi e avvitare lampadine, ma
tutto deve essere dettagliatamente programmato
e posizionato con accuratezza.
Rodney Brooks
Costruisce insetti e semplici robot.
Hermes è servito come prototipo alla Nasa per Sojourner.
“L’intelligenza è una proprietà emergente dei sistemi
complessi. Apparirà spontaneamente quando
costruiremo un robot dotato di una gerarchia e di una
coordinazione sufficientemente completa e complicata
di reazioni fra stimolo e risposta”.
Nel 1992 realizza il “bambino
elettronico” di Turing: Kismet
(una testa capace di espressioni
che reagisce a stimoli visivi
esterni) e Cog (un bambino con
braccia che manipola giocattoli).
Il futuro dell’IA
• RoboCup: partite di calcio da 10 minuti con robot
reattivi.
• Reti neurali e Algortimi Genetici.
• Vita artificiale (inventata da von Neumann): Norms di
Stephen Grand.
• Intelligenza Artificiale Distribuita: tanti agenti capaci
di poche operazioni e in grado di coordinarsi.
• Computer affettivi.
Semplificando:
 L’IA forte ha un approccio top down, solo software e
con uso di ragionamento simbolico;
 La cibernetica ha un approccio bottom up.
Contro l’IA
• Secondo il teorema dell’incompletezza di Godel: “ogni
sistema formale è inconsistente, incoerente, cioè
permette di dimostrare frasi false, oppure è incompleto,
cioè non è capace di decidere, dimostrare, la verità o la
falsità di alcuni teoremi”. Un esempio è la frase “io non
sono dimostrabile”; se è dimostrabile è falsa, se invece
la frase fosse vera il teorema non è dimostrabile.
• Roger Penrose usa il teorema di Godel per attaccare
l’IA, sostenendo che nessun computer in grado di
manipolare simboli possa risolvere l’impasse.
• John Searle va contro contro l’IA forte con il paradosso
della Chinese Box, in cui un uomo, rinchiuso con dei
manuali di cinese, interagisce con dei madrelingua
all’esterno. I detrattori sostengono che l’intelligenza sia
nel complesso della stanza (sistema).
Bibliografia
Yurij Castelfranchi – Oliviero Stock
Macchine come Noi – La scommessa
dell’intelligenza Artificiale, Laterza, 2000
David Harel
Computer a responsabilità limitata – Dove le
macchina non riescono ad arrivare, Einaudi,
2000
Scarica

20040409_ia