DOCUMENTS

elab.immagini
galileo
realtà virtuale
vrml
biomeccanica
esapodi
formula1
intelligenza







Papers
meccanica
sistemi
robotica


LA MENTE ARTIFICIALE
L'inferenza

[Indietro]-[Avanti]

Teorie Computazionali del Ragionamento

Il ragionamento viene tradizionalmente visto dalle teorie computazionali come la capacita' di risolvere problemi (problem-solving) tramite l'uso di vecchia conoscenza e la produzione di nuova conoscenza. Un problema e' una situazione in cui alcuni elementi sono noti e altri sono incogniti. Risolverlo significa assegnare un valore a quelli incogniti.

Cosi' definito, il ragionamento si situa nella tradizione del "pensiero riflessivo" di John Dewey (1933). Il pensiero riflessivo si distingue da quello istintivo (la reazione immediata a una situazione) e da quello di "flusso di coscienza" in quanto consiste nel cercare la soluzione ad un problema. Dewey non specifica pero' le regole normative che consentono al pensiero riflessivo di svolgere il proprio compito.

Peirce distingueva tre diversi ruoli della logica: la logica empirica fornisce "leggi descrittive" di cio' che facciamo quando pensiamo; la logica matematica fornisce "leggi formali" che idealizzano il processo di ragionare (e' intuitivo che l'uomo comune non utilizza tali leggi formali quando pensa); la logica normativa fornisce "leggi prescrittive" su come si dovrebbe ragionare.

Per il programma dell'Intelligenza Artificiale il ruolo piu' importante e' proprio quello normativo che e' stato tradizionalmente sottovalutato. La logica normativa dipende pero' dai risultati della logica matematica: questa studia infatti perche' certi processi di ragionamento sono validi e altri no. Purtroppo la logica matematica e' del tutto inadeguata a trattare gran parte dei ragionamenti "pratici" che interessano l'Intelligenza Artificiale. Dagli studi di Howard Gardner (1985) sui processi di pensiero utilizzati dalla gente comune nel risolvere alcune classi di problemi emerge chiaramente che l'uomo comune impiega processi di ragionamento molto lontani da quelli della logica matematica, e che, in generale, e' assai piu' efficace nel risolvere quei problemi che hanno implicazioni pratiche che non i problemi di natura astratta. Lo stesso fenomeno era stato fatto notare da Philip Johnson-Laird nel 1970: per qualche ragione e' piu' semplice risolvere un problema del tipo "se compro tre paia di calze da mille lire e pago con una banconota da diecimila, quanto mi spetta di resto?" che non problemi del tipo "quanto fa 10.000 - (1.000 x 3) ?".

Bruce MacLennan ha elencato (1988) un numero di prestazioni che mancano alla logica matematica e che la rendono inadeguata per gli scopi dell'Intelligenza Artificiale. Primo, le quantita' matematiche sono "definite", mentre gran parte delle quantita' trattate dalla mente umana, se non tutte, sono "indefinite" su una dimensione continua (e non discreta) e sono quasi sempre affette da errori e "rumore" (in particolare, ogni regola ammette eccezioni). Secondo, ogni idea e ogni azione dipendono dal contesto in cui ci si trova (chi segue sempre le regole alla lettera viene comunemente considerato "stupido", non intelligente). Terzo, vale la critica di Wittgenstein (1958) all'atomismo logico, secondo la quale un fenomeno non puo' essere scomposto in fenomeni elementari ma deve invece essere trattato come un tutto. Quarto, non dimentichiamoci che ogni nostra azione viene compiuta per uno scopo ben preciso, ovvero con un'"intenzione", e che la conseguenza dell' "intenzionalita'" (alla Searle) e' quello di restringere la quantita' di contesto da prendere in considerazione per compiere quell'azione.

La ragione di queste carenze della logica matematica e' da ricercarsi nella sua stessa storia e nel cambiamento culturale avvenuto fra il secondo scorso e la nostra era. Per secoli l'uomo ebbe bisogno soprattutto di strumenti che gli consentissero di compiere predizioni esatte. La Logica Matematica segno' il culmine di quel programma di ricerca. Oggi possiamo costruire ponti e garantire che reggeranno il peso degli autocarri, quando nessun essere umano sarebbe in grado di stabilirlo a mente. Tutta la moderna tecnologia esiste precisamente perche' il programma della Matematica ha avuto successo. Non bisogna biasimare i matematici se quel programma e' inadeguato a simulare la mente umana: il loro scopo non era quello di simulare la mente umana, era quello di fornire strumenti esatti agli ingegneri.

Il programma dell'Intelligenza Artificiale costituisce invece il culmine di un'altra linea di ricerca, molto piu' recente, per la quale non ha piu' molta importanza scoprire strumenti esatti di calcolo (visto che ormai l'umanita' riesce a costruire tutto cio' che ha bisogno di costruire), mentre riveste un'importanza sempre maggiore il riuscire a simulare la mente umana nei processi non matematici che guidano le nostre azioni quotidiane. I progressi della neuro-biologia hanno inoltre fatto aumentare le attese per una teoria che spieghi il funzionamento della mente umana. Lo scenario culturale in cui si muove l'Intelligenza Artificiale e' ideologicamente agli antipodi di quello in cui si muoveva la Matematica dei secoli scorsi. Non stupisce, pertanto, che quella Matematica finisca per essere piu' d'impaccio che d'utilita' quando si tenta di impiegarla nello studio della mente.

La Deduzione

Il tipo di ragionamento che meglio si presta ad essere trasformato in un modello computazionale e' quello deduttivo, se non altro perche' la teoria della computazione ebbe origine proprio dall'evoluzione del pensiero deduttivo.

Il ragionamento deduttivo e' quello in cui il problema fornisce sufficiente informazione per trovare la soluzione. Un problema deduttivo puo' sempre essere risolto trasformando la situazione di input nella situazione di output desiderata attraverso una serie di operazioni logiche. Nel ragionamento deduttivo non viene pertanto prodotta alcuna conoscenza che non fosse gia' implicita nella conoscenza iniziale del problema.

E' questo il caso, per esempio, della Logica classica: tutti i teoremi che e' possibile dimostrare sono impliciti negli assiomi e nelle regole di inferenza. Anche la Logica classica concede pero' ampio spazio all'intuito del matematico che deve dimostrare il teorema nello scegliere quali assiomi e quali regole di inferenza utilizzare e in che ordine. Paradossalmente anche la disciplina dell'esatto deve affidarsi al buon senso per ottenere dei risultati pratici.

Dovendo programmare una macchina in modo che tale macchina sia poi in grado di risolvere problemi occorre formalizzare quella forma di "intuito". Cio' viene realizzato fin dai tempi del GPS di Newell tramite un'astrazione detta "ricerca nello spazio di problema". Lo spazio di problemi puo' essere considerato come l'insieme di tutte le situazioni possibili: il problema da risolvere e' la situazione iniziale e la sua soluzione e' la situazione finale. Tali situazioni vengono dette "stati" del problema. Risolvere il problema si traduce allora nel trasformare lo stato iniziale nello stato finale attraverso un numero finito di transizioni di stato. Per esempio la dimostrazione di un teorema con le regole di inferenza della logica classica si traduce nel problema di ricerca seguente: gli assiomi costituiscono lo stato iniziale; le regole di inferenza sono gli operatori che fanno compiere transizioni di stato; il teorema e' lo stato finale.

In tal modo viene compiuta anche la saldatura naturale fra "rappresentazione" e "derivazione", che sono le due parti complementari della costruzione di una macchina in grado di risolvere problemi: rappresentare la conoscenza e derivare soluzioni.

Gli operatori utilizzati sono quelli della Logica. Nonostante le sue limitazioni la Logica e' infatti uno strumento prezioso poiche' consente di mettere in relazione la competenza inferenziale (cio' che la mente deve calcolare e perche') con la performance inferenziale (come la mente lo calcola). In tal senso va interpretata l'affermazione di Boole che le leggi del pensiero siano le leggi della logica.

La logica e' pero' "cieca": e' capace di risolvere il problema (se il sistema formale e' ben definito), ma incapace di determinare quale sia la migliore strategia per risolverlo. Esistono infatti infinite strategie possibili per risolvere un problema. Ad ogni passaggio e' possibile scegliere di procedere in modi diversi, tutti egualmente validi dal punto di vista logico. Questa decisione non e' banale, poiche' puo' avere conseguenze rilevanti sul proseguio del ragionamento e determinare il numero di passaggi che saranno necessari per arrivare alla soluzione.

Per esempio, supponiamo di voler stabilire se i miei genitori sono cinesi. Un modo di farlo e' di considerare tutti gli abitanti della Cina e verificare se due di essi sono miei genitori: questa strategia richiede centinaia di milioni di passaggi per trovare la soluzione. Un altro modo di farlo e' di considerare i mie due genitori e verificare se sono cinesi: questa strategia richiede soltanto due passaggi. In entrambi i casi si ottiene la soluzione corretta, ma e' evidente che scegliere la strategia ottimale consente di risparmiare una quantita' enorme di risorse computazionali.

I comici fanno spesso ricorso a strategie insensate, per quanto corroborate da una logica ineccepibile. In una scena del film "Horse Feathers" Chico e Harpo Marx, improvvisatisi barbieri, devono accorciare i baffi a un malcapitato che si e' addormentato sulla poltrona. Harpo li accorcia a caso, poi Chico tenta di determinare se le due meta' sono lunghe eguali. Non riuscendoci ad occhio, decide di far ricorso a due metri. Il problema e' ora quello di misurare entrambe le meta' del baffo rispetto a un punto di riferimento comune. Sarebbe intuitivo scegliere il centro del baffo come punto di riferimento per la misurazione, ma Harpo e Chico non hanno esitazioni e scelgono la parete: tirano pertanto i due metri dalla parete alle due punte del baffo. Quindi le confrontano e notano che una delle due e' piu' lunga di un centimetro. Il problema e' ora quello di accorciare l'altra misura di un centimetro. Harpo prende un paio di forbici e taglia il suo metro di un centimetro: confrontando i due metri, che danno ora la stessa misura, Harpo e Chico considerano conclusa l'operazione.

E' intuitivo che il ragionamento va controllato con il "buon senso". Il buon senso si traduce quasi sempre nel principio di economia: ridurre al minimo le risorse computazionali richieste per la soluzione del problema. "Ragionare" non e' tanto il "saper applicare le regole della logica" quanto il "saper trovare la strategia che soddisfa il principio di economia".

Il Sistema di Produzione

Un metodo computazionalmente efficace di operare sullo spazio del problema, e altrettanto coerente con la logica classica, e' quello dei "sistema di produzione", ovvero dei sistemi in grado di compiere inferenze sulle regole di produzione. Una regola di produzione e' infatti una formula del calcolo dei predicati logici del primo ordine, espressa in una sintassi che ne consente una facile elaborazione meccanica. Grazie a cio' un sistema di produzione e' in grado, a partire da un insieme di asserzioni e di regole di produzione, di stabilire tramite regole di inferenza il valore di verita' di una proposizione.

Mentre in un programma composto di istruzioni sequenziali e' chiaro come il ragionamento procedera' (secondo la "sequenza" delle istruzioni), nel caso di un insieme di regole di produzione non esistono un inizio e una fine chiaramente identificati dalla loro posizione all'interno dell'insieme. Non esiste un ordinamento delle regole di produzione, ma esiste una chiara relazione causale fra di esse. Ogni regola e' composta da due formule, un antecedente e un conseguente (IF antecedente THEN conseguente): la formula dell'antecedente la pone in relazione con tutte le regole che hanno quella stessa formula come conseguente, e la formula del conseguente la pone in relazione con tutte le regole che hanno quella stessa formula come antecedente. Per esempio, la regola "IF starnuto THEN raffreddore" e' messa dal suo antecedente in relazione con "IF freddo THEN starnuto" e dal suo conseguente in relazione con "IF raffreddore THEN aspirina". Naturalmente possono esistere piu' regole che hanno per antecedente "raffreddore" e piu' regole che hanno per conseguente "starnuto". Quando si mettono in relazione due regole che hanno in comune un antecedente o un conseguente si dice che esse sono state "concatenate". Concatenando due regole si genera della conoscenza. Per esempio, concatenando "IF freddo THEN starnuto" e "IF starnuto THEN raffreddore" si ottiene la regola "IF freddo THEN raffreddore".

Questa relazione causale puo' essere sfruttata per procedere in due modi: in avanti (forward) o a ritroso (backward). Il ragionamento forward consiste nel propagare verita' tramite la concatenazione conseguente-antecedente, ovvero cercando la regola che ha un antecedente pari al conseguente della regola attuale, mentre il ragionamento backward consiste nel propagare verita' tramite la concatenazione antecedente-conseguente, ovvero cercando la regola che ha un conseguente pari all'antecedente della regola attuale.

Questi due approcci rappresentano strategie di ragionamento radicalmente diverse. Nel caso forward si propaga verita' nota: da qualche sorgente il sistema apprende che "freddo" e' vero e, con una serie di concatenazioni conseguente-antecedente ne deduce che "starnuto", "raffreddore" e "aspirina" devono anche essere veri. Il meccanismo si mette in moto quando viene rivelato che "freddo" e' vero, ossia ogni qualvolta viene fornita nuova verita' al sistema.

Il ragionamento forward viene anche detto "data-driven", guidato dai dati, poiche', appunto, il meccanismo viene messo in moto da nuovi dati pervenuti al sistema, e compito del sistema e' dedurre tutti i fatti che si possono affermare in seguito a questi nuovi dati.

Nel caso backward invece cio' che viene propagato e' la richiesta di dimostrare una verita': il sistema intende dimostrare che "aspirina" e' vero e, con una serie di concatenazioni antecedente-conseguente ne deduce che "aspirina" e' vero se "raffreddore" e' vero, e "raffreddore" e' vero se "starnuto" e' vero, che e' a sua volta vero se "freddo" e' vero. Se "freddo" e' vero, allora si e' dimostrato che "aspirina" e' vero.

