TIERRA Herczeg István ELTE, Budapest, 2011. április 28.

Slides:



Advertisements
Hasonló előadás
Tamás Kincső, OSZK, Analitikus Feldolgozó Osztály, osztályvezető A részdokumentumok szolgáltatása az ELDORADO-ban ELDORADO konferencia a partnerkönyvtárakkal.
Advertisements


Kamarai prezentáció sablon
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Készítette: Boros Erzsi
Kétharmad, háromnegyed, négyötöd: mindenki olvas újságot
Projekt ütemezési feladat (A gyakorlati anyag rövid összefoglalása)
1 Számítógépek felépítése 9. előadás I/O rendszerek.
A társadalmi tényezők hatása a tanulásra
Erőállóképesség mérése Találjanak teszteket az irodalomban
MATEMATIKA Év eleji felmérés 3. évfolyam
Humánkineziológia szak
Pályakezdők munkával való elégedettsége Kiss Paszkál ELTE PPK Társadalom- és Neveléspszichológiai Tasznék.
Mellár János 5. óra Március 12. v
10 állítás a gyerekek internethasználatáról
6) 7) 8) 9) 10) Mennyi az x, y és z értéke? 11) 12) 13) 14) 15)
Matematika - 5. évfolyam © Kačmárová Fordította: Balogh Szilveszter.
Elektromos mennyiségek mérése
Az új történelem érettségiről és eredményeiről augusztus Kaposi József.
Utófeszített vasbeton lemez statikai számítása Részletes számítás
A tételek eljuttatása az iskolákba
Elektronikai Áramkörök Tervezése és Megvalósítása
Elektronikai Áramkörök Tervezése és Megvalósítása
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
VÁLOGATÁS ISKOLÁNK ÉLETÉBŐL KÉPEKBEN.
A SAT probléma különböző reprezentációinak vizsgálata oktatási szempontból (újratöltve) Az általánosítás fegyvere a kutatásban Kusper Gábor,
Védőgázas hegesztések
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
Szerkezeti elemek teherbírásvizsgálata összetett terhelés esetén:
Sárgarépa piaca hasonlóságelemzéssel Gazdaság- és Társadalomtudományi kar Gazdasági és vidékfejlesztési agrármérnök I. évfolyam Fekete AlexanderKozma Richárd.
Hyperuricaemia és hypertonia Hypertonia Központ Óbuda, Budapest
NOVÁK TAMÁS Nemzetközi Gazdaságtan
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
Fekete László Született: Csillagjegye: Vízöntő
Híres magyar nők.
A közép- és emelt szintű vizsga tanári értékelése
Címzési módok, utasítások a CPU-ban Címértelmezés műv. kódadat műv. kód 0 1 cím adat cím adat közvetlen (immediat) adatmegadás rejtett (inheritent),
Matematikai alapok és valószínűségszámítás
szakmérnök hallgatók számára
A évi demográfiai adatok értékelése
A évi demográfiai adatok értékelése
Logikai szita Pomothy Judit 9. B.
Logikai szita Izsó Tímea 9.B.
A szemcsehatárok tulajdonságainak tudatos módosítása Szabó Péter János BME Anyagtudomány és Technológia Tanszék Anyagvizsgálat a gyakorlatban (AGY 4) 2008.
A szemcsehatárok tulajdonságainak tudatos módosítása
LENDÜLETBEN AZ ORSZÁG A Magyar Köztársaság kormánya.
2007. május 22. Debrecen Digitalizálás és elektronikus hozzáférés 1 DEA: a Debreceni Egyetem elektronikus Archívuma Karácsony Gyöngyi DE Egyetemi és Nemzeti.
7. Házi feladat megoldása
Érettségi jelentkezések és érettségi eredmények 2007 Érettségi jelentkezések - érettségi eredmények.
Érettségi jelentkezések és érettségi eredmények 2008 Tanévnyitó értekezlet Érettségi jelentkezések - érettségi eredmények augusztus 29.
Csurik Magda Országos Tisztifőorvosi Hivatal
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
2006. Peer-to-Peer (P2P) hálózatok Távközlési és Médiainformatikai Tanszék.
MENETREND HASZNÁLATÁNAK GYAKORLÁSA Feladat: autóbusz, villamos, trolibusz, fogaskerekű, HÉV menetrend gyakorlása El szeretnénk jutni a Selyemrét megállóból.
Tanulói utánkövetés 2009/2010. A 2009/2010-es tanévben iskolánkban 210 tanuló végzett. 77 fő a szakközépiskola valamelyik tagozatán 133 fő szakmát szerzett.
Nyitott Kapuk 2010 Beiskolázási kérdőívek értékelése.
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
Ágazati GDP előrejelző modell Foglalkoztatási és makro előrejelzés Vincze János Szirák, november 10.
1. Melyik jármű haladhat tovább elsőként az ábrán látható forgalmi helyzetben? a) A "V" jelű villamos. b) Az "M" jelű munkagép. c) Az "R" jelű rendőrségi.
Érettségi eredmények május-június. Az utóbbi évek érettségi eredményei TanévÉrettségi átlag (RFG- AGK) Országos érettségi átlag Kitűnők száma (RFG-
Érettségi eredmények Vizsgázók száma: 114 fő Rendes vizsga: 82 fő Előrehozott vizsga: 32 fő (30+2) Összes értékelt tantárgyi vizsga: 495 Összes.
GAZDASÁGI ADOTTSÁGOK ÉS FEJLŐDÉSI IRÁNYOK A délkelet-európai országok Novák Tamás MTA – VKI május 16.
Kvantitatív módszerek
TÁRSADALMI VERSENYKÉPESSÉG ÉS SIKER A MAGYARORSZÁGI NAGYVÁROSI TÉRSÉGEKBEN BARÁTH GABRIELLA PHD TUDOMÁNYOS MUNKATÁRS KODOLÁNYI JÁNOS FŐISKOLA A MAGYAR.
2011/2012 tanév félévi statisztikai adatai. Hiányzások, mulasztások a tanév során (az első 20) Osztály Egy főre eső igazolt órák száma Egy főre eső.
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
Software - Ismeretek Avagy mitől megy a Hardware.
Írja fel a tizes számrendszerbeli
A KÖVETKEZŐKBEN SZÁMOZOTT KÉRDÉSEKET VAGY KÉPEKET LÁT SZÁMOZOTT KÉPLETEKKEL. ÍRJA A SZÁMOZOTT KÉRDÉSRE ADOTT VÁLASZT, VAGY A SZÁMOZOTT KÉPLET NEVÉT A VÁLASZÍV.
1 Az igazság ideát van? Montskó Éva, mtv. 2 Célcsoport Az alábbi célcsoportokra vonatkozóan mutatjuk be az adatokat: 4-12 évesek,1.
Előadás másolata:

TIERRA Herczeg István ELTE, Budapest, április 28.

Motiváció  Sok irányból …  Neurális hálózatok, genetikus algoritmusok  Evolúciós algoritmusok ill. programozás  Párhuzamos architektúrák  Robosztus programok  Az „unalmas programozás”

Motiváció  Murphy’s law  Új paradigma  Biológiai párhuzamok  Igazából multidiszciplináris ismereteket igényel  Jövőkép

Mi a Tierra?  Spanyol szó, jelentése: Föld  Az eredeti tervezési kritérium szerint evolúcióra képes önreprodukáló gépi kód  Darwini operációs rendszer  Virtuális gép, MIMD emuláció  Tulajdonképpen egy szimulátor  Tom Ray, 1990

Alapok - Neumann János Theory of Self-Reproducing Automata Tervrajz Φ(X): a gép leírása szalagon Konstruktor A: megépíti az X gépet a tervrajzából: A + Φ(X) -> X Másoló gép B: le tudja másolni egy gép tervrajzát: B + Φ(X) -> Φ(X) Vezérlő C: aktíválja B-t, majd A-t: A + B + C + Φ(X) -> X + Φ(X)

Alapok - Neumann János Legyen X = A + B + C a gép melyet le kell gyártani A + B + C + Φ(A + B + C) -> A + B + C + Φ(A + B + C) Az X gép és Φ(X) szalag önreprodukáló rendszert ad.

Alapok – Neumann János

Egy kis biológia  James D. Watson és Francis Crick a DNS szerkezete, 1953  Bázisok  T – timin (kicsi)  C – citozin (kicsi)  A – adenin (nagy)  G – guanin (nagy)

Egy kis biológia  Két kapcsolódási csoport  Adenin – timin (A-T)  Timin – adein (T-A)  Guanin – citozin (G-C)  Citozin – guanin (C-G)

Humán genom project  USA  Humán genom kb 3mrd bázispár visszafejtése (szekventálása)  Bill Clinton  Az eredmény nyilvános!  Bárki letölthet az emberi genom szekvenciát!

Gyökerek - programozás  Darwin programozói játék (1961)  Creeper (és Reaper) (1971) Első vírus  Core War vagy Core Wars (1984) Redcode nyelv key features: Nincs numerikus utasítás érték Nincs abszolút címzés Alacsony szintű multiprocesszing

Gyökerek - Biológia  Az evolúció kutatása  Az evolóció egy folyamat, mely a Földön a szén kémia elem segítségével hozta létere az életet  Az evolóció elve nem kell, hogy a szénre vagy más kémia elemre korlátozódjon  Digitális evolúció

Tierra – Virtuális gép  Darwini Operációs Rendszer  Soup (RAM)  CPU struktúra  Utasítás készlet  Genetikai Műveletek  Alkotó: Tom Ray

Tierra - Darwini Operációs Rendszer  Darwini „módon” kezeli folyamatok populácóját  Fontosabb részei Slicer Reaper Memória allokáció Genetikai műveletek Zavarok

Tierra - Slicer  Kör alakú sor folyamatok számára  A Slicer alloklálja a sor minden folyamata számára a CPU időszeleteket  Amikor új folyamat születik, a szülője mögé kerül a Slicer sorában

Tierra - Reaper  A „kaszás”  A Reaper egy sor adatszerkezet folyamatok számára  Születéskor a folyamat a sor aljára kerül  Ha a memória betelik a Reaper megöli a sor tetején lévő folyamatot

Tierra - Reaper  Az idősebb folyamat hal meg előbb  Ha egy folyamat hibát generál, egy pozicióval feljebb lép a Reaper sorban  A divide vagy mal utasítások sikeres végrehajtása esetén a folyamat egy pozicióval lejjeb lép a Reaper sorban

Tierra – Memória allokáció  A folyamatok egy memória blokkal születnek  A memória lehet írás, olvasás és végrehajtás jogú  Alapértelmezetten írásvádett a blokk  A processz csak plussz egy blokkot kérhet

Tierra – Memória allokáció  A memória allokáció kapcsolatban áll a Reaper-rel  Ha egy memória kérés nem teljesíthető, mert nincs szabad hely, a Reaper megöl annyi folyamatot, hogy legyen hely  A memória kérés limitált méretre lehetséges

Tierra – Genetikai műveletek  Mutációk  Gének összekapcsolása Kereszteződés Beszúrás Törlése  Hibák

Tierra - Zavarok  A Tierra megölheti a folyamat populációk meghatározott részét bizonyos időpontokban  Mind az időpontokat  Mind a meghatározott részt a felhasználó paramétereken keresztül szabályozhatja  Apokalipszis (Network Tierra)

Tierra - Soup  Soup – leves – ősleves  Ebben / ezért folyik a „küzdelem”  A memória körbe fordul  A soup méretét indításkor meg lehet adni

Tierra – CPU struktúra  Utasítás mutató, IP  Regiszterek (4 db)  Stack (10 szavas, visszaforduló)  Stack pointer  Flag-ek

Tierra – Utasítás készlet  Úgy tervezték a Tierra-t, hogy különböző utasításkészletekkel legyen képes működni  Az utasítások az Assembly nyelvre emlékeztetnek  Ez inkább csak szintaktikai hasonlóság

Tierra – Utasítás készlet  Alapvető jellemzők: Utasítás nem „szállíthatja” el a virtuális gépet Kisméretű utasításkészlet, nincsenek numerikus operandusok Template címzés Szinte nincs szintaxis Egyébként hasonló más Assembly-hez

Tierra – Template addressing  Nincs numerikus művelet – hogy működik a jmp ?  Az ötlet a mulekuláris genetikából jön  Hogy találják meg a molekulák egymást?  Egymáshoz illeszkedő „formák segítségével”

Tierra – Template addressing  Hogyan lehet megvalósítani ezt egy programozási nyelven?  Két fajta nop utasítás van: nop0 és a nop1  Ezekből lehet mintát képezni  A jmp adott irányba a legközelebbi mintára ugrik  Nem ugorhat önmagára!

Tierra – Template addressing Példa: jmp nop0; template 0110 nop1 nop0 ; utasítások nop1; illeszkededő nop0; complementary nop0; template 1001 nop1 ; utasítás

Tierra – Instruction Set #0 No Operations: 2 nop0 nop1 Memory Movement: 11 pushax (push AX onto stack) pushbx (push BX onto stack) pushcx (push CX onto stack) pushdx (push DX onto stack) popax (pop from stack into AX) popbx (pop from stack into BX) popcx (pop from stack into CX) popdx (pop from stack into DX) movcd (DX = CX) movab (BX = AX) movii (move from ram [BX] to ram [AX])

Tierra – Instruction Set #0 Calculation: 9 sub_ab (CX = AX - BX) sub_ac (AX = AX - CX) inc_a (increment AX) inc_b (increment BX) inc_c (increment CX) dec_c (decrement CX) zero (zero CX) not0 (flip low order bit of CX) shl (shift left all bits of CX)

Tierra – Instruction Set #0 Instruction Pointer Manipulation: 5 ifz (if CX == 0 execute next instruction, otherwise, skip it) jmp (jump to template) jmpb (jump backwards to template) call (push IP onto the stack, jump to template) ret (pop the stack into the IP)

Tierra – Instruction Set #0 Biological and Sensory: 5 adr (search outward for template, put address in AX, template size in CX) adrb (search backward for template, put address in AX, template size in CX) adrf (search forward for template, put address in AX, template size in CX) mal (allocate amount of space specified in CX) divide (cell division) Total: 32 instructions

Tierra – Hogyan kell programozni?  A rendszer felépítésből adódóan önreprodukáló kódot kell készíteni  Amit létre hozunk az un. creature  Ez él meg a Tierra-ban  Másnak nem sok értelme van  A Tierra számos eszközt biztosít, hogy a létrejött „populációt” megvizsgáljuk

Tierra – Hogyan kell programozni?  Önreprodukáló creature szerkezete Temlpate Önellenőrzés (méret), self-exam Template Reprodukciós ciklus, reproduction loop Template Másoló eljárás, copy procedure Template

find 0000 (start) -> bx find 0001 (end) -> ax calculate size -> cx Self-examination save registers to stack 1010 move [bx] -> [ax] decrement cx if cx == 0 jump 0100 increment ax & bx jump restore registers return allocate daughter -> ax call 0011 (copy procedure) cell division jump 0010 Reproduction Loop Copy Procedure 1100 Ancestor 0080aaa (coded by human)

find 0000 (start) -> bx find 0001 (end) -> ax calculate size -> cx save registers to stack 1010 move [bx] -> [ax] decrement cx if cx == 0 jump 0100 increment ax & bx jump restore registers return allocate daughter -> ax call 0011 (copy procedure) cell division jump Self-examination Reproduction Loop Copy Procedure Ancestor 0080aaa 1100

find 0000 (start) -> bx find 0001 (end) -> ax calculate size -> cx save registers to stack 1010 move [bx] -> [ax] decrement cx if cx == 0 jump 0100 increment ax & bx jump restore registers return allocate daughter -> ax call 0011 (copy procedure) cell division jump Self-examination Reproduction Loop Copy Procedure Mutant

find 0000 (start) -> bx find 0001 (end) -> ax calculate size -> cx 1101 allocate daughter -> ax call 0011 (copy procedure) cell division jump Self-examination Reproduction Loop Parasite 0045aaa

39 Ancestor 0080aaa Self-exam 1111 find 0000 (start) -> bx find 0001 (end) -> ax calculate size -> cx save registers to stack 1010 move [bx] -> [ax] decrement cx if cx == 0 jump 0100 increment ax & bx jump restore registers return allocate daughter -> ax call 0011 (copy procedure) cell division jump 0010 Reproduction Loop Copy Procedure 1100 Self-exam 1111 find 0000 (start) -> bx find 0001 (end) -> ax calculate size -> cx 1101 allocate daughter -> ax call 0011 (copy procedure) cell division jump 0010 Reproduction Loop 1110 Parasite 0045aaa

Tierra – 0080aaa ancestor **** begin genome file (note blank line at head of file) format: 3 bits: EXsh TCsh TPs MFs MTd MBh genotype: 0080aaa parent genotype: 0666god 1st_daughter: flags: 0 inst: 827 mov_daught: 80 breed_true: 1 2nd_daughter: flags: 0 inst: 809 mov_daught: 80 breed_true: 1 Origin: InstExe: 0,0 clock: 0 Thu Jan 01 -5:00: MaxPropPop: MaxPropInst: mpp_time: 0,0 ploidy: 1 track: 0 comments: the ancestor, written by a human, mother of all other creatures. track 0: nop1 ; beginning marker nop1 ; beginning marker nop1 ; beginning marker nop1 ; beginning marker zero ; put zero in cx not0 ; put 1 in first bit of cx shl ; shift left cx (cx = 2) shl ; shift left cx (cx = 4) movDC ; move cx to dx (dx = 4) adrb ; 110 1c 9 get (backward) address of beginning marker -> ax nop0 ; complement to beginning marker nop0 ; complement to beginning marker nop0 ; complement to beginning marker nop0 ; complement to beginning marker subAAC ; subtract cx from ax, result in ax

Tierra – 0080aaa ancestor movBA ; move ax to bx, bx now contains start address of mother adrf ; 110 1d 16 get (forward) address of end marker -> ax nop0 ; complement to end marker nop0 ; complement to end marker nop0 ; complement to end marker nop1 ; complement to end marker incA ; increment ax, to include dummy instruction at end subCAB ; subtract bx from ax to get size, result in cx nop1 ; reproduction loop marker nop1 ; reproduction loop marker nop0 ; reproduction loop marker nop1 ; reproduction loop marker mal ; 110 1e 27 allocate space (cx) for daughter, address to ax call ; call template below (copy procedure) nop0 ; copy procedure complement nop0 ; copy procedure complement nop1 ; copy procedure complement nop1 ; copy procedure complement divide ; 110 1f 33 create independent daughter cell jmpo ; jump to template below (reproduction loop) nop0 ; reproduction loop complement nop0 ; reproduction loop complement nop1 ; reproduction loop complement nop0 ; reproduction loop complement ifz ; dummy instruction to separate templates

Tierra – 0080aaa ancestor nop1 ; copy procedure template nop1 ; copy procedure template nop0 ; copy procedure template nop0 ; copy procedure template pushA ; 110 0c 44 push ax onto stack pushB ; 110 0d 45 push bx onto stack pushC ; 110 0e 46 push cx onto stack nop1 ; copy loop template nop0 ; copy loop template nop1 ; copy loop template nop0 ; copy loop template movii ; 110 1a 51 move contents of [bx] to [ax] (copy one instruction) decC ; 110 0a 52 decrement cx (size) ifz ; if cx == 0 perform next instruction, otherwise skip it jmpo ; jump to template below (copy procedure exit) nop0 ; copy procedure exit complement nop1 ; copy procedure exit complement nop0 ; copy procedure exit complement nop0 ; copy procedure exit complement incA ; increment ax (address in daughter to copy to) incB ; increment bx (address in mother to copy from)

Tierra – 0080aaa ancestor jmpo ; bidirectional jump to template below (copy loop) nop0 ; copy loop complement nop1 ; copy loop complement nop0 ; copy loop complement nop1 ; copy loop complement ifz ; this is a dummy instruction to separate templates nop1 ; copy procedure exit template nop0 ; copy procedure exit template nop1 ; copy procedure exit template nop1 ; copy procedure exit template popC ; pop cx off stack (size) popB ; pop bx off stack (start address of mother) popA ; pop ax off stack (start address of daughter) ret ; return from copy procedure nop1 ; end template nop1 ; end template nop1 ; end template nop0 ; end template ifz ; dummy instruction to separate creature **** end genome file

Tierra – start from scratch **** begin genome file (note blank line at top of file) format: 3 bits: 3 genotype: 0080aaa parent genotype: 0666god track 0: nop1 ; **** end genome file

Tierra - programozás  Mit veszünk érszre?  A kód temlate-ekkel tagolt részekre bontható  Fragment-ek, fraglet-tek, kód darabok  Ezek mentén könnyű „darabolni”  Dummy utasítások template elválasztásra

Tierra – a környezet használata  soup_in file, indító paraméterek  Ezzel jeletősen befolyásoljuk a program „végrehajtást”  Beagle explorer – a működés tanulmányozása  Gén bank  0080aaa.tie ancestor  Utasítás készletek

Tierra – a környezet használata  Segéd programok  Probe – a Tierra log file-ban hasonló genomokat keres  A Tierra is interaktív  Debug-olás is van a Tierra-ban és Beagle-ben  Rengeteg statisztika  Network Tierra

Tierra – mire jó?  Creature populációk vizsgálata  Hogyan változnak ?  Milyen jelenségek figyelhetők meg ?  Parazitizmus, alkalmazkodás, szexualitás működése  Például: a futtatások magas (több mint 70%-ban) megfigyelhető a loop unroll technika „kifejlődése”  Egyre kisebb creature-ok létrejötte

Mit vár Tom Ray?  Dramatikusan optimált gépi kód készítése  Meglévő szoftverek optimalizálása  Új szoftverek létrehozása  Az ember által készített programoknál nagyobb komplexitású programok készítése

Hasonló rendszerek  Avida, Michigan State University (a Tierra inspirálta), 1993  További követők …  További érdekesség: Artificial Chemistries Genetic Programming of an Algorithmic Chemistry (ACGP)  Stabil program struktúrák létrejötte

Tom Ray és a Tierra   A program és dokumetáció letölthető  Biztosan működik DOS, WIN XP és Linux alatt  2003-ban volt az utolsó kiadás  Nincs olyan sok publikáció, mint várnánk

Tierra – Tom Ray DEMÓ Köszönöm a figyelmet! Herczeg István ELTE, Budapest, 2011 április 28.