Agent-based modeling ( ABM) je simulační metoda , která zkoumá chování decentralizovaných agentů a jak takové chování určuje chování celého systému jako celku. Na rozdíl od systémové dynamiky analytik určuje chování agentů na individuální úrovni a globální chování vzniká jako výsledek aktivity mnoha agentů (bottom-up modeling).
Modelování založené na agentech zahrnuje buněčné automaty , prvky teorie her, komplexní systémy, multiagentní systémy a evoluční programování, metody Monte Carlo, používá náhodná čísla.
První model založený na agentech byl vyvinut koncem 40. let 20. století . Následně vývoj mikropočítačů přispěl k dalšímu rozvoji tohoto směru a schopnosti provádět počítačové simulace.
Hlavní myšlenkou modelů založených na agentech je vytvořit „výpočetní nástroj“ (což je soubor agentů s určitou sadou vlastností), který vám umožní simulovat skutečné jevy. Konečným cílem procesu tvorby ABM je sledování vlivu fluktuací činitelů působících na mikroúrovni na indikátory makroúrovně.
Obecně se uznává, že modely založené na agentech pocházejí z počítačů Johna von Neumanna, což jsou teoretické stroje schopné sebereprodukce . John von Neumann navrhl použití strojů, které se řídí podrobnými pokyny, aby vytvořily přesné repliky sebe sama. Následně tento přístup zdokonalil von Neumannův přítel - Stanislav Ulam , který navrhl znázornit vůz na papíře - jako sadu buněk na mříži. Tento přístup byl počátkem vývoje celulárních automatů .
Nejznámější implementací celulárního automatu byla hra „ Život “, navržená Johnem Hortonem Conwayem , která se od von Neumannova stroje liší poměrně jednoduchými pravidly pro chování agentů.
Využití AOM pro sociální systémy pochází z práce programátora Craiga Reynoldse , ve které se pokoušel simulovat aktivitu živých biologických činitelů (model "Umělý život").
Modely založené na agentech jsou založeny na třech hlavních myšlenkách:
Dominantním metodologickým přístupem je přístup, ve kterém se vypočítává rovnováha nebo pseudorovnováha systému obsahujícího mnoho činitelů. Přitom samotné modely za použití jednoduchých pravidel chování mohou přinést velmi zajímavé výsledky.
ABM se skládají z agentů dynamicky interagujících podle určitých pravidel . Prostředí, ve kterém interagují, může být poměrně složité.
Inteligence. Tato vlastnost by zároveň měla být umírněná, aby se agenti nemohli dozvědět něco víc, co se vymyká pravidlům hry.
Mít životní cíl. Umístění v čase a prostoru. To se týká nějakého „stanoviště“, které může být reprezentováno jak ve formě mřížky (jako ve hře „ Life “), tak ve formě mnohem složitější struktury. Někdy je výsledkem interakce činitelů v "stanovišti" rovnováha, někdy - pokračující proces evoluce a někdy - nekonečný cyklus bez určitého řešení.
AOM jsou považovány za doplňkové k tradičním analytickým metodám . Ty nám umožňují charakterizovat rovnováhu systému a AOM nám umožňují prozkoumat možnost získání takového stavu. AOM může vysvětlit příčinu takových jevů, jako jsou: teroristické organizace , války , krachy akciových trhů atd.
V ideálním případě mohou ABM pomoci identifikovat kritické časové body, po jejichž uplynutí budou důsledky mimořádné události nevratné.
Od poloviny 90. let se AOM používá k řešení různých komerčních a technologických problémů. Příklady úkolů jsou:
V těchto a dalších aplikacích jsou strategie chování definovány s přihlédnutím k chování souboru jednotlivých atomárních činitelů a jejich interakcím. AOM tak může pomoci při studiu vlivu individuálního chování agentů na evoluci celého systému.
Jedním z programů pro vývoj AOM je bezplatná aplikace NetLogo . NetLogo bylo původně vyvinuto jako vzdělávací nástroj, ale nyní jej využívají nejen studenti, ale také tisíce výzkumníků. Tento program je často využíván na univerzitách k výuce studentů základů AOM. Program StarLogo má podobnou funkcionalitu .
Nástrojem pro realizaci širšího spektra úkolů v oblasti ABM je program Swarm . Využívá programovací jazyk Objective-C a lze jej doporučit programátorům C , nejen profesionálům, ale i začátečníkům. V prostředí Swarm lze programovat i v jazyce Java . Zaznamenáváme také několik dalších programů: MASON , Repast ( používá se Java ) , EcoLab (používá se C++ ), Cormas ( používá se SmallTalk ).
Programy