Nástroje pro MAS

Transkript

Nástroje pro MAS
Martina Husáková
Vývojové nástroje pro
multiagentové systémy
Znalostní technologie III
materiál pro podporu studia
Martina Husáková
OBSAH
Úvod........................................................................................................................................... 3
Swarm........................................................................................................................................ 3
NetLogo ..................................................................................................................................... 5
Repast ........................................................................................................................................ 6
Porovnání prostředí Swarm, NetLogo a RePast ................................................................... 7
Mason ........................................................................................................................................ 8
Breve .......................................................................................................................................... 9
Ascape...................................................................................................................................... 10
Jade.......................................................................................................................................... 11
SeSAm ..................................................................................................................................... 12
Další vývojová prostředí ........................................................................................................ 13
Zdroje ...................................................................................................................................... 13
2
Martina Husáková
Úvod
Cílem tohoto materiálu je stručně představit několik nástrojů a prostředí pro modelování a
simulace multiagentových systémů, které se dnes používají nejčastěji a které tedy stojí za
povšimnutí. Jak uvidíte sami, prostředí NetLogo není samotářem na poli multiagentových
prostředí ☺.
K nejpoužívanějším nástrojům pro tvorbu multiagentových systémů můžeme zařadit:
• Swarm (vytvořeno: 1996);
• NetLogo (vytvořeno: 1999);
• Repast (vytvořeno: 2000);
• Mason (vytvořeno: 2003).
Swarm
Jedná se o jednu z nejznámějších multiagentových platforem
(soubor knihoven) pro vývoj umělých světů na bázi distribuované
umělé inteligence. Swarm má dlouhou tradici a stal se inspirací i
pro jiná vývojová prostředí, např. RePast a Ascape. Byl vyvinut
v Santa Fe institutu v Novém Mexiku panem Ch. Langtonem v roce
1994 s cílem poskytnout základní architekturu pro řešení
problémů, které se vyskytují v mnoha vědních disciplínách, např.
fyzice, biologii, archeologii a ekonomii. Počítačové simulace jsou
Obrázek 1: Swarm logo
základním nástrojem pro studium globálního a adaptivního
chování, které se objevuje v komplexních systémech, které se právě snažíme blíže poznat.
Cílem vytvoření Swarmu bylo ulehčit práci výzkumníkům, kteří chtějí stavět umělé světy.
Dále poskytnout standardizovaný nástroj pro konfiguraci, spouštění a analýzu výsledků
simulací. Jádrem Swarmu je framework postavený na bázi objektově orientovaného
přístupu, který slouží pro definici chování agentů a dalších objektů, které mezi sebou
interagují během simulace.
Architektura Swarmu je tvořena následujícími prvky:
• jádro: komunikace s grafickým prostředím
s modelem přímo a také s operačním systémem;
• GUI: grafické uživatelské prostředí;
• model: námi vytvořený model.
nebo
Základní jednotkou simulace je tzv. Swarm (roj). Jedná se o
seskupení agentů, kteří provádějí určitou činnost. Taková
jednotka je schopná si stavět svůj vlastní svět. Swarm je
vlastně objekt, který disponuje určitou pamětí a plánovačem
událostí. Objekty Swarmu jsou hierarchicky organizovány do
podoby podtříd (dílčích skupin, rojů). Každý Swarm je
zodpovědný za řízení své paměti a zpracovávání zdrojů, které
jeho objekty požadují pro svou činnost.
3
Obrázek 2: Architektura
Swarm
Martina Husáková
Swarm obsahuje tři typy objektů:
• model (tvorba a kontrola aktivit agenta v modelu);
• pozorovatel (sbírá informace od agentů);
• agent (disponují akcemi a vlastnostmi).
Swarm poskytuje knihovny znovupoužitelných komponent pro stavbu modelů. Dále pak
nástroje pro analýzu, zobrazování a kontrolu experimentů v těchto modelech. Pro práci
v tomto prostředí je vhodné znát jazyk Java (plus principy OOP). Jeho nevýhodou je
poměrně složitá instalace.
Swarm na webu:
Hlavní stránka: http://www.swarm.org/wiki/Main_Page
Základní informace o Swarmu: http://www.swarm.org/archive/oopsla94.html
4
Martina Husáková
NetLogo
NetLogo je multiagentové modelovací prostředí, které vzniklo roku 1999 a jehož autorem je
Uri Wilensky. Uvádím zde jen ty nejzákladnější informace o prostředí, protože detailní
pohled na prostředí bude uvedeno v jiném studijním materiálu.
Základní pohled na prostředí:
• jednoduchý na instalaci;
• nevyžadují se žádné speciální znalosti (stačí si třeba jen pomocí NetLoga zkoumat
modely v knihovně modelů (Model library) nebo přímo je spouštět na webu);
• velmi slušná, podrobná a rozsáhlá dokumentace
• široká paleta vzorových příkladů;
• jednoduché rozšiřování již existujících modelů pomocí záložky obsahující definované
procedury;
• vhodné prostředí do úvodu ABM (Agent Based Modelling).
Obrázek 3: NetLogo
NetLogo na webu:
Oficiální stránky: http://ccl.northwestern.edu/netlogo/
Wikipedia: http://en.wikipedia.org/wiki/NetLogo
První kroky s NetLogem: http://complexityworkshop.com/tutorial/NetLogo/index.html
5
Martina Husáková
Repast
Recursive Porus Agent Simulation Toolkit
Prostředí pro vývoj agentových simulací na bázi jazyka Java. Repast vychází z prostředí
Swarm a proto se prostředí RePast nazývá Swarm-like prostředím. Disponuje prostředím
Evolver pro tvorbu síťových simulací. Poskytuje několik velmi známých modelů jako
Sugarscape, Heagbugs, Mousetrrap a samozřejmě i Game of Life. Prostředí jinak nabízí
celkem velké množství modelů, např. z oblastí: sociální vědy, GIS, sociální sítě, a dalších.
Vývoj modelů je časově náročnější v případě, že nemáte větší znalosti programovacího
jazyka Java.
V prostředí lze využívat i genetické algoritmy a regresní analýzu. Jedná se o free a open
source produkt. Byl vyvinut D. Sallachem, N. Collierem, T. Howem, M. Northem a dalšími
na University of Chicago.
Základní vlastnosti prostředí:
• rozmanitost agentů a příkladů;
• plně objektově orientované prostředí;
• možný dynamický přístup k agentům a jejich modifikace;
• knihovna pro GA, ANN, …;
• modelovací nástroje pro sociální sítě;
• podpora GIS;
• prostředí je implementováno v Javě, C#, …;
• podpora těchto jazyků: Java, C#, Managed C++, Visual Basic.Net, Managed Lisp,
Managed Prolog, and Python scripting, … .
RePast na webu:
Wikipedia: http://en.wikipedia.org/wiki/Repast_%28modeling_toolkit%29
Základní informace: http://repast.sourceforge.net/
První kroky s RePastem: http://complexityworkshop.com/tutorial/RePast/index.html
Obrázek 4: RePast
6
Martina Husáková
Porovnání prostředí Swarm, NetLogo a RePast
•
•
•
•
•
NetLogo má jednoduché rozhraní, modely mohou být vytvářeny a spouštěny třeba
byť i jen s jedním či dvěma tlačítky, stačí třeba jen 50 řádků kódu pro model;
s použitím prostředí Repast je třeba pro základní model až 950 řádků kódu;
NetLogo je vhodné pro tvorbu jednodušších simulací a to rychlým způsobem;
RePast dovoluje vytvářet složitější modely a jako prostředí je více propracovanější;
Swarm je nejnáročnější ze všech tří – vyžaduje znalosti programování, tak jako
RePast.
Vyvíjeno kým
NetLogo
RePast
Swarm
Northwestern University
CCL (Center for Connected
Learning and Computer-Based
Modeling)
Repast Organization for
Architecture and
Development
Swarm Development
Group
(původně University of
Chicago Social Science
Research Computing)
(původně Santa Fe
Institute)
Výhody
Velmi lehká tvorba modelů a
jejich spouštění
Využíváno mnoha uživateli,
dobrá podpora od RePast
komunit
Předchůdce RePastu a
o trochu rozšířenější
než NetLogo
Kolik má
modelových
příkladů
Hodně
Hodně
Jen málo z nich je
dostupných
Nevýhody
Nejvhodnější pro jednoduché
modely
Doporučována znalost
programovacího jazyka
(např. Java)
Velmi obtížná instalace
a spouštění pod
Windows
Čas potřebný pro
tvorbu modelu
v případě, že jsem
programátorský
zelenáč
Několik hodin
Několik dní
Několik týdnů
Podpora
akademickou
komunitou
Vysoká
Vysoká
Nízká
Aktivní údržba
softwaru
Vysoká
Vysoká
Nízká
Další vlastnosti
Možná 3D vizualizace modelů;
modely mohou být součástí
webových stránek (applety)
GIS implementace
Velmi obtížná instalace
Webové stránky
http://ccl.northwestern.edu/net
logo/
http://repast.sourceforge.net/
http://www.swarm.org/
7
Martina Husáková
Mason
Mason je rychlý, jednoduše rozšiřitelný multiagentový simulační nástroj založený na
programovacím jazyce Java. Byl vyvinut s cílem poskytnout základy pro širokou škálu
multiagentových simulací od Swarm robotiky ke strojovému učení a multiagentovým
modelům v sociálních systémech (politika, historie, ekonomie, …). Nástroj klade důraz na
simulaci Swarm (simulaci roje), resp. na simulaci velkého množství agentů. Systém je opensource a free. Mason není odvozen z jiných nástrojů pro multiagentové simulace. Cílem
vývoje prostředí bylo vyvinout knihovnu modelů založenou na zkušenostech Java
programátorů, která může být lehce rozšiřována. Knihovna byla vytvořena pro výzkumníky,
kteří potřebují realizovat mnoho simulací s mnoha agenty a interakcemi. Dále také pro ty,
kteří chtějí provádět vizualizace a modifikace. Vizualizace se může, ale nemusí provádět. Je
možné ji realizovat v 2D nebo 3D podobě. Mason neposkytuje doménově specifické prvky,
jako např. fyzikální modely, vestavěné grafy, import dat z GIS systémů. To je plánováno do
budoucnosti.
Obrázek 5: Mason
Mason na webu:
Oficiální stránky: http://cs.gmu.edu/~eclab/projects/mason/
MASON: A New Multi-Agent Simulation Toolkit:
http://cs.gmu.edu/~eclab/projects/mason/publications/SwarmFest04.pdf
8
Martina Husáková
Breve
a 3d Simulation Environment for
Multi-Agent Simulations and Artificial Life
Jedná se o free a open-source vývojové prostředí, které usnadňuje
tvorbu 3D simulací multi-agentových systémů a umělého života.
Uživatelé definují chování agentů v 3D světě a sledují jejich interakci.
Breve obsahuje různé fyzikální simulace a detekce kolizí pro
realističtější simulaci. S pomocí enginu OpenGL můžete vizualizovat
Vámi vytvořený svět. Simulace v tomto prostředí se píší v jazyce Steve.
Steve je objektově orientovaný jazyk, který si bere vlastnosti
Obrázek 6: Breve logo
z jazyků jako C, Perl a Objective C. Chabé znalosti programování
nejsou v případě tohoto prostředí velkým problémem. I bez jejich pokročilých znalostí lze
modely vytvářet.
Breve dále využívá různé pluginy. Ty mohou rozšiřovat funkcionalitu námi vytvořených
aplikací. Jejich psaní není obtížné. K dispozici je Breve pro Mac OS X, Linux a Windows.
Základní vlastnosti prostředí:
• stává se velmi pomalým, když je v modelu přes 1000 agentů;
• jak Breve tak NetLogo mají svůj programovací jazyk, který se stává nepřenostitelným
a vlastně takový jazyk není až zas tak známý.
Obrázek 7: Breve – simulace roje
Breve na webu:
Oficiální stránky: http://www.spiderland.org/
9
Martina Husáková
Ascape
Framework pro vývoj a analýzu agentově orientovaných modelů vyvinutý institutem
Brookings (The Center on Social and Exonomics Dynamics). Ascape a modely jsou napsány
v Javě. Pro tvorbu modelů je vhodné mít znalosti tohoto jazyka a také něco vědět o objektově
orientovaném přístupu. Komunikace mezi agenty může být v tomto prostředí limitována.
Framework poskytuje nástroj pro generování grafů. Framework řídí grafické pohledy a
statistiky. Pro Ascape je poměrně chudá uživatelská dokumentace (v podstatě žádná). Pro
vývojáře je situace lepší. Na rozdíl od Swarmu je vývoj modelů v Ascapu jednodušší.
Obrázek 8: Ascape
Ascape na webu:
Základní informace: http://www.brook.edu/es/dynamics/models/ascape/
Základní informace:
http://www.irit.fr/COSI/training/evaluationoftools/Evaluation-Of-Ascape.htm
Tutoriál:
http://www.brook.edu/dybdocroot/es/dynamics/models/ascape/UChicago/index.htm
10
Martina Husáková
Jade
Java Agent DEvelopment Framework
Jedná se o framework plně implementovaný v Javě
určený pro vývoj agentově orientovaných aplikací. Cílem
je zjednodušit vývoj multiagentových systémů, které
vyhovují specifikacím organizace FIPA (Foundation for
Intelligent Physical Agents).
Obrázek 9: Jade logo
Jedná se o agentovou platformu založenou na Javě vyvinutou
společností Telecom Italia Lab. Je to free a open-source projekt. Podporuje RDF a XML.
S Jadem je také možné použít pravidlový systém JESS pro agentové programování.
Základní vlastnosti:
• free a open source;
• dobrá dokumentace;
• velmi dobré grafické uživatelské rozhraní;
• používá se v mnoha projektech;
• slabá mobilita agentů;
• různé komunikační protokoly.
Jade na webu:
Oficiální stránky: http://jade.tilab.com/
Defining Ontologies in a Multi Agent Scenario Using the JADE Framework:
http://www.bmf.hu/conferences/sami2006/Fabrici.pdf
Jade (Java Agent Development Framework) – prezentace:
http://www.cs.mu.oz.au/682/Week6b.pdf
11
Martina Husáková
SeSAm
Shell for Simulated Agent Systems
Jedná se o prostředí pro modelování a experimentování s agentovými simulacemi. Nástroj je
zaměřený na jednoduchou tvorbu komplexních modelů. Prostředí je založeno na vizuálním
modelování, tj. není třeba se učit programovací jazyk. Chování agenta lze vytvářet pomocí
diagramů aktivit, který je umístěn do dvoudimenzionální mapy. Na webových stránkách
prostředí jsou k dispozici nejen různé verze programu SeSAm, ale i pluginy. Za zmínku stojí
např. plugin pro import ontologie, která je vytvořená v prostředí Protégé.
SeSAm je použitelný pro simulace v mnoha doménách např.:
• logistika (koordinace, optimalizace, testování softwaru, …);
• produkce (plánování, …);
• řízení toku cestujících;
• doprava;
• zdravotnictví;
• biologie …
Obrázek 10: SeSAm
SeSAm na webu:
Oficiální stránky: http://www.simsesam.de/
12
Martina Husáková
Další vývojová prostředí
Nástrojů a prostředí pro tvorbu multiagentových systémů je opravdu mnoho, podívejte se na
některé z níže uvedených webových odkazů.
AgentLink.org:
http://eprints.agentlink.org/view/type/software.html
Přehled prostředí:
http://www.multiagent.com/Software/Tools_for_building_MASs/index.html
Přehled prostředí:
http://www.swarm.org/wiki/Tools_for_Agent-Based_Modelling
Zdroje
Agent-Based Modeling Toolkits NetLogo, RePast, and Swarm. 2005.
Přístup z internetu: URL: http://www.duncanrobertson.com/research/AMLE.pdf
State-of-the-art of software tools for agent-based simulations. 2001.
Přístup z internetu: URL: http://www.maia.ub.es/~maite/papers/State-of-the-artMAS.pdf
Další informace byly čerpány z jednotlivých stránek vývojových nástrojů, viz. jednotlivé
odkazy u uvedených prostředí.
13