Il ragionamento backward viene anche detto "goal-driven", guidato dall'obiettivo (goal), poiche', appunto, il meccanismo viene messo in moto dall'obiettivo di dimostrare che un certo fatto sia vero e il sistema, comportandosi come un classico dimostratore di teoremi, tenta di dimostrare che quel fatto si deduce dai fatti noti.

In altre parole il ragionamento forward calcola tutti i fatti che sono veri, mentre il ragionamento backward calcola se un fatto e' vero. In backward il sistema di produzione cerca a ritroso la sequenza di giustificazioni che fanno discendere un certo fatto dai fatti noti; in forward il sistema asserisce tutti i fatti che vengono giustificati dai nuovi fatti.

Si ragiona generalmente in forward quando si deve risolvere un cruciverba o un'equazione; si ragiona generalmente in backward quando si deve rispondere di si' o di no ad una domanda o quando si cerca l'uscita di un labirinto.

Rappresentando il problema in uno spazio degli stati, si assume che la sua risoluzione consistera' poi nel "cercarne" la soluzione, ovvero che la sua risoluzione potra' sempre essere ricondotta ad una "ricerca" in tale spazio degli stati. Tanto il ragionamento backward quanto quello forward consistono nel compiere una ricerca di regole (quelle con l'antecedente simile al conseguente o viceversa).

Il ragionamento all'interno di un sistema di produzione puo' essere rappresentato da un "albero", da una sorta di genealogia degli stati percorsi. L' albero e' un grafo in cui tutti i nodi hanno uno e un solo predecessore, salvo un nodo privilegiato, cosiddetto "radice", che non ha alcun predecessore (la rete semantica e' un grafo, ma non necessariamente un albero). La struttura ad albero si presta meglio di ogni altra per la "ricerca", in quanto in un albero si e' sempre certi di poter raggiungere un nodo (in una rete non e' detto che si arrivi mai ad un particolare nodo, per esempio perche' si entra in un circolo vizioso di nodi che si rimandano l'un l'altro), ovvero di arrivare alla soluzione quando essa e' presente.

Al di la' del fatto che il ragionamento sia backward o forward, in un albero sono possibili due tipi di strategie di ricerca. Il primo tipo e' quello delle "ricerche cieche" (blind search), che non hanno informazioni relative allo spazio in cui operano e si limitano pertanto ad applicare un algoritmo indipendente dal contesto. Le seconde, le "ricerche euristiche" (heuristic search), possiedono invece informazioni determinanti per operare in maniera efficiente in quello spazio.

Per esempio, dovendo cercare un frisbee che e' finito su un albero, esistono due modi di procedere: il primo e' quello di esplorare ogni ramo dell'albero fino alla cima finche' non si sono provati tutti i rami possibili; il secondo e' quello di esplorare prima ogni ramo fino alla sua prima diramazione, e poi ogni ramo fino alla seconda diramazione e cosi' via sempre piu' in alto finche' non si sono provate tutte le diramazioni. Analogamente si possono definire due principali ricerche di tipo "cieco": secondo il primo, si decide in quale direzione procedere e si continua in quella direzione finche' e' possibile (metodo "depth-first": si esplora l'albero prima in profondita'); con il secondo si procede in parallelo tutte le direzioni, scendendo passo passo le gerarchie dell'albero (metodo "breadth-first": si esplora l'albero prima in ampiezza). Quale delle due si sceglie ha un' importanza notevole tanto per la velocita' della ricerca, quanto per il risultato stesso che verra' trovato. Nel primo caso, se la soluzione si trova al principio dell'ultimo ramo dell'albero, la strategia e' la peggiore, perche' bisogna passare per tutti i rami ed esplorare ciascuno fino in fondo prima di giungere alla soluzione, mentre in breadth-first ci si arriverebbe molto prima. Non solo: se esistono due soluzioni nell' albero, a seconda della strategia scelta si trovera' prima l'una o l'altra.

Per esempio, nel sistema di produzione

.DS L IF b(X) THEN a(X). IF a(X) THEN b(X). a(1). .DE

le cui tre regole asseriscono come dedurre b(X) da a(X) e a(X) da b(X), per qualsiasi X, e asseriscono altresi' che a(1) e' sempre e comunque vero, il ragionamento backward che volesse dimostrare se a(1) sia vero o falso, dovrebbe intuitivamente pervenire alla risposta che e' vero. Ma una ricerca depth-first si infila subito in un dedalo cieco, perche' per dimostrare a(1) cerca (prima frase) di dimostrare b(1), che puo' essere dimostrato (seconda frase) soltanto se e' vero a(1), per dimostrare il quale (prima frase) bisogna dimostrare b(1), e cosi' via all'infinito: la ricerca depth-first non perverra' a nessuna soluzione, perche' continuera' ad esplorare il primo ramo a profondita' sempre maggiori e non potra' mai passare al secondo ramo, quello che contiene la soluzione.

Un algoritmo breadth-first esaminerebbe invece prima tutti i primi livelli dell'"albero": a(1) puo' essere dimostrato (alfa) dalla prima frase o (beta) dalla terza; secondo (alfa) per dimostrare a(1) occorre dimostrare b(1); secondo (beta) a(1) e' vero. Non occorre procedere oltre perche' la soluzione e' gia' stata trovata in uno dei rami dell'albero.

Tanto il ragionamento backward quanto quello forward prendono in esame l'intero "albero" di stati del problema. Per rendere piu' efficiente la ricerca della soluzione e' indispensabile pero' poter "potare" (prune) tale albero, in modo da ridurre considerevolmente il numero di possibili percorsi. Il "pruning" consiste nell'adottare una strategia ben precisa di ricerca basata su una qualche forma, piu' o meno generale, di euristica.

Esistono numerose ricerche euristiche che suggeriscono strategie caratterizzate in qualche modo da "buon senso". Per ricerca euristica si intende una tecnica che rende piu' veloce il processo di ricerca anche al prezzo di renderlo meno preciso. Una ricerca euristica non garantisce di trovare "sempre" la soluzione "migliore", ma garantisce di trovarne "quasi sempre" almeno una "molto buona". Nel risolvere un integrale, per esempio, si decide spesso di applicare prima le regole che intuitivamente appaiono piu' promettenti. La ricerca euristica e' particolarmente indicata nei casi in cui si desidera trovare una soluzione, non necessariamente la migliore.

In molti casi reali l'euristica e' vitale per evitare le cosiddette "esplosioni combinatoriali", ovvero la crescita esponenziale e senza fine dei percorsi possibili all'interno dello spazio di ricerca. D'altronde nel mondo reale raramente abbiamo bisogno della "migliore" soluzione possibile, il piu' delle volte ci e' sufficiente trovare una buona soluzione. Non ci si attende, per esempio, che il modo in cui si e' investito il proprio denaro sia in assoluto il piu' remunerativo possibile, ma certamente si spera che sia remunerativo.

In altre parole le ricerche euristiche sono metodi approssimati per risolvere problemi con un costo ragionevole di risorse computazionali: il tempo di computazione viene ridotto a scapito della qualita' della soluzione. Le classi di problemi piu' indicate per le ricerche euristiche sono quelle per le quali l'algoritmo non esiste (gli integrali) o l'algoritmo e' troppo complesso (gli scacchi).

Le ricerche euristiche si dividono a loro volta in metodi "deboli" e metodi "forti". Un metodo debole e' un metodo che e' indipendente dal dominio specifico di applicazione, ovvero che puo' essere utilizzato in diversi dominii. I metodi forti sono quelli che dipendono strettamente dallo specifico dominio in cui vengono usati, e che pertanto non e' possibile definire in modo generale.

Uno dei primi metodi deboli ad essere usato in un programma di Intelligenza Artificiale fu quello della "means-end analysis": rappresentato il problema nello spazio di problema, si scelga come passo successivo sempre quello che riduce maggiormente la differenza fra lo stato attuale e lo stato obiettivo (goal). Se, per esempio, occorre dimostrare che un teorema e' vero, il problema viene rappresentato da uno stato iniziale che e' l'insieme degli assiomi e da uno stato finale che e' il teorema: nel metodo di means-end analysis si sceglie di applicare ogni volta la regola di produzione che minimizza le differenze fra questi due stati. Oppure se si deve organizzare un viaggio da Torino a Bari e gli stati intermedi possibili sono i varii capiluogo di provincia, si sceglie di passare da Alessandria piuttosto che da Novara sulla base del fatto che Alessandria fa minimizzare la distanza da Bari. Naturalmente la strategia potrebbe rivelarsi sbagliata: potrebbe non esistere un'autostrada che da Alessandria porti a Bari, e pertanto il ragionamento dovrebbe poi retrocedere a Torino e provare un'altra citta'.

Un metodo debole comunemente utilizzato tanto in matematica quanto nella vita quotidiana e' quello di decomporre il problema in sotto-problemi (metodo di "problem reduction") ogni volta che la sua soluzione puo' essere espressa come funzione lineare delle loro soluzioni.

Una categoria di metodi deboli ha a che vedere con il paradigma del "generate and test": invece che cercare la soluzione perfetta, tentare una soluzione plausibile, verificare se funziona, e, se non funziona, trasformarla in un'altra, e cosi' via finche' non se ne costruisca una che funziona. Il risultato della verifica puo' a sua volta influenzare il tentativo successivo, e allora il metodo viene detto "hill climbing".

La Risoluzione

La deduzione e' l'"inferenza logicamente corretta". La deduzione e' l'unico tipo di inferenza in grado di garantire che, se le premesse sono vere, la conclusione e' anche vera. Esistono numerosi altri tipi di inferenza. Per esempio, non essendo mai stato informato dai miei genitori di avere una sorella, io ne inferisco di non avere sorelle; la diagnosi di un medico non e' mai certa, ma semplicemente coerente con i sintomi del paziente; se ogni volta che si e' presentata una certa situazione, si e' verificato un certo evento, ne possiamo inferire che a fronte di quella situazione si verifichera' sempre quell'evento. Sono tutti casi in cui in realta' non esiste una prova che dimostri in maniera inconfutabile le conclusioni, anche se esistono forti indizi che inducono comunemente a credere nelle conclusioni di queste inferenze. Al contrario concludere da "tutti gli uomini sono mortali" e "Socrate e' un uomo" che "Socrate e' mortale" e' un tipo di inferenza "logicamente corretta", ovvero una deduzione, e non sussitono margini di dubbio su tale conclusione.

Lo strumento linguistico inventato da Frege per eseguire inferenze logicamente corrette e' il calcolo dei predicati, in particolare quello del primo ordine, con il quale e' possibile esprimere gran parte delle affermazioni utili. L'intera logica si basa sull'idea che, noti alcuni fatti, si vuole dimostrare se un certo altro fatto e' vero. Nella logica dei predicati il fatto da dimostrare viene detto "teorema" e i fatti noti vengono detti "assiomi", e tutti vengono espressi come "formule". Le regole di inferenza specificano quali siano le condizioni sotto le quali un insieme di fatti convalida un altro fatto. Applicando le regole di inferenza in maniera ricorsiva si perviene a dimostrare se gli assiomi convalidano il teorema o no.

Sia i fatti sia le regole dei sistemi di produzione sono traducibili in formule della logica dei predicati. Il fatto che "non ho sorelle" si traduce nel fatto "NOT sorella(Piero)". La regola "IF X e' sorella di Piero THEN X e' figlia di Rosa" si traduce nel fatto "NOT sorella(X, Piero) OR figlia(X, Rosa)". E cosi' via. Le regole di inferenza sono le stesse della logica dei predicati.

Per semplificare il lavoro alla macchina che dovra' applicare le regole di inferenza a un sistema di produzione e' indispensabile ridurre al minimo i connettivi. Per costruire formule basterebbero soltanto due connettivi: AND e NOT oppure OR e NOT. Con opportune combinazioni di "e" e "non" si puo' infatti esprimere qualsiasi "o" (e, simmetricamente, con opportune combinazioni di "o" e "non" si puo' esprimere qualsiasi "e"). Per esempio, la frase "Milano non e' una capitale e Pisa non e' una capitale" si puo' riscrivere come "non e' vero che o Milano o Pisa sono capitali", eliminando la congiunzione "e". Analogamente e' possibile ridurre il numero di quantificatori: dire che "esiste una donna che e' sorella di Piero" equivale a dire "non tutte le donne sono non sorelle di Piero". Per quantificazioni piu' complesse bisogna ricorrere al metodo inventato dal matematico Thoraf Skolem, oggi noto come "skolemizzazione", che consente di eliminare i quantificatori indesiderati sostituendoli con funzioni. E' pertanto possibile limitarsi ai quantificatori "esistenziali", eliminando del tutto quelli "universali" (per-ogni).

Trovare una soluzione nello spazio di problema si riduce cosi' a dimostrare un teorema usando un formalismo che e' un sotto-insieme di quello possibile. La dimostrazione per assurdo e' particolarmente semplice da meccanizzare grazie a un processo, detto di "risoluzione", inventato da Alan Robinson nel 1963, che costituisce in un certo senso il culmine delle ricerche sui dimostratori automatici (sui computer in grado di dimostrare teoremi) iniziate con il Logic Theorist di Newell e Simon. La dimostrazione per assurdo parte dal presupposto che, per dimostrare che io non ho sorelle, basta cercare di dimostrare che io ho sorelle: se cio' porta ad una contraddizione, allora il teorema e' vero. Il metodo per assurdo si rivela molto piu' semplice per una macchina.

L'algoritmo di risoluzione impone innanzitutto che ogni formula sia espressa in "forma congiuntiva", ovvero come una serie di AND di termini (i quali possono essere predicati, oppure espressioni fra parentesi di predicati). Inoltre non devono comparire quantificatori esistenziali, ma solo quelli universali. Una volta tradotta la formula in forma congiuntiva, i singoli termini della congiunzione costituiscono le "clausole" che devono essere vere affinche' sia vera la formula nel suo insieme. In altre parole, la complessa situazione originale e' ora spiegata in termini di sotto-situazioni che devono essere tutte vere simultaneamente.

Ogni clausola e' una disgiunzione di termini non quantificati, ovvero ogni sotto-situazione e' una alternativa fra diverse possibili sotto-sotto-situazioni. Il programma di questa sera e': "ceno e mi diverto", dove "ceno" e' una scelta fra i miei ristoranti preferiti e "mi diverto" puo' essere "cinema", "teatro", "musica".

