Simulazioni Multimediali Realizzazione di Applicazioni Multimediali con Sistemi Multi-Agente Relatore: Stefano Cacciaguerra ([email protected]) Sommario ● Introduzione alla simulazione ● Sistemi multi-agente ● Applicazioni Multimediali: Edutainment ➢ Digital Cinema ➢ Gaming ➢ Sistemi multi-agente mobili e immersivi ➢ 1 Simulazione: introduzione Definizione: una simulazione è l'imitazione dell'evoluzione di un particolare sistema reale variabile nel tempo, attraverso l'ausilio di un altro sistema. Nel nostro caso un programma software che riproduce in forma digitale il problema reale. L'evoluzione del sistema viene studiata attraverso un modello di simulazione. Insieme di assunzioni sul funzionamento del sistema Relazioni matematiche e logiche tra le entità, parte integrante del sistema Simulazione: introduzione Scopo della simulazione: La simulazione consente di studiare... Sistemi reali Sistemi non-esistenti (strumento di analisi) (strumento di progettazione) Obiettivi: Analizzare il comportamento del sistema Analizzare l'evoluzione del sistema al variare del tempo ● Rispondere a domande del tipo: “come si comporta il sistema nel caso in cui... ?” ● ● 2 Quando non scomodare la simulazione La simulazione non è lo strumento appropriato, quando: ● Il problema può essere risolto analiticamente ● E' più semplice effettuare esperimenti direttamente sul sistema ● Il costo (della simulazione) supera il suo beneficio ● Mancano risorse o tempo ● La simulazione richiede un quantitativo di dati, non disponibili ● Non è possibile validare il modello di simulazione ● Il comportamento del sistema non è definibile Tratto da: Don't Simulate When: 10 rules for determining when simulation is not appropriate Banks, Gibson Vantaggi e svantaggi Vantaggi: Esplorazione di nuove politiche, procedure, regole decisionali, flussi di informazioni, senza influenzare il sistema reale ● Il tempo può essere compresso o dilatato ● Risposta a tutte le domande del tipo: “cosa accade se... ?” ● ●La progettazione di un modello di simulazione aumenta la conoscenza del sistema di interesse Svantaggi: La costruzione di un modello di simulazione è spesso complessa, richiede tempo e risorse ● I risultati della simulazione possono essere difficili da interpretare ● 3 Esempio (chiariamo le idee) Sistema fisico Modello di simulazione Tempo reale Simulazione Tempo simulato Simulatore: programma che riproduce il comportamento del sistema fisico al variare del tempo. Un insieme di variabili di stato (variabili del programma) rappresentano lo stato corrente del sistema simulato. Discrete-Event Simulation (DES) ● Simulazione che usa un modello del sistema a tempo discreto Modello a tempo discreto: lo stato delle variabili è definito in istanti di tempo discreti. Es. t, t+1, t+2, ... ● Le variabili di stato cambiano solo in corrispondenza ad eventi discreti Evento: cambiamento nello stato del sistema avviene al tempo simulato t (discreto) 4 Sistemi Multi-Agente Un agente è un sistema software capace di prendere decisioni ed agire autonomamente. Un sistema multi-agente è un sistema composto da un certo numero di agenti che vivono all'interno di un ambiente virtuale nel quale interagiscono, cooperano, si coordinano, negoziano, ... Perchè ci interessano? Un'architettura di questo tipo può essere utilizzata per realizzare simulazioni di sistemi complessi. Sistemi Multi-Agente Attraverso sistemi multi-agente è possibile costruire simulazioni ad eventi discreti dove: ● gli agenti rappresentano le entità ● ed i loro attributi le variabili di stato del sistema Permetteno l'esplorazione di connessioni a micro-livello dei comportamenti dei singoli agenti mentre a macro-livello riproducono i tipici pattern del sistema complesso che si vuole studiare. Il pattern di funzionamento del sistema complesso emerge dall'interazioni tra gli agenti 5 Sistemi Multi-Agente Moderni I sistemi multi-agente moderni sono impiegati nello studio di molti fenomeni da quelli naturali a quelli sociali: arte, astronomia, biologia, chimica, economia, fisica, geologia, informatica, matematica, psicologia, sociologia, ecc... Alcuni esempi di moderni sistemi multi-agente sono: Swarm (il più famoso, una serie di librerie in Objective-C) Repast (un clone di Swarm in Java) ● Jas (un altro clone di Swarm in Java) ● Netlogo (un ambiente chiuso programmabile in script LOGO, scritto in Java) ● SPADES (un sistema middleware per simulazioni multi-agenti distribuite, scritto in C++) ● ● Netlogo Un ambiente chiuso programmabile in script LOGO che permette di istanziare un numero elevato di agenti che operano in parallelo. 6 Caratteristiche di Netlogo Sistema ●Cross-platform: MacOS, Windows e Linux ●Web-enabled: Modelli possono essere salvati come applets inseribili in web pages Linguaggio Fully programmable ●Il linguaggio di script è un dialetto di Logo esteso per sopportare agenti ed il loro parallelismo ●Illimitato numero di agenti e variabili ●Un numero elevato di primitive ● ● Ambiente buttons, sliders, monitors, switches, plots, text boxes ecc... Gli Agenti di Netlogo In NetLogo, ci sono tre tipi di agenti : Turtles: agenti attivi che interagiscono tra di loro all'interno del mondo. Il mondo è uno spazio bidimensionale diviso in una griglia di patches. Patches: agenti passivi che subisco le azioni di quelli attivi. Sono le “caselle” del mondo sopra cui si muovono le turtles. Observer: è il deus ex-machina del mondo di Netlogo. 7 Architettura di Netlogo NetLogo rappresenta il mondo e gli agenti come una serie di Tuple che devono essere aggiornate ad ogni ciclo di simulazione Tool di Netlogo Export/Import functions permette di esportare importare i dati della simulazione per salvare lo stato dell'ambiente per un eventuale ripristino successivo Monitors permette di visualizzare/inserire i valori degli attributi di ogni singolo Agente BehaviorSpace permette di immagazzinare dati provenienti da diverse esecuzioni di un modello. Hubnet permette ad una classe di studenti di partecipare alla simulazione attivamente pilotando un agente connettendo computer e palmari ad un ambiente Netlogo 8 Hubnet SPADES System for Parallel Agent Descrete Event Simulation Sistema middleware per la realizzazione di simulazioni multi-agente distribuite. Linguaggio: C++ Licenza: LGPL Autore: Patrick F. Riley Caratteristiche principali: Simulatore ad Eventi-Discreti ● Modelli Multi-Agente ● Simulazioni Distribuite ● 9 Caratteristiche di SPADES ● ● ● ● Le comunicazioni di rete sono gestite interamente da SPADES La distribuzione degli agenti tra più elaboratori collegati ad una rete è completamente trasparente al progettista della simulazione Il risultato della simulazione non è influenzato da ritardi di rete o dal carico delle macchine coinvolte nella simulazione Possibilità di estrarre dal simulatore informazioni sullo stato del sistema simulato Gli agenti di SPADES Agente: entità computazionale che riceve sensazioni (sense) dal mondo simulato e decide (think) le azioni da eseguire (act). Principali caratteristiche: ● Una fase di think può essere iniziata solo al ricevimento di una sense ● Un agente non può effettuare calcoli fuori dalla fase di think ● Le fasi di due differenti cicli possono sovrapporsi, ad eccezione della fase di think A Tempo B C Sense Think D Act Sense Think Act Sense Think ... Esempio di timeline per il ciclo sense-think-act di un agente 10 Architettura del sistema CLIENT - SERVER Agent pipe Communication Server pipe Communication Server Agent tcp/ip Simulation Engine World Model Simulation Engine e World Model Simulation Engine World Model M.I. tcp/ip World Model: Descrive il comportamento dell'ambiente virtuale Avanza lo stato della simulazione ●Realizza gli eventi, modificando di conseguenza lo stato del mondo ●Genera le sensazioni da inviare agli agenti ● ● Simulation Engine: Coordina la realizzazione gli eventi Garantisce che l'ordine di realizzazione degli eventi non violi vincoli di causalità (approccio conservativo) ● ● Monitor Interface: Componente del SE che permette di estrarre informazioni sullo stato del mondo 11 Architettura del sistema CLIENT - SERVER Agent pipe Communication Server pipe Communication Server Agent tcp/ip Simulation Engine World Model Communication Server ad Agenti Agente: Processo che implementa il comportamento di una specifica entità del sistema simulato Agent pipe Communication Server tcp/ip Simulation Engine World Model Communication Server: Gestisce le comunicazioni di rete tra gli agenti ed il Simulation Engine 12 Applicazioni Multimediali con Sistemi Multi-Agente Edutainment ➢ Digital Cinema ➢ Gaming ➢ Sistemi multi-agente mobili e immersivi ➢ Educational: Netlogo (GCC, Voting, Ants) I sistemi multi-agente possono essere utilizzati a scopo didattico: computer-based learning environment permettono di introdurre studenti agli aspetti fondamentali dello studio delle loro discipline. ● ambienti virtuali permettono di condurre a quasi-experimental observation-generation test. ● 13 Educational: SPADES (Preda - Predatore) Agent Agent Agent Agent Communication Server Simulation Engine World Model Communication Server Legenda degli agenti: 0,2: preda 1,3: predatore Edutainment Applicazioni multimediali che combinano l'educational e l'entertainment 14 Digital Cinema: Massive Durante la realizzazione di Lord of the Rings, Jackson richiese una soluzione per creare e gestire folle di persone garantendo che il comportamento dei singoli individui mantenesse un certo realismo. Massive's crowd control technology mette in campo in un ambiente virtuale 3D che ospita attori digitali che permettono complesse e realistiche scene di folla. Con Massive è possibile dotare di intelligenza artificiale e di comportamenti realistici migliaia di personaggi digitali allo stesso tempo. Digital Cinema: RoboCup RoboCup è un progetto internazionale che promuove, attraverso il gioco del calcio, la robotica, l'AI ed i campi legati a queste discipline. RoboCup Soccer: ● Small-Sized Robot League ● Middle-Sized Robot League ● 4 Legged Robot League ● Humanoid League ● 3D Simulation League 15 RoboCup – 3D Simulation League “Torneo di calcio” nel quale si sfidano squadre composte da 11 agenti virtuali che utilizzano RoboCup Soccer Simulator 3D RCSS 3D SPADES Struttura (abstratta) a livelli Gaming Gli utenti possono personalizzare i loro personaggi, le proprie civiltà configurando uno o più agenti software. Inoltre, possono costruire i loro mondi virtuali utilizzando editors e linguaggi dedicati che si interfacciano a sistemi multi agenti dedicati. The Neverwinter Nights (NWN) from Bioware The Age of Mythology (AOM) from Ensemble Studios 16 Gaming: Personalizzare gli Agenti Gaming: Costruire il Mondo Virtuale 17 Immersività e Mobilità Ubiquitous computing environments si occupano di integrare mondi reali e mondi virtuali • piattaforme per real world oriented entertainment applications • fully connected mondi virtuli distribuiti Un esempio interessante è un monster-collection game chiamato “Ubiquitous Monster”. Ubiquitous Monster Mostri autonomi vivono all'interno di portable networked computer creando differenti ecosistemi. Ciascun portable computer ha a disposizione alcuni sensori hardware (rilevatore di posizione, di temperatura, di luminosità, di umidità, ecc...) che utilizza per inserire informazioni reali all'interno dell'ambiente virtuale. Utenti (che utilizzano portable computer) possono collezionare i mostri visitando differenti ambienti reali. 18 Migrare, Replicarsi e Morire La nascita e lo sviluppo dei mostri è legato dalle condizioni ambientali rilevate attraverso i sensori. Un mostro può migrare da portable computer ad un altro dove trova condizioni ambientali migliori. Ubiquitous Monster è stato realizzato utilizzando una piattaforma di rete adattiva basato su un sistema multi-agente chiamato Ja-Net. I mostri sono agenti di Ja-Net. Riferimenti Web: Multi-Agent Systems http://www.multiagent.com Netlogo http://ccl.northwestern.edu/netlogo SPADES http://spades-sim.sourceforge.net Marco Pracucci (lucidi e documenti) http://www3.csr.unibo.it/~pracucci Stefano Cacciaguerra (lucidi e documenti) http://www.cs.unibo.it/~scacciag 19 Riferimenti Libri: Discrete-Event System Simulation Jerry Banks, John Carson, Barry Nelson, David Nicol Prentice Hall Parallel and Distributed Simulation Systems Richard M. Fujimoto Wiley Series An Introduction to MultiAgent Systems Micheal Wooldridge Wiley Series Artificial Life Lab Rudy Rucker Waite Group Press 20