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