Prawdziwi mężczyźni bawią się krzemowymi żołnierzykami

Obiecałem napisać o innych niż mrówki inspiracjach biologicznych w informatyce. Lenrock wyręczył mnie częściowo wspominając o algorytmach genetycznych i sieciach neuronowych. Mimo to planuję wywiązać się z obietnicy dla tych, którym nie chce się ryć w Googlu ani biegać po linkach.

Zacznę tę serię od przeciwnej strony, czyli od systemów wieloagentowych, które są jakby modelami społeczeństw. Ich metaforyczny (i ze względów chronologicznych proroczy zarazem) obraz pojawia się w jednej z opowieści „Cyberiady” Lema, kiedy to Trurl, spragniony rady w jakiejś sprawie, modeluje w maszynie liczącej cały uniwersytet pełen uczonych, stawia im swoje pytanie i cierpliwie czeka na efekt. Takie są właśnie systemy wieloagentowe – zbudowane z mniejszych, autonomicznych komponentów, które posiadają lokalną, ograniczoną wiedzę o środowisku i współdziałają ze sobą w zdecentralizowany sposób w celu rozwiązania zadania. Wszystko to jest oczywiście symulowane w komputerze, a każdy agent to w istocie mały program. Zgodnie z tym, co obserwujemy w biologii, spodziewamy się po takim systemie samoorganizacji i stworzenia struktur zdolnych do skoordynowanego działania. Takie efekty rzeczywiście pojawiają się, a systemy wieloagentowe używane są do zaawansowanych symulacji struktur społecznych, testowania metod reagowania na katastrofy naturalne, do kontroli ruchu lotniczego i innych podobnych zadań. Tutaj zresztą pojawia się trudna do rozstrzygnięcia kwestia, czy systemy wieloagentowe są algorytmami budowanymi w oparciu o zachowania społeczne, czy też algorytmami budowanymi w celu badania zachowań społecznych.

Algorytmy mrówkowe, o których pisałem poprzednio, są w jakimś stopniu odpowiadają opisowi systemów wieloagentowych. Zwykle nie zalicza się ich do tej kategorii, bo wzajemne interakcje mrówek są zredukowane wyłącznie do tego, że są one zdolne zauważać w środowisku modyfikacje dokonane przez inne mrówki (a konkretnie ślady feromonów). W prawdziwym systemie wieloagentowym poszczególne komponenty powinny być zdolne do bardziej bezpośredniej komunikacji i współpracy. Istnieją wręcz takie modele, w których poszczególne agenty (w wypadku programu wypada chyba użyć formy nieosobowej) wyposażone są w cele, potrzeby i przekonania, mają możliwości uczenia się, planowania oraz dysponują protokołami komunikacji i negocjacji z innymi agentami. Z kolei w najprostszych wersjach cała komunikacja może sprawdzać się wyłącznie do wyczuwania obecności innych agentów, gdy są blisko, a wbudowana mądrość może być równie niewielka. Jednak okazuje się, że nawet to już wystarcza do wytworzenia wielu form samoorganizacji. I tu chciałbym zaproponować czytelnikom zabawę. Otóż jest w sieci dostępny program do symulacji walki zbrojnej, w którym modele żołnierzy mają takie właśnie bardzo skromne (ale wystarczające) możliwości. Ów program do zabawy żołnierzykami in silico nazywa się  EINSTein i jest dziełem amerykańskiej firmy prowadzącej doradztwo w wielu dziedzinach, w tym w zakresie wojskowości. Po instalacji od razu proponuje kilka z góry przygotowanych symulacji, w których pojawiają się różne formacje wojskowe: falanga, tyraliera, frontalny atak i obrona, a cała różnica bierze się z indywidualnych cech agentów, które można podejrzeć (i zmodyfikować, gdyby kto chciał, a warto) w  zakładce Edit – Agent Behaviors – Spatial Orientation/Movement. Obserwując pojawiający się panel, widzimy, że zachowanie żołnierzy jest w zasadzie zdeterminowane przez ich tropizmy w stosunku do własnej flagi i flagi przeciwnika, oraz w stosunku do innych żołnierzy własnych oraz przeciwnika. Zachowania mogą być dodatkowo zależne od tego, czy żołnierz jest ranny i czy ranni są inni żołnierze, na których obecność ma reagować.

Symulację uruchamia przycisk R/S, a odnawia stan początkowy czerwono-niebieska szachownica.

Dobrej i pouczającej zabawy życzy

Jerzy Tyszkiewicz

Fot. cype_applejuice, Flickr (CC SA)