VIII
CAPITOLO 1
L'INTELLIGENZA ARTIFICIALE DISTRIBUITA
Nella prima parte di questo capitolo si spiega che cos'è l'Intelligenza Artificiale Distribuita
inserendola in una tassonomia più ampia all'interno dell'intero settore dell'Intelligenza Artificiale.
Vengono poi illustrati alcuni precedenti storici di questa disciplina, se ne discutono i vantaggi e i
limiti e si chiariscono alcuni concetti.
1.1. INTRODUZIONE
Molti ricercatori nel campo dell'Intelligenza Artificiale si sono dedicati allo studio delle possibili
forme di intelligenza che agenti artificiali possono esibire in vari campi, quali la risoluzione di
problemi attraverso l'uso di euristiche o di conoscenze sul dominio, la pianificazione, la comprensione
e la generazione del linguaggio naturale, la percezione e l'apprendimento. Una serie di recenti sviluppi
hanno tuttavia contribuito a dirigere l'attenzione degli studiosi verso un nuovo settore di questa
disciplina: l'Intelligenza Artificiale Distribuita. Tra questi sviluppi possiamo citare la costruzione di
calcolatori paralleli sempre più potenti e la proliferazione di reti di calcolatori. A ciò si aggiunge la
presa di coscienza del fatto che gran parte delle attività pratiche e teoriche umane spesso non sono
eseguite interamente da un solo individuo, ma vengono piuttosto ripartite tra gruppi di persone.
L'Intelligenza Artificiale Distribuita (a cui d'ora in poi ci riferiremo con l'acronimo DAI —Distributed
Artificial Intelligence) è l'area dell'Intelligenza Artificiale che si occupa delle computazioni
IX
“concorrenti” a vari livelli. In particolare, la ricerca svolta in questo settore si focalizza su questioni
che riguardano la comunicazione e la cooperazione tra le varie entità coinvolte nei sistemi. Usiamo il
termine generico di “entità”, perché i sistemi DAI non necessariamente hanno a che fare con veri e
propri agenti (vedi Cap. 2). Come scrive G.Weiß:
‘L'Intelligenza Artificiale Distribuita ha a che fare con lo studio e la progettazione di sistemi costituiti
da diverse entità interagenti che sono logicamente e, spesso, anche spazialmente distribuite e che in
qualche modo possono essere definite autonome e intelligenti’. (Weiß, 1996)
1.2. CHE COS'È L'INTELLIGENZA ARTIFICIALE DISTRIBUITA?
La DAI comincia a svilupparsi nei primi anni '80, emergendo dall'intersezione tra due campi di studio
già consolidati: quello della Computazione Distribuita e quello dell'Intelligenza Artificiale, come
mostrato in figura 1.
La Computazione Distribuita è sorta quando è stato reso tecnologicamente possibile utilizzare più
processori per lavorare ad un unico problema; questi processori si dividono i dati sui quali operano. I
punti fondamentali della ricerca in questo campo riguardano la parallelizzazione e la sincronizzazione
dei processori. In seguito si è avvertita la necessità di ampliare questo campo di ricerche,
coinvolgendo degli agenti intelligenti. A questo punto si poneva il problema di dividere, oltre
all'informazione, anche il controllo delle entità coinvolte: in questo modo i processori potevano
incidere sulla soluzione del lavoro invece di limitarsi a eseguire ciecamente i sottoproblemi a essi
assegnati e riportarne il risultato all'agente di controllo. Il campo che si occupa di questo tipo di
ricerche è appunto quello della DAI.
X
D A I
C omputazi one
D is tri buita
Int el ligenza
A rti ficiale
Probl em
S olvi ng
Di st ribui to
S is temi
M ulti -A gent e
DA I
Figura 1: Una tassonomia comprendente la DAI e i MAS. La DAI deriva dall'intersezione tra l'IA e la
Computazione Distribuita. A sua volta la DAI è costituita da due aree principali: quella
dei MAS e quella del Problem Solving Distribuito.
Dalla DAI si sono poi sviluppate due grandi aree. La prima è quella del Problem Solving Distribuito,
che studia il modo in cui la risoluzione di un determinato problema possa essere suddivisa tra una
serie di moduli, o nodi, che cooperano spartendo e condividendo le conoscenze sul problema e sul
processo di risoluzione in atto. La seconda area della DAI è quella dei Sistemi Multi-Agente (Multi-
Agent Systems o MAS), che si occupa di come coordinare comportamenti intelligenti tra una serie di
agenti artificiali: ad esempio di come coordinarne le conoscenze, gli obiettivi, le abilità, e di come
condurli a pianificare congiuntamente un'azione o la soluzione ad un problema. Nei MAS gli agenti
non devono solo condividere conoscenze, come nel Problem Solving Distribuito, ma devono anche
ragionare sui processi di coordinazione che intercorrono tra loro. Nei MAS la coordinazione può
essere molto difficoltosa in quanto gli agenti si possono trovare di fronte a situazioni in cui non c'è la
possibilità di avere un controllo globale, o di avere conoscenze totalmente consistenti, o di avere
obiettivi universalmente condivisi e, a volte, nemmeno la possibilità di avere una rappresentazione del
XI
mondo universalmente valida per tutti gli agenti in gioco. Mentre nel Problem Solving Distribuito si
fanno forti assunzioni sulla compatibilità delle varie entità, nei MAS, invece, non ci sono queste
garanzie: diversi agenti possono avere caratteristiche del tutto differenti e tuttavia aver bisogno di
interagire.
Esiste poi una terza area correlata alla DAI, che è quella dell'Intelligenza Artificiale Parallela. Gli
studiosi in questo campo sono impegnati a sviluppare architetture, linguaggi e algoritmi paralleli.
Queste ricerche sono volte soprattutto a risolvere i problemi esecutivi dei sistemi IA più che a
promuovere uno sviluppo concettuale nella comprensione della natura del ragionamento e del
comportamento di un insieme di agenti.
Chiariamo meglio cosa implichino, a livello applicativo, le differenze rilevate tra queste aree della
DAI. Una delle dimensioni in base a cui si possono dividere i sistemi distribuiti è il grado di
ragionamento sulla soluzione o sulla coordinazione che viene svolto dal programmatore e quello che è
effettivamente prodotto dal sistema in sé. Ciò equivale a chiedersi quale sia il grado di adattamento
del sistema alle variazioni dei termini del problema o del contesto in cui il sistema agisce. I sistemi di
Intelligenza Artificiale Parallela si possono adattare solo a fonti di incertezza molto circoscritte nel
tempo (come, ad esempio, variazioni nella velocità di computazione) ma non possono escogitare
soluzioni alternative né adattarsi alla perdita delle conoscenze sul problema. Ad un gradino più alto
sulla scala del livello di adattamento troviamo i sistemi di Problem Solving Distribuito. Un tale tipo di
sistema può adattarsi anche a cambiamenti riguardanti le conoscenze sul problema, ma comunque non
riuscirà a far fronte a camb iamenti del contesto o a variazioni sul ruolo assegnato a ciascun modulo
impegnato nella risoluzione di un problema. I MAS si pongono sul gradino più alto della scala che
stiamo esaminando: essi possono riuscire a ristrutturare i compiti di coordinazione anche in seguito
all'emer-gere di eventi nuovi o di variazioni nei ruoli assegnati ai vari agenti per la risolu-zione di un
problema, senza l'intervento esterno da parte del programmatore.
La ricerca nel campo della DAI sembra avere un grosso impatto in vari domini: dalle scienze
cognitive ai sistemi distribuiti, dalle interazioni uomo -macchina all'ingegne-ria dei sistemi. Ma la
ricerca in questo campo è interessante anche per ragioni intrinseche: per coordinare le loro azioni,
infatti, gli agenti devono rappresentarsi e ragionare sulle conoscenze, le azioni e i piani degli altri
XII
agenti. Quindi questi studi potrebbero aiutare a migliorare le tecniche di rappresentazione e
sfruttamento delle conoscenze sulle credenze, le azioni, i piani, gli obiettivi. Questi sono i motivi che
rendono interessante l'applicazione di un approccio distribuito allo studio dei sistemi complessi.
1.2.1. ANTECEDENTI STORICI DELL'INTELLIGENZA ARTIFICIALE DISTRIBUITA
I temi del parallelismo e della distribuzione hanno avuto un'importanza storica nel campo
dell'Intelligenza Artificiale. Le basi concettuali per i processi distribuiti sono state studiate ed
applicate da moltissimi studiosi: citiamo, ad esempio, la teoria di Minsky sulla mente, vista come
collezione di agenti cooperanti (Minsky, 1979; 1980; 1986) e la concezione di Arbib sull'elaborazione
delle informazioni cerebrali come collezione di "schemi" attivati concorrentemente (Arbib, 1985;
1988).
Occorre anche ricordare gli studi sul modellamento di reti neurali, iniziati negli anni '50. I migliori
modelli neurali prodotti furono il Pandemonium di Selfridge (1959) e il Perceptron di Rosenblatt
(1962). La struttura computazionale usata consisteva in strati di "neuroni", i processi modellati erano
soprattutto compiti di riconoscimento di pattern, e il principale metodo di programmazione era
quello basato sull'apprendimento sinaptico. Sfortunatamente, però, la mancanza di metodi di
programmazione e apprendimento sufficientemente potenti, l'intrattabilità teorica, ma soprattutto le
difficoltà implementative avevano reso ardua la prosecuzione di questi lavori. Questo filone di ricerca
è stato ripreso recentemente con successo grazie ai progressi portati dagli studi sui Processi Paralleli
Distribuiti (McClelland, Rumelhart and the PDP Research Group, 1987) e sul Connessionismo
(Feldman e Ballard, 1982).
Nel corso del tempo, i metodi di elaborazione seriale nel problem solving sono stati soppiantati da
modelli di elaborazione di simboli semi-paralleli, a cominciare dal PLANNER di Hewitt (1971) e dai
lavori di Newell e Simon, basati su sistemi di produzioni (Newell e Simon, 1972).
Il sistema di Hewitt usava un approccio diretto ai pattern, in cui erano implicati processi separati che
generavano cooperativamente un database di strutture simbo-liche. L'uso del parallelismo era
XIII
giustificato dai vantaggi derivanti dalla separazione delle conoscenze dalle inferenze e dalla
segregazione delle conoscenze in più parti, identificabili e affini per significato. Ognuna di queste
parti utilizzava uno specifico metodo di risoluzione e comprendeva un elenco dei problemi a cui
questo metodo era applicabile. I vari processi del PLANNER, però, non potevano comunicare tra loro
in modo agevole, né riuscivano a rimediare a eventuali errori nell'informa-zione. Fu proprio questa
osservazione che portò ad un modello più generalizzato: CONNIVER (Sussman e McDermott, 1972).
In CONNIVER, i processi potevano autosospendersi e riattivarsi. Ogni processo concorrente era visto
come un esperto specializzato in una piccola area dell'attività da svolgere. Questo sistema, pur non
essendo stato largamente usato, ha avuto una grossa influenza sulla generazione di sistemi più recenti.
L'approccio di Newell e Simon (1972), basato su sistemi di produzioni, ha avuto, invece, una storia
diversa. In questi sistemi le unità di elaborazione, cioè le regole o produzioni, non corrispondevano
tanto a unità di conoscenza quanto piuttosto a processi elementari per la manipolazione di simboli da
cui si potevano costruire strutture di dati attive o processi di più alto livello. La parte sinistra di una
regola era un insieme di test, mentre la sua parte destra era una sequenza di azioni. Le regole
operavano in parallelo, nel senso che esse monitoravano cooperativamente un database comune
anche se, di volta in volta, poteva venir mandata in esecuzione una sola regola. I sistemi di produzioni
risultavano promettenti per facilitare la sco-perta di nuove strutture di rappresentazione per modelli
psicologici. Sfortunata-mente, nonostante lo sviluppo di diversi tipi di architetture, l'uso diffuso dei
sistemi di rappresentazione e lo sviluppo di sistemi di produzioni sempre nuovi in IA, l'approccio non
ha totalmente soddisfatto l'obiettivo per cui era nato, anche se esso ha avuto comunque una grande
influenza in diversi settori.
Dai sistemi di produzioni si sono evoluti i sistemi "blackboard" —a lavagna, (Erman, Hayes-Roth,
Lesser e Reddy, 1980; Hayes-Roth, 1985; Nii, 1986a, 1986b). In questi sistemi una gamma di
processi, noti come “risorse di conoscen-za” (Knowledge Sources) condividono un unico database, o
blackboard appunto, di strutture simboliche, dette “ipotesi”. Ogni risorsa di conoscenza funge da
esperto di una qualche area. Questi esperti possono:
• trovare una ipotesi su cui si è in grado di lavorare,
• verificare l'ipotesi stessa,
XIV
• trovare nuove ipotesi,
• modificare le ipotesi esistenti.
I processi coinvolti, quindi, cooperano attingendo alla stessa blackboard, un po' come un gruppo di
esperti umani, ognuno dei quali possedesse un certo grado di competenza, che cooperassero a
risolvere lo stesso problema scrivendo tutti sulla stessa lavagna. I convenzionali sistemi blackboard ,
esemplificati da HEARSAY-II e discendenti (Erman, Hayes-Roth, Lesser e Reddy, 1980; Hayes-
Roth, 1985; Nii, 1986a, 1986b), non erano propriamente paralleli, dato che venivano implementati su
macchine seriali e dato che l'invocazione delle “risorse di conoscenza” doveva essere seriale per
assicurare la consistenza della blackboard e delle risorse stesse. Comunque li possiamo definire semi-
paralleli, in quanto il migliore modello concet-tuale della loro attività era squisitamente parallelo e in
quanto si basavano su conce-zioni delle conoscenze semanticamente distribuite.
Queste tre architetture sono precursori, ma non esemplari, della DAI contempo-ranea. Attualmente la
ricerca in Intelligenza Artificiale nel campo dei modelli di comportamento intelligente distribuito, è
divisa in due correnti principali:
1. la DAI, che si occupa dei problemi riguardanti la progettazione e l'analisi di sistemi intelligenti
cooperanti in generale;
2. il Connessionismo, che si occupa di fornire una spiegazione delle funzioni mentali più complesse
e dei processi di ragionamento di alto livello, utilizzando insiemi di processi altamente paralleli,
costituiti da elementi di computazione estremamente semplici. Per questa tesi è rilevante solo il
campo della DAI.
XV
1.3. VANTAGGI E DIFFICOLTÀ LEGATI ALL'INTELLIGENZA ARTIFICIALE
DISTRIBUITA.
1.3.1 . ALCUNI VANTAGGI DEI SISTEMI DISTRIBUITI
Gli elementi di un sistema intelligente sono “distribuiti” se:
a) tra loro intercorre una certa distanza concettuale almeno per quanto riguarda alcuni
aspetti, quali tempo, spazio, semantica;
b) la reciproca connessione tra questi elementi implica un certo costo e/o è mediata da
processi intermedi.
Ci sono molte ragioni per rendere distribuita l'intelligenza di un sistema: dai motivi classici che
giustificano la modularizzazione di qualsiasi sistema o programma, a ragioni più specifiche per
l'ambito della DAI. In alcuni domini (come, ad esempio, il controllo del traffico aereo o la diagnostica
medica) le conoscenze o l'attività sono inerentemente distribuite. L'esigenza della distribuzione può
emergere da distanze geografiche associate a limitazioni nei processi o nella possibile banda di
ampiezza dei dati, oppure dalla naturale distribuzione funzionale di un problema, oppure per la
convenienza di distribuire il controllo o di segregare i vari tipi di conoscenza. In altri domini
potremmo aspettarci che la costruzione di sistemi intelligenti, sotto forma di una collezione di parti
separate ma connesse tra loro, semplifichi lo sviluppo e l'attività del sistema stesso.
Descriviamo di seguito alcuni vantaggi derivanti dal rendere distribuito un sistema intelligente.
• Alto grado di adattabilità. Un sistema DAI può essere distribuito secondo diverse dimensioni,
che possono essere quella logica, quella semantica, quella temporale o quella spaziale. Questa
proprietà rende il sistema inerente-mente modulare e ciò gli fornisce potenzialmente un alto
grado di adattabilità a vari livelli. Dal punto di vista implementativo, infatti, ogni sistema
modu-lare è facilmente modificabile e quindi adattabile alle esigenze esterne. Dal punto di
vista dell'elaborazione dell'informazione, questi sistemi hanno il vantaggio di poter vedere
ogni questione come se venisse affrontata da prospettive diverse: una per ognuno degli agenti
coinvolti.
XVI
• Basso costo di realizzazione. Rendere distribuito un sistema può implicare effettivamente una
riduzione in termini di costo: visto che i suoi compiti sono suddivisi, ogni singola unità del
sistema risulta essere relativamente sem-plice, rispetto all'unità di elaborazione richiesta da un
sistema monolitico. È facile intuire, quindi, come, nella realizzazione di un sistema DAI, ci si
possa permettere di usare una serie di unità di elaborazione semplici ed economi-che. Si
potrebbe obiettare che mantenere distinte tali unità porta lo svantaggio di dover fornire
comunque un modo di connetterle, e che ciò implica sempre un costo. Ma, se è vero che i
costi della comunicazione possono essere alti, dobbiamo tenere presente che i costi di un
sistema centralizzato che si avvalga della percezione distribuita sono comunque solitamente
maggiori.
• Praticità nello sviluppo e nella gestione. Come abbiamo già detto, i sistemi DAI sono, per
loro natura, modulari. Ciò significa che ogni parte può essere sviluppata separatamente da un
esperto in una particolare area del dominio e che, inoltre, il sistema potrà sempre essere
modificato o espanso (Rosens-chein, 1985).
• Alto grado di efficienza , in termini di velocità. Rispetto ad un sistema mono-litico, la
cooperazione tra le varie parti di un sistema distribuito può aumen-tare la velocità di
computazione e di ragionamento. È chiaro che questo parametro non deve essere esasperato a
scapito di altri. Se avessimo a che fare con un sistema la cui velocità di computazione
aumentasse parallelemen-te al grado di distribuzione raggiunto, dovremmo, comunque,
considerare le esigenze di consistenza della coordinazione. È chiaro che un sistema tal-
mente distribuito da rendere ogni sua parte totalmente sconnessa dalle altre è privo di utilità.
• Alto grado di autonomia tra le parti. Un ennesimo vantaggio dei sistemi modulari consiste
nel potenziale grado di autonomia che può essere raggiunto tra le varie parti del sistema
stesso. Se, per esempio, sorgesse l'esigenza di avere un controllo locale su una determinata
parte o se, per ragioni di sicurezza, volessimo rendere inaccessibili le varie unità del sistema,
queste potrebbero essere agevolmente separate tra loro e isolate una dall'altra. Questa
operazione prende il nome di arms-length relationship.
• Rispetto della natura intrinseca di certi domini. I sistemi distribuiti si adattano
XVII
particolarmente bene a quei domini che, per loro stessa natura, possono essere meglio
affrontati proprio in termini di moduli separati. Pensiamo a quante fabbriche producono i loro
prodotti costruendone un pezzo per volta e affidandone la realizzazione a unità di lavoro
diverse e specifiche. Allo stesso modo, nell'area implementativa, ci sono domini che vengono
gestiti meglio in termini di agenti separati, perché i loro elementi sono inerentemente segre-
gati secondo determinati assi e la distribuzione del sistema non fa altro che assecondare tale
suddivisione (Rosenschein, 1985).
• Alto grado di affidabilità. Un sistema monolitico non può essere considerato un sistema
affidabile. Quando il controllo di un intero problema, potenzial-mente molto complesso, è
affidato ad una sola entità, un unico errore potreb-be mettere in discussione tutto il lavoro
svolto e far crollare il sistema stesso. Quando un sistema è distribuito, invece, il controllo
viene suddiviso tra molti moduli di elaborazione distinti. Ciò offre un alto grado di
ridondanza, che, unito alla possibilità di controlli incrociati, rende il sistema molto più
immune all'effetto di eventuali errori.
• Superamento dei problemi concernenti i limiti delle risorse. I sistemi distribuiti possono
costituire un valido supporto anche per i sistemi basati su un unico agente. Questi ultimi,
infatti, possono avere un'intelligenza limitata, delle risorse limitate ed, eventualmente, anche
un raggio d'azione limitato. In tutti questi casi la risoluzione di problemi complessi può
richiedere l'appli-cazione di un certo grado di distribuzione per essere effettivamente conse-
guita.
• Alto grado di specializzazione. Un’altro tipo di segregazione possibile nei sistemi distribuiti
riguarda la possibilità di raggruppare conoscenze e azioni. Questi insiemi possono essere
formati secondo svariati criteri, andando a formare contesti specializzati e limitati che
possono agevolmente rispondere, qualora il contesto lo richiedesse, a esigenze di maggiore
chiarezza e controllo.
• Solide basi storiche. La distribuzione di un sistema intelligente può vantare delle solide basi
storiche a cui fare riferimento. Queste basi possono essere rappresentate dagli esempi che
troviamo nella vita quotidiana, quali la coordi-nazione che si rende necessaria tra l'insieme di
XVIII
uffici e persone che lavorano in uno studio o in una fabbrica, così come da esempi tratti da
applicazioni informatiche già avviate, quali la rete di computer che controlla un aeroplano.
1.3.2. ALCUNE DIFFICOLTÀ NEI SISTEMI DISTRIBUITI
I sistemi distribuiti presentano anche problemi di analisi e sviluppo molto seri, soprattutto nella
modularizzazione dei seguenti aspetti:
• Azioni nel mondo. In un sistema distribuito le azioni da compiere vengono suddivise tra le sue
varie parti: così può accadere che delle azioni siano portate a termine simultaneamente in
diverse locazioni spaziali o in tempi diversi. La coordinazione tra tali azioni può rivelarsi
difficoltosa.
• Focus dell'attenzione. Ognuno dei diversi agenti che fanno parte di un sistema DAI può
focalizzare la sua attenzione su diversi aspetti del mondo. Anche questo può costituire una
fonte di difficoltà nella coordinazione di un problema e delle relative fonti di informazione.
• Grado di autorità degli agenti. Diversi agenti possono avere diversi gradi di autorità o
responsabilità nei vari aspetti di una situazione di cui bisogna tenere conto sia all'atto della
distribuzione sia nella successiva ricostruzione dei termini della soluzione del problema.
• Grado di credibilità attribuito ad una fonte di informazione. In un sistema distribuito, ogni
agente vede il problema da risolvere in una prospettiva diversa da quella di altri agenti.
Questo comporta che i vari agenti possano attribuire diversa importanza alle informazioni che
ricevono o che possano essere convinti in grado diverso della bontà di una determinata
soluzione per un certo problema. È evidente che queste differenze devono essere compa-rate e
superate se si vuole giungere ad una soluzione unitaria del problema.
• Interpretazioni del mondo. Deriva immediatamente dal punto precedente la conseguenza che
eventi e oggetti dell'ambiente in cui il sistema opera possano veicolare significati differenti ai
vari agenti. Ulteriori difficoltà e rallentamenti nella coordinazione possono derivare dal
necessario confronto di questi significati.
• Conoscenze sul mondo. Un’altra questione strettamente connessa con i due punti precedenti
XIX
riguarda il fatto che i diversi agenti implicati in un sistema distribuito possano avere
conoscenze tra loro diverse. Inoltre può accadere che nessuno degli agenti abbia una
rappresentazione completa di qualche importante informazione, di una situazione o di un
problema. Così si pone il problema di mettere insieme i contributi dei vari agenti per tentare
di appro-dare ad un quadro unitario del mondo circostante e delle informazioni ad esso relate.
• Fonti percettive. Agenti diversi, che siano distribuiti spazialmente e tempo-ralmente,
percepiranno probabilmente oggetti ed eventi diversi da quelli percepiti dai loro compagni.
Così avviene che ognuno di questi agenti abbia solo una visione parziale della realtà e che,
quando si cerca di metterle insie-me, queste singole prospettive possono risultare addirittura
incomparabili.
• Affidabilità degli agenti. Quando un programmatore si accinge a costruire un sistema
distribuito sa che gli agenti coinvolti, essendo diversi tra loro, possono godere di un grado di
affidabilità diverso, proprio come un datore di lavoro sa che i suoi operai non sono tutti
ugualmente efficienti. Ovviamente il grado di affidabilità di un sistema dev'essere ottimizzato
per quando possibile, e ciò implica il riconoscimento degli agenti “migliori”: l'affidabilità
totale di un sistema distribuito può quindi basarsi su una parte limitata dei suoi sottosistemi.
• Risorse disponibili. I diversi agenti possono attingere a risorse diverse o a livelli di risorse
diversi. Inoltre ognuno di essi può dare un valore diverso alle varie risorse da utilizzare, così
come può dare un valore diverso ai risultati delle varie azioni. Tutto ciò contribuisce a rendere
più complicato il processo di coordinazione tra i vari agenti.
XX
1.4. IL CONCETTO DI DISTANZA TRA LE PARTI DI UN SISTEMA DISTRIBUITO
Abbiamo detto che il concetto di “distribuzione” di un sistema si basa su delle distanze concettuali tra
i suoi elementi, che descrivono il modo in cui gli aspetti su accennati possono essere resi distribuiti e
che possono essere di vario tipo:
• Costo computazionale. Il costo per usufruire di una certa conoscenza o per sfruttare una
specifica abilità (misurato in termini di tempo, spazio o altre risorse) può variare a seconda
della loro collocazione; quindi il costo di utilizzo può essere un parametro importante nel
definire la distribuzione di un sistema.
• Distanza spaziale. La locazione spaziale dei processi, delle conoscenze, degli input sensoriali,
e degli effettori di un sistema costituisce un altro asse nel determinarne il grado di
distribuzione. L'elaborazione delle informazioni che ci arrivano ad ogni istante dipende dalla
percezione e dalla trasduzione dei dati che abbiamo a disposizione. Come nel nostro cervello,
questi processi avvengono in zone spazialmente distribuite, in tempi diversi, e sulla base di
processi diversi e perciò distribuiti. Questi input devono poi essere inviati a un unico punto
centrale del sistema, il quale sia responsabile dell'elabora-zione finale, e ciò implica sempre
un costo, spesso anche molto alto. Allo stesso modo, anche la realizzazione delle azioni di un
entità intelligente si fonda spesso su una serie di sistemi distribuiti, di conoscenze distribuite,
di effettori distribuiti.
• Distanza temporale. Gli eventi e le conoscenze di un sistema possono essere distribuiti anche
dal punto di vista temporale, ragione per cui possono diven-tare inaccessibili con il passare
del tempo. Alcune conoscenze possono non essere disponibili in un certo istante perché non
sono ancora state prodotte o derivate. Il problema se le conoscenze di un sistema debbano
essere precom-pilate e registrate o piuttosto dedotte è una questione che riguarda la distribu-
zione temporale e l'utilizzo delle conoscenze stesse. La registrazione delle conoscenze è un
mezzo che senz'altro ne assicura l'accessibilità in tempi diversi; la deduzione, d'altro canto,
rende l'uso delle conoscenze meno “locale” sia dal punto di vista temporale sia dal punto di
XXI
vista dei costi e delle risorse richieste. Insomma, la forma e il contenuto delle conoscenze
esistenti influenzano le scelte sulla distribuzione: specialmente in sistemi che agiscono in
tempo reale, ci possono essere dei costi pesanti connessi all'attesa che venga raggiunta una
adeguata coordinazione temporale.
• Distanza logica ( o deduttiva). Il grado di dipendenza logica tra i vari frammenti di
conoscenza (ad esempio, il bisogno di appoggiarsi a processi deduttivi intermedi per produrre
nuove conoscenze) è un parametro rilevante nel definire il grado di distribuzione o di
aggregazione in un sistema. Ricor-diamo che la dipendenza logica è spesso sfruttata nei
sistemi di produzioni paralleli.
• Distanza semantica. Le persone sono solite segregare le loro conoscenze in aree specializzate
che vengono suggerite dall'uso pratico e convenzionale delle conoscenze stesse. Così,
possiamo avere un raggruppamento per le nostre conoscenze sulla medicina omeopatica e un
altro per quelle sulla medicina scientifica; un raggruppamento per le conoscenze informatiche
e un altro per quelle meccaniche, visto che i due tipi di conoscenza e le rispettive
rappresentazioni sono incompatibili tra loro. Ci sono certi tipi di conoscenza che
effettivamente possono essere sparsi tra più raggruppamenti: per questo abbiamo processi di
traslazione che ci permettono di recuperarle. Il raggrup-pamento delle informazioni e il loro
accesso e utilizzo tramite una serie di espressioni linguistiche per la descrizione delle
conoscenze può quindi rappresentare un altro asse secondo cui rendere distribuito un sistema.
1.5.I PRINCIPALI PROBLEMI DI CUI L'INTELLIGENZA ARTIFICIALE DISTRIBUITA
SI OCCUPA
Le principali questioni a cui devono rivolgere la loro attenzioni gli studiosi del settore della DAI sono
le seguenti:
• Come formulare, descrivere, scomporre e allocare i problemi da affrontare e come sintetizzare
i risultati raggiunti dai vari gruppi di agenti in una soluzione comune.
• Come rendere gli agenti capaci di comunicare e interagire: che linguaggio o che protocollo