Il metodo di risoluzione consiste nell'esprimere in un'unica espressione congiuntiva sia gli assiomi sia la negazione del teorema (e qui fa ricorso al ragionamento per assurdo). Se il teorema e' vero, questa espressione si potra' semplificare fino ad ottenere una contraddizione. Se l'obiettivo fosse di dimostrare che da "ceno e mi diverto" si deduce che "mi diverto", l'espressione congiuntiva sarebbe "ceno e mi diverto e non mi diverto", nella quale e' evidente la contraddizione.

Il metodo della risoluzione va poi integrato con quello dell'"unificazione" per tener conto delle variabili. Un predicato puo' infatti essere vero quando le sue variabili assumono certi valori, ma essere falso per altri valori:

sorella(Gisella, Emilia) e' vero

ma sorella(Gisella, Piero) e' falso.

La dimostrazione del teorema puo' procedere soltanto se si riduce il campo di possibili valori delle variabili ai valori che rendono veri tutte le clausole. Dati due predicati che hanno in comune una variabile, bisogna limitare i possibili valori di quella variabile all'intersezione fra i valori che rendono vero il primo e i valori che rendono vero il secondo, cioe' a quelli che rendono vero tanto il primo quanto il secondo. Da quel momento in poi si devono prendere in considerazione soltanto quei valori anche per tutti gli altri predicati. Di questo passo il dominio della dimostrazione tende a restringersi, e generalmente alla fine il teorema risulta vero soltanto per alcuni valori ben precisi delle variabili in gioco.

Per esempio, chiedere quali donne siano sorelle di Emilia equivale a dimostrare il teorema che "Le donne sono sorelle di Emilia". Il teorema risultera' vero soltanto per alcuni valori: quelli che sono donne e che sono al tempo stesso sorelle di Emilia.

Arthur Nevins ha riformulato l'unificazione come una variazione del modus ponens:

noto che "se p allora q" .br e noto che "p'" .br allora "q'",

dove "p'" unifica con "p", e la stessa sostituzione viene applicata a "q" per ottenere "q'".

Oppure equivalentemente

noto che "se p(x) allora q(x)" .br e noto che "p(a)" .br allora "q(a)".

Per quanto psicologicamente poco plausibile (la mente umana non compie certamente tutti questi passaggi algebrici per prendere una decisione), questa tecnica e' oggi la piu' utilizzata dai programmi di Intelligenza Artificiale.

Il maggior problema che i matematici non sono ancora riusciti a risolvere e' quello della "non decidibilita'". Il metodo di risoluzione giunge certamente alla conclusione se il teorema e' vero e dimostrabile, oppure se e' falso. Ma il teorema, pur essendo vero, potrebbe non essere dimostrabile (per esempio perche' manca qualche elemento) e il processo di risoluzione in questo caso continuerebbe all' infinito. Quel che e' peggio, nessuno, osservando l' algoritmo al lavoro, e' in grado di capire se la soluzione verra' trovata nel giro di 5 passaggi, nel giro di 5.000 passaggi, o mai. Ovviamente questi problemi, che non si presentano alla mente umana, sono legati alla mancanza di informazioni euristiche. La mente umana non si limita a calcolare espressioni logiche, pianifica anche di volta in volta la mossa successiva nel modo piu' sensato.

Il Sistema di Pianificazione

La ricerca all'interno di uno spazio di problemi puo' essere anche vista sotto un'altra luce, come pianificazione di mosse per raggiungere lo stato obiettivo. In tal senso risolvere un problema consiste nel trasformare lo stato del mondo in un nuovo stato mediante l'applicazione di una sequenza di operatori.

Il primo sistema di pianificazione fu proprio il GPS di Newell. Dato uno stato del mondo e uno stato obiettivo, GPS calcola la "differenza" fra questi due stati e applica allo stato attuale un operatore che sia in grado di operare su tale differenza; GPS ripete ricorsivamente questa procedura sul nuovo stato del mondo e sugli stati via via cosi' prodotti finche' la differenza fra uno di tali stati e lo stato obiettivo si annulla. La strategia di GPS e' pertanto depth-first secondo un metodo di "means-end analysis". La pianificazione di GPS viene detta "lineare" in quanto il piano risultante e' un insieme totalmente ordinato di operatori.

Il concetto di pianificare e' particolarmente importante nel progettare robot, macchine non solo intelligenti ma anche mobili. Un robot deve essere in grado di coordinare i propri movimenti in maniera tale da compiere il movimento desiderato. Afferrare un oggetto, per esempio, implica spostare il braccio meccanico dalla posizione attuale a quella che chiude nelle dita l'oggetto: questo evento puo' essere rappresentato come un problema da risolvere in uno spazio di problemi i cui stati sono le varie posizioni del braccio. Per un robot la risoluzione di un problema consiste nella definizione del piano di azioni da compiere.

La differenza fra un sistema di produzione e un sistema di pianificazione consiste nella diversa prospettiva da cui viene inquadrato il problema. Il sistema di produzione (production system) rappresenta esplicitamente gli operatori che fanno compiere transizioni di stato, e cioe' le regole di produzione. Un sistema di pianificazione (planning system) rappresenta esplicitamente gli stati del problema. Invece di frasi del tipo

IF espressione THEN espressione

il sistema di pianificazione contiene frasi del tipo

HOLDS (situazione, stato),

che descrivono uno stato (quello stato e' vero in quella situazione), oppure del tipo

OCCURS (situazione, stato1, stato2)

che descrivono una transizione di stato (in quella situazione avviene una transizione dallo stato "stato1" allo stato "stato2").

Il compito di un sistema di pianificazione e' quello di ridurre la propria azione a una sequenza di azioni primitive, basandosi sulla sua conoscenza delle varie azioni possibili e dei loro effetti. In un certo senso il suo compito e' quello di costruire un algoritmo, mettendo insieme un certo numero di queste azioni.

STRIPS, sviluppato nel 1971 da Nils Nilsson, anch'esso improntato ad una strategia di "means-end analysis", fu il sistema in cui vennero formalizzati i fondamenti della pianificazione: il piano come insieme ordinato di operatori; l'operatore come la rappresentazione di un'azione sotto forma di regole di inferenza; l'azione come una regola che definisce in che modo il modello del mondo venga cambiato dalla sua esecuzione; lo stato come modello del mondo rappresentato da formule della logica dei predicati del primo ordine; la soluzione del problema come un particolare stato.

I concetti fondamentali della pianificazione sono pertanto l'"operatore" (cioe' l'azione) e lo "stato" (cioe' il mondo). Un operatore fa passare da uno stato ad un altro ed e' definito da: un insieme di pre-condizioni o "condition list" (condizioni sotto le quali e' in grado di operare) e un insieme di effetti. Gli effetti sono a loro volta suddivisi in fatti che vengono aggiunti allo stato del mondo (la "add list") e fatti che vengono rimossi dallo stato del mondo (la "delete list"). Se con "W" si indica lo stato del mondo in un certo istante, e con "W'" il suo stato in seguito all'applicazione dell'operatore "i", la "regola di transizione" si puo' scrivere come

IF Ci THEN W' = Ai + (W - Di)

dove "Ci" e' la condition list, "Ai" la add list e "Di" la delete list: lo stato del mondo "W'" puo' essere ottenuto, quando siano vere tutte le condizioni espresse da "Ci", togliendo da "W" i fatti espressi da "Di" e aggiungendogli i fatti espressi da "Ai".

Queste operazioni sono possibili perche' STRIPS rappresenta tutto sotto forma di formule della logica dei predicati. La strategia di means-end analysis, per esempio, si puo' realizzare cosi': data la differenza fra lo stato attuale "W" e lo stato obiettivo "G", gli "operatori piu' rilevanti" sono quelli che prevedono nella loro "Ai" la negazione di uno dei predicati della differenza "G-W" o nella loro "Di" l'asserzione di uno di tali predicati, in modo che i due si elidano e la differenza si riduca. L'applicazione dell'operatore piu' rilevante produrra' uno stato "W'" che sara' piu' simile a "G" di quanto lo fosse "W".

Ogni volta che viene prodotto un nuovo stato "W'", STRIPS tenta di dimostrare che lo stato obiettivo "G" consegue da "W'", ovvero che, assunte le formule di "W'" ad assiomi, le formule di "G" costituiscono un teorema dimostrabile sulla base di tali assiomi. Se ci riesce, vuol dire che ha risolto il problema.

L'obiettivo della pianificazione e' quello di trovare una sequenza di operatori che trasformi il mondo dallo stato attuale allo stato obiettivo nel minor numero possibile di transizioni.

Lo stesso risultato si puo' ottenere utilizzando il metodo di Cordell Green (1969) per la sintesi automatica di programmi: la dimostrazione del problema si rivela essere composta da una successione di operatori e tale successione costituisce appunto il piano cercato.

Un modo alternativo di costruire il piano e' quello "gerarchico" introdotto nel 1973 da Earl Sacerdoti. Un problema viene rappresentato tramite una gerarchia di spazi di astrazione a un livello di dettaglio via via maggiore. La descrizione del problema e' pertanto molto semplificata ai livelli superiori. In tal modo il piano "generale" puo' essere costruito relativamente in fretta. Successivamente si passa ai livelli inferiori per espandere tale piano in modo che tenga conto anche dei dettagli. Il suo programma NOAH comincia a ragionare su uno "spazio di astrazioni" che e' una grossolana approssimazione del problema da risolvere, nella quale tutti i dettagli minori vengono ignorati; trovato il piano che porta alla soluzione in quello spazio, NOAH passa ad esaminare i dettagli del secondo livello di astrazione, spiegando in tal modo il piano in termini di azioni piu' primitive.

Per esempio, un passatempo molto comune dell'infanzia e' quello di ritagliare un foglio di carta in modo che alla fine si vedano otto figure umane disposte simmetricamente. Cio' viene ottenuto piegando il foglio quattro volte su se stesso e ritagliando una volta sola la figura con le forbici. Aprendo poi il foglio, si vedono le otto figure. Questo e' un tipico caso di pianificazione gerarchica: al livello di astrazione piu' elevato si e' deciso che per produrre otto volte la stessa figura basta piegare il foglio in otto parti, mentre a un livello di pianificazione piu' basso si sono compiuti i movimenti di taglio che danno origine alla figura umana. Nulla proibisce di ritagliare otto volte la figura, ma e' intuitivo che cio' richiederebbe piu' tempo.

Il modo in cui NOAH costruisce il piano e' "non lineare". Il suo spazio di problema non contiene stati, ma piani parzialmente ordinati; e i suoi operatori non sono azioni sugli stati, ma trasformazioni sui piani. Una trasformazione, per esempio, puo' far si' che un piano venga trasformato in un piano maggiormente dettagliato; un'altra trasformazione puo' fissare una volta per tutte l'ordine delle azioni. La trasformazione piu' appropriata per un certo piano parziale viene identificata sulla base del principio di "least commitment": "non fare oggi cio' che puoi fare domani", cioe' prendi una decisione soltanto quando non puoi farne a meno. Questa strategia e' spesso conveniente perche' in un certo istante puo' essere disponibile meno informazione di quanta ve ne sara' piu' avanti. Al tempo stesso e' necessaria se si vuole poter procedere in maniera gerarchica, ovvero ridurre il problema a un certo numero di sotto-problemi, ciascuno piu' o meno interagente con gli altri: la strategia di least commitment dice che essi devono essere fatti interagire il piu' tardi possibile. E' per questa ragione che i piani dello spazio di ricerca sono "parzialmente ordinati", ovvero rappresentano di fatto piu' piani possibili.

Il piano e' completo quando risulta composto unicamente di azioni primitive ed esse sono totalmente ordinate.

Per Sacerdoti la costruzione del piano consiste pertanto in una sequenza di trasformazioni di piani parziali.

Il Ragionamento Opportunistico

La pianificazione dinamica e' invece quella in cui il piano non puo' essere progettato nella sua totalita', ma deve essere "improvvisato" di continuo sulla base delle informazioni che si rendono man mano disponibili. Per esempio, ogni simulazione realistica del movimento di un robot deve tener conto del fatto che esistono gli imprevisiti, e consentire pertanto di rivedere il piano di quel movimento sulla base di cio' che capita durante il movimento stesso.

Un caso particolarmente importante di pianificazione dinamica e' quello in cui le informazioni che si rendono disponibili dinamicamente a un sistema di pianificazione (ovvero a un agente pianificatore) sono quelle prodotte da un altro sistema di pianificazione (ovvero da un altro agente). Appartengono a questa classe di sistemi di pianificazione i sistemi di intelligenza distribuita, dove numerosi agenti indipendenti cooperano per giungere alla soluzione. Un sistema distribuito ragiona in modo simile a quello di un "consulto" di medici specialisti: a turno ciascuno specialista esamina sia la diagnosi parziale elaborata dagli altri specialisti sia il caso da curare, e raffina a sua volta la diagnosi parziale. Dal contributo di tutti gli specialisti si perviene alla diagnosi completa, ovvero alla soluzione del problema.

Come sempre quando si tratta di collaborare, il problema principale e' quello della comunicazione: durante il loro lavoro i vari agenti "specialisti" devono essere in grado di scambiarsi informazioni. Esistono un modo sintattico e un modo semantico in cui due agenti pianificatori possono scambiarsi informazioni. Quello sintattico consiste semplicemente nello "scrivere" su una "lavagna" le conclusioni a cui si perviene man mano. Entrambi gli agenti possono leggere l'insieme delle conclusioni parziali finora raccolte e scrivere a loro volta nuove conclusioni. Il metodo e' sintattico poiche' la comunicazione avviene tramite un ente neutro come la lavagna.

Il modo semantico consiste invece nel rappresentare internamente a ciascun agente l'altro agente. Ciascun agente ha in tal caso un modello delle convinzioni dell'altro agente. La pianificazione dell'altro agente diventa una variabile della propria pianificazione. Ogni agente comprende di fatto un sistema di "credenze" (belief system). La teoria di Kurt Konolidge (1980), per esempio, prescrive che un agente "deduttivo" sia composto da: un linguaggio logico del primo ordine, un insieme di fatti circa gli altri agenti, un insieme di fatti circa i propri obiettivi, un sistema deduttivo in grado di ragionare sui fatti degli altri agenti e un sistema di pianificazione in grado di ragionare sui propri obiettivi.

