Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "TIERRA Herczeg István ELTE, Budapest, 2011. április 28."— Előadás másolata:

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

2 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”

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

4 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

5 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)

6 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.

7 Alapok – Neumann János

8 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)

9 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)

10 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!

11 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

12 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ó

13 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

14 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

15 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

16 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

17 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

18 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

19 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

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

21 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)

22 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

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

24 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

25 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

26 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”

27 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!

28 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

29 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])

30 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)

31 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)

32 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

33 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

34 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

35 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)

36 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

37 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

38 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 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

40 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

41 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

42 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)

43 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

44 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

45 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

46 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

47 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

48 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

49 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

50 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

51 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

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


Letölteni ppt "TIERRA Herczeg István ELTE, Budapest, 2011. április 28."

Hasonló előadás


Google Hirdetések