Software Agents

Gli agenti software, sono sistemi computazionali che risiedono in ambienti dinamici complessi, percepiscono dall’ambiente tramite sensori e agiscono sull’ambiente tramite effettori. Per far questo gli agenti realizzano un insieme di obiettivi (definiti comunemente task) per i quali essi sono stati progettati.  Dunque un agente software è caratterizzato da un certo livello di autonomia che gli permette di interfacciarsi con altri sistemi e di assumere “comportamenti” (behaviour) mutuati dall’agire di un “agente umano” con l’obiettivo di lavorare al servizio di determinati applicazioni o utenti  per perseguire determinati scopi.

Caratteristiche principali di un agente software (riportate anche in figura) sono:

§  autonomia: capacità di operare in maniera indipendente senza richiedere l’intervento costante del programmatore o dell’utente;

§  socialità: possibilità di interagire in maniera diretta o indiretta con gli altri agenti (hardware o software che siano)

§  reattività: percezione dinamica dell’ambiente in cui l’agente opera per poter reagire in tempi adatti ai cambiamenti che si verificano

§   proattività: perseguimento di obiettivi che ancora non hanno avuto una diretta causa scatenante ma che si suppone possano dover essere raggiunti nell’immediato

§   mobilità: migrazione fra nodi computazionali diversi

§   razionalità: capacità di eseguire operazioni  in maniera autonoma senza che alcuna di esse sia di ostacolo alle altre

Per le loro stesse caratteristiche, gli agenti operano in sistemi organizzati, definiti MAS (Multi-Agent Systems), che possono modellare sistemi sensibilmente complessi..

SA_ITA

Il gruppo EML2 utilizza gli agenti software come valido strumento di elaborazione software in ambito EM: essi infatti permettono di sfruttare il loro parallelismo per eseguire elaborazioni molto articolate.  Si pensi ad esempio a problemi computazionalmente complessi e onerosi come quelli della pianificazione ottima di reti wireless: i vari task individuabili nella soluzione di tali problemi possono essere suddivisi in maniera opportuna fra vari agenti software, ciascuno dotato di caratteristiche specifiche per ridurre i tempi di calcolo e sfruttare al meglio risorse computazionali distribuite (ad esempio griglie computazionali).  Notevoli sono stati i risultati ottenuti dal gruppo EML2grazie all’utilizzo di agenti software che inglobano codici EM preesistenti realizzati  nel tempo dal nostro gruppo in linguaggi eterogenei (ma specifici e funzionali al particolare problema trattato): non solo sono state riscontrate sensibili riduzioni dei tempi di elaborazione ma anche incrementi  delle prestazioni generali di tali codici.

Il gruppo EML2  impiega le sue conoscenze relative agli agenti software nell’ambito delle attività di ricerca e sviluppo dei progetti Genetic Agents e UbiCARE