NetLogo

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

NetLogo je multiplatformní prostředí určené pro multiagentní modelování komplexních systémů. Zároveň se jedná o jazyk pro programování těchto simulací, založený na programovacích jazycích StarLogo a Logo.

Vlastnosti

NetLogo má prostředí navržené pro zkoumání emergentních jevů, tvorbu simulací a jejich vizualizaci s využitím připravených grafických prvků. Ovládání je možné pomocí vkládání přepínačů, posuvníků, nabídek, různých vstupů a jiných prvků rozhraní. +more Prostředí obsahuje nástroje pro import a export datových formátů využívaných v aplikacích geografických informačních systémů. Součástí NetLoga je i nástroj HubNet umožňující propojení více uživatelů, kteří se tak mohou společně podílet na simulacích v rolích jednotlivých agentů.

Název NetLogo odkazuje slovem net (česky síť) na povahu jevů, pro jejichž zkoumání NetLogo slouží - decentralizované, vzájemně propojené prvky a systémy. Druhá část názvu je odkazem na programovací jazyk Logo, jehož dialektem NetLogo je. +more Logo se řadí k dětským jazykům, jako je např. robot Karel či Baltík. Tím pádem i NetLogo je přístupné uživatelům bez pokročilých znalostí programování, cílí především na výuku ve školách, vědce a jiné odborníky.

Daní za použití jazyka NetLogo je však absence objektových vlastností a rovněž nedostatečná výkonnost při složitějších simulacích, proto se nehodí pro řešení složitých úloh. Ty je vhodnější řešit v některém z robustnějších prostředí, jako je např. +more Jade. NetLogo coby vývojové prostředí zaostává i v jiných ohledech, při editaci kódu nepotěší absence našeptávání či opravy syntaktických a sémantických chyb v reálném čase. Objevují se také problémy s kompatibilitou při přenášení hotových modelů mezi různými verzemi NetLoga.

Znázornění simulace v grafickém rozhraní

Oblast použití

NetLogo je vhodné pro modelování komplexních systémů, které se vyvíjejí v čase. Vývoj systému přitom vyplývá z chování mnoha samostatných agentů, určeného souborem pravidel, která mohou zahrnovat interakci s jinými agenty a s prostředím. +more Díky tomu lze studovat souvislost mezi chováním jednotlivce na lokální úrovni a výsledkem na globální úrovni celého systému - tzv. emergence. Aplikační oblast je široká, přiložená knihovna modelů obsahuje příklady z ekonomie, biologie, fyziky, chemie, sociálních věd a systémové dynamiky. Přiložené modely je možné dále upravovat nebo vytvářet modely vlastní.

NetLogo má mnoho aktivních uživatelů a ke vzdělávacím účelům je využíváno v široké škále amerických i světových škol, od základních až po univerzity.

Ukázka kódu

Základními stavebními kameny NetLoga jsou agenti označovaní jako želvy (turtles), kteří se mohou pohybovat po dlaždicích (patches). Dále zde existují spoje (links), které umožňují modelovat vztahy mezi agenty, případně jejich skupiny. +more Následující ukázky demonstrují způsob programování v NetLogu.

Definování nového druhu agentů (lidí) a přiřazení proměnné smer každému z agentů:

breed [people person] people-own [smer]

Náhodné rozmístění těchto lidí v prostoru:

ask people [setxy random-pxcor random-pycor]

Všichni lidé na červené dlaždici jsou zrušeni:

ask people [ ask patch-here [ if pcolor = red [ ask myself [ die ] ] ] ]

Historie a vývoj

NetLogo vytvořil Uri Wilensky, ředitel Center for Connected Learning and Computer-Based Modeling na Northwestern University v Illinois. Jeho předchůdcem bylo StarLogoT, které Wilensky vytvořil roku 1997. +more NetLogo 1. 0 bylo představeno roku 2002. Verze 6. 2 byla vydána v srpnu 2017. Na vývoj přispěla především National Science Foundation. NetLogo je napsáno převážně v jazyce Scala, některé části jsou psány v Javě. Současně s klasickou verzí je vyvíjeno také NetLogo 3D (prozatím jako samostatná aplikace) a NetLogo Web, které nabízí omezenou sadu funkcí, zato ale funguje v běžném webovém prohlížeči na všech platformách.

NetLogo je volně dostupné jako open-source pod licencí GNU GPL verze 2. Zdrojové kódy aplikace a některých doplňků jsou volně přístupné na [url=https://github. +morecom/NetLogo/NetLogo/]GitHubu[/url], který v tomto projektu slouží také k návrhům nových funkcí a hlášení problémů - k únoru 2018 na vyřešení čekalo 312 problémů a z toho 93 bugů. Knihovna ukázek kódu a modelů, která je dodávaná spolu s NetLogem, je taktéž dostupná na [url=https://github. com/NetLogo/models]GitHubu[/url], jednotlivé modely jsou ale poskytnuty pod různými licenčními podmínkami.

Kromě angličtiny bylo rozhraní programu postupně lokalizováno do španělštiny, čínštiny, ruštiny a japonštiny. Oficiální uživatelský manuál je dostupný v anglickém, čínském a českém jazyce.

Odkazy

Související články

Racionální agent * Kognitivní věda * Simulace * Teorie her * Multiagentní modelování * Systémová dynamika

Externí odkazy

[url=http://ccl. northwestern. +moreedu/]Center for Connected Learning and Computer-Based Modeling[/url] ** [url=http://ccl. northwestern. edu/netlogo/]NetLogo Domovská stránka NetLoga[/url] ** [url=http://ccl. northwestern. edu/netlogo/models/]Knihova modelů[/url] ** [url=http://ccl. northwestern. edu/netlogo/resources. shtml]Seznam webových zdrojů o Netlogu[/url] ** [url=https://github. com/NetLogo/NetLogo]Oficiální GitHub[/url] * [url=http://groups. yahoo. com/group/netlogo-users/]Diskuzní skupina[/url] na Yahoo. .

Reference

Kategorie:Programovací jazyky Kategorie:Simulační software Kategorie:Multiplatformní software

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top