Vývojové nástroje pro multiagentové systémy



Podobné dokumenty
Matematika v programovacích

Agentově orientované modelování a simulace

Dominik Vymětal. Informační technologie pro praxi 2009, Ostrava

GRR. získávání znalostí v geografických datech Autoři. Knowledge Discovery Group Faculty of Informatics Masaryk Univerzity Brno, Czech Republic

Jaký programovací jazyk učit jako první a jak ho učit?

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Moderní systémy pro získávání znalostí z informací a dat

Myšlenkové mapy v Linuxu

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

VY_32_INOVACE_INF.19. Inkscape, GIMP, Blender

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Datová věda (Data Science) akademický navazující magisterský program

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Řízení reálných projektů, agilní metodiky

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Simluátor Trilobota. (projekt do předmětu ROB)

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Seznámení s prostředím dot.net Framework

Olga Rudikova 2. ročník APIN

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

Nové jazykové brány do Caché. Daniel Kutáč

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Obsah. Zpracoval:

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Počítačové řešení elektrických obvodů

Úvod do problematiky vývoje Vývoj informačních systémů

úvod Historie operačních systémů


Programování a algoritmizace: úvod

Úvod do programovacího jazyka Python

Václav Matoušek KIV. Umělá inteligence a rozpoznávání. Václav Matoušek / KIV

Počítačová simulace logistických procesů II 12. přednáška - Rozhraní (Process Designer, MALAGA, TriCAD)

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Servisně orientovaná architektura Základ budování NGII

7 Jazyk UML (Unified Modeling Language)

Funkce logování v NetLogu umožňuje záznam činnosti žáků pro další analýzu.

7 Jazyk UML (Unified Modeling Language)

PŘÍLOHA C Požadavky na Dokumentaci

Microsoft Office 2003 Souhrnný technický dokument white paper

Instalace a konfigurace web serveru. WA1 Martin Klíma

Možnosti využití dat RÚIAN poskytovaných VDP pomocí webových služeb

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Embedded vývoj v Clutteru a Mx

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Platforma ArcGIS. Platforma ArcGIS se skládá ze čtyř komponent: dat, zdrojů, portálu a aplikací.

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Tvorba 3D výukových aplikací pomocí technologie

SOFTWAROVÉ INŽENÝRSTVÍ 1

TÉMATICKÝ OKRUH Softwarové inženýrství

Návrh softwarových systémů - architektura softwarových systémů

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Institut teoretické informatiky (ITI) na FI MU

Úvod do programovacího jazyka Python

Znalostní systém nad ontologií ve formátu Topic Maps

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

CASE. Jaroslav Žáček

Profilová část maturitní zkoušky 2017/2018

Karel Bittner HUMUSOFT s.r.o. HUMUSOFT s.r.o.

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

CASE nástroje. Jaroslav Žáček

Modelování procesů s využitím MS Visio.

Rozšíření infrastruktury projektu Pikater Specifikace softwarového projektu

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Prostředí pro výuku vývoje PCI ovladačů do operačního systému GNU/Linux

Specifikace projektu Ocerus

Objektově orientované databáze. Miroslav Beneš

Využití systému Dynamips a jeho nástaveb pro experimenty se síťovými technologiemi Petr Grygárek

Integrací aplikací proti blackoutům

Procesy a vlákna (Processes and Threads)

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

Analýza a Návrh. Analýza

Programovací jazyky Přehled a vývoj

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Mobile application developent

Základní informace. Operační systém (OS)

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

E-learningovýsystém Moodle

GNU/LINUX SILNÉ A SLABÉ STRÁNKY

IB111 Programování a algoritmizace. Programovací jazyky

Nástroje pro vývoj software

NetLogo Uživatelská příručka

Testovací protokol USB Token Cryptomate

FOSS4G úspěšné projekty

Simulace a návrh vyvíjejících Nadpis se 1. Nadpis 3. Božetěchova 2, Brno

Ing. Jan Buriánek. Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jan Buriánek, 2010

FORTANNS. 22. února 2010

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Umělá inteligence a rozpoznávání

Diplomová práce Prostředí pro programování pohybu manipulátorů

Formy komunikace s knihovnami

POČÍTAČOVÁ SIMULACE PODNIKOVÝCH PROCESŮ. Ing. V. Glombíková, PhD.

Load Balancer. RNDr. Václav Petříček. Lukáš Hlůže Václav Nidrle Přemysl Volf Stanislav Živný

Common Object Request Broker Architecture

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

Transkript:

Vývojové nástroje pro multiagentové systémy Znalostní technologie III materiál pro podporu studia

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

Ú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 nebo s modelem přímo a také s operačním systémem; GUI: grafické uživatelské prostředí; model: námi vytvořený model. 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. Obrázek 2: Architektura Swarm 3

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

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

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

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 Výhody Kolik má modelových příkladů Nevýhody Čas potřebný pro tvorbu modelu v případě, že jsem programátorský zelenáč Podpora akademickou komunitou Aktivní údržba softwaru Další vlastnosti Webové stránky NetLogo RePast Swarm Northwestern University CCL (Center for Connected Learning and Computer-Based Modeling) Velmi lehká tvorba modelů a jejich spouštění Repast Organization for Architecture and Development (původně University of Chicago Social Science Research Computing) Využíváno mnoha uživateli, dobrá podpora od RePast komunit Swarm Development Group (původně Santa Fe Institute) Předchůdce RePastu a o trochu rozšířenější než NetLogo Hodně Hodně Jen málo z nich je dostupných Nejvhodnější pro jednoduché modely Doporučována znalost programovacího jazyka (např. Java) Velmi obtížná instalace a spouštění pod Windows Několik hodin Několik dní Několik týdnů Vysoká Vysoká Nízká Vysoká Vysoká Nízká Možná 3D vizualizace modelů; modely mohou být součástí webových stránek (applety) http://ccl.northwestern.edu/net logo/ GIS implementace Velmi obtížná instalace http://repast.sourceforge.net/ http://www.swarm.org/ 7

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

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

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

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

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 SeSAm na webu: Oficiální stránky: http://www.simsesam.de/ Obrázek 10: SeSAm 12

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