Digitális evolúció
Minden kutatás, keresés, alkotás csak akkor indulhat
be, ha már elõzetesen - legyen az bármilyen homályos
- van valamilyen képünk az elérni kívánt
állapotról, dologról. A digitális evolúció
tanulmányozása bõvelkedik a gyengén körvonalazott,
vagy teljesen világos csak éppen távoli célokban.
Ezeknek a ködképeknek a felsorolása fogja meghatározni,
világosabbá tenni elsõ nekifutásra a digitális
evolúció fogalmát.
-
Robusztus, alkalmazkodóképes, hibatûrõ programok
fejlesztése. Manapság az informatika mindent átfogó
szédületes tempójú fejlõdésének
lehetünk tanúi. Kérdéses azonban, hogy a fejlõdés
jelenlegi irányai megfelelõek lesznek a jövõben
is, hiszen az informatikai eszközök fejlõdésével
egy ütemben, sõt néha még gyorsabban növekednek
az ezektõl eszközöktõl megkövetelt igények.
A hardver eszközök nemsokára elérhetik a fizikai
korlátokat. Kevésbé feltûnõ probléma
a programok jövõje. A mai szoftverrendszerek forráskódjai
nagy sebességgel növekednek, egy operációs rendszer
programsorok millióiból áll. Egy idõ után
nehezen kezelhetõ bonyolultságot érhetnek el a programok.
Instabil mûködés, nehéz hibakeresés, törékenység,
erõs környezetfüggõség a jellemzõi
a mammutnagyságú rendszereknek. A szoftverfejlesztés
elmélete már az informatika kezdete óta ismeri ezt
a problémát. A különbözõ programfejlesztési
módszertanok próbálnak választ adni arra a
kérdésre, hogy miként tudja az emberi elme kezelhetõvé
tenni a bonyolultságot. A kisebb nagyobb sikerek ellenére
az emberalkotta rendszerek nem képesek azt a mûködési
stabilitást produkálni, amire a Földön kifejlõdött
élõvilág képes. A változatos élõvilág
hosszú évmilliók alatt fejlõdött ki, s
képes volt reagálni drasztikus környezeti változásokra
is. Nem véletlen tehát, hogy az informatika egyre többször
használ fel biológiától kölcsönzött
ötleket, a hardver és szoftvertechnológia egyaránt.
Új irány lehet a szoftverfejlesztésben, ha a programokat
nem ember írja, hanem egy mesterséges környezetben hozza
létre azt az evolúció. Ezek a programok digitális
élõlényekként foghatók fel, amiknek
meg kell küzdeniük az erõforrásokért (memória,
processzoridõ), gondoskodniuk kell önmaguk replikálásáról
(az önreplikáció során mutációk
történhetnek, melyek hasznosak lehetnek a program számára),
s a környezetük által definiált feladatok megoldásával
elõnyre kell szert tenniük más programokkal szemben.
Ezeknek a feladatoknak a megoldására kifejlõdött,
optimalizált programrészletek késõbb felhasználhatók
lehetnek más informatikai rendszerekben. A közeli jövõben
ezek természetesen csak rövid gépi kódú
részletek lehetnek.
-
Az evolúció mûködési elveinek alaposabb
megismerése. Az evolúció tanulmányozásában
az egyik legfõbb problémát az jelent, hogy ez a folyamat
emberi léptékkel mért idõ alatt nem megfigyelhetõ,
hiszen az evolúció csak évmilliók alatt hoz
létre észrevehetõ változásokat. A másik
probléma is a megfigyelhetõség fogyatékosságából
származik. Egy biológiai rendszer sohasem tanulmányozható
a rendszerbe történõ beavatkozás nélkül.
Ezekre a problémákra jelenthetnek megoldást a folyamatosan
növekvõ teljesítménnyel bíró digitális
számítógépek. A bennük létrehozott
evolúciós folyamatnak a sebessége csak a számítógép
gyorsaságától függ. Emellett a folyamat
bármikor leállítható, kimerevíthetõ
bármely pillanat anélkül, hogy az bármiféle
csekély hatással lenne a populáció fejlõdésére.
Egy fontos különbséget kell itt észrevenni:
a digitális közegben létrehozott evolúció
nem modellezi a földi élõvilág fejlõdését.
Az önmagukat replikálni képes programok nem élõlények
absztrakt modelljei, hanem olyan entitások, akik képesek
saját környezetükben fejlõdni és szaporodni.
A földi élõvilág egy megvalósulása
az életnek a fizikai világban, míg a digitális
élõlények populációja az élet
egy másik megvalósulását képviselik
egy teljesen eltérõ logikai közegben. Ezen különbségtétel
mögött az az erõs feltételezés áll,
miszerint az élet jelenségei függetlenek a megvalósulás
közegétõl, az élet kibontakozásának
mûködési elvei általánosabb szinten találhatók.
Ha ez a feltételezés nem helytálló, akkor a
digitális evolúció tanulmányozása szükségszerûen
tévút.
-
Válaszkeresés a "Lehetséges-e egyáltalán,
hogy a változatos élõvilágot és minket
embereket egyszerû mûködésû folyamat hozzon
létre?" - típusú kérdésekre. Az
ilyen horderejû kérdések megválaszolását
csak nagyon hosszadalmas munka után lehet értelmesen tárgyalni,
ha egyáltalán a tudományos kutatás keretein
belül feltehetõk ezek a kérdések.
Digitális élõlények
Mik a digitális élõlények? A Physis
rendszerben ezek egyszerû programok, azaz nem mások mint utasítások
sorozata. Az utasítások egyszerûen egész számokkal
vannak reprezentálva. Az egyes utasításokhoz rendelhetünk
ugyan emlékeztetõ szócskákat (mnemonik) az
assembly programozási nyelvekhez hasonlóan, de ez csak az
ember számára teszi érthetõbbé a programot,
a gépnek nincs szüksége rá.
A programot legkönnyebben körkörös szalagként
képzelhetjük el. A szalag cellákra van osztva.
Minden cellában egy egész szám található,
amely egy értelmes utasításnak felel meg. A valóságban
a gép memóriájában egy egész típusú
egydimenziós tömbként tárolódik.
Milyen gépen futnak ezek a programok? Jelenleg nem létezik
olyan hardver, amely képes lenne a speciális utasításokból
álló digitális élõlények futtatására,
ezért végrehajtásukhoz szoftveresen szimulált
processzorokra, virtuális gépekre van szükségünk.
A virtuális gép sorban olvassa és végrehajtja
az utasításokat a szalagról. Egy utasítás
végrejatása jelenthet egy számítást,
vagy egyszerûen csak a processzor állapotváltozását.
Egy élõ digitális élõlény ily
módon egy utasításszalag és azt végrehajtó
processzor együttese.
Mit csinálnak ezek a programok? A legfontosabb feladat,
amit mindenképpen végre kell hajtaniuk: önmaguk lemásolása.
Ez egy látszólag egyszerû feladat, hiszen csak a szalagon
lévõ egész számokat kell átmásolni
a szalag más celláiba. Ehhez azonban ki kell számítani
a pontos méretét a másolandó területnek
(a digitális élõlény mérete), le kell
foglalni az új memóriaterületet, s végre kell
hajtani a másolást. Ha a másolás sikeres, akkor
egy új digitális élõlény jön létre,
amely aztán elválva szülõjétõl
elkezdi önállóan végrehajtani saját kódját.
Ez hasonlít a sejtosztódás folyamatához. Ezeket
a "biológiai" mûveleteket az utasításkészletnek
támogatnia kell.
Az önreplikálás mellett - mintegy mellékesen
- a digitális élõlények végrehajthatnak
apróbb feladatokat. (alapmûveletek egész számokkal,
logikai számítások...). A bemenõ adatokat mesterséges
környezetükbõl olvassák be, s a számítás
eredményét is oda írják vissza. Ezeknek a természetben
az anyagcsere folyamatok felelnek meg. Ha egy digitális élõlény
gyorsan és helyesen végzi el ezeket a feladatokat akkor több
processzoridõt kap a saját programjának futtatására,
s ezáltal hamarabb képes utódot létrehozni.
A processzoridõ lehetne a napfény analógiája
a digitális élettérben. A környezet által
meghatározott feladatok végrehajtására kifejlõdött
kódrészleteket késõbb kimetszhetjük a
digitális élõlénybõl s azt felhasználhatjuk
informatikai rendszerekben.
Egy digitális élõlény futtathatja valamelyik
szomszédjának is a kódját, így neki
nem kell tartalmazni a felhasznált kódrészletet, ezáltal
kódja rövidebb lesz s gyorsabban tud szaporodni. Ez a parazitizmus
jelensége. A megfelelõen tervezett utasításkészlet
lehetõséget adhat az élõlények közötti
interakciók sokféleségének megjelenésére.
Hogyan képesek fejlõdni a digitális élõlények?
Az önreplikáció során az átmásolt
utasítások sérülhetnek. Egy utasítás
megvátozhat, eltûnhet vagy megjelenhet az utód kódjában.
Ezek a mutációk. (A mutációk mértékét
természetesen a mesterséges környezet szabályozza.)
A mutációk többsége lehet káros, s az
utód elveszti szaporodóképességét, de
némelyikük lehet hasznos s ennek eredményeképpen
az utód gyorsabban tud szaporodni, s így képes elterjedni
az élettérben.
A Physis rendszer legfõbb célja, hogy megtalálja
az utasításkészletek azon jellemzõit, melyek
lehetõvé teszik, hogy a véletlen változások
a lehetõ legkevesebb kárt okozzák az élõlényben
s így a hasznos mutációk révén az élplények
gyors és korlátok nélküli fejlõdésre
legyenek képesek. Röviden: azt a azámítógépes
nyelvet keressük, amely evolválható.
Helsinki 2000. február 27.
|