23 Sono stati realizzati elaboratori paralleli, in grado di eseguire contemporaneamente diverse istruzioni e elaboratori specificamente
3.3. Intelligenza artificiale, spazio di stati • sistem
assiomatici foratali
Le incertezze, i problemi, la varietà degli studi, delle applicazioni e degli approcci che si connettono all'intelligenza artificiale non impediscono di individuare anche qui un paradigma fondamentale.
Un approccio generale per definire i tipici problemi di intelligenza artificiale è il modello della ricerca in uno spazio di stati. In questo modello, la definizione di un problema si compone di 3 parti:
-lo stato iniziale,
-lo stato o gli stati meta, che rappresentano l'obiettivo da raggiungere,
-le regole che definiscono le possibili transizioni da uno stato al successivo.
Ad esempio, il problema di vincere una partita di scacchi può essere definito come segue41:
Stato iniziale: la configurazione della scacchiera all'inizio della partita;
Stati meta: posizioni nelle quali il re avversario è in scacco matto:
regole : possibili mosse
Uno spazio di stati può essere rappresentato come un grafo. I nodi del grafo rappresentano stati del problema. Un arco che collega due nodi indica che c'è una regola di transizione (una mossa) che trasforma uno stato nell'altro.
Il problema viene risolto con individuando un cammino (una sequenza di mosse) nello spazio di stati che collega lo stato iniziale ad uno degli stati meta.
Nel modello dello spazio di stati possiamo rappresentare anche dei ragionamenti (degli stati di conoscenza).
Ad esempio, possiamo rappresentare come segue il problema di determinare se un certo numero è maggiore di un altro42.
41RICH E., Arti f i d a i Intelligence, cit., p. 11.
42Nelle figure successive alla prima ci si limita a rappresentare le nuove conoscenze ottenute con la mossa che conduce alla figura di cui si
stato iniziala : I 1<2 (conoscenza che 1 2<3 ogni numero è I 3<4 minore del suo 1 <•>
successore) 1 •
regola di trasformazione:
par ogni X,Y,Z ((X<Y) 6 (Y<Z)) => (X<Z)
(se un numero X è minore di un numero Y e Y è minore di un numero Z allora X è minore di Z)
+---- + stato iuta: | | I 3<6 | I I I * I +---- + spazio di stati: +---- + I 1<2 | I 2<3 | I 3<4 | I <•> I I - I •i---v —+ +--- + +---- + +---+ +---+ +--- +
I
I
I
I
I
I
I
I
I I
I 1<3 | | 2<4 | | 3<5 |I 4<6 | | 8<10|I
I I
I I
I I
I
. . .
I
I
1 * 1
1 * 1
1 * 1
1 * 1
1 * 1
+---- - + +--— + +-- ,— + +--- + +--- + +---+ I I I 1<4 | I I + --- + I I I 2<5 | I I I * I + --- + + --- + I I I 3<6 | I I I * I + --- +Ogni nodo (rettangolo) è una possibile configurazione del problema (uno stato) e ogni linea che collega due nodi, rappresenta una possibile mossa. In ogni stato (che non sia
passare ad un nuovo stato. La soluzione del problema si ottiene trovando un cammino che vada dalla configurazione iniziale ad uno stato meta.
Il modello dello spazio di stati è estremamente generico. Tuttavia, quando si consideri l'esigenza che stati e mosse siano rigorosamente definiti (usando linguaggi formali come quelli menzionati nel paragrafo precedente), finisce per coincidere il paradigma più definito del sistema assiomatico.
Consideriamo infatti le seguenti caratteristiche dei sistemi di intelligenza artificiale:
(a) Si tratta di sistemi che "applicano", seppure in senso ampio, la conoscenza di cui dispongono.
(b) Anche nelle applicazioni più avanzate la conoscenza è considerata sotto il profilo sintattico, quale collezione di simboli formati in base a regole rigidamente definite e da sottoporre a trasformazioni determinate.
(c) Nonostante si sia spesso contrapposto il ragionamento comune, con la sua capacità di affrontare situazioni solo parzialmente definite, alla logica, tutti i sistemi sin qui realizzati (prescindendo forse da talune realizzazioni sperimentali largamente insoddisfacente) si limitano a compiere operazioni di inferenza definibili in termini logico-matematici (seppure a partire dati incerti), e anche per il futuro si può pensare più alla possibilità di simulare con strumenti logico-matematici taluni aspetti del ragionamento inesatto piuttosto che ad un'adozione di un diverso metodo di ragionamento in sistemi automatici43.
L'ambito in cui si "applicano" delle conoscenze usando regole di trasformazione definite sintatticamente è fondamentalmente quello della giustificazione logico matematica, sicché si può forse affermare che il modello al quale fanno riferimento le applicazioni di intelligenza artificiale (almeno sino ad oggi) quello logico-matematico del sistema deduttivo. In questa prospettiva i possibili stati sono quelli deducibili nel sistema assiomatico che risulta dalla rappresentazione formale dalla situazione iniziale e delle regole di trasformazione. L'applicazione di una regola di trasformazione che genera un nuovo stato può essere interpretata come un'inferenza logica.
43Sul rapporto tra logica e senso comune è da tempo in corso un vivace dibattito. Alcuni autori, (come MINSKI M . , A Framework for thè Rapresentation o£ Knowledge, in WINSTON P.H., The Psychology of Computer Vision, McGraw Hill, New York, 1975, pp. 211-280 (già pubblicata come Artificial Intelligence Memo 306, MIT AI Lab, 1974)), hanno affermato
l'inadeguatezza della logica rispetto al ragionamento comune, e hanno cercato di individuare metodi diversi per la rappresentazione e la
Come vedremo44, i sistemi informatici intelligenti consistono fondamentalmente di una base di conoscenza e di un motore inferenziale. La base di conoscenza può essere considerata la base assiomatica del sistema (l'insieme degli enunciati primitivi), mentre il motore inferenziale è un programma che deduce dalla base assiomatica ulteriori enunciati del sistema (i teoremi).
I Sistema di I conoscenza assiomi regole di inferenza enunciati deducibili nel sistema (conclusioni)
Come ha rilevato Kowalski45, in un algoritmo si possono distinguere due componenti fondamentali, la logica e il
controllo, cioè la descrizione del problema da risolvere e
la specificazione del metodo per risolvere quel problema: -Nella programmazione tradizionale (chiamata programmazione algoritmica, procedurale o imperativa), anche se strutturata, le due componenti sono inscindibili, si fondono nella descrizione/prescrizione di una sequenza di operazioni sui dati. Chi intenda sviluppare un sistema informatico deve assumersi il compito gravoso di tradurre il problema originario nei termini di una combinazione di queste operazioni.
-Nell'intelligenza artificiale, invece, le due componenti sono separate: la conoscenza necessaria per risolvere il problema va rappresentata formalmente in una base di conoscenza; le procedure per manipolare la conoscenza vanno implementate nel motore inferenziale. E' possibile sviluppare motori inferenziali di impiego generale (in particolare, che usino le regole di inferenza della
44Cfr. cap. 4.
45Cfr. KOWALSKI R.A., Logic for Problem Solving, North Holland, New Ibas« di conoscenza Imotor* Iinferenziale I risposte I(soluzioni di Iproblemi) Sistema deduttivo
logica). Pertanto, per sviluppare un'applicazione informatica, l'uomo può limitarsi a rappresentare il problema e il suo contesto, a fornire la conoscenza c.d. dichiarativa; spetta invece al sistema (al motore inferenziale) determinare la procedura mediante la quale il problema potrà essere risolto46.