Il ragionamento di tipo sintattico da' luogo invece al ragionamento "opportunistico" rappresentato dal modello della "lavagna" (blackboard) che e' stato introdotto da Fredrick Hayes-Roth nel 1976 e raffinato da Barbara Hayes-Roth. La blackboard e' la struttura di memoria mediante la quale molteplici agenti pianificatori reperiscono le informazioni di cui hanno bisogno e rendono disponibili quelle che producono. Ogni agente (o "sorgente di conoscenza") opera in un dominio ben preciso con una sua particolare tecnica di inferenza. La blackboard e' pertanto un modello di pianificazione "dinamica" (in quanto ogni agente ri-pianifica di volta in volta le proprie mosse a seconda di cosa legge sulla blackboard), "incrementale" (il piano si viene formando poco alla volta) e "opportunistico" (gli agenti sfruttano di volta in volta le opportunita' che si presentano).

Un sistema a blackboard opera confrontando di continuo due agende di "azioni" (intendendo per "azione" un qualche tipo di ragionamento che uno degli agenti puo' compiere): le azioni che il sistema desidera compiere (le azioni "necessarie") e le azioni che il sistema e' in grado di compiere (le azioni "possibili"). La prima agenda viene riempita da tutti gli agenti che hanno pianificato di compiere certe azioni ma non le possono compiere finche' non si verificano le condizioni appropriate; la seconda viene riempita da tutti gli agenti che hanno raggiunto delle conclusioni parziali e in tal modo hanno realizzato le condizioni in cui altre azioni possono verificarsi. La tecnica di inferenza impiegata per supervisionare il consulto degli specialisti e' pertanto una forma di "action matching": dal confronto delle due agende si determina quali azioni sono al tempo stesso necessarie e possibili, e quindi gli agenti relativi le eseguono. Il risultato dell'action matching e' pertanto la selezione e l'esecuzione di un'azione. Tipicamente l'azione (ovvero il ragionamento) da' origine ad altre azioni dello stesso agente finche' l'informazione disponibile sulla lavagna non e' piu' sufficiente per eseguire l'azione corrente. L'agente e' pero' a sua volta pervenuto a nuove conclusioni, le quali vengono di nuovo interpretate come condizioni per abilitare nuove azioni nell'agenda delle azioni possibili. Al tempo stesso l'agente puo' registrare nell'agenda delle azioni necessarie l'azione che non ha potuto compiere per mancanza di ulteriore informazione, specificando tale informazione come condizione per riprendere tale azione.

Il ragionamento opportunistico della blackboard consente al sistema di adattarsi dinamicamente ad una situazione in continua evoluzione e di focalizzarsi sulla soluzione poco alla volta.

Dal punto di vista computazionale il vantaggio del ragionamento opportunistico e' che prende in considerazione soltanto le azioni che sono possibili e necessarie, ovvero le uniche che sono rilevanti ai fini della risoluzione del problema. Inoltre il ragionamento e' "multi-direzionale", ovvero puo' esplorare piu' strade contemporaneamente.

Hayes-Roth introdusse il modello della blackboard per risolvere il problema della comprensione del parlato, un problema per il quale e' necessario esaminare al tempo stesso almeno suono, fonetica, sintassi e semantica.

Il Ragionamento Distribuito

La struttura di un sistema esperto dipende sia dal tipo di inferenza sia dal tipo di rappresentazione della conoscenza che utilizza per operare nel proprio dominio. I sistemi esperti vengono in pratica utilizzati per risolvere uno spettro di problemi di natura assai diversa fra di loro. Alcuni problemi sono problemi di classificazione (diagnosticare una malattia significa classificare i sintomi del paziente nella categoria medica piu' appropriata), altri sono problemi di configurazione (la soluzione non deve essere trovata fra quelle possibili, ma deve essere costruita pezzo per pezzo) e cosi' via. Esistono diversi tipi di risoluzione di problemi, diversi tipi di "problem-solving".

Secondo B. Chandrasekaran (1983) e' possibile costruire una tassonomia di tipi di problem-solving, ciascuno dei quali e' fondamentalmente diverso dagli altri e puo' essere pertanto trattato adeguatamente soltanto con un modello specifico di ragionamento. Innanzitutto ad ogni problema generico si puo' associare un insieme di metodi per risolverlo. Ciascun metodo e' definito da una conoscenza, da un'inferenza e dall'insieme di obiettivi che deve conseguire. L'insieme di problema e metodi costituisce un "compito generico" (generic task). Ogni tipo di problem-solving deve essere trattato con il corrispondente generic task. Alcuni "task generici" sono particolarmente diffusi fra i sistemi esperti: il task "WWHI" (What will happen if ... ?), cioe' la simulazione degli effetti sul sistema di una certa azione; il task di classificazione, tipico tanto della diagnosi medica quanto dei riconoscimenti di immagine; il task di sintesi della pianificazione; e cosi' via. Ciascuno di questi task rappresenta un tipo peculiare di problem-solving e necessita di una specifica conoscenza e di una specifica inferenza.

Una volta rappresentato il problema come un albero di sotto-problemi, tale albero puo' essere associato a un analogo albero delle "intelligenze" specialistiche piu' appropriate per risolvere quei tipi di sotto-problemi. Un problema complesso puo' cioe' essere rappresentato come un "albero" di task generici, ciascuno specialista nella soluzione di uno dei sotto-problemi che compongono il problema completo. La conoscenza globale del dominio viene cosi' distribuita tra i task generici che la utilizzano, e viene in tal modo soppressa la differenza fra la conoscenza e l'"intelligenza" che ne fa uso: le due entita' si compenetrano e formano l'unita' fondamentale di problem-solving. Il processo di risolvere un problema si traduce pertanto in un'analisi epistemica del problema stesso per identificarne le componenti di problem-solving e poi i corrispondendi task generici. La soluzione si otterra' poi dalla collaborazione dei tanti task generici attivati per risolvere tutti i sotto-problemi dell'albero.

E' un modello che ricorda tanto la "societa' delle menti" di Minsky quanto il modello connessionista (e in particolare i meccanismi di auto-selezione del gruppo neuronale piu' appropriato). Rispetto al modello cognitivo di Newell il livello dei task generici e' un livello intermedio fra quello dei simboli e quello della conoscenza. O, meglio, il livello della conoscenza non e' il livello dell'intelligenza, ma soltanto quello a cui vengono assemblate le strutture cognitive.

Il Ragionamento del Senso Comune

In linea con la tradizione che discende da Russell, e in contrasto con la filosofia del linguaggio ordinario di Wittgenstein e Austin, l'approccio logicistico all'Intelligenza Artificiale, proposto da McCarthy nel 1960, tenta di ridurre per quanto possibile tutta l'inferenza alla deduzione, se necessario anche estendendo il repertorio di metodi della deduzione. Pat Hayes ha definito la posizione logicista nel suo "Naive Physics Manifesto" (1978): formalizzare il buon senso usando la logica dei predicati del primo ordine.

Cio' costituisce apparentemente un paradosso storico. La scienza moderna e' nata essenzialmente da una critica dei metodi di ragionamento informali, quelli che vengono impiegati quotidianamente per prendere decisioni ma che al tempo stesso sono inaffidabili e spesso basati su una visione del mondo errata. La scienza del senso comune di Aristotele, nella quale la Terra era al centro dell'universo e gli oggetti si fermavano quando nessuna forza li spingeva, era in perfetto accordo con le esperienze sensoriali di tutti i giorni. L'ambizione di rifondare la scienza su basi "esatte", ovvero di scoprire la reale struttura dell'universo e di derivarne leggi affidabili, ha dato origine al programma della scienza moderna, impersonato da Galileo Galilei e dalla sua idea di utilizzare un modello matematico per descrivere le leggi della natura. Da allora ad oggi la scienza non ha fatto altro che correggere il punto di vista naif del senso comune: e' la Terra a girare attorno al Sole, e non viceversa come pensava Aristotele, e un oggetto continuerebbe a muoversi all'infinito se non ci fosse l'attrito. All'inizio del secolo ventesimo la Teoria Generale della Relativita' di Einstein (con l'ipotesi che l'universo sia costituito da uno spazio-tempo curvato dalla materia) e la Meccanica Quantistica (con l'ipotesi che leggi probabilistiche presiedano ai fenomeni dei costituenti elementari della materia), nonche' la legge di Hubble (che l'universo si stia espandendo) e il modello "inflazionario" di Alan Guth (che l'universo abbia avuto origine da una dilatazione dello spazio-tempo), hanno portato questa prassi alle estreme conseguenze, proponendo una visione del mondo che ha ben poco in comune con quella dell'uomo della strada.

D'altronde la tecnologia moderna, e cosi' la societa' da essa indotta, e' il risultato diretto di questo programma di scienza obiettiva. La scienza e' diventata un archivio di conoscenze esatte, dimostrabili e riproducibili.

Fino all'avvento dei sistemi esperti l'ingegneria aveva trascurato il comportamento umano: per costruire chiese, ponti, automobili e lavatrici non era necessario poter disporre di formule che spiegassero il comportamento umano, ma formule che spiegassero i fenomeni meccanici, chimici, elettrici. Il sistema esperto, dando vita all'ingegneria della conoscenza, ha reso d'attualita' anche il programma logistico di formalizzare il comportamento umano, ovvero di rendere esatto il senso comune. Tanto le regole di produzione di Newell e Simon quanto i frame di Minsky si situano proprio in quest'ottica: tentare di formalizzare il modo in cui gli umani compiono i loro ragionamenti "naturali" piuttosto che inventare nuove teorie di come il ragionamento "logico" potrebbe essere automatizzato.

Un sistema esperto e' composto da conoscenza del problema e da capacita' logica. Se il problema e' "il mondo degli umani", la conoscenza deve essere quella del buon senso; ma qual'e' la logica? Il mondo degli umani appare controllato da leggi irrazionali, come la legge di Murphy: la probabilita' che una tartina cada sul tappeto nuovo dalla parte della crema e' direttamente proporzionale al valore del tappeto...

Una teoria inferenziale del senso comune deve soddisfare tre requisiti fondamentali che McCarthy ha espresso cosi': (1) adeguatezza ontologica, ovvero consentire di descrivere i fatti rilevanti; (2) adeguatezza epistemologica, ovvero consentire di esprimere la conoscenza rilevante; (3) adeguatezza euristica, ovvero consentire di compiere le inferenze rilevanti.

Il nucleo delle ricerche di McCarthy sul ragionamento del senso comune e' costituito dall'analisi delle "situazioni". Il calcolo delle situazioni (1958) assume come concetti elementari quelli di stato, la cui proprieta' e' la permanenza, e quello di azione, la cui proprieta' e' il cambiamento. Il mondo viene pertanto visto come una successione parzialmente ordinata di stati e azioni. Uno stato e' vero in certe situazioni e falso in altre, un'azione puo' essere compiuta in certe situazioni e non in altre. Per esempio, lo stato Presidente (USA, Bush) e' vero nella situazione del 1990, ma non lo era in quella del 1980.

Uno stato e' rappresentato da un insieme di relazioni del tipo

On (S, A, B)

dette "fluenti", che mettono in relazione alcuni oggetti (per esempio A e B) in quello stato (S), mentre un'azione e' rappresentata da una funzione che ad ogni stato fa corrispondere un altro stato. Per esempio:

Move (S1) --> S2

dove S1 e' definito da un certo numero di relazioni e S2 da un certo altro numero di relazioni.

Il calcolo delle situazioni fa uso delle stesse tecniche dei sistemi di pianificazione. Questi si prestano pero' a tre diverse critiche, corrispondenti alle tre "liste" associate ad ogni operatore.

La prima e' riassunta dal "frame problem" illustrato da McCarthy nel 1969: se e' possibile specificare tutti i fatti che cambiano per effetto diretto di un operatore, non e'invece possibile specificare tutti i fatti che "non" cambiano per effetto di quell'operatore. I secondi sono generalmente molti di piu' dei primi. Se il sistema di pianificazione e' "chiuso", ovvero ammette un numero noto e finito di oggetti ed azioni, il frame problem e' risolubile. Se il sistema e' "aperto", come lo e' il mondo reale, il frame problem non e' risolubile. E' impossibile specificare a un robot tutti i fatti che rimangono invariati nell'universo, o anche soltanto nell'officina in cui deve operare, dopo un suo movimento. D'altro canto e' probabile che prima o poi il robot avra' bisogno di sapere cosa ne e' stato di un certo oggetto: e' ancora com'era l'ultima volta che e' stato parte di un'azione o e' in qualche modo stato interessato dai cambiamenti del mondo intervenuti in seguito alle azioni successive?

Il secondo, complementare, problema e' quello detto di "ramification": e' impossibile registrare tutti i fatti che cambiano per effetto di un'azione. Per esempio, se un televisore viene spostato, vengono spostati anche il suo schermo, il tubo catodico, la spina, l'antenna e cosi' via all'infinito. Infine il "qualification problem" e' quello reso dal paradosso "della patata" di McCarthy: la condizione affinche' un'auto parta e' che si giri la chiavetta di avviamento, ammesso che ci sia benzina, il carburatore funzioni, etc etc, e non ci sia una patata nella marmitta. In altre parole e' altrettanto impossibile specificare tutte le pre-condizioni di un'azione.

Per risolvere questi paradossi nel 1977 McCarthy introdusse il meccanismo della "circoscrizione" (circumscription), una sorta di rasoio di Occam che consiste nell'interpretare il problema come una teoria, e nell'aggiungere a tale teoria un assioma del secondo ordine che e' funzione della teoria stessa. Il problema e' quello di stabilire quali degli infiniti oggetti dell'universo godano di una data proprieta' P. In parole povere la circoscrizione prescrive quanto segue: gli unici a godere di quella proprieta' sono gli oggetti che, in base ai fatti noti, si puo' dimostrare che godono di essa.

E' una sorta di rasoio di Occam poiche' richiede anche che l'insieme sia il piu' piccolo possibile: l'assioma del secondo ordine che viene aggiunto esprime il fatto che le formule desiderate abbiano l'estensione piu' piccola che sia ancora coerente con gli altri assiomi (ovvero con tutti i fatti noti e i fatti da essi implicati). Nel 1984 Vladimir Lifschitz ha dimostrato che in molti casi l'assioma del secondo ordine puo' essere ricondotto a una formula del primo ordine, rendendo computazionalmente accettabile l'intuizione di McCarthy (imporre un assioma del secondo ordine equivaleva a imporre un insieme infinito di assiomi).

Camilla Schmidt nel 1978 e Matthew Ginsberg nel 1986 hanno proposto altre soluzioni al "frame problem" che sono di fatto equivalenti ma formalmente sono basate l'una sulla logica modale e l'altra sulla logica dei mondi possibili: il mondo e' descritto da un modello che viene aggiornato dopo l'esecuzione di ogni azione per costruire il mondo possibile piu' simile nel quale valgano le conseguenze dell'azione. Una volta determinato tale mondo, si e' anche indirettamente determinato tutto cio' che e' cambiato e tutto cio' che non e' cambiato.

La Logica del Tempo

Tutti i sistemi di rappresentazione della conoscenza e i sistemi di inferenza riducono il tempo a una successione discreta di momenti e, per quanto possibile, tendono a considerare il mondo "statico", ovvero a sopprimere del tutto la variabile temporale. Il concetto di tempo contiene infatti a sua volta due concetti che sono tradizionalmente difficili da manipolare con gli strumenti della logica: quello di continuita' e quello di cambiamento.

La continuita' puo' essere resa in due modi. Nel primo essa viene considerata come una successione di punti discreti: una scena in movimento viene approssimata con una successione di scene statiche (e' il principio dei fotogrammi della pellicola). Nel secondo modo essa viene "riassunta" con un'equazione differenziale, la quale in se' non assomiglia per nulla al sistema che rappresenta, ma consente di calcolare lo stato del sistema in un istante specifico.

Il cambiamento ha effetti devastanti su ogni sistema formale. I sistemi formali della logica sono stati concepiti per un mondo statico, un mondo di affermazioni assolute dalle quali possono essere derivate altre affermazioni assolute. E' stato concepito per derivare che, se Socrate e' un uomo, allora Socrate e' mortale (lo stato del mondo e' sempre lo stesso), ma non che, quando Socrate ha sete e ha un bicchiere pieno d'acqua, allora Socrate si disseta e il bicchiere rimane vuoto (lo stato del mondo viene alterato ed esiste una relazione causale fra i due stati del mondo).

Il primo tentativo di formalizzare il ragionamento temporale fu quello di Arthur Prior (1957), che utilizzava quattro operatori modali, due per il passato ("p e' vera in qualche punto del passato" e "p e' vera in tutti i punti del passato") e due per il futuro ("p e' vera in qualche punto del futuro" e "p e' vera in tutti i punti del futuro"). La semantica della sua logica temporale e' la stessa semantica dei mondi possibili utilizzata da Hintikka.

Ogni teoria di rappresentazione del tempo deve rappresentare tre tipi di relazioni: l'ordine degli intervalli temporali, la struttura del mondo durante un intervallo di tempo, e le leggi causali che modificano il mondo fra un intervallo e il successivo. Le teorie temporali si differenziano nell'ontologia adottata per esprimere tali relazioni.

Il calcolo delle situazioni di McCarthy utilizza il metodo sintattico: ogni istante viene associato ad una situazione, ovvero a uno stato del mondo composto di un insieme di stati elementari che sono veri in quella situazione. Uno stato e' una proposizione che e' vera in un certo intervallo di tempo. Una situazione rappresenta un intervallo di tempo durante il quale nessuno stato cambia il proprio valore di verita' (vero o falso che sia). Un evento e' una transizione di stato. Un periodo di tempo e' allora rappresentato da una successione di situazioni, ovvero da una successione di eventi, in accordo con l'affermazione di Leibniz che "spazio e tempo non sono cose, ma ordini di cose". Implicito nel calcolo delle situazioni e' pero' il fatto che in un certo istante non puo' succedere piu' di un evento: non e' consentito che due eventi si verifichino contemporaneamente.

La "naive physics" (1979) di Pat Hayes costitui' una svolta rivoluzionaria nel programma di ragionare sul tempo. Invece degli stati discreti di McCarthy, Hayes propose di rappresentare la continuita' del tempo (e dello spazio) tramite il concetto di "storia" spazio-temporale, ovvero di fatto che dura nel tempo e occupa un certo spazio. Ogni oggetto o evento puo' essere rappresentato da questa sua estensione nello spazio-tempo. Due oggetti possono interagire soltanto se le loro storie si intersecano. E' un concetto assai simile a quello di "cono di luce" introdotto da Einstein in Relativita', ed e' un concetto che consente di liberarsi in maniera elegante del "frame problem".

E' possibile in tal modo specificare leggi causali sotto forma di possibili configurazioni di storie e di possibili regole per combinare le storie fra di loro. Per esempio, una storia riguardante un liquido che entra in un contenitore gia' pieno puo' esistere soltanto nella configurazione in cui un'altra storia riguarda un liquido che esce dallo stesso contenitore (principio di conservazione della materia). La teoria di Hayes e' pero' puramente estensiva, ovvero definisce una storia unicamente sulla base della sua estensione spazio-temporale, mentre e' necessaria una teoria intensiva per distinguere fra storie diverse che hanno la stessa estensione (per esempio, mentre nello stadio si svolge una partita di calcio nello stesso stadio piove).

Drew McDermott ha sviluppato nel 1982 una logica temporale basata sulla continuita' del tempo e sull'indeterminatezza del futuro. Nella sua teoria le situazioni formano una serie continua, infinita e parzialmente ordinata. In altre parole il suo e' un modello di molti futuri possibili: ogni evento che puo' verificarsi nel futuro causa una ramificazione di situazioni (ogni possibile conseguenza dell'evento da' origine a una serie diversa). L'insieme delle situazioni costituisce cosi' un "albero delle cronache" ogni ramo del quale e' un continuum. Ogni cronaca e' una delle possibili storie complete dell'universo, ovvero un insieme ordinato ed infinito di stati, a differenza della "storia" di Hayes che rappresentava soltanto il futuro di uno specifico oggetto. McDermott si avvicina a Prior perche' ogni cronaca puo' anche essere vista come un diverso "mondo possibile" nell'accezione di Kripke.

La teoria cognitiva del tempo di James Allen (1983) e' una generalizzazione di questa idea e ha origine da considerazioni sul modo in cui l'uomo della strada tratta il tempo. Gran parte della nostra conoscenza temporale non e' in realta' collegata ad alcuna data precisa, ma piuttosto a un ordine temporale ("mi sono trasferito negli USA tre anni dopo la laurea"); ogni evento definito in un certo tempo puo' essere suddiviso in sotto-eventi definiti in sotto-tempi ("nel 1987 andai in vacanza in Peru'" e' ovviamente composto da molti sotto-eventi); normalmente non ha senso decomporre un evento nelle sue unita' elementari (per esempio ridurre l'evento "ho mangiato una mela" in tutti i sotto-eventi che compongono l'atto di mangiare una mela); il tempo e' organizzato gerarchicamente. Il tempo dell'uomo della strada (diverso da quello della fisica e da quello dei filosofi) e' pertanto soggetto ai principi di relativita', decomponibilita', unita' e gerarchicita', i quali in ultima analisi ripudiano l'"istante" di tempo a favore dell'"intervallo" di tempo e l'ordinamento totale degli istanti a favore dell'ordinamento parziale degli intervalli.

Allen descrive il mondo come un insieme di asserzioni che stabiliscono cio' che e' noto circa il passato, il presente e il futuro. Gli aspetti statici del mondo sono descritti da "proprieta'", simili agli stati di McCarthy, che valgono per periodi di tempo ("il mio nome e' Piero"). Gli aspetti dinamici, anch'essi definiti su intervalli di tempo, sono descritti da "avvenimenti", che possono essere "eventi" o "processi" a seconda che siano scomponibili ("sto mangiando") o meno ("sono andato a fare la spesa"), ovvero a seconda che si verifichino anche nei loro sotto-intervalli. ("sto mangiando" si verifica anche in ogni suo sotto-intervallo). Gli intervalli sono misurati rispetto ad intervalli di riferimento, possono essere messi in relazione fra di loro in tredici modi diversi (identita', ordine, contiguita', inclusione, sovrapposizione e cosi' via) e formano una gerarchia. In tal modo vengono superate la rigida successione e l'arbitraria discretizzazione degli stati implicite nel calcolo delle situazioni.

Il Ragionamento Qualitativo

Un tipo di ragionamento del senso comune che necessita della variabile "tempo" e' quello che ha come oggetto i sistemi fisici. Lo schema di questo ragionamento e': dato lo stato del sistema ad un istante iniziale, determinare il comportamento del sistema negli istanti successivi. L'uomo della strada intende per "comportamento del sistema" non una serie di numeri in uno spazio cartesiano, ma una descrizione qualitativa. Per esempio, fornire le coordinate x,y,z del moto della Terra attorno al Sole e' certamente una descrizione molto precisa del comportamento della Terra, ma meno utile, per gli scopi pratici dell'uomo della strada, di affermare semplicemente che "la Terra ruota attorno al Sole descrivendo un'ellisse". Dalla prima informazione, analitica, sarebbe difficile derivare qualsiasi inferenza utile sul giorno e la notte.

Il ragionamento "qualitativo" ha come obiettivo quello di costruire modelli causali qualitativi dei sistemi fisici. Un modello qualitativo rappresenta la struttura di un sistema fisico e deriva da tale struttura una descrizione qualitativa del suo comportamento; deriva cioe' il comportamento del tutto dal comportamento delle sue parti e dalle relazioni fra tali parti secondo un approccio "composizionale".

Tipicamente la struttura viene rappresentata come un insieme di dispositivi connessi fra di loro da leggi di causalita'. Lo stato di un dispositivo in un certo istante e' rappresentato dall'insieme dei valori che hanno in quell'istante le quantita' fisiche (massa, temperatura, tensione, pressione, etc.). Dalle relazioni fra le quantita' che vengono in tal modo stabilite e' possibile allora inferire come il sistema si evolvera'. Per esempio, se la caldaia e' accesa, la stanza si riscaldera'; dopo qualche tempo il termostato spegnera' la caldaia. La quantita' "temperatura" e' funzione della relazione fra due dispositivi: la caldaia e il termostato. Di conseguenza il comportamento del sistema nel suo insieme e' funzione della sua struttura (caldaia piu' termostato).

Esistono tre livelli a cui si puo' studiare un sistema fisico. Al primo livello esiste il sistema, del quale e' possibile osservare il comportamento pratico.

Ad un livello di astrazione superiore il sistema e' descritto in maniera "quantitativa" da un insieme di equazioni differenziali, la cui soluzione analitica ne descrive il comportamento nel tempo all'interno dello spazio cartesiano: e' questo il livello della Fisica. Il pregio di questo livello e' di saper descrivere lo stato del sistema in ogni istante della sua storia, passata e futura (ovvero di saperne anche prevedere gli stati futuri). Il suo difetto e' di perdere informazione sul "perche'" il suo comportamento e' descritto da quella funzione.

Ad un livello di astrazione ancora maggiore il sistema fisico e' descritto in maniera "qualitativa" (inter-dipendenze fra variabili, tipi di proporzionalita', etc) da un modello strutturale. In esso e' importante stabilire la "funzione" di una parte, piuttosto che il suo comportamento (il comportamento della lancetta dell' orologio e' di girare a velocita' costante, la sua funzione e' di indicare che ora e'). Come nella teoria di McDermott, il modello produce un albero dei possibili stati futuri del sistema. Un tale modello puo' rendere conto in maniera intuitiva della "causalita'": mentre il metodo analitico si limita a dedurre una equazione temporale composta di simboli matematici, il modello qualitativo esplicita le cause, gli effetti e il loro propagarsi "localmente".

Gli anticipatori della "naive physics" furono Gary Hendrix, che nel 1973 estese STRIPS agli stati continui, e Pat Hayes, che nel 1979 scrisse il manifesto della disciplina. La naive physics e' cio' che consente all'uomo della strada di capire il comportamento di un sistema fisico (al livello piu' alto di astrazione) anche senza avere alcuna conoscenza delle formule fisiche che ne governano il movimento: e' ovvio a tutti che, se lo si lascia andare, un piatto cade a terra e si rompe, ma non e' ovvio a tutti quale sia l'equazione che descrive il banale fenomeno di "cadere" in assenza di sostegno.

A partire dal sistema fisico il modello quantitativo della Fisica deriva le equazioni differenziali, da queste una soluzione analitica, da queste una interpretazione (non banale) e da questa una descrizione del comportamento. A partire dal sistema fisico il modello qualitativo della naive physics deriva le equazioni qualitative e da esse (direttamente e banalmente) la descrizione del comportamento.

A partire dai fenomeni della natura i metodi formali della scienza galileana derivano un modello matematico. A partire dai fenomeni della natura i metodi cognitivi del buon senso derivano un modello intuitivo. Il ragionamento qualitativo si situa al confine fra fisica e psicologia.

Per esempio, utilizzando i concetti della simulazione qualitativa e' possibile definire il guasto di un macchinario in maniera molto piu' utile per inferire la riparazione piu' appropriata: un sistema e' malfunzionante se il suo comportamento ideale (derivato dalla sua struttura) non e' in accordo con quello osservato. "Ripararlo" significa allora determinare quale parte deve essere cambiata per ottenere il comportamento ideale.

Dal punto di vista computazionale il ragionamento qualitativo descrive cambiamenti in uno spazio delle quantita'. In tale spazio le quantita' (energia, velocita', pressione, etc.) possono assumere soltanto valori discreti (generalmente corrispondenti a variazioni di stato o a valori critici) e, oltre che dall'ordinamento di tali valori, sono descritte da una direzione di cambiamento (crescente, stabile, decrescente). Descrivere una quantita' fisica con il suo valore critico e la sua direzione di cambiamento e' analogo a quanto si fa in fisica descrivendo la stessa quantita' con un valore e una derivata. La differenza sta nell'aver rimosso l'ingombrante concetto del continuo: in fisica tanto il valore quanto la derivata hanno valori continui, mentre nella naive physics essi possono assumere soltanto, rispettivamente, i valori "critici" e il "segno" (crescente, stabile o decrescente).

Per compiere inferenze sulla rappresentazione del sistema tutte le teorie utilizzano una qualche forma di "propagazione dei vincoli": le quantita' possono essere viste come variabili fra le quali sono stati espressi dei vincoli di vario genere; cambiando il valore di una variabile i vincoli determinano meccanicamente che i valori di altre variabili devono variare secondo qualche legge di proporzionalita'.

Il comportamento del sistema nel suo insieme e' determinato da una sequenza di stati qualitativi delle variabili.

Anche nel caso del ragionamento qualitativo le diverse teorie differiscono soprattutto nell'ontologia, ovvero negli enti che vengono assunti come primitivi per costruire la descrizione strutturale del sistema: variabili di stato, componenti del sistema o processi.

Le primitive della teoria di Benjamin Kuipers (1982) sono le variabili di stato, connesse fra di loro da vincoli. Per Kuipers la causalita' e' la propagazione di quei vincoli nella rete delle variabili di stato. Il ragionamento utilizza tre tipi di regole: le regole di propagazione, le regole di predizione e le regole di riconoscimento. Le prime propagano i fatti iniziali per derivare lo stato attuale del sistema. Le seconde predicono le caratteristiche del prossimo stato. Le terze riconoscono stati significativi (come l'equilibrio, il ciclo, etc.).

Johan DeKleer (1984) adotta invece come primitivi i dispositivi (tubi, valvole, molle, transistor, etc.) connessi fra di loro da leggi di rete (come le leggi di Ohm), e deriva la funzione del sistema dalla sua struttura descritta sulla base di tali enti primitivi. La struttura viene descritta in modo anatomico e topologico. Il suo approccio e' rigidamente riduzionista: il mondo vi e' visto come una macchina complessa di componenti interagenti. La sua struttura viene descritta sulla base di materiali (acqua, elettroni, aria: tutto cio' che e' passivo nel funzionamento del sistema), parti (molla, pistone, valvola: tutto cio' che e' attivo, ovvero che induce cambiamenti nei materiali) e condotti (fili, tubi, cavi: tutto cio' che trasporta materiale da una parte a un'altra). La struttura cosi' rappresentata da' luogo ad equazioni differenziali qualitative dette "confluenze". Le confluenze si possono risolvere mediante un processo analogo all'integrazione che genera combinatoriamente tutti i possibili stati qualitativi del sistema e li organizza poi casualmente in un "diagramma di stato" che e' sostanzialmente una rete di transizione.

Nella teoria di DeKleer ricompare il problema della causalita', ben noto ai fisici: un sistema fisico si trova sempre in uno stato di equilibrio, ma, per rendere conto del cambiamento da uno stato di equilibrio a un altro, occorre ammettere che esistano stati intermedi di disequilibrio. La Fisica, che ammette soltanto stati di equilibrio, non riesce a spiegare la causalita'. Nella naive physics di DeKleer la causalita' viene invece spiegata perche' il tempo e' discretizzato e le confluenze (a differenza delle leggi fisiche) possono essere violate durante un frammento di tempo: la causalita' e' proprio la violazione delle confluenze. DeKleer ha soprattutto esposto alcuni principi fondamentali della naive physics: il principio teleologico, secondo il quale le parti di un sistema fisico hanno uno scopo; il principio "no-function-in-structure", secondo il quale le leggi che descrivono una parte non possono far riferimento al comportamento del tutto (per esempio, "un interruttore aperto lascia passare corrente" assume implicitamente che sia applicato un potenziale, ovvero che sia noto il comportamento del tutto); il principio di localita', secondo il quale la causalita' si trasmette solo alle parti adiacenti.

La teoria di Ken Forbus (1981) e' duale di quella di DeKleer: invece di concentrarsi sulle parti del sistema, si concentra sulle loro possibili interazioni. Forbus assume infatti come primitive i "processi" del sistema. Un processo e' un fenomeno che durante il suo svolgersi causa dei cambiamenti nelle parti del sistema (per esempio, bollire, comprimere, etc.). Di fatto un processo e' un trasferimento di causalita' da un oggetto a un altro. E' definito da: gli oggetti su cui opera, le precondizioni per operare, le relazioni fra gli oggetti e i cambiamenti che provoca; e si svolge in un tempo che e' sostanzialmente quello di Allen. Un oggetto e' descritto in modo simile alle "storie" di Hayes.

L'algoritmo tramite cui Forbus determina il comportamento del sistema e' quello dell'"envisionment": nello stato corrente identifica le variabili che stanno per raggiungere i loro valori critici; utilizzando regole di inferenza (come: "ogni quantita' non nulla puo' diventare nulla soltanto se e' decrescente") costruisce tutti i possibili stati che possono seguire a quello corrente; riduce il numero di stati possibili tramite altre regole di inferenza (per esempio quella di continuita': "una quantita' puo' passare da decrescente a nulla o da nulla a crescente o viceversa, ma non da crescente a decrescente o viceversa"); assume tutti gli stati rimasti come stati correnti e ripete lo stesso ragionamento. Ad ogni processo e' automaticamente associato un campo di "influenze" che determina quali variabili vengono direttamente influenzate dal processo (dette variabili "indipendenti") e quali vengono invece influenzate soltanto indirettamente, per effetto del cambiamento delle variabili indipendenti. In tal modo Forbus definisce in maniera intuitiva anche il concetto di causalita'.

La tecnica degli "envisionment" genera tutti i possibili comportamenti di un sistema. Ogni percorso in questo "envisionment" e' appunto una possibile "storia" del sistema. Per l'esattezza la funzione di "registrazione" e' cio' che fa corrispondere episodi di una storia (per esempio, le misure di alcune variabili) a stati dell' "envisionment". Questa funzione e' cio' che consente di "interpretare" le misure ottenute da un esperimento. La teoria che spiega come costruire questa funzione e' detta "logica dell'occorrenza" (1987).

Il ragionamento qualitativo puo' prestarsi per costruire sistemi esperti che abbiano un tipo di conoscenza piu' "profonda" del dominio in cui operano. I sistemi esperti esibiscono, in realta', la stessa intelligenza di un database: si limitano a cercare l'informazione loro richiesta all'interno di un contenitore di informazioni. L'unica complicazione e' che l'informazione potrebbe non essere esplicita, ma implicita nelle regole di produzione. Ma cio' non significa che il sistema stia effettivamente esibendo un comportamento intelligente.

I sistemi esperti sono dotati unicamente della conoscenza "shallow", di "superficie", dell'esperto. L'esperto umano ha pero' ricavato tale conoscenza di superficie da una conoscenza "profonda" del campo in cui opera. La conoscenza "shallow" dell'esperto e' stata "compilata" nella base di conoscenza del sistema esperto, ovvero e' stata trasferita dalla mente dell'esperto alla base di conoscenza senza tenere in alcun conto i processi mentali che avevano portato al formarsi di quella conoscenza nella mente dell'esperto.

La conoscenza profonda dell'esperto e' costituita dai cosiddetti "primi principi", le nozioni fondamentali che aiutano ad acquisire nuova conoscenza sul mondo. I primi principi sono in pratica l'equivalente in psicologia delle leggi di natura. I "primi principi" fanno si', per esempio, che il medico sappia che certi sintomi sono indizio di una certa malattia; ma un sistema esperto che lo "cloni" saprebbe soltanto impiegare quella regola a fronte di quei sintomi, non saprebbe i primi principi che hanno portato al formarsi di tale regola. Il medico, infatti, e' in grado di affrontare situazioni che non si erano mai presentate prima, poiche' ad esse puo' applicare gli stessi primi principi e derivare pertanto nuove regole, mentre un sistema esperto non sa affrontare nessuna situazione per la quale non sia stata compilata la corrispondente regola. Per costruire sistemi esperti che "capiscono" (piu' che "conoscono") il dominio in cui operano e' necessario esprimere quei primi principi.

Il sistema esperto prescinde dal fatto che il comportamento del sistema fisico sia dovuto alla sua struttura e deriva il modello del comportamento direttamente dal comportamento osservato. Un analogo sistema esperto dotato di conoscenza profonda deriverebbe il modello del comportamento dalla struttura del sistema fisico.

La differenza fra conoscenza di superficie e conoscenza profonda e' anche una differenza fra conoscenza associativa e conoscenza causale.

Il comportamento ideale sarebbe quello che utilizza la conoscenza di superficie, computazionalmente molto efficace, per reagire alle situazioni quotidiane di carattere meccanico e utilizza invece la conoscenza profonda, computazionalmente molto piu' costosa, per ragionare sulle situazioni insolite. Al tempo stesso ogni uso di conoscenza profonda dovrebbe "compilare" conoscenza di superficie in modo che una futura occorrenza di quella situazione possa essere trattata da regole meccaniche.

L'Abduzione

Fu Peirce a distinguere l'abduzione (o formazione di ipotesi) dalla deduzione (inferenza analitica) e dall'induzione (inferenza sintetica). La deduzione e' uno strumento preciso per compiere dei ragionamenti, ma del tutto inutile quando manca informazione e limitato ai problemi la cui soluzione e' implicitamente gia' nota. La deduzione non e' in grado di inferire nuove verita', ma soltanto di trovare le verita' nascoste. L'abduzione non e' un'inferenza precisa, ma e' in grado di giungere a una conclusione anche in mancanza di informazione, e la conclusione a cui giunge non e', generalmente, nella chiusura deduttiva dei fatti gia' noti, cioe' costituisce davvero una nuova conoscenza. Per esempio, quando un medico, dopo aver esaminato i sintomi, conclude che il paziente ha una certa malattia, non sta compiendo un ragionamento esatto, ed infatti puo' sbagliare, ne' ha a disposizione tutte le informazioni necessarie per ragionare, ma l'inferenza che ne trae (la malattia) e' coerente con l'ipotesi (i sintomi) e tanto gli basta per pronunciarsi.

La regola di inferenza della deduzione e'

"se p implica q, e p, allora deduci che q".

La regola di inferenza dell'abduzione e' invece

"se p implica q, e q, abduci p".

L'abduzione e' coerente, perche' una volta abdotto p posso verificare che da esso consegue che deve essere vera anche q e in effetti (per ipotesi) cosi' e'; ma non e' necessariamente esatta, perche' q potrebbe essere stata causata da un'altra proposizione. In altri termini l'abduzione si propone di risalire alla causa di un fenomeno e consiste nel formulare una ipotesi che sia coerente con l'esistenza di tale fenomeno; possono pero' esistere piu' cause dello stesso fenomeno.

L'abduzione e' lo strumento principale che viene utilizzato per costruire teorie scientifiche. La conoscenza della scienza moderna e' gerarchica a tre livelli. Al livello piu' basso esistono i dati empirici; essi vengono organizzati a un livello di astrazione superiore in generalizzazioni; e queste vengono a loro volta organizzate in teorie di spiegazione. Normalmente il modo in cui si passa dai dati alla generalizzazione e' l'induzione, e il modo in cui si passa dalle generalizzazioni alla teoria e' l'abduzione. La teoria viene infatti costruita prendendo in esame le ipotesi plausibili e una libreria di astrazioni di ipotesi. Astrazioni di ipotesi sono, per esempio, la selezione darwiniana e l'inverso del quadrato: sono astrazioni di ipotesi ricavate dal passato della scienza, sono tipi ricorrenti di teorie. La storia della scienza serve cioe' come sorgente di "senno di poi" compilato in forma procedurale (di "compiled hindsight") per costruire astrazioni che possano dare origine ad altre teorie.

L'abduzione e' affine al ragionamento ipotetico-deduttivo: dati un insieme di categorie, le proprieta' di ciascuna categoria e un insieme di regole di classificazione, si tratta di classificare un insieme di dati nella categoria piu' opportuna. L'inferenza della diagnosi medica, per esempio, puo' essere re-interpretata cosi': date le malattie note al medico, la fenomenologia di ogni malattia e la conoscenza medica, si tratta di stabilire a quale malattia corrispondono i sintomi del paziente. Il ragionamento ipotetico-deduttivo si svolge generalmente secondo un processo di raffinamento incrementale: man mano che vengono presi in considerazione nuovi dati l'insieme delle ipotesi attive si restringe. In altre parole il ragionamento converge all'interno dello spazio delle categorie. Per rendere piu' rapida la convergenza le categorie sono spesso organizzate in una gerarchia.

Il Ragionamento Analogico

Il tipo di ragionamento che Charles Spearman (1923) riteneva fondamentale era quello analogico, ovvero la capacita' di risolvere un problema essendo noto come si risolve un problema simile. Anche gli studi di Piaget e quelli di Papert avevano suffragato l'ipotesi che la capacita' di ragionare sul mondo derivi da un processo di raffinamento progressivo delle capacita' di ragionamento man mano acquisite. Nel 1945 George Polya presento' la prima teoria formale di come si potesse trasformare "per analogia" la soluzione di un problema nella soluzione di un altro problema.

Il primo modello computazionale del ragionamento analogico fu quello di Patrick Winston (1978), che realizzo' l'analogia come un trasferimento di proprieta' da un frame ad un altro: dati due concetti, rappresentati da due frame, apprendere una analogia del secondo con il primo significherebbe trasferire anche al primo le proprieta' del primo interessate dall'analogia. Il concetto trasferito per analogia puo' essere una tecnica di problem-solving.

Cosi' l'analogia "trasformazionale" di Jaime Carbonell (1981) consiste nel costruire una nuova serie di stati in uno spazio di problema partendo da una data serie di stati in un altro spazio di problema. Tale trasformazione analogica e' a sua volta un problema che viene risolto tramite una serie di stati in un terzo spazio di problema, detto appunto "spazio trasformazionale". In esso gli stati sono tutte le soluzioni di tutti i problemi dello spazio originale; lo stato iniziale e' una di tali soluzioni, quella che si decide essere l'"analoga" da trasferire; e lo stato obiettivo e' una soluzione per il nuovo problema. Siccome i due spazi coinvolti nella trasformazione hanno metriche diverse, il primo compito della trasformazione e' di calcolare le equazioni di conversione. La funzione di conversione misura la differenza fra le due metriche ed esprime di fatto una variante del principio di "means-end analysis", ovvero di minimizzare tale differenza. Tramite la funzione di conversione e' possibile poi trasformare tutti gli operatori dello spazio sorgente in operatori "analoghi" dello spazio destinazione, ovvero e' possibile costruire il piano dello spazio di trasformazione che porta dallo stato iniziale (la soluzione del vecchio problema) all'obiettivo (la soluzione del nuovo problema).

L'analogia viene pertanto identificata con un'operazione di "replay" di un piano e scomposta in una serie di operazioni elementari: reperimento del piano "piu' analogo", adattamento del piano e uso del piano.

L'analogia derivazionale (1983) consiste invece nel trasferire tutta la conoscenza relativa a come venne risolto un problema al caso di un nuovo problema, replicando cioe' non solo la soluzione, ma anche le linee di ragionamento che portarono a trovare tale soluzione. Mentre l'approccio trasformazionale si limita a duplicare la sequenza di operatori, quello derivazionale ricorda i motivi che spinsero a scegliere certe azioni piuttosto che altre, in modo che il trasferimento sia un vero e proprio trasferimento di conoscenza, e non soltanto una copia di istruzioni. Ad ogni problema risolto viene pertanto associata la sua "storia derivazionale" (la storia di come e' stata derivata la sua soluzione). Il concetto di storia derivazionale introdotto da Carbonell assomiglia a quello minskyano di K-Line poiche' il meccanismo fondamentale e' quello di ricostruire gli aspetti rilevanti di un'esperienza passata.

Il modello cognitivo a cui fa riferimento la teoria dell'analogia di Carbonell e' quello della memoria episodica di Schank (1979), un'estensione del concetto di script. La memoria episodica incorpora conoscenza su tutti i "casi" incontrati sotto forma di loro "generalizzazioni". Ogni nuovo "caso" provoca innanzitutto una ricerca in memoria di un caso "simile"; e questo caso simile ha due effetti: da un lato serve a guidare il ragionamento sul nuovo caso (ragionamento "expectation-driven", guidato dall'aspettarsi che succedano certi fatti che successero nel vecchio caso) e dall'altro serve a produrre (compilare) nuove generalizzazioni di casi. Il processo di risolvere problemi sulla base di analogie nei confronti di casi precedenti e' stato battezzato "case-based reasoning" da Janet Kolodner (1985).

