Download Free Audio of Si presentino gli agenti e i sistemi multiagente, ... - Woord

Read Aloud the Text Content

This audio was created by Woord's Text to Speech service by content creators from all around the world.


Text Content or SSML code:

Si presentino gli agenti e i sistemi multiagente, e come netlogo ne utilizzi i paradigmi. Un agente è definito come un’unità di elaborazione che può essere (o meno) in grado di percepire e interagire con il mondo che la circonda, e possiede una certa autonomia nello svolgere delle azioni, le quali sono almeno in parte legate all’esperienza personale dell’agente. L’agente possiede un set di regole e delle variabili interne (lo stato dell’agente) che possono sia essere costanti sia variare durante la sua vita. Un’agente può quindi muoversi e interagire con l’ambiente, interagire con altri agenti, possedere delle tendenze, avere un obiettivo ed elaborare strategie per portarlo a termine, offrire servizi e riprodursi. Quando si parla di agente, lo si può fare in due modi: il paradigma debole illustra la sua autonomia decisionale, la sua reattività (reagisce a stimoli esterni), la sua proattività (prende l’iniziativa per portare a termine il suo compito) e le sue abilità sociali (comunicazione con altri agenti), mentre il paradigma forte attribuisce all’agente caratteristiche umane. Di un agente è inoltre possibile valutare caratteristiche come la benevolenza (l’agente compie azioni corrette dal punto di vista “etico”) e la razionalità (le azioni dell’agente sono concordi con il suo obiettivo). Esistono numerosi modi per classificare gli agenti: per come prendono decisioni, per la natura dell’obiettivo e infine per come percepiscono il mondo che li circonda. In base al loro processo decisionale, gli agenti vengono divisi in: ● Logici: agenti il cui processo decisionale è affidato ad una serie di elaborazioni di tipo logico ● Reattivi: l’azione successiva è generalmente stabilita da un evento che accade (ad esempio, agente reattivo è il roomba, perché ha una logica del tipo: ho sbattuto contro a un muro, come reagisco? Mi giro un po’ e continuo a pulire) ● BDI: gli agenti BDI prendono decisioni sulla base di strutture dati che sono in essi contenuti, che rappresentano il Belief, il Desire e l’Intention ● Layered: gli agenti layered sono costruiti a strati, con ciascuno strato che percepisce in modo diverso il mondo e che reagisce quindi in modi differenti In base alla natura dell’obiettivo, l’agente si dice riflessivo se questo riflette lo stato interno dell’agente (ad esempio, se l’agente deve spostare l’oggetto A, ma ha fame, l’obiettivo diventa il trovare cibo) mentre si dice teleonomico se ha un obiettivo esplicito. In base al modo in cui l’agente percepisce e rappresenta il mondo, si dice che l’agente è cognitivo se ha una rappresentazione esplicita del mondo (e questo gli consente di elaborare strategie), mentre si dice reattivo se ha una rappresentazione subsimbolica del mondo (ad esempio mediante regole). Inserendo nello stesso ambiente più agenti, si crea un sistema multi-agente, all’interno del quale gli agenti possono interagire tra di loro, più o meno direttamente. Le ragioni per le quali vengono usati sistemi del genere sono molteplici: può, ad esempio, essere un modo per incrementare le performance di un software attraverso parallelismo (ad esempio, se un agente da solo legge 10 righe al secondo, mettendone di più in parallelo il numero di linee lette al secondo aumenta), dal momento che un agente è limitato (può nel suo arco vitale fare solo un numero limitato di operazioni), oppure può essere l’unico modo per approcciare sistemi che sono intrinsecamente distribuiti. In generale, per maneggiare sistemi complessi, si rivela molto più facile pensare in termini di collettività piuttosto che singoli individui, in quanto allo stesso modo è impostata la natura umana (un singolo umano, come un agente, è limitato). Gli impieghi di sistemi multi-agente sono variegati, anche se l’applicazione più interessante è in ambito simulativo: è possibile, creando agenti sufficientemente vicini al corrispettivo reale, simulare interi sistemi naturali, e valutarne l’evoluzione e studiarne le caratteristiche significative. Questa applicazione rappresenta una valida alternativa alle simulazioni di tipo analitico. Nel nostro percorso di studio, per interagire con gli agenti, abbiamo impiegato il software NetLogo. NetLogo fornisce all’utente un valido supporto grafico che permette di collocare, mediante un dialetto del CommonLisp, in un mondo virtuale agenti, e di gestirne il comportamento. NetLogo gestisce 4 tipologie di agenti, ciascuna con un uso specifico: ● Turtle: i turtle sono gli agenti che si muovono all’interno del mondo, e che possono ad esempio rappresentare delle formiche, o delle termiti. ● Patches: il tassellamento del mondo (che di default ha topologia toroidale, ma può anche essere configurato diversamente) di netlogo è composto da questi agenti, che costituiscono l’ambiente percepito dai turtle. Ogni patch è identificata da una coppia di coordinate. ● Link: un link è un collegamento tra più agenti. ● Observer: l’utente, l’osservatore del mondo. NetLogo permette di creare dei “breed” personalizzati degli agenti Turtle e Patches, ed è possibile fornir loro delle variabili private. Con netlogo, usando poco codice, è possibile ricreare complessi sistemi naturali simulati, in particolare provvisti di swarm intelligence. Si presentino i sistemi multiagente, in particolare presentando i meccanismi peculiari della swarm intelligence. Un sistema multi agente è composto da un insieme di agenti che interagiscono tra di loro e con l’ambiente in cui si trovano. Un agente è un'entità caratterizzata dal fatto di essere almeno parzialmente autonoma nel cercare di raggiungere il suo scopo. Nei sistemi multiagente, è possibile osservare l’emergere della “swarm intelligence”, traducibile come “intelligenza di sciame”. Le caratteristiche della swarm intelligence sono generalmente che: ● ogni individuo che compone lo sciame di agenti è tipicamente poco sofisticato e ha capacità limitate ● ogni individuo del sistema non conosce lo stato globale del sistema; ● non è presente un coordinatore / leader. Gli agenti possono comunicare tra di loro in modo diretto oppure attraverso la stigmergia. La stigmergia è una forma di comunicazione indiretta che avviene alterando lo stato dell’ambiente in modo tale da influenzare il comportamento degli altri individui, poichè l’ambiente stesso è uno stimolo per gli altri individui. Nel nostro percorso abbiamo esaminato vari esempi di sistemi multi agente. Il sistema delle termiti, dove è presente un ambiente con una certa densità di cibo, e una moltitudine di agenti “termiti” che devono accumulare il cibo in gruppetti (invece che mantenerlo sparso come nella situazione iniziale). In questo sistema non emerge una swarm intelligence, il compito di raggruppare il cibo è svolto con successo anche se introduciamo una sola termite solitaria nel sistema. Una altra osservazione che ci suggerisce che non c'è una swarm intelligence è che se raddoppio il numero di termiti (esempio da 50 a 100) il tempo impiegato per raggiungere un certo stato in media dimezza. Con una vera swarm intelligence di solito il beneficio di raddoppiare gli agenti dovrebbe essere maggiore del raddoppiamento della performance. Un sistema in cui invece abbiamo osservato l’emergere della swarm intelligence è quello delle formiche che devono portare il cibo da dei cumuli al proprio nido, locato al centro dell’ambiente. L’ambiente in questo modello ha un ruolo attivo fondamentale: deve diffondere e fare evaporare le tracce che gli agenti ( le formiche ) possono lasciarvi sopra. In questo sistema, se mettiamo una sola formica osserviamo che non è in grado di portare a termine il compito in maniera efficiente. Aggiungendo un numero significativo di formiche il compito viene portato a termine molto più velocemente. Altri esempi di swarm intelligence che abbiamo visto sono: gli stormi di storni, i banchi di sardine, le lucciole.