Az örvényféreg meséje I: hogyan készül egy modell állat?
Az első évadban megismerkedtünk a természetes szelekció darwini mechanizmusával, mely lehetővé teszi bonyolult biológiai szerkezetek kialakulását, a szerveződési szintek és az emergencia fogalmával, mely segít megérteni, hogyan épülnek fel bonyolult összetett rendszerek, valamint a homeosztázis fogalmával, melynek kapcsán megismerkedtünk azzal, hogy az egyre bonyolódó idegrendszerek milyen módon képesek segíteni az állatok túlélését a reflex, a döntés, a modell és gondolkodás képességével.
Első lépésként azt a szintlépést tettük meg, hogy a molekulából álló idegsejtek hogyan összegzik a rájuk érkező jeleket, majd továbbítják azokat. A következő lépéssel tovább emelkedünk a szerveződési szinteken és megvizsgáljuk, hogyan alakulnak ki az idegsejthálózatok az idegsejtek kölcsönhatásából, és ezek a hálózatok mire képesek.
Most is egy tanmesével kezdjük a hálózatokkal való ismerkedést. Egy személyes történettel, mely azt mutatja be, hogy egy egyszerű idegsejt hálózat hogyan képes egy összetett feladat leképzésére és megoldására, illetve, hogy az agy és a számítógép feladatmegoldási módja miben tér el.
Egyik első hobbi projektemben pedig, egy élőlény viselkedését próbáltam meg BASIC nyelven leprogramozni. Hozzáfértem egy akkor vadonatúj csúcstechnológiának, ma ősinek számító korai Macintos-hoz, 1984ből, ez súlyra század annyit nyomott, mint az öreg PDP és kb. annyit tudott.
A kutatók modelleket alkotnak, hogy a valóságot egy viszonylag érthető, egyszerűbb (csökkentett számú változóval, paraméterrel leírható) rendszerben vizsgálják. Fontos egy modellnél tisztázni mit tart meg és mit vet el a valóságból, milyen kérdésekre kérdezhet és kérdez rá? Biológus révén tisztában voltam a feladat léptékével, ezért egy viszonylag egyszerű élőlény, a gyors folyású patakokban a kövek alatt élő, csinos, két fekete szemfoltot viselő örvényféreg (Planaria, a biológusok sokat vizsgált modell állata) viselkedését és döntéseit próbáltam meg egy egyszerű modellben megragadni.
Ezek után nekiláttam, hogy klasszikus számítógép kódolással modellezzem a döntéseit. A klasszikus programozási nyelvek csak egy szálon futnak, egymás után hajtva végre döntéseket és utasításokat. Egy döntés logikailag megfogalmazva valahogy így néz ki:
Ha A igaz akkor csináld EZT, ha nem akkor AZT
a modell féreg esetében pl egy döntés:
ha RAGADOZÓ akkor MENEKÜLÉS különben TÁPLÁLKOZÁS
programnyelven (itt most nem az ősi BASIC-et, hanem a modernebb, és általam legtöbbet használt PASCAL nyelvet használom):
if (RAGADOZÓ>0) then MENEKÜLÉS else TÁPLÁLKOZÁS;
Mindeddig nem is volt baj, hanem amikor egy többtényezős döntést próbáltam meg programozni, akkor elszabadult a kombinatorikai pokol. Például amikor hideg van és sötét akkor az állatka inkább táplálkozik vagy alszik, mintsem szaporodásba fogjon, ami amúgy, ha melege van, süt a nap és jóllakott abszolút elsőbbséget élvez. Egy ilyen döntést igen megrázó leprogramozni, valahogy így nézne ki:
if ((HŐMÉRSÉKLET<0) and (FÉNY<10)) then
ESZIK;
else if (PARTNER>0) then
PÁRZIK;
else if (RAGADOZO>0) then
MENEKUL;
else
ALSZIK;
else
ALSZIK;
De itt még nem gondoltunk arra, hogy mi van, ha meleg van, de sötét vagy fordítva és ha közben megéhezik, vagy álmos lesz?
Hát ezt újra végig kell gondolni. Hogy ezt elősegítsem készítettem egy táblázatot, amelynek soraiban az ingerek, oszlopaiban az egyes lehetséges viselkedések vannak.
A legegyértelműbb, erős hatásokat kövérrel jelöltem, először ezeket írtam be a táblázatba, majd kitöltöttem a többi értéket. A 0 azt jelenti, hogy az adott inger nem befolyásolja az adott válaszreakciót.
Hogyan kell kiértékelni egy ilyen táblázatot? Azaz a döntés hogyan történik? Először, (a) Mindegyik ingerhez hozzárendelünk egy a környezet vagy a belső állapotnak megfelelő értékét, ez lehet 0/1 vagy 0-10, legyen itt most 0/1. Ezek után (b) minden táblázatelem értékét megszorozzuk az adott sorra beállított inger értékkel. Majd, (c) a kapott számokat oszloponként összeadjuk, végül (d) kiválasztjuk a legmagasabb összegű viselkedést és az állatka azt fogja csinálni.
Válasz pár esetén
A táblázatot nézegetve hamar beláttam, hogy sokkal egyszerűbb az adott ingerek alapján kiértékelni melyik viselkedés mekkora értéket kap az adott helyzetben és ezt a viselkedést választani eredményke, semmint a többtényezős döntést logikai fával leírni, soronként végrehajtott programmal. Ez igen kényelmetlen és egy bizonyos bonyolultsági szint fölött lehetetlen megoldás.
Azt, hogy hogyan kell leprogramozni egy ilyen táblázat kiértékelését és hogy ennek mi köze az idegrendszerhez és a gondolkodáshoz a következő bejegyzésből tudjátok meg.
Szerző: Gulyás Attila