Rispetto allo spazio di problema dei sistemi deduttivi (come i sistemi di produzione) la memoria episodica contiene non "soluzioni" ma "esempi di soluzione". Sia il ragionamento a regole di produzione sia quello a casi appartengono alla categoria dei ragionamenti "template-based", dove il template e' un'espressione logica nel primo caso e un MOP nel secondo. Il primo seleziona regole i cui antecedenti concordano con la situazione corrente: non puo' trattare situazioni nuove e non puo' incrementare la memoria. Il secondo seleziona invece MOP che corrispondono alla situazione corrente: tratta situazioni nuove "per analogia" e incrementa la memoria "per validazione". In generale la seconda scuola di pensiero, che assegna alla memoria gran parte dell'iniziativa nel risolvere problemi, viene comunemente associata alla nozione di ragionamento guidato dalla memoria ("memory-based reasoning").

Il Ragionamento Non-monotono

I ragionamenti del senso comune, l'abduzione e l'analogia hanno tutti bisogno in qualche modo di poter ritrattare le conclusioni a cui sono pervenuti poiche' qualche nuova informazione ha reso implausibile la linea di ragionamento fin li' seguita. Con la logica classica questo "ritrattare" qualcosa che e' gia' stato dimostrato costituisce un problema insormontabile. La logica classica e' infatti "monotona", consente cioe' soltanto di aggiungere proposizioni vere, non di toglierne. Tali proposizioni non sono ritrattabili per la semplice ragione che esse sono implicite negli assiomi e ritrattarle significherebbe di fatto mettere in discussione l'intero sistema formale. In termini piu' precisi i teoremi di una teoria devono essere un sottoinsieme dei teoremi di ogni estensione della teoria. Una logica e' non-monotona se la verita' di una proposizione cambia invece a seconda degli assiomi che vengono introdotti.

