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