SlideShare a Scribd company logo
1 of 15
Download to read offline
VII
Premessa
Questa tesi si colloca in un punto di intersezione tra due aree dell’Intelligenza Artificiale, entrambe
piuttosto recenti: da una parte l’Intelligenza Artificiale Distribuita, dall’altra il settore dei Sistemi
Multi-Agente. La novità apportata da questa tesi è stata quello di applicare i principi di queste due
aree a un dominio per cui ciò non era ancora stato fatto: il gioco “Diplomacy”.
Lo scopo principale di questo lavoro è stato quello di verificare se i vantaggi comunemente derivanti
dalla distribuzione di un qualsiasisistema fossero riscontrabili anche nel dominio “Diplomacy”.
Nei primi capitoli sono stati esposti i concetti generali dell’Intelligenza Artificiale Distribuita e dei
Sistemi Multi-Agente, delineando i vantaggi e le difficoltà connesse. Nello specifico, si è cercato
anche di dare una definizione di cosa sia un agente intelligente, riportando le opinioni di diverse
scuole di pensiero. In seguito è stato introdotto il dominio “Diplomacy”: con la descrizione del gioco
originale e con la presentazione delle precedenti implementazioni degli agenti applicati a questo
gioco. Nei capitoli finali viene descritta la mia versione del gioco — Mini-Diplomacy Distribuito —
con le semplificazioni e le novità apportate. La tesi si conclude con la descrizione dei risultati ottenuti
nelle sessioni sperimentali: la prima di queste ha portato alla generazione di una seconda versione del
gioco, più complessa e completa della prima. I risultati ottenuti con gli esperimenti eseguiti in una
terza sessione sono stati quelli rilevanti per le conclusioni a cui si è pervenuti con il presente lavoro.
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
DAI
Computazi one
Distri buita
Intel ligenza
Arti ficiale
Probl em
Solvi ng
Di stribui to
S istemi
Multi -Agente
DAI
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 cambiamenti 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
processiintermedi.
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

More Related Content

Similar to Problem solving

Sviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activitySviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activityMichele Palumbo
 
IC2008 Introduzione all'Ingegneria Della Conoscenza
IC2008 Introduzione all'Ingegneria Della ConoscenzaIC2008 Introduzione all'Ingegneria Della Conoscenza
IC2008 Introduzione all'Ingegneria Della ConoscenzaEmanuele Della Valle
 
IC2009 Introduzione all'ingegneria della conoscenza
IC2009 Introduzione all'ingegneria della conoscenzaIC2009 Introduzione all'ingegneria della conoscenza
IC2009 Introduzione all'ingegneria della conoscenzaEmanuele Della Valle
 
Economia della conoscenza: quale futuro per il social networking?
Economia della conoscenza: quale futuro per il social networking?Economia della conoscenza: quale futuro per il social networking?
Economia della conoscenza: quale futuro per il social networking?Andrey Golub
 
Evolutionary Fuzzy Systems for XAI
Evolutionary Fuzzy Systems for XAIEvolutionary Fuzzy Systems for XAI
Evolutionary Fuzzy Systems for XAICamillaGiaccari
 
Summary of "AI-GAs: AI-generating algorithms, an alternate paradigm for produ...
Summary of "AI-GAs: AI-generating algorithms, an alternate paradigm for produ...Summary of "AI-GAs: AI-generating algorithms, an alternate paradigm for produ...
Summary of "AI-GAs: AI-generating algorithms, an alternate paradigm for produ...DavideBasso5
 
Classificare informazione: le tendenze del nuovo web
Classificare informazione: le tendenze del nuovo webClassificare informazione: le tendenze del nuovo web
Classificare informazione: le tendenze del nuovo webGino Roncaglia
 
AI, ML e l'anello mancante
AI, ML e l'anello mancanteAI, ML e l'anello mancante
AI, ML e l'anello mancanteNicola Pedot
 
AMMASSO REGOLATO - STRATEGIE DI COMMUNITY DETECTION
AMMASSO REGOLATO - STRATEGIE DI COMMUNITY DETECTIONAMMASSO REGOLATO - STRATEGIE DI COMMUNITY DETECTION
AMMASSO REGOLATO - STRATEGIE DI COMMUNITY DETECTIONLuca Scarinci
 
Premio pa sostenibile_2019_planner
Premio pa sostenibile_2019_plannerPremio pa sostenibile_2019_planner
Premio pa sostenibile_2019_plannerStress2010
 
26 01-08 psicologia dello sviluppo
26 01-08 psicologia dello sviluppo26 01-08 psicologia dello sviluppo
26 01-08 psicologia dello sviluppoimartini
 
26 01-08 psicologia dello sviluppo
26 01-08 psicologia dello sviluppo26 01-08 psicologia dello sviluppo
26 01-08 psicologia dello sviluppoiva martini
 
10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...
10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...
10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...Riva Giuseppe
 
Coding, pattern e pensiero computazionale
Coding, pattern e pensiero computazionaleCoding, pattern e pensiero computazionale
Coding, pattern e pensiero computazionaleAlessandri Giuseppe
 
Blockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanzaBlockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanzaAlessandro Greppi
 
Networking Lezione 21 Novembre
Networking Lezione 21 NovembreNetworking Lezione 21 Novembre
Networking Lezione 21 Novembreand_cerase
 
Analisi matematica di reti sociali e cerebrali
Analisi matematica di reti sociali e cerebraliAnalisi matematica di reti sociali e cerebrali
Analisi matematica di reti sociali e cerebraliToscana Open Research
 

Similar to Problem solving (20)

Sviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activitySviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activity
 
IC2008 Introduzione all'Ingegneria Della Conoscenza
IC2008 Introduzione all'Ingegneria Della ConoscenzaIC2008 Introduzione all'Ingegneria Della Conoscenza
IC2008 Introduzione all'Ingegneria Della Conoscenza
 
IC2009 Introduzione all'ingegneria della conoscenza
IC2009 Introduzione all'ingegneria della conoscenzaIC2009 Introduzione all'ingegneria della conoscenza
IC2009 Introduzione all'ingegneria della conoscenza
 
Economia della conoscenza: quale futuro per il social networking?
Economia della conoscenza: quale futuro per il social networking?Economia della conoscenza: quale futuro per il social networking?
Economia della conoscenza: quale futuro per il social networking?
 
Evolutionary Fuzzy Systems for XAI
Evolutionary Fuzzy Systems for XAIEvolutionary Fuzzy Systems for XAI
Evolutionary Fuzzy Systems for XAI
 
Mappatura El & Km
Mappatura El & KmMappatura El & Km
Mappatura El & Km
 
Summary of "AI-GAs: AI-generating algorithms, an alternate paradigm for produ...
Summary of "AI-GAs: AI-generating algorithms, an alternate paradigm for produ...Summary of "AI-GAs: AI-generating algorithms, an alternate paradigm for produ...
Summary of "AI-GAs: AI-generating algorithms, an alternate paradigm for produ...
 
Classificare informazione: le tendenze del nuovo web
Classificare informazione: le tendenze del nuovo webClassificare informazione: le tendenze del nuovo web
Classificare informazione: le tendenze del nuovo web
 
AI, ML e l'anello mancante
AI, ML e l'anello mancanteAI, ML e l'anello mancante
AI, ML e l'anello mancante
 
AMMASSO REGOLATO - STRATEGIE DI COMMUNITY DETECTION
AMMASSO REGOLATO - STRATEGIE DI COMMUNITY DETECTIONAMMASSO REGOLATO - STRATEGIE DI COMMUNITY DETECTION
AMMASSO REGOLATO - STRATEGIE DI COMMUNITY DETECTION
 
Premio pa sostenibile_2019_planner
Premio pa sostenibile_2019_plannerPremio pa sostenibile_2019_planner
Premio pa sostenibile_2019_planner
 
26 01-08 psicologia dello sviluppo
26 01-08 psicologia dello sviluppo26 01-08 psicologia dello sviluppo
26 01-08 psicologia dello sviluppo
 
26 01-08 psicologia dello sviluppo
26 01-08 psicologia dello sviluppo26 01-08 psicologia dello sviluppo
26 01-08 psicologia dello sviluppo
 
10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...
10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...
10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...
 
Lezione 02/2006
Lezione 02/2006Lezione 02/2006
Lezione 02/2006
 
Coding, pattern e pensiero computazionale
Coding, pattern e pensiero computazionaleCoding, pattern e pensiero computazionale
Coding, pattern e pensiero computazionale
 
Blockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanzaBlockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanza
 
Networking Lezione 21 Novembre
Networking Lezione 21 NovembreNetworking Lezione 21 Novembre
Networking Lezione 21 Novembre
 
Analisi matematica di reti sociali e cerebrali
Analisi matematica di reti sociali e cerebraliAnalisi matematica di reti sociali e cerebrali
Analisi matematica di reti sociali e cerebrali
 
info-learn
info-learninfo-learn
info-learn
 

More from imartini

2 parliamo e discutiamo del bullismo
2 parliamo e discutiamo del bullismo2 parliamo e discutiamo del bullismo
2 parliamo e discutiamo del bullismoimartini
 
Scheda bambino
Scheda bambinoScheda bambino
Scheda bambinoimartini
 
Subitizing
SubitizingSubitizing
Subitizingimartini
 
intelligenza emotiva
intelligenza emotivaintelligenza emotiva
intelligenza emotivaimartini
 
Il quaderno delle_regole_di_matematica
Il quaderno delle_regole_di_matematicaIl quaderno delle_regole_di_matematica
Il quaderno delle_regole_di_matematicaimartini
 
comunicazione_non_verbale
 comunicazione_non_verbale comunicazione_non_verbale
comunicazione_non_verbaleimartini
 
osservazione fattoei di rischio dsa
osservazione fattoei  di rischio dsaosservazione fattoei  di rischio dsa
osservazione fattoei di rischio dsaimartini
 
Prerequisiti
Prerequisiti Prerequisiti
Prerequisiti imartini
 
