Digitális élõlények

avagy programfejlesztés az evolúció mintájára 
 
Fél évszázad eltelte után az informatikában annak a furcsa jelenségnek lehetünk szemtanúi, hogy a szoftverek lemaradni látszanak a hardver fejlõdésétõl. A nyers számítási erõ és tárolókapacitás töretlenül duplázódik, de a szoftverek fejlõdésében nem lehet ilyen jellegû fejlõdést kimutatni. A stabil mûködéssel még mindig gondok vannak, sõt az operációs rendszerek kernelei is hatalmas több ezer soros összeomlásra hajlamos monstrumokká nõtték ki magukat. A teljesítménnyel is gondok vannak, a növekvõ gépi erõ könnyen kényelmes és nem optimalizált kód írására csábítja az embert, ha pedig gyors programot akar írni, akkor a kezelhetetlen bonyolultsággal és annak következményeivel kell szembenéznie. Úgy tûnik, hogy az emberalkotta programok nem képesek maximálisan kihasználni a gépek erejét.

A természet az evolúcióval hihetetlenül bonyolult, alkalmazkodóképes és stabil mûködésû élõlényeket hozott létre évmilliók során. Nyilvánvaló lépésnek látszik az, hogy a programok fejlesztésére/fejlõdésére használjuk az evolúció alapelveit. Nincs szükségünk évmilliókra, hiszen az egyre gyorsabb gépekben a fejlõdés gyorsan lejátszható. Az elképzelés tagadhatatlanul merész hiszen legegyszerûbb gyakorlati alkalmazása is talán csak évtizedek múlva lesz kivitelezhetõ, s nem lehetetlen, hogy teljes egészében tévútnak bizonyul majd. A kétségek ellenére ígéretes hipotéziseit ellenõrizni kell.

A digitális evolúció kutatása a teoretikus biológia számára is hasznos lehet. Mûködés közben vizsgálhatók azok a törvények, melyek nem figyelhetõk meg a valós világban a szûk idõkeret miatt.

Jelen munka arra vállalkozik, hogy kutatási eszközt fejlesszen a digitális evolúció vizsgálatára. Fõbb kérdések, melyre válaszok adhatók az eszköz használatával:

  • Melyik az a gépi kódú nyelv és architektúra, amely evolúciósan fejleszthetõ, evolválható?
  • Mik azok a tulajdonságok, melyek evolválhatóvá tesznek egy assembly-szerû nyelvet?
  • Milyen paraméterértékek (mutációs arány, populációméret, ...) kedveznek a gyors fejlõdésnek?
  • Mik a feltételei a folyamatos, korlátok nélküli fejlõdésnek?
  • Milyen típusú feladatok oldhatók meg evolúciósan fejlesztett programokkal?

Kapcsolódó oldalak:
  • Thomas Ray 1990-ben kezdte el írni Tierra nevû programját. Elsõdleges célja az volt, hogy korlátok nélküli fejlõdést hozzon  létre a számítógép memóriájában létezõ mesterséges ökoszisztémában. A kísérletek szép példákat szolgáltattak többek között az információs parazitizmus jelenségére. Ma kutatásának középpontjában a gépi nyelvek evolválhatósága áll.
  • Avida egy Tierra által ihletett rendszer. A hangsúly a pontosan mérhetõ paraméterek (információelméleti és termodinamikai szempontokból) meghatározásán van. 
  • A Physis a fent említett rendszerek képességeit implementálja egy általános és szinte minden irányban tovább bõvíthetõ kernelen alapulva. Alapvetõ célja, hogy több különbözõ gépi kódú nyelv és architektúra evolválhatóságának vizsgálatára lehetõséget adjon.  A forráskód nyílt és megfelelõen dokumentált.