Una logica non-monotona consente in pratica di rivedere le proprie convinzioni sul mondo. Consente inoltre di "interpretare" un fatto, piuttosto che limitarsi ad asserirne la verita' o falsita'. Un fatto e' infatti rappresentato da un predicato; se un insieme di formule costituisce una teoria, l'interpretazione di un fatto in quella teoria e' un insieme di conseguenze logiche del predicato. I fatti hanno pertanto interpretazioni diverse in teorie (situazioni) diverse.

La logica classica impiega regole di inferenza del tipo

P e' un teorema se Qi sono teoremi

Una logica e' non-monotona se impiega regole d'inferenza del tipo

P e' un teorema se Qi non sono teoremi

La revisione delle convinzioni e' un fenomeno determinante per poter ragionare sul mondo reale. Ogni situazione si presta a formare convinzioni che devono poi essere ritrattate sulla base di nuove informazioni. Non solo cio' contribuisce a raffinare continuamente la nostra conoscenza del mondo, ma consente soprattutto di compiere inferenze vitali in assenza di informazione. Un mondo che rispetti la logica classica sarebbe un mondo in cui, una volta deciso di attraversare la strada, non sarebbe piu' possibile tornare indietro, neanche se da dietro l'angolo sbucasse un'auto in piena velocita'. Il mondo di una logica non-monotona e' invece un mondo in cui l'agente razionale e' sempre in grado di rivedere le proprie decisioni.

