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)
Komentarze
No prosze… Przypomina mi sie moja pierwsza zabawa z komputerem, jeszcze w latach 70tych. Odbywalem w latem czasie studiow tzw. „praktyki zawodowe” w Instytucie Lotnictwa i wlasnie wyladowal tam nowiutki minikomputer HP, wtedy cymes i cacko niezwykle. Poniewaz ani mna ani komputerem pies z kulawa noga sie nie interesowal, a w „Problemach” (taki miesiecznik popularno-naukowy) byl artykul o prostych grach w „w zycie”, caly miesiac spedzilem programujac sobie rozne proste warianty zachowan takich agentow i wyswietlalem efekty na ekranie… Naprawde fascynujace 🙂
Ciekawe kiedy znajdę w gazecie ogłoszenie o pracę dla trenera/niańki SI (Sztucznej Inteligencji). Powyżej wymieniona zabawa brzmi jak zaczątek tego typu zawodu.
Ciekawe też czy ten zawód będzie głównie domeną kobiet i ich przysłowiowego zmysłu matczynego, tak jak to ma miejsce w ludzkich przedszkolach.
@lenrock
Polecam lekturę „Opowieści o pilocie Pirxie”, rozdział „Ananke”. Właśnie o tym.
„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.”
Oj to chyba dotyczy tez innych inspiracji biologicznych w informatyce, jak przywolane sieci neuronowe, ktore z sieciami w prawdziwym mozgu maja, jak mi sie zdaje, glownie wspolna nazwe.
Ciekawe kiedy znajdę w gazecie ogłoszenie o pracę dla trenera/niańki SI (Sztucznej Inteligencji). Powyżej wymieniona zabawa brzmi jak zaczątek tego typu zawodu.
Ciekawe też czy ten zawód będzie głównie domeną kobiet i ich przysłowiowego zmysłu matczynego, tak jak to ma miejsce w ludzkich przedszkolach.