Podobné dokumenty

Radek Khol a kol. – Protiraketová obrana - Shrnutí Idea

Radek Khol a kol. – Protiraketová obrana - Shrnutí Idea obraně celých regionů. Vláda prezidenta George Bushe staršího krátce před skončením funkčního období nařídila vývoj, testy a rozmístění systému Globální ochrana proti omezeným útokům (Global Protec...

Více

Marik et al.: Umela inteligence (2).

Marik et al.: Umela inteligence (2). 4 Distribuovaná umělá inteligence .............................................................................................................. 4.1 Úvod ..............................................

Více

Reaktivní multiagentní modely v ekonomii

Reaktivní multiagentní modely v ekonomii Druhá část ukazuje praktické aplikace tří multiagentních modelů v ekonomii. Všechny zde popsané modely mají výzkumný charakter - cílem bylo získat vhled do fundamentálních zákonitostí dynamiky syst...

Více

Úvod Motivační příklad komečního využití Postup uživatele

Úvod Motivační příklad komečního využití Postup uživatele dvou důvodů, protože se platí měsíční poplatky, a také je není možné nutit, aby měli počítač

Více

Semestrální práce z předmětu X36MTI na téma: Libor Bánovský

Semestrální práce z předmětu X36MTI na téma: Libor Bánovský Přitom podle internetových zdrojů náklady na distribuci 500GB dat v rámci sítě BitTorrent během jediného měsíce činily 4$. K tomuto účelu byla spuštěna služba BitTorrent DNA. Jedná se o komerční sl...

Více

Zvukové rozšíření

Zvukové rozšíření jménem původce na všech kopiích a související dokumentaci. Pro jiné využití - než jsou výše zmíněné nekomerční způsoby - celku i jednotlivých částí (a to jak v původní, nebo změněné podobě) je třeb...

Více

Průvodce rozhraním

Průvodce rozhraním Zrušení výběru: Výběr všech prvků rozhraní zrušíte tak, že kliknete myší na bílé pozadí okna panelu Interface. Výběr jednotlivého prvku zrušíte kliknutím pravým tlačítkem myši (Windows) nebo tlačít...

Více

Slovníček NetLogo

Slovníček NetLogo Vykoná první sadu příkazů. Nastane-li běhová chyba uvnitř prvních příkazů, NetLogo se nezastaví a neupozorní na tuto chybu uživatele, ale přeskočí ji a místo toho vykoná druhou sadu příkazů. V druh...

Více

Často kladené dotazy

Často kladené dotazy zatím nepodporuje celý jazyk, takže některé části uživatelského kódu jsou interpretovány. Pracujeme na rozšíření kompilátoru, aby podporoval celý jazyk. Uvědomte si však, že náš kompilátor generuje...

Více