Élet - Játék - Platform

 1970-ben John Horton Conway a Cambridge-i Egyetem matematikusa egy nagyon egyszerű algoritmussal állt elő. Nulla-résztvevős játéknak is nevezhető, mert a játékosnak csak annyi a feladata, hogy megadva a kezdő állapotot, elindítja a játékot. Onnantól kezdve egy számítógép állítja elő a további állapotokat az algoritmus alapján. Ez egy sejtautomata, amit az alábbi szabályrendszer üzemeltet:

 Van egy végtelen négyzetrácsunk, aminek cellái lehetnek üresek vagy kitöltöttek. Az üres cella az ún. táptalaj, a kitöltöttet pedig sejtnek nevezzük. 

Egy cella környezete a hozzá legközelebb eső 8 mező amiben további sejtek is lehetnek.
A játék kezdő állapotban tetszőleges számú cellába sejteket helyezünk és elindítjuk az algoritmust.
Ezt követően a játékosnak nincs beleszólása a játék menetébe. Egy sejttel (cellával) egy lépésben (körben) a következő három dolog történhet:


(1) A sejt túléli a kört, ha két vagy három szomszédja van.
(2) A sejt elpusztul, ha kettőnél kevesebb (elszigetelődés) vagy háromnál több szomszédja van (túlnépesedés).
(3) Ebből következik: Új sejt születik minden olyan cellában, melynek környezetében pontosan három sejt található.

A szimulációban az idő ritmusra halad, minden egyes óraütés egy kör, amelyben a fenti szabályrendszer kiértékelésre kerül a rácsháló összes pontjára. Ez egy szimulációs lépés, amit folyamatosan, ciklikusan újrakezdünk.

Ez egy annyira egyszerű automata, hogy gyerekként egy kis Commodore számítógépen sikerült leprogramoznom Basic-ben. Remek játék volt figyelni a kockás képernyő burjánzását, valóban olyan érzést keltett, mintha valami élő organizmust figyeltem volna a Petri-csészében. Ha sikerült jó kezdő ábrát rajzolni a szimuláció elég sokáig futott, a tenyészet hosszú ideig életképes maradt. Remek játék volt.

Ez az algoritmus sokak fantáziáját megmozgatta és a legkülönbözőbb - egyszerűbb és bonyolultabb - kezdőábrákat találtak ki, amik érdekesen viselkedtek. Voltak olyan ábrák, amik ciklikus állapotokat vettek fel és a sejtosztódás pár lépést oszcillálva a végtelenségig futott.

 


Más ábrák szintén oszcillálók  voltak, de a rácson változtatták a helyüket, mindig kicsit odébb megismételve a ciklusukat.


Pihentebb matematikusok, informatikusok hamar eljutottak oda, hogy a ciklikusan oszcilláló vagy látszólag haladó mozgást végző kicsi telepekből bonyolult sejtautomata rendszereket képeztek és a játékot egy nagyon furcsa irányba vitték tovább. Képesek voltak az egyszerű sejtautomata modellen teljesen más feladatokat is futtatni. Az eredeti szimulációt platformként használva, egy más síkú és célú szimulációt hoztak létre. Volt olyan, aki komplett mikroszámítógépet épített a sejtautomata platformján. A mikroszámítógépen általános logikai műveleteivel pedig egy digitális órát programozott és futtatott. Tulajdonképp ez egy fizikai számítógépen futtatható algoritmus, ami egy sejtautomatát szimulál, ami egy egyszerű mikroszámítógép elemi folyamatait modellezve egy digitális óra algoritmusát futtatja. Ez egyben elég bonyolultnak tűnik, de nem szükséges az egészet a teljes komplexitásában megérteni. A szintek szétválasztása és leírása leegyszerűsíti a teljes rendszer megértését, így egyszerre elég ha egy réteg működésével tisztában vagyunk.


A szimuláció elve egy általános filozófiai vonatkozást is rejt magában, ami úgy tűnik több síkon is megállja a helyét.