Un esempio di logica non-monotona e' quella che scaturisce dal default dei frame (o, equivalentemente, dalle gerarchie di ereditarieta'), dalla necessita' cioe' di affermare qualcosa in mancanza di tutta l'informazione necessaria per affermarlo e dalla possibilita' di precisare che "e' cosi' a meno che...". Il termine "logica non-monotona" venne appunto coniato da Minsky nel 1975 a proposito della logica dei default. Nel ragionamento per default ad ogni premessa e' associata una conclusione di default (cioe' standard), che viene assunta per vera se non esiste prova che sia falsa (letteralmente: in difetto di una dimostrazione di falsita').

Il caso opposto e' quello del "postulato del mondo chiuso" (closed-world assumption) enunciato da Richard Reiter nel 1978: cio' che non e' vero e' falso. Tecnicamente cio' si esprime aggiungendo al sistema formale le negazioni di tutte le proposizioni che non derivano da un insieme di assiomi: gli assiomi rappresentano cio' che si "crede" essere vero nel mondo. Se non so che il papa sia morto, vuol dire che il papa non e' morto: siccome la proposizione "morto(Papa)" non puo' essere derivata dall'insieme delle mie convinzioni, aggiungo al mio sistema formale la proposizione "NOT morto(Papa)". Per quanto riguarda i predicati p(X) il "completamento" di un sistema formale in cui e' noto che p(A) si compie notando che affermare p(A) e' equivalente ad affermare "per-ogni X tale che X=A vale p(X)" e che cio' ha come duale l'espressione "se per-ogni X vale p(X) cio' implica che X=A" (se p e' soddisfatta da A,B,C,... il suo completamento sara' che "...X=A OR X=B OR X=C OR..."). Una delle conseguenze del postulato e' che la negazione (l'essere falso) viene trattata come una "incapacita' di dimostrare", com'e' tradizione nella programmazione dei computer fin dai tempi di Carl Hewitt (1972): se sull'orario dei voli non compare nessun volo fra due citta', l'agente di viaggio ne deduce che non e' possibile volare fra quelle due citta'. Il vantaggio di lavorare in un "mondo chiuso" e' che il sistema puo' contenere soltanto le informazioni positive su tale mondo, e lasciare che le informazioni negative vengano dedotte "per default". Naturalmente cio' si presta ad errori grossolani, poiche' una persona puo' non sapere che Charlie Chaplin e' morto, ma cio' non vuol dire che egli sia vivo.

Un sistema di logica non-monotona puo' pertanto contenere delle contraddizioni, ovvero dei fatti nuovi possono contraddire i fatti precedenti. Compito di un sistema formale di logica non-monotona e' quello di a) definire sotto quali condizioni e in che modo e' possibile trarre inferenze; b) definire come viene ristabilita' la non-contradittorieta'. Esistono due principali formalizzazioni della logica non-monotone, una di Drew McDermott e una di Reiter, entrambe del 1980. Entrambe riconducono l'inferenza alla coerenza deduttiva, ovvero al principio che una certa proposizione puo' essere inferita se e solo se discende dalle premesse (come nella logica classica) ed e' inoltre coerente con gli assiomi attuali. Seguendo un'idea di Erik Sandewall (1972), McDermott rappresenta la condizione di coerenza esplicitamente tramite l'operatore modale di coerenza: l'espressione "Mp" significa che "p" e' coerente con gli assiomi correnti. L'esempio di Minsky che tutti gli uccelli volano, Tweety e' un uccello, ergo Tweety vola (ma potrebbe essere uno struzzo o un pinguino, e pertanto non volare) si scrive:

[uccello(X) AND M (vola(X))] --> vola(X)

Dalla premessa

uccello(Tweety)]

