tecniche di intelligenza artificiale ed in particolare agli agenti intelligenti, entita software che
godono di alcune proprieta quali autonomia, reattivita , mobilita , capacita di
comunicazione, abilita sociale, e che sono oggi diffusi in molti campi di applicazione. Grazie
alle loro doti di indipendenza e alla loro abilita sociale gli agenti possono portare a termine la
ricerca di informazioni senza che l utente debba preoccuparsi del come la portano a termine.
L utente deve solo raccogliere i risultati ed eventualmente correggere il comportamento
dell agente per migliorarne le prestazioni.
Le possibili applicazioni in Internet degli agenti intelligenti (quali la ricerca di informazioni il
commercio elettronico, la riparazione e prevenzione dei guasti) e la necessita di sfruttare al
meglio le risorse di rete ha portato allo sviluppo degli agenti mobili, agenti capaci di
sospendere la propria esecuzione, migrare in un altro server e riprendere il lavoro interrotto.
Per facilitare la creazione di agenti mobili in Internet e stata creata una estensione del
linguaggio Java (il linguaggio ad oggetti sviluppato dalla Sun, disponibile per le piu comuni
piattaforme, che consente di creare applicazioni portatili): la classe Aglet. Le aglet, oggetti
creati attraverso le istanze della classe Aglet, vivono in un ambiente software denominato
contesto dove possono compiere alcune operazioni come comunicare fra loro e con gli utenti,
clonarsi, spostarsi da un contesto in un host ad un altro, e cos via.
In questa tesi Ł proposto il sistema EDGES (EDucational aGEnt Server), un sistema
distribuito di agenti intelligenti, fruibile attraverso Internet, e sviluppato in linguaggio Java
usando la classe Aglet, capace di offrire un insieme di servizi per il recupero ed il filtraggio
delle informazioni.
Il sistema EDGES pu essere pensato come un insieme di server, ognuno dei quali
identificato da un contesto, contenente un insieme di agenti. In particolare in ogni server
EDGES sono presenti:
• un insieme di agenti, che chiameremo agenti Master, dedicati ad assistere l utente nella
ricerca di informazioni. Ogni utente ha un proprio agente Master che raccoglie le richieste
di informazioni, cerca le informazioni sia in Internet sia negli altri server del sistema e
presenta i risultati ottenuti;
• un insieme di agenti, gli agenti Specifici, ognuno con il compito di gestire un certo
insieme di documenti monotematici per mezzo di una rete neurale autorganizzante ad
apprendimento non supervisionato (nota in letteratura come Self-Organizing Feature
Map). Tale rete neurale e capace di classificare i documenti raggruppando quelli di
argomento simile ed ordinando tali gruppi in modo che quelli su argomenti simili si
trovino vicini fra loro sulla mappa. La mappa creata dalla rete neurale e usata sia per
restituire i documenti attinenti ad una data richiesta, sia per filtrare i documenti ottenuti da
una ricerca in Internet;
• una lista contenente l insieme degli indirizzi Internet di altri server del sistema.
Tale sistema rende piu facilmente accessibili, attraverso un metodo piu completo e mirato
che non quello dei motori di ricerca, le collezioni monotematiche di documenti gestite dagli
agenti Specifici e, attraverso l uso della rete neurale, offre un filtro per i documenti recuperati
dai motori di ricerca. Per mezzo del sistema EDGES un utente che ha particolari necessita di
ricerca puo comporre una richiesta di informazioni sia con l uso di parole chiave, sia usando
un sunto o una descrizione libera delle informazioni richieste. La ricerca e condotta dagli
agenti del sistema in maniera autonoma e all utente sono mostrati i risultati ottenuti; inoltre
l utente puo arricchire le collezioni di documenti gestite direttamente dal sistema e
aggiungere note personali.
Il sistema quindi tenta di riunire i due approcci di ricerca nel Web descritti in precedenza:
soddisfare le esigenze specifiche di un insieme di utenti attraverso la costruzione di collezioni
monotematiche di documenti e nel frattempo filtrare le informazioni provenienti dal Web in
modo da non sovraccaricare l utente.
Ogni utente del sistema ha un proprio agente Master che e attivato attraverso una richiesta di
informazioni. Ricevuta tale richiesta l agente Master crea un agente mobile, l agente
Cercatore, il cui compito e di cercare le informazioni negli altri server del sistema. L agente
Cercatore incapsula la richiesta dell utente e si clona in modo da raggiungere tutti i server del
sistema contenuti nella lista locale. Quando un agente Cercatore raggiunge un server EDGES
sottopone ad ogni agente Specifico del contesto la richiesta di informazioni, ed attende
risposta. Ogni agente Specifico elabora tale richiesta e risponde indicando quante parole
(significative) conosce. L agente Cercatore raccogliera tutte le risposte e sceglier un solo
agente Specifico del contesto in cui si trova, quello che riconosce piu termini fra quelli che
compongono la richiesta dell utente, in quanto presume che sia l agente che la puo soddisfare
meglio. Scelto l agente Specifico l agente Cercatore richiedera i documenti relativi alla
richiesta e ne recapitera gli URL all agente Master che li presentera all utente in una
opportuna interfaccia. Se l utente lo ritiene opportuno e possibile estendere la ricerca in
Internet usando i motori di ricerca AltaVista e Profusion, visti dal sistema come particolari
agenti che gestiscono un database di documenti molto esteso. I documenti ottenuti dai motori
di ricerca sono divisi dall agente Master a tutti gli agenti Specifici scelti per il filtraggio
durante la ricerca precedente; i documenti filtrati sono restituiti all agente Master che li
visualizza all’utente; questi ha la possibilit di conservare quelli ritenuti rilevanti segnalandoli
al proprio agente Master. Dopo il salvataggio sara aggiornato il profilo utente, e sara inviato
ai vari server un agente mobile che controllera il profilo degli altri utenti e decidera se
inviare una mail per informarli che sono state aggiunti nuovi documenti.
La tesi Ł divisa in due parti: nella prima, dopo avere introdotto gli agenti intelligenti, si
accenna al problema del recupero e del filtraggio delle informazioni e alle possibili
applicazioni delle reti neurali, nella seconda si descrive in dettaglio il funzionamento del
sistema EDGES.
La prima parte si articola in quattro capitoli: nel capitolo 1, dopo avere fornito una
panoramica delle propriet che dovrebbe possedere un software per poter essere definito
agente, si riporta una possibile definizione di agente e si descrivono le caratteristiche che
dovrebbe avere un linguaggio di comunicazioni tra agenti, infine si accenna alle aglets di
Java. Il capitolo 2 illustra le tecniche piø usate per il salvataggio, recupero, filtraggio ed
indicizzazione delle informazioni. Il problema del recupero delle informazioni in Internet e
oggetto del capitolo 3, mentre nel capitolo 4, dopo avere introdotto le tre tecniche principali di
soft computing (logica fuzzy, algoritmi genetici e reti neurali) si descrivono le applicazioni
della rete neurale Self-Organizing Feature Map per l organizzazione delle informazioni in
Internet.
Come gia detto nei capitoli della seconda parte si descrivono le varie parti del sistema, in
particolare del capitolo 5 e riportata la architettura del sistema e una introduzione alle aglets
di Java, e nei seguenti la descrizione degli agenti del sistema: nel capitolo 6 si descrive
l agente Master, nel capitolo 7 l agente Specifico e nel capitolo 8 l agente Cercatore.
Capitolo 1
Gli agenti software
1.1. Introduzione al concetto di agente.
Il concetto di agente software si Ł particolarmente diffuso nell ultimo decennio
senza avere per ancora una definizione formale; piuttosto ci si trova di fronte ad
alcune definizioni operative che individuano un insieme di propriet e capacit che
un sistema computazionale deve possedere per essere definito un agente. Si parla in
generale di sistema computazionale in quanto Ł possibile avere sia agenti software
sia hardware, a secondo dell ambiente in cui si trovano ad interagire. Le definizioni
di agente presenti in letteratura mettono l accento sulle caratteristiche di autonomia e
possiamo classificarle secondo due nozioni: forte e debole.
• L agente, secondo la nozione forte, Ł visto come un entit antropomorfa; gli
agenti possono essere caratterizzati definendo il loro stato interno in termini delle
verit che esso crede valere nel mondo e delle sue intenzioni [Olio97].
• Dal punto di vista della nozione debole, l agente Ł invece visto come un entit
caratterizzata da:
1. uno stato interno;
2. un insieme di possibili comportamenti;
Capitolo 1 Gli agenti software
2
3. una capacit di produrre modifiche nell ambiente in cui si trova (che pu
essere anche un ambiente virtuale);
4. una sensibilit alle modifiche di tale ambiente.
Nel seguito quando si parler di agenti ci si riferir esclusivamente ad agenti
software. Tali agenti possono essere realizzati usando qualunque linguaggio di
programmazione anche se i piø usati sono: Tcl/Tk, Lisp, Telescript, Java, [MLF96]
che offrono il vantaggio di un maggiore livello di astrazione che diviene un fattore
fondamentale nello sviluppo di agenti.
1.1.1. Definizione di agente
Le definizioni di agenti fanno spesso riferimento ad una serie di propriet di cui
spesso non Ł facile dotarli
Tali propriet sono [RSAID97]:
• Autonomia: capacit di operare autonomamente senza l intervento di utenti o di
altri agenti esterni;
• Capacit di comunicare: capacit di comunicare con il mondo esterno,
interagire con un utente, o con altri agenti;
• Reattivit : capacit di rispondere agli stimoli esterni in modo da adattare la
propria attivit ai cambiamenti che avvengono nell ambiente;
• Persistenza: capacit di permanere nel tempo, ci significa che la durata di vita
dell agente Ł superiore alla durata dei compiti di base che esso esegue. Un agente
continua ad esistere con uno stato interno, in modo da poter eseguire interazioni
successive, ma non Ł detto che la caratteristica di persistenza possa essere
mantenuta indefinitamente. Tipicamente un agente sar , infatti, modellato
definendo (eventualmente in modo alternativo):
1. un compito durante il quale pu compiere diverse interazioni, finite le quali,
esso termina;
2. delle risorse interne che possono essere riprodotte o consumate e quindi
terminare per esaurimento di queste ultime;
Capitolo 1 Gli agenti software
3
• Vitalit : Ł la capacit di sopravvivenza di un agente, nel senso che l agente ha la
capacit di risolvere situazioni anomale che lo porterebbero, altrimenti, in uno
stato di instabilit che comprometterebbe la sua persistenza;
• Mobilit : l’agente ha la capacit di variare i partner di comunicazione e di
spostarsi in ambienti diversi da quello di partenza;
• Abilit Sociale: Ø la capacit di comunicare e di suddividere i compiti fra vari
agenti.
• Proattivit : capacit di generare eventi nell ambiente circostante, iniziare delle
interazioni con altri agenti, coordinare le attivit di differenti agenti stimolandoli
a produrre certe risposte;
• Veridicit : un agente non deve comunicare false informazioni;
• Benevolenza: un agente fa sempre ci che gli si comanda.
Si possono identificare, combinando alcuni di questi attributi, diversi tipi di
agenti, come definiti in [LAIA95]:
• Autonomus Agents: agenti che hanno capacit di percepire e adeguare il loro
comportamento in base ai cambiamenti dell ambiente in cui si trovano ed in
modo da soddisfare i loro obiettivi. Lavorano in parallelo con l utente, ed hanno
la capacit di rimanere attivi anche dopo il raggiungimento del loro obiettivo
principale, al fine di svolgere attivit secondarie come quello di osservare ed
imparare dall utente.
• Entertainment Agents: agenti con la capacit di essere interattivi e di simulare
mondi a scopi di intrattenimento;
• Information Agents: agenti che hanno accesso a diverse fonti di informazione.
Sono in grado di controllare e manipolare le informazioni raccolte per rispondere
alle domande interattive dell utente;
• Intelligent Agents: agenti che eseguono una serie di operazioni per soddisfare sia
le richieste da parte di un utente sia le richieste da parte di un altro agente;
• Interface Agents: agenti che provvedono a dare assistenza a utenti, mentre
interagiscono con altri strumenti computazionali. L interface agent Ł attivato
Capitolo 1 Gli agenti software
4
dall utente al fine di coadiuvarlo nel raggiungimento dei suoi obiettivi. Esempi di
sistemi che utilizzano l interface agent sono sistemi di tutoring Intelligenti, dove
l agente osserva l utente senza intraprendere alcuna azione autonomamente. Su
esplicita richiesta, da parte dell utente, fornisce dei suggerimenti sul modo
migliore di risolvere il problema.
• Autonomous Interface Agents: agenti che possono operare in parallelo con
l utente, visualizzando i risultati parziali ed accettando l intervento umano per
modificare il proprio operato, rimanendo attivi per svolgere operazioni non di
interesse dell utente.
Scorrendo la lista di caratteristiche riportata ed i diversi tipi di agenti possibili si
intuisce come sia difficile ricavare una unica definizione soddisfacente. In ogni
modo tutti sono d accordo nell affermare che c Ł differenza tra i tradizionali
Software e un Software Agent. Infatti un Software Agent deve essere autonomo,
indipendente, si deve adattare all ambiente su cui opera, deve saper comunicare con
altri agenti ed utenti, deve essere personalizzabile e cos via.
Pattie Maes definisce un Agente come una Alter-Ego elettronico di un utente che
deve svolgere i compiti assegnategli, all interno della rete o del computer e
visualizzare i risultati, tutto ci in completa autonomia [PM97].
Forse una delle definizioni che rendono meglio il concetto di agente, Ł quella
esposta da James Alty [JLA97]: un sistema basato sulla conoscenza piø la capacit
di negoziazione , dove per negoziazione si intende la capacit di un agente di
richiedere ed ottenere, un servizio da un altro agente. La capacit di comunicazione,
avviene sulla base di un prefissato vocabolario , che permette di capirsi senza dare
luogo ad equivoci. Questa semplice definizione implica che un Agente deve essere
autonomo nelle scelte basandosi solo sulle proprie conoscenze, scegliendo nel modo
migliore, il partner con cui comunicare, variare a suo vantaggio l ambiente su cui
opera e possibilmente anche le proprie conoscenze.
Capitolo 1 Gli agenti software
5
Esistono varie possibili architetture, alcune di esse sono [JLA97]:
• Sistemi Basati sulla Conoscenza. (Knowledge Based System, KBS). Un agente
realizzato usando questo tipo di approccio deve avere almeno tre componenti:
1. Un modello simbolico dell ambiente in cui operare;
2. Un elenco simbolico delle azioni possibili;
3. Un Algoritmo di pianificazione che prenda in ingresso la rappresentazione
dell ambiente, la rappresentazione dell obiettivo e la lista delle azioni
possibili e produca in uscita una sequenza di azioni che l agente possa
eseguire per arrivare al risultato.
Un agente quindi estrae un obiettivo, crea una lista di azioni da seguire, le esegue
e raggiunge l obiettivo.
• Architetture reattive. Il principio ispiratore di queste architetture Ł quello che
spesso non Ł necessaria una complessa forma di ragionamento (come quella
supportata nei modelli KBS) per ottenere comportamenti che sembrano
intelligenti risposte agli stimoli esterni. Inoltre spesso molti esseri viventi hanno
una immediata reazione agli input ambientali che non pu essere frutto di un
ragionamento ad alto livello ma di quella che si chiama una reazione
istintiva . Gli agenti basati su questa architettura sono generalmente costituiti da
una serie di strati in cui lo strato piø basso realizza un mapping diretto fra sensori
ed attuatori e gestisce la risposta immediata ad un input di emergenza . Gli strati
superiori definiscono i comportamenti piø astratti ed entrano in gioco se non sono
necessarie risposte istantanee all input dall esterno.
• Architetture ibride. Alcuni ricercatori pensano che la direzione giusta sia quella
dell integrazione dei due approcci sopra elencate. La piø conosciuta architettura
ibrida Ł dovuta a Georgeff ed Ł chiamata Procedural Reasoning System (PRS),
tale architettura Ł un esempio di paradigma chiamato Belief-Desire-Intention
(BDI).
1.1.2. Metodologie di addestramento.