Különböző rendszerek léteznek, amiket mindegyikét szabályrendszerek igazgatják. Tekinthetjük ezeket a rendszereket egyfajta szimulációnak is, hiszen adott szabályrendszer segítségével futnak valamilyen bázison. A szabályrendszer lehet nagy bonyolultságú és az alap, amin ez működik, a legkülönfélébb felépítésű. A futó szimulációnak azonban lehetséges olyan magasabb síkú célt adni (egy újabb szimulációs réteget húzni rá), aminek az eredeti működésből új funkcióhalmazokat képez és ezekből új szabályrendszert hoz létre. Ennek az új rétegnek az eredeti működéshez alig van köze, csak alapként, platformként használja azt. Ez a célszimuláció szintén lehet valami még nagyobb szintű rendező elv platformja.

Honnan ismerős mindez? 

Aki foglalkozott rendszerelmélettel észreveheti, hogy a legtöbb rendszer így épül fel.  Mindegyikben felfedezhetjük az alapelvet: 

  • Platform - a szimuláció bázisa
  • Építőelemek - egymással kapcsolatba hozható dolgok halmaza
  • Szabályrendszer - szabályok és határfeltétele, amik az építőelemek egymáshoz való viszonyát definiálják
  • Működés - algoritmusok, a szabályrendszer állapotainak átmenetét írja le, az építőelemek dimamikus viselkedésének leíró és működtető rendszere
Egy bonyolult működés leegyszerűsíthető, ha megtaláljuk azokat a határokat, ahol a teljes rendszert egymástól viszonylag független vagy laza kapcsolatban álló részrendszerekre bonthatjuk. Ez a dekompozíció elve. A rétegek belső működési szabályainak felállításával és az algoritmikus viselkedés megadásával rendszerünk elindul, a szimuláció önálló életre kel.

Rendszerelméleti szempontból a fizikai világ megnyilvánulásait szimulációkként is felfoghatjuk, hiszen a fenti négyes felépítésre a legtöbb természetes rendszer leképezhető. Példaképp, a nullponti energiatér kvantumzajából véletlen kibukkanó elemi részek a maguk szabályrendszere mentén megalkotják az anyagot, amik atomi elemeket formálnak, molekuláris rendszereket képeznek. Ugyanakkor a szubatomi tartományok nem igazán szólnak bele a molekuláris rendszerek világába. A két síknak a szabályrendszere és működési módja is más - a nullponti tér tisztán hullámtermészetű, az atomok világa pedig már anyaginak is látszik és a szubatomi platformra épül. A nullponti és kvantum tartományokban a káosz egy természetes szabály, ebből a káoszból egy szinttel fentebb, mégis egy jól definiálható elemi fizikát lehet felépíteni. Az atomok és molekulák világától már a legtöbb középiskolás el tudja magyarázni, hogyan épül fel a szervetlen és szerves kémia, az aminosavak, a biológia legalapvetőbb építőelemei.

Az informatikában a platform alapú fejlesztés ma teljesen elterjedt módszer. Mobiltelefonunk alkalmazásai (Appok) szempontjából az ezeket futtató Android rendszer egy platform - ami alatt pedig egy mélyebb platformnak tekinthető Linux rendszermag fut. Az Appok azonban semmit nem tudnak az android alatt futó rendszermagról.

A rendszereket különböző granularitási szinten vizsgálhatjuk, az egészen kis részektől az univerzumi léptékig. Ha ez az elv megfigyelhető a fizikai rendszerekben, és az információs rendszereink is ezen a szerveződési mintán alapulnak, a tudati, szellemi tartományokban is alkalmazhatók-e ezek az elvek?

 * * *


Ajánlott anyagok, irodalom:

Elemi lépések - sejtatomatától a mikroszámítógépig:



Az elemi részekcsék egy lehetséges szimulációja játéka:



Online Conway's Game of Life:
https://playgameoflife.com/

Irodalom:
https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life