Your SlideShare is downloading. ×
Problem solving
Problem solving
Problem solving
Problem solving
Problem solving
Problem solving
Problem solving
Problem solving
Problem solving
Problem solving
Problem solving
Problem solving
Problem solving
Problem solving
Problem solving
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
134
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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

×