si inferira' che vola(Tweety) se e solo se cio' non contraddice nessuno degli assiomi in vigore (ovvero se non e' stato asserito il contrario). In altre parole: se e' noto che p e' vera e non ci sono ragioni per ritenere che q non lo sia, allora e' ragionevole inferire q.

Reiter introduce invece la coerenza direttamente nelle regole di inferenza, che si presentano cosi':

uccello(X) : vola(X) ------------------------ vola(X)

che si legge: "se la premessa uccello(X) e' vera si puo' inferire che il conseguente vola(X) e' vero a meno che la condizione vola(X) non sia in contraddizione con i fatti gia' noti".

La differenza fra le due logiche e' che quella di Reiter introduce una meta-regola per ogni default in modo da rimanere sempre nell'ambito del primo ordine, mentre quella di McDermott esprime i default come formule di logica modale.

A loro volta queste logiche differiscono dalla circoscrizione di McCarthy in quanto questa e' minimale: le due logiche non-monotone consentono di derivare qualunque affermazione che sia coerente con la conoscenza del sistema, mentre la circoscrizione limita l'insieme delle derivazioni possibili all'insieme piu' piccolo che sia possibile costruire e che soddisfi ancora la teoria. Mentre McDermott e Reiter accettano tutto cio' che "non da' fastidio", McCarthy accetta soltanto cio' che e' "indispensabile" per far funzionare il sistema.

Nel 1987 David Etherington ha dimostrato che la logica non-monotona e la circoscrizione sono equivalenti e Yoav Shoham ha fondato la "logica della preferenza" alla quale si possono ricondurre tutte. All'interno della logica dei predicati Shoham prende in considerazione un ordinamento parziale sulla classe di tutte le sue interpretazioni, e poi definisce che un'interpretazione "I1" e' preferita a un'interpretazione "I2" se I1 < I2 in tale ordinamento. L'idea e' simile a quella della "logica condizionale" di David Lewis (1973), che introduceva una misura di "similarita'" fra mondi possibili (invece dell'ordinamento parziale delle interpretazioni) e, basata su di essa, la nozione di "controfattuale" (invece che quella di "preferenza").

Martin Davis e David Israel hanno criticato l'approccio non-monotono mettendone in luce il primo le carenze tecniche e il secondo l'implausibilita' epistemologica. Da un lato le logiche di McDermott e Reiter non garantiscono la dimostrabilita' (sono "non-semidecidibili"). Ogni logica deve poter contare su un "teorema di dimostrabilita'", un teorema cioe' che specifichi cosa constituisca la prova di un teorema e cosa sia dimostrabile. Non e' possibile, cioe', rispondere alla domanda: "dato p, posso credere in p ?". Per le logiche monotoniche non esiste un tale teorema. Questo fatto ha implicazioni pratiche assai gravi, poiche' un programma che faccia uso di una logica non dimostrabile non puo' garantire il proprio funzionamento.

Dall'altro queste teorie originano da una confusione sul significato stesso di non-monotono. La logica auto-epistemica di Robert Moore, per esempio, puo' trattare lo stesso fenomeno rappresentandolo sotto forma di "convinzioni" di un agente razionale (Konolige ha dimostrato nel 1987 che la logica auto-epistemica e' identica alla logica di Reiter). Per evitare gli inconvenienti della non-monotonia, Jane Nutter (1983) ha proposto una soluzione monotona al problema del frame estendendo semplicemente la logica standard per distinguere le "presunzioni" dovute a un default ("presumibilmente Tweety vola") e le tradizionali "asserzioni" della logica ("Tweety vola"). D. Gabbay (1982) ritiene giustificato l'impiego di una logica non-monotona soltanto quando la conoscenza disponibile sul mondo e' "parziale" e re-interpreta in termini intuizionisti, invece che di logica classica, le teorie di McDermott e Reiter.

Un'influente scuola di pensiero aveva nel frattempo avuto origine dal fronte computazionale, precisamente da un programma del 1977 di Gerald Sussman che conservava una registrazione ("dependency record") del proprio ragionamento. A fronte di una contraddizione, il programma ritornava sui propri passi per scoprire quali proposizioni fossero alla base della contraddizione e decidere quale cancellare. Il ragionamento "dependency-directed" di Sussman venne sfruttato da John Doyle (1978) nel suo Truth Maintenance System, la cui funzione era prima di compiere deduzioni in un sistema di produzione anche in assenza di informazione e poi di conservare la coerenza del sistema di produzione a fronte di nuove asserzioni che contraddicessero quanto precedentemente dedotto. In maniera analoga a Sussman, ad ogni asserzione dedotta (detta "proposizione") Doyle associo' la sua dipendenza (detta "giustificazione"): una proposizione risulta vera quando sono vere tutte le proposizioni da cui dipende la sua verita' mentre non e' vera nessuna di quelle da cui dipende la sua falsita'. Il sistema "justification-based" di Doyle era pertanto in grado di costruire spiegazioni (la risposta alla domanda "perche' si deduce che ... ?" e' il ramo dell'albero di ricerca), di scoprire cause (la risposta alla domanda "da quali ipotesi si deduce che ... ?" e' l'insieme delle foglie dell'albero) e infine di simulare situazioni ipotetiche (la risposta alla domanda "cosa succederebbe se ... ?" e' una ricostruzione dell'albero di ricerca).

Basandosi su queste idee anche Paul Cohen (1983) propose una soluzione al problema del default che non richiedeva l'introduzione di logiche non-monotone. Cohen estendeva la logica standard con l'idea di associare ad ogni asserzione molteplici giustificazioni ("endorsement") del perche' tale asserzione e' stata ritenuta vera. Analogamente a dipendenze, registrazioni e giustificazioni, un "endorsement" ricorda le asserzioni che hanno portato a credere in quell'ipotesi. A differenza delle precedenti, l'endorsement ricorda pero' anche il livello di tali asserzioni. Esattamente come in una burocrazia esistono diversi livelli di autorizzazione, cosi' in un sistema di produzione possono esistere diversi livelli di "affidabilita'": a seconda del caso un'asserzione puo' avere o meno il livello di endorsement necessario per essere presa in considerazione; quando due asserzioni sono in conflitto, e' possibile esaminare i rispettivi endorsement con metodi euristici per stabilire quale dei due gode degli endorsement piu' forti; e cosi' via.

Nella "logica della rilevanza" di Stuart Shapiro (1976) viene definito il "contesto" di uno "spazio di credenze" come l'insieme delle ipotesi che generano deduttivamente l'insieme di proposizioni che forma quello spazio. Ogni proposizione derivata viene associata a un "insieme originale", che ricorda tutte le ipotesi utilizzate per dimostrare la verita' di tale proposizione, e un "insieme di restrizione", che contiene invece tutti gli insiemi di ipotesi incoerenti con l'insieme originale (ovvero generano contraddizioni se uniti ad esso). In ogni istante esiste un contesto attivo, cioe' un insieme di ipotesi che sono coerenti fra di loro, e tale contesto definisce indirettamente anche lo spazio di credenze attuale. Il sistema formale prende in considerazione soltanto le proposizioni di questo spazio di credenze quando deve compiere una qualsiasi inferenza.

Da questo modello hanno avuto origine i sistemi di revisione delle convinzioni "assumption-based, come quello di Johan DeKleer (1986), nel quale una proposizione e' appunto giustificata dall'insieme delle proposizioni primitive, non derivate, da cui e' iniziato il ragionamento che l'ha dimostrata vera. Nei sistemi "assumption-based" non e' necessario che l'intero sistema formale sia coerente, ma soltanto che sia coerente il "contesto" attuale.

Un altro caso in cui e' possibile utilizzare un simbolismo del tipo "se A allora B a-meno-che' C" e' quello della "logica della precisione variabile", ideata nel 1986 da Ryszard Michalsky e Patrick Winston per rendere conto delle regole di produzione che devono esprimere condizioni "frequentemente" vere (l'operatore "a-meno-che'" viene ricondotto a un'operazione di OR fra gli operandi B e C).

Nel 1986 Matthew Ginsberg ha teorizzato che tanto le logiche non-monotone quanto i "truth maintenance systems" di Doyle e DeKleer non siano altro che versioni mascherate di una logica a molti valori: entrambi assegnano valori intermedi a vero e falso, e persino valori intermedi fra il vero/falso e l'incognito. Basandosi sulla teoria di D. Scott (1970), secondo cui l'insieme delle proposizioni ordinate parzialmente in base al loro valore di verita' costituisce un lattice, e utilizzando la relazione di ordinamento di Sandewall del 1985 (p e' minore di q se "il valore di verita' di p dipende dal valore di verita' di q", ovvero se l'insieme di proposizioni che giustifica p e' incluso nel corrispondente insieme di q), Ginsberg ricostruisce le teorie non-monotone identificando le proposizioni con i punti di un lattice bi-dimensionale definito dai valori di verita': vero, falso, incognito (un valore che non puo' essere dimostrato ne' vero ne' falso), contraddittorio (un valore che puo' essere dimostrato vero da certe proposizioni e falso da certe altre), vero per default, falso per default e contraddittorio per default. E' un'estensione della logica a quattro valori di Nuel Belnap del 1977, che era a sua volta un'estensione della logica a tre valori di Stephen Kleene del 1952.

Un altro tipo di ragionamento, affine a quelli non-monotoni, che esamina la mancanza di informazione e' quello dei "controfattuali". Un condizionale controfattuale ("counterfactual") e' una frase del tipo:

se p allora q, dove "p" e' falso.

Per esempio, "se avessi cento milioni, mi comprerei una Ferrari". Nel 1973 David Lewis fece notare alcune singolari proprieta' rispetto alla comune relazione logica di "p implica q", in particolare la violazione di simmetria, transitivita' e monotonia. Da "se p allora q" non e' lecito inferire "se la negazione di q allora la negazione di p"; per esempio: non e' lecito inferire "se non mi comprassi una Ferrari non avrei cento milioni". I controfattuali non sono necessariamente transitivi, cioe' "se p allora q" e "se q allora r" non implicano necessariamente "se p allora r"; per esempio: "se avessi una Ferrari viaggerei a duecento allora" non implica necessariamente "se avessi cento milioni viaggerei a duecento allora". Infine i controfattuali sono non-monotoni, cioe' "se p allora q" non implica necessariamente "se p ed r allora q"; per esempio: "se avessi cento milioni, mi comprerei una Ferrari" non implica "se avessi cento milioni e fossi invalido, mi comprerei una Ferrari").

I controfattuali sono stati letti da Ginsberg (1985) come affermazioni del tipo "se questo fosse vero, allora saprei risolvere il problema" e come affermazioni del tipo "cosa succederebbe se questo fosse vero?". Nel primo caso essi spiegano come risolvere un problema che la logica si limiterebbe a denunciare come irrisolvibile. Nel secondo caso consentono di compiere simulazioni. Ginsberg li interpreta nella semantica dei mondi possibili.

Il Ragionamento Inesatto

Uno dei limiti piu' evidenti della logica classica e' quello di non saper trarre conclusioni, oltre che nelle situazioni in cui manca informazione, anche nelle situazioni in cui l'informazione e' imprecisa. Se la deduzione e' l'inferenza esatta, gran parte del ragionamento comune degli umani e' composto di inferenze inesatte. La matematica ha edificato un universo ideale, retto da leggi semplici, precise e senza eccezioni. Quell'universo e' in realta' una grossolana approssimazione dell'universo reale, che e' invece complesso, imperfetto e pieno di eccezioni. La mente umana, dotata della capacita' di compiere inferenze inesatte, e' in grado di elaborare con disinvoltura la quantita' sterminata di informazioni imprecise, di cui il mondo reale e' saturo.

Le sorgenti dell'inesattezza sono molteplici: l'inaffidabilita' di un'informazione (dovuta, per esempio, al margine di tolleranza di un apparecchio di misura); l'imprecisione del linguaggio di rappresentazione (la frase "alle 10 i ministri hanno discusso la situazione economica" e' probabilmente falsa perche' il loro incontro sara' iniziato qualche secondo prima o dopo le 10, e pertanto non alle 10); l'incompletezza dell'informazione (se mi trovo in un ingorgo stradale sull'autostrada che normalmente a quell'ora e' libera, suppongo che sia accaduto un incidente); e cosi' via.

All'inesattezza contribuiscono sia l'incertezza sia l'imprecisione. La certezza di una proposizione riguarda la possibilita' di verificare il valore quantitativo che asserisce, la sua imprecisione riguarda tale valore quantitativo. Per esempio: "Bruxelles e' la capitale del Belgio" e' una proposizione certa e precisa; "Bruxelles sara' la capitale d'Europa" e' incerta ma precisa; "Bruxelles e' la capitale del Portogallo" e' certa ma imprecisa; "Bruxelles sara' la capitale del Portogallo" e' incerta e imprecisa.

Le teorie "soggettive" dell'incertezza (come quelle di Leonard Savage del 1964 e di B. de Finetti del 1974) assumono che l'incertezza sia un fatto prettamente psicologico, e pertanto che l'incertezza consista in un "grado di convinzione". E' ammissibile qualsiasi valore per tale grado di convinzione, ma l'insieme dei gradi di convinzione assegnati in una certa situazione deve soddisfare certi vincoli.

Le teorie "oggettive" dell'incertezza comprendono sia quelle di natura statistica (nelle quali l'incertezza si identifica semplicemente con l'imprecisione, per esempio gli errori di misura) e in quelle di natura logica (come quella dei "gradi di conferma" di Rudolf Carnap del 1950, che sono una misura della conferma empirica di una proposizione, e quella delle "credenze razionali" di Maynard Keynes). Queste seconde teorie misurano l'incertezza di una proposizione relativamente a un corpo di conoscenza, non alla persona che fa uso di tale conoscenza. Implicitamente esse fanno ricorso a un principio di evidenza totale, che, cioe', il corpo di conoscenza preso in esame sia effettivamente il corpo totale di conoscenza.

Le teorie sull'incertezza si possono poi dividere in descrittive e normative, a seconda che vengano utilizzate per rappresentare quali siano le convinzioni parziali (e' il caso, per esempio, dell'incertezza soggettiva) o per legislare quali dovrebbero essere le convinzioni parziali (Carnap e Keynes).

Per gli scopi pratici e' spesso sufficiente che l'inferenza sia "approssimata", ma non e' sempre chiaro quali siano le regole di inferenza su cui si basa. Per esempio, dalla proposizione "le fragole sono buone quando sono molli" e dalla proposizione "questa fragola e' molto molle" non e' in generale lecito dedurre che "quella fragola e' molto buona", e cosi' dalle proposizioni "mi piace andare al parco quando c'e' folla" e "oggi al parco c'e' molta folla" non discende necessariamente che "oggi mi piace molto andare al parco".

Esistono almeno tre ragioni per studiare il ragionamento inesatto. Dal punto di vista euristico e' necessario poter simulare il processo decisionale (e cio' da' origine alla "decision theory"); dal punto di vista epistemologico e' necessario stabilire a fronte di quale grado di convinzione una conoscenza e' accettabile (e cio' da' luogo alla "acceptance theory"); dal punto di vista doxastico e' necessario descrivere e prescrivere le credenze degli agenti razionali (e cio' viene fatto nella "belief theory").

Una teoria dell'incertezza va pertanto giudicata sulla base di tre criteri: l'efficacia computazionale ("consente di compiere dei calcoli in tempi ragionevoli?") la plausibilita' psicologica (rappresenta cio' che gli umani intendono con "incertezza"?) e l'adeguatezza transduzionale ("e' facile tradurre il linguaggio umano dell'incertezza?").

Il Ragionamento Plausibile

E' entrato nell'uso comune di misurare la certezza di un'affermazione assegnandole una "probabilita'": "John verra' promosso con 90 probabilita' su 100". Nel far cio' si commette in realta' una scorrettezza per diverse ragioni. La teoria delle probabilita' inventata da Pierre-Simon de Laplace nel 1812 e' una teoria statistica: parte dal presupposto che il suo universo sia casuale (cioe' che tutti gli eventi abbiano la stessa probabilita' di verificarsi, se non intervengono altri fattori) e assegna ad un evento un probabilita' che e' una misura del numero di volte che esso si e' verificato. Affermare che nel lancio di una moneta la probabilita' di ottenere "testa" e' del 50%" vuol dire che su 100 lanci si e' ottenuto "testa" per 50 volte. Analogamente assegnare una probabilita' 0,9 (o 90%) alla proposizione "promosso(John)" dovrebbe in realta' significare che John e' stato promosso 9 volte su 10 in tutte le promozioni precedenti.

Una delle conseguenze di questo equivoco e' quello di non riuscire poi a compiere calcoli affidabili sulle "probabilita'". Nel linguaggio comune se assegno 90% di probabilita' all'evento che venga annunciata una promozione e 90% di probabilita' all'evento che John sia la persona promossa, intendo dire che ritengo molto probabile che nell'immediato futuro John sia promosso. Il calcolo delle probabilita', che e' stato inventato per altri scopi, fornisce invece una probabilita' composta che e' data dal prodotto delle due, prodotto che fornisce come risultato una probabilita' piu' bassa (81%). Tale probabilita' tende a diminuire man mano che aggiungo altri eventi con altre probabilita', indipendentemente da quanto "grandi" siano tali probabilita', per la semplice ragione che una probabilita' e' sempre un numero reale minore di uno, e il prodotto di numeri reali minori di uno tende a zero.

Il primo caso di rappresentazione dell'incertezza della conoscenza si ebbe nel sistema esperto MYCIN, che "aumentava" la potenza espressiva delle regole di produzione associando a ciascuna un "fattore di confidenza". Tale fattore di confidenza non era una probabilita' appunto per evitare che tutte le diagnosi risultassero avere probabilita' bassissima o, peggio, che la probabilita' di una diagnosi dipendesse banalmente dal numero di regole di produzione utilizzate durante il ragionamento. In un sistema di produzione aumentato con le probabilita' le regole fungono infatti da "propagatori" di probabilita': ogni produzione (ogni concatenamento di due regole) produce una probabilita' che, per definizione, e' minore di quelle delle due regole. Quante piu' regole bisogna concatenare per ottenere la soluzione, tanto piu' bassa sara' la probabilita'. La diagnosi che richiede di esaminare soltanto due regole, ciascuna "pesata" con un 50%, verra' valutata dal sistema di produzione piu' affidabile di una diagnosi ottenuta esaminando quattordici regole ciascuna pesata con un 90% (rispettivamente cio' dara' luogo a probabilita' 25% e 22,8%). Per questa e altre ragioni MYCIN calcolava le probabilita' composte utilizzando una