Per sito-prerequisiti-letto-scrittura
Per sito-prerequisiti-letto-scrittura Per sito-prerequisiti-letto-scrittura
Per sito-prerequisiti-letto-scrittura imartini
 
Dispensa dsa
Dispensa  dsaDispensa  dsa
Dispensa dsaimartini
 
Dentro ai dsa n
Dentro ai dsa nDentro ai dsa n
Dentro ai dsa nimartini
 
stili di apprendimento
stili di apprendimentostili di apprendimento
stili di apprendimentoimartini
 
Dsa fasce eta
Dsa  fasce etaDsa  fasce eta
Dsa fasce etaimartini
 
Sviluppo percettivomotorio
Sviluppo percettivomotorio Sviluppo percettivomotorio
Sviluppo percettivomotorio imartini
 
prerequisiti della scrittura
prerequisiti della scritturaprerequisiti della scrittura
prerequisiti della scritturaimartini
 

More from imartini (20)

2 parliamo e discutiamo del bullismo
2 parliamo e discutiamo del bullismo2 parliamo e discutiamo del bullismo
2 parliamo e discutiamo del bullismo
 
Scheda bambino
Scheda bambinoScheda bambino
Scheda bambino
 
Subitizing
SubitizingSubitizing
Subitizing
 
intelligenza emotiva
intelligenza emotivaintelligenza emotiva
intelligenza emotiva
 
Il quaderno delle_regole_di_matematica
Il quaderno delle_regole_di_matematicaIl quaderno delle_regole_di_matematica
Il quaderno delle_regole_di_matematica
 
comunicazione_non_verbale
 comunicazione_non_verbale comunicazione_non_verbale
comunicazione_non_verbale
 
Adhd u
Adhd uAdhd u
Adhd u
 
DSA
DSADSA
DSA
 
osservazione fattoei di rischio dsa
osservazione fattoei  di rischio dsaosservazione fattoei  di rischio dsa
osservazione fattoei di rischio dsa
 
Prerequisiti
Prerequisiti Prerequisiti
Prerequisiti
 
Per sito-prerequisiti-letto-scrittura
Per sito-prerequisiti-letto-scrittura Per sito-prerequisiti-letto-scrittura
Per sito-prerequisiti-letto-scrittura
 
scrittura
scritturascrittura
scrittura
 
Dispensa dsa
Dispensa  dsaDispensa  dsa
Dispensa dsa
 
Dentro ai dsa n
Dentro ai dsa nDentro ai dsa n
Dentro ai dsa n
 
dislessia
dislessiadislessia
dislessia
 
stili di apprendimento
stili di apprendimentostili di apprendimento
stili di apprendimento
 
DSA
DSADSA
DSA
 
Dsa fasce eta
Dsa  fasce etaDsa  fasce eta
Dsa fasce eta
 
Sviluppo percettivomotorio
Sviluppo percettivomotorio Sviluppo percettivomotorio
Sviluppo percettivomotorio
 
prerequisiti della scrittura
prerequisiti della scritturaprerequisiti della scrittura
prerequisiti della scrittura
 

Problem solving

  • 1. VII Premessa Questa tesi si colloca in un punto di intersezione tra due aree dell’Intelligenza Artificiale, entrambe piuttosto recenti: da una parte l’Intelligenza Artificiale Distribuita, dall’altra il settore dei Sistemi Multi-Agente. La novità apportata da questa tesi è stata quello di applicare i principi di queste due aree a un dominio per cui ciò non era ancora stato fatto: il gioco “Diplomacy”. Lo scopo principale di questo lavoro è stato quello di verificare se i vantaggi comunemente derivanti dalla distribuzione di un qualsiasisistema fossero riscontrabili anche nel dominio “Diplomacy”. Nei primi capitoli sono stati esposti i concetti generali dell’Intelligenza Artificiale Distribuita e dei Sistemi Multi-Agente, delineando i vantaggi e le difficoltà connesse. Nello specifico, si è cercato anche di dare una definizione di cosa sia un agente intelligente, riportando le opinioni di diverse scuole di pensiero. In seguito è stato introdotto il dominio “Diplomacy”: con la descrizione del gioco originale e con la presentazione delle precedenti implementazioni degli agenti applicati a questo gioco. Nei capitoli finali viene descritta la mia versione del gioco — Mini-Diplomacy Distribuito — con le semplificazioni e le novità apportate. La tesi si conclude con la descrizione dei risultati ottenuti nelle sessioni sperimentali: la prima di queste ha portato alla generazione di una seconda versione del gioco, più complessa e completa della prima. I risultati ottenuti con gli esperimenti eseguiti in una terza sessione sono stati quelli rilevanti per le conclusioni a cui si è pervenuti con il presente lavoro.
  • 2. 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
  • 3. 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.
  • 4. X DAI Computazi one Distri buita Intel ligenza Arti ficiale Probl em Solvi ng Di stribui to S istemi Multi -Agente DAI 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
  • 5. 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 cambiamenti 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
  • 6. 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
  • 7. 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,
  • 8. 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.
  • 9. 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 processiintermedi. 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.
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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.
  • 14. 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
  • 15. 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