DOCUMENTS

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







Papers
meccanica
sistemi
robotica


GLI INEDITI
Mondi virtuali

[Indietro]-[Avanti]

L'Intelligenza Artificiale

Esistono, in realta', almeno tre "intelligenze artificiali". La prima e' quella che, ispirandosi alla Psicologia, indaga la mente umana e tenta di emularla al computer. La seconda e' quella che, continuando il programma della Logica simbolica, vuole costruire la macchina in grado di risolvere qualsiasi problema. La terza e' quella che, prendendo esempio dalla Neurofisiologia, indaga la struttura del cervello e tenta di simularla al computer. Indirettamente queste tre scuole propongono tre diverse definizioni di "intelligenza", rispettivamente: 1. il comportamento della mente umana; 2. la capacita' di risolvere qualsiasi problema; 3. la struttura del cervello umano.

Qualcuno crede che queste tre definizioni siano equivalenti, ovvero che identifichino la stessa cosa; qualcuno crede che identifichino tre cose completamente diverse. Soltanto la terza potrebbe rendere conto delle differenze di intelligenza che si registrano fra gli individui; le altre due rappresentano delle forme idealizzate di intelligenza universale.

Architetture distribuite

Poche, pochissime attivita' umane hanno a che vedere con un solo agente. Quasi sempre l'attivita' contempla l'esistenza di diverse persone che interagiscono, collaborano, e cosi' via.

Per fornire una trattazione adeguata del comportamento umano e in particolare di uno degli aspetti piu' importanti dell'intelligenza, e' necessario esplorare anche la dimensione sociale dell'azione e della conoscenza, ovvero serve un'Intelligenza Artificiale che si rifaccia ai modelli "distribuiti" della Sociologia (molti agenti che interagiscono), invece che a quelli "integrati" della Psicologia (un agente solo che risolve un problema), un'Intelligenza Artificiale che abbia come obiettivo la "comunita' intelligente" invece che la macchina intelligente. Una "comunita'", in questo contesto, e' un insieme di processi interagenti e coordinati, i quali devono pertanto "sapere" qualcosa degli altri processi, oltre alla conoscenza necessaria a svolgere il proprio compito. Questa conoscenza "degli altri" costituisce la differenza principale rispetto ai sistemi cognitivi "individualisti".

E' chiaro che il comportamento di una comunita' non e' semplicemente la somma dei comportamenti dei suoi membri. Analogamente la "conoscenza" che viene impiegata dalla comunita', l'"azione" che viene compiuta e il "problema" che viene risolto non hanno lo stesso significato che hanno nel caso di un sistema isolato e chiuso. Per esempio, secondo Mead il significato di un messaggio inviato da un certo sistema non e' il suo contenuto, ma e` la risposta che genera nel sistema ricevente; un messaggio come "ti amo" inviato da me a una bella ragazza, ma che non provochi alcuna reazione in lei, non ha alcun significato, anche se la frase "ti amo" nel contesto del mio sistema cognitivo isolato avrebbe un significato ben preciso. Non solo: lo stesso messaggio puo' avere significati completamente diversi a seconda del sistema a cui viene inviato (qualche ragazza ha avuto delle reazioni); persino lo stesso messaggio inviato allo stesso sistema puo' avere significati diversi (qualche ragazza ci ha ripensato). In altre parole, il significato e' "situato".

Hewitt ha sviluppato una semantica delle "comunita' intelligenti". Un sistema e' "aperto" se il risultato delle sue azioni e' imprevedibile e se in qualsiasi istante puo` ricevere nuova informazione dall'esterno. I "sistemi intelligenti distribuiti" sono una classe particolare di sistemi intelligenti e aperti, caratterizzati dal fatto che interagiscono.

La dinamica di tali sistemi dipende dall'equilibrio fra due fattori: l'"indipendenza" (self-reliance), ovvero la capacita' di agire usando le risorse disponibili localmente, e l'"interdipendenza", che e' invece la necessita' di trovare risorse altrove per poter agire. Cio' si traduce nel dualismo fra "commitment", l'azione che un sistema e' determinato a compiere, e "cooperazione", l'insieme dei ruoli mutualmente dipendenti fra i sistemi. La proprieta' piu' saliente di questi sistemi e' la loro "indecisione deduttiva": visto che diversi agenti competono per le stesse risorse agendo in parallelo, lo stato del mondo in ogni istante e' indeterminato. Tutto cio' che si puo' richiedere a un sistema distribuito e' una forma di "coerenza globale", benche' il controllo sia "locale". L'azione fondamentale dei sistemi distribuiti e' la "prova di forza" (cosi' battezzata da Latour) fra un certo numero di "partecipanti", che puo' generare un "conflitto" ("conflict"), il quale puo' essere risolto tramite un "negoziato" ("negotiation").

Gasser, riprendendo l'idea di Mead che il comportamento intelligente sia un fatto prettamente sociale, ha spostato l'enfasi sugli aspetti "sociali" dell'interazione fra diversi agenti intelligenti.

Singh ha tentato di definire una semantica per i sistemi distribuiti (ovvero i sistemi "multi-agente") tramite la teoria degli atti illocutori di Searle. Prima Singh introduce una semantica per gli atti del parlato che dipende dalle condizioni nelle quali l'atto viene soddisfatto (e relativi operatori che distinguono l'esecuzione dell'atto dalla sua "soddisfazione"). Un messaggio fra due agenti viene rappresentato come una coppia di parametri: la proposizione che costituisce il messaggio e l'atto illocutorio (direttivo, assertivo, commissivo, permissivo, proibitivo). Singh estende la teoria delle "soddisfazioni" di Hamblin: un messaggio viene "soddisfatto" in maniera "estensionale" se la sua proposizione e' vera; un messaggio viene soddisfatto "pienamente" se la proposizione non solo e' vera ma e' vera perche' l'agente ha usato la propria conoscenza per renderla vera (insomma, non e' vera "per puro caso"); un messaggio viene soddisfatto in maniera "rilevante" se la proposizione non solo e' vera ma e' vera "soltanto" perche' l'agente ha fatto in modo che fosse vera (l'atto illocutorio e' necessario affinche' sia la proposizione sia vera). Sono tre livelli sempre piu' stringenti di soddisfazione: al primo livello puo' succedere che una proposizione sia vera per caso, al secondo livello puo' succedere che una proposizione sarebbe stata vera comunque, al terzo livello si ha la certezza che la proposizione e' vera per merito dell'agente. Singh da' le definzioni delle tre diverse "soddisfazioni" nella semantica dei mondi possibili, facendo uso di tre concetti: le intenzioni dell'agente, la conoscenza dell'agente e lo stato del mondo. In tal modo risulta possibile ricondurre le "societa'" di agenti intelligenti alla teoria degli atti del parlato. E' un altro modo di unificare il linguaggio e il fenomeno piu' generale della comunicazione.

Le macchine virtuali

Molti pensatori sono purtroppo rimasti fermi all'architettura dei computer degli anni Cinquanta, alle architetture a registri. In realta' le macchine virtuali che e' possibile costruire sopra la macchina fisica possono presentare delle complessita' molto maggiori.

Uno dei fenomeni piu' interessanti dell'Informatica e' semmai proprio il fatto che, in funzione delle esigenze della societa', e pertanto in maniera squisitamente adattativa, la struttura e la funzione della macchina sta cambiando in continuazione, stravolgendo il concetto originale di computer. L'evoluzione del concetto di computer trascende qualunque esempio biologico. E' un'evoluzione che dipende unicamente dalle necessita' di sfruttare il computer per compiti sempre piu' sofisticati all'interno della societa' umana.

In pratica il mondo della computazione si sta rivelando come un mondo profondamente diverso da quello biologico. Anche in questo mondo vale una legge di selezione naturale, guidata dalla necessita' di adattarsi alle condizioni ambientali: quelle di soddisfare il fabbisogno di servizi della societa' post-industriale.

In particolare non e' detto che la macchina virtuale debba corrispondere in maniera univoca con la macchina fisica: piu' macchine fisiche possono dar luogo a una sola macchina virtuale, cosi' come una macchina fisica puo' dar luogo a piu' macchine virtuali e piu' macchine fisiche possono dar luogo a piu' macchine virtuali. Una macchina virtuale "distribuita", per esempio, puo' far riferimento a oggetti che appartengono a diverse macchine fisiche senza dover sapere a quali essi appartengano. Chi utilizza la macchina virtuale distribuita ha visibilita' soltanto delle risorse complessive, ma non della localizzazione di tali risorse.

I sistemi a oggetti

Diverso da quello gerarchico classico e' anche il caso dei sistemi ad oggetti ("object-oriented"), le macchine virtuali per eccellenza, le quali non hanno visibilita' della struttura degli oggetti su cui operano, ma soltanto della loro funzione. I sistemi a oggetti sono in grado di "crescere" in un modo piu' continuo e meno rigido dei programmi tradizionali: in natura nulla (montagne, alberi, animali) viene costruito dall'oggi al domani, tutto cresce. I sistemi a oggetti costituiscono anche delle architetture riflessive, nel senso che sono costruiti utilizzando se stessi: ogni macchina virtuale costruisce la successiva con il proprio linguaggio.

I sistemi ad oggetti esibiscono infine tre importanti proprieta': l'incapsulamento (ogni oggetto costituisce un mondo chiuso, le cui leggi interne non hanno nulla a che vedere con le leggi del mondo esterno), l'ereditarieta' (ogni oggetto deriva automaticamente tutte le proprieta' degli oggetti a cui appartiene) e il polimorfismo (una stessa azione puo' essere compiuta su diversi tipi di oggetto, in quanto sono gli oggetti a "capire" come interpretare l'azione).

I mondi virtuali

Il computer e' da tempo in grado di reagire agli stimoli dell'utente che lo opera. Gli stimoli erano pero' costituiti da frasi scritte sulla tastiera del computer, o tutt'al piu' da frasi pronunciate in un apposito microfono. La "realta' virtuale" e' invece una tecnologia che consente al computer di reagire ai movimenti dell'utente, e tale reazione consta nel modificare un mondo e dando all'utente la percezione di tale cambiamento.

La realta' virtuale pone l'utente in un mondo virtuale tramite indumenti elettronici (solitamente un guanto e un paio d'occhiali, ma nulla proibisce di immaginare che presto siano disponibili interi abiti). Questi indumenti elettronici inviano segnali al computer relativi ai movimenti che l'utente compie; al tempo stesso l'utente percepisce il mondo che il computer gli fa sentire e vedere attraverso quegli indumenti. L'interazione e' pertanto di tipo percettiva e, soprattutto, totale. L'utente ha effettivamente l'impressione di vivere in quel mondo virtuale, in quanto tutti i suoi movimenti si riflettono in percezioni all'interno di quel mondo.

Il mondo virtuale viene proiettato dentro gli "occhiali" artificiali. Oltre all'immagine, anche il suono (e in teoria tutte le dimensioni sensoriali) possono contribuire a rendere la sensazione del mondo virtuale. L'utente vede questo mondo e ogni suo gesto viene riflesso in questo mondo.

Per esempio, un mondo virtuale potrebbe essere un campo di calcio, e l'indumento indossato dall'utente potrebbe inviare al computer i segnali necessari per simulare dei palleggi con una palla virtuale. A tutti gli effetti l'utente avrebbe la sensazione di stare palleggiando in quel campo (il suo mondo virtuale), mentre invece (nel mondo reale) starebbe semplicemente compiendo dei buffi movimenti di fronte al computer.

Sono stati sperimentati adattamenti ai mondi virtuali. E' possibile infatti costruire mondi virtuali in cui le comuni leggi della Fisica sono stravolte: lasciando andare un oggetto, questo si leva in volo invece che cadere; avvicinandosi a un oggetto, questo rimpicciolisce invece che ingrandirsi, e cosi' via. L'utente impiega qualche minuto ad abituarsi alle nuove leggi virtuali, ma poi impara a reagire correttamente; e, quando tornera' nel mondo reale, impieghera' qualche minuto a riprendere confidenza con le leggi reali.

In particolare i mondi virtuali finora sperimentati sono ancora mondi tri-dimensionali, ma nulla impedisce di costruire mondi virtuali a piu' dimensioni, in cui gli utenti dovranno imparare a muoversi in uno spazio che ha un'altra dimensione oltre a lunghezza, larghezza e altezza.

In definitiva le azioni fanno riferimento non a questo mondo ma a un altro mondo, benche' vengano eseguite in questo mondo: muovendo una mano, io muovo simultaneamente la mia mano reale in questo mondo e la mia mano virtuale nel mondo virtuale del computer.

Una variante di realta' virtuale e' quella della "telepresenza", in cui due utenti vengono proiettati simultaneamente nello stesso mondo virtuale in cui possono interagire e avere la sensazione di interagire nel mondo reale. Per esempio, potrebbero giocare a calcio nel campo virtuale, restando in realta' entrambi a casa propria di fronte ai rispettivi computer.

L'identita' del software

Non e' stata sufficientemente esplorata la differenza fra programma e processo: lo stesso programma puo' dar luogo (anche nello stesso momento) a piu' di un processo di calcolo, in quanto le sue istruzioni possono essere eseguite in ordini diversi a fronte di dati diversi (e su macchine diverse).

Se si volesse istituire un museo del software, non sarebbe neppure chiaro come esibire i programmi originali: cos'e' la versione originale di un programma? E' l'insieme di bit cosi' com'erano quel certo giorno in cui per la prima volta il programma venne eseguito? ovvero una specie di prima di un'opera? Oppure e' quel programma dentro un modello qualsiasi del computer di allora? ovvero una specie di edizione originale del disco di quell'opera? Forse la domanda e': cos'e' un programma? E' chiaro cosa sia la "copia" di un programma: ogni utente del programma ha una sua copia, che puo' eseguire in qualsiasi momento. Ma qual'e' la "prima" copia in assoluto di quel programma? E' la stampa delle istruzioni nel linguaggio macchina? E' la stampa delle istruzioni nel linguaggio evoluto in cui e' stato programmato? E' la prima copia eseguita su un disco?

[Indietro]-[Avanti]