Transcript 8 paskaita
Biosistemų augimo ir evoliucijos modeliai Doc. Robertas Damaševičius KTU Programų inžinerijos katedra, Studentų 50-415 Email: [email protected] Fraktalai Fraktalo sąvoką apie 1980 m. įvedė Mandelbrot’as Fraktalas – objektas, kurio pagrindinė savybė yra savipanašumas, kai objektą galima išskaidyti į mažas dalis, kurios yra sumažintos visos objekto struktūros kopijos. Pavyzdžiui, medis, plaučiai, kraujotakos ir nervų sistema. Fraktalinės struktūros Kantoro (Cantor) aibė, Peano (Pean) kreivė, Kocho (Koch) kreivė, Sierpinskio (Sierpinski) trikampis ir kilimas, Žiulia (Julia) aibės. Bioinformatika (B110M100) 2 Mandelbrot’o fraktalas Fraktalų pavyzdžiai Natūralus fraktalas: Romanesco kopūstas Lichtenberg’o figūros Suformuoja aukštos įtampos (pvz., žaibo) iškrova Matematiniai fraktalų gavimo metodai Iteracinių funkcijų sistema (IFS) Atsitiktinių iteracinių funkcijų sistema (AIFS) L-sistemos Bioinformatika (B110M100) 6 Fraktalų demonstracija Fraktalinio augimo modelis http://apricot.polyu.edu.hk /~lam/dla/dla.html Bioinformatika (B110M100) 7 Sierpinski trikampis http://math.rice.edu/~lanius/fractals/sierjava.html Bioinformatika (B110M100) 8 IFS Pradinei figūrai pritaikomas afininių transformacijų rinkinys. Afininė transformacija w yra sudaryta iš posūkio, atspindžio, sumažinimo ir slinkties transformacijų. Pritaikius taškui P = (x, y) afininę transformaciją, gausime kitą tašką, kurio koordinatės P = (u, v) apskaičiuojamos taip: u = ax + by + e v = cx + dy + f a,..., f - transformacijos koeficientai Pritaikę afininių transformacijų rinkinį figūrai (taškų aibei), gausime kitą figūrą (kitą taškų aibę). Kartojant šį procesą kartosime, po tam tikro laiko gausime nesikeičiantį vaizdą, kuris yra vadinamas atraktoriumi. Praktiškai gali reikėti labai daug kartojimų Bioinformatika (B110M100) 9 IFS pavyzdys AIFS Taikomos ne visos transformacijos iš karto, bet tik viena iš jų, kuri yra pritaikoma tik vienam taškui. Jei yra n afininių transformacijų wi, tai joms parenkamos atitinkamos pasirodymo tikimybės pi (∑ pi =1). Konkrečios transformacijos taikymas priklauso nuo jos tikimybės. Tokiu būdu gaunama taškų aibė z 0 , z1 ws1 z 0 , z 2 ws 2 z1 , z 3 ws3 z 2 ,... s1, s2, s3 yra atsitiktiniai skaičiai iš intervalo [1...n]. Bioinformatika (B110M100) 11 AIFS: Kielek medis Bioinformatika (B110M100) 12 IFS demonstracija http://www.cut-the-knot.org/ctk/ifs.shtml Bioinformatika (B110M100) 13 L-sistema L-sistemas pirmasis panaudojo Lindenmajeris augalų ir dumblių augimo procesams aprašyti. Kiekviena ląstelė turi savo pažymėjimą - raidę, kuri gali reikšti ląstelės amžių, dydį ar kitokią laike kintančią charakteristiką. Įvedamos perrašymo taisyklės kiekvienai raidei. Pvz., ką tik gimusi ląstelė pažymima A raide, o suaugusi - B. Ląstelė subręsta per vieną laiko tarpsnį ir kitu tarpsniu pasidalina į dvi ląsteles. Bioinformatika (B110M100) 14 L-gramatikos Formaliai aprašo L-sistemas Apibrėžimas: Formali lygiagreti gramatika Taisyklės taikomos lygiagrečiai Savybės: lygiagretumas Neskiriami terminaliniai ir neterminaliniai skirtumai L-sistemų tipai: Nepriklauso nuo konteksto: taisyklė priklauso tik nuo vieno simbolio Jautri kontekstui: taisyklė priklauso ne tik nuo vieno simbolio, bet ir nuo jo kaimynų Stochastinės: kiekviena taisyklė pasirenkama su tam tikra tikimybe DNR sekų generavimas naudojant L-gramatikas Biologinis pagrindimas: Visi simboliai yra vienodi, nėra skirtumo tarp terminalinių ir neterminalinių simbolių Taisyklių tipai: Trynimo taisyklė A modeliuoja trynimo mutaciją Grandinės taisyklė A B modeliuoja vieno nukleotido mutaciją Kartojimo taisyklė A AA modeliuoja pasikartojančius sekų motyvus Augimo taisyklė A BC modeliuoja DNR sekos augimą (evoliuciją) Stochastinė taisyklė p : A B modeliuoja atsistiktines sekos mutacijas Formalus L-gramatikos aprašas G (V , , R, P) Čia: V A, C , G, T simbolių aibė V pradinė sistemos būsena. R V V simbolių generavimo taisyklės. P aibė tikimybių p 0,1 , kad taisyklė r R bus pritaikyta. K 1 L j j L-sistemos pavyzdys Tokiu atveju perrašymo taisyklės yra tokios: A → B ir B → AA. Jei pradėtume nuo vienos suaugusios ląstelės, gautume tokį vaizdą: B AA BB AAAA BBBB AAAAAAAA ir t.t. Jei parinktume grafinį gautos sekos pavaizdavimą, galėtume stebėti, kaip vyksta sistemos evoliucija laike: vystymąsis arba augimas. L-sistemos augimo pavyzdys Bioinformatika (B110M100) 19 L-sistemų pavyzdžiai Bioinformatika (B110M100) 20 Fraktalinis augalas Kintamieji : X F Konstantos : + − Pradžia : X Taisyklės : (X → F-[[X]+X]+F[+FX]-X), (F → FF) Kampas : 25° F reiškia “piešti į priekį" “-” reiškia “pasukti į kairę 25°" “+” reiškia " pasukti į dešinę25°" Bioinformatika (B110M100) 21 L-sistemų demonstracija http://zool33.uni-graz.at/schmickl/models/petersil.html http://jsxgraph.uni-bayreuth.de/wiki/index.php/L-systems http://to-campos.planetaclix.pt/fractal/plantae.htm Bioinformatika (B110M100) 22 Ląsteliniai automatai (LA) Hipotetinės mašinos, kurios egzistuoja begaliniame lauke, suskirstytame į elementarius laukelius, su tam tikromis taisyklėmis ir laukelio būsenų skaičiumi LA: paprastas erdvinės decentralizuotos sistemos modelis sudarytas iš atskirų komponentų (ląstelių) Ryšys tarp ląstelių yra apribotas vietine sąveika. Kiekviena atskira ląstelė yra tam tikroje būsenoje, kuri keičiasi laike priklausomai nuo jos kaimynių būsenos LA: lygiagretaus skaičiavimo įrenginys galintis modeliuoti sudėtingus gamtos reiškinius Bioinformatika (B110M100) 23 LA klasės 1 klasės LA evoliucionuoja į vieną homogeninę būseną 2 klasės LA turi paprastą periodinę struktūrą 3 klasės LA pasižymi chaotiniu (pseudoatsitiktiniu) elgesiu 4 klasės LA turi sudėtingą lokalizuotą struktūrą ir gali būti naudojamas kaip universalus skaičiavimo automatas “Gyvenimo žaidimas” (Life Game) “Gyvenimo žaidimas”: LA sukurtas 1970 m. Dž. Konvėjaus. Prielaidos "Žaidimo" erdvė - begalinė plokštuma, suskaidyta į lygaus dydžio kvadratėlius (ląsteles). Ląstelė (kvadratėlis lentoje) gali būti gyva arba mirusi Ląstelė (gyva ar ne), vis tiek sąveikauja su savo visais kaimynais (viso 8) Žaidimo taisyklės. Ląstelė, jei gyva, gali mirti iš vienatvės, kai turi mažiau nei 2 kaimynus. Ląstelė, jei gyva, gali mirti dėl grūsties, kai daugiau nei 3 kaimynus. Ląstelė lieka gyva, jei turi 2 ar 3 kaimynus. Ląstelė, jei negyva, gali "gimti", kai turi 3 kaimynus. Sistemos evoliucija „Gyvenimo žaidimas“ yra biologinės sistemos augimo ir savi-organizacijos iliustracija. Atsirandančios situacijos žaidimo metu yra panašios į realius procesus, vykstančius gimstant, vystantis ir mirštant gyvoms organizmų kolonijoms. Procesas, kuris yra determinuotas ir paklūsta aiškiems dėsniams, gali atrodyti chaotiškas ir neprognozuojamas. Vykstant evoliucijai galimos tokios sistemos būsenos: Regresija – kai visos ląstelės žūna (nors tai atsitinka ne iš karto) Stabilumas – sistema pereina į svyravimų režimą. Tai pusiausvyrinis arba ciklinis vystymasis. Katastrofa – sistema plečiasi be galo Eksperimentiškai parodyta, kad gyvenimo žaidimo taisyklės yra pusiausvyra tarp regresijos ir katastrofos. Praktinis pritaikymas Iš LA galima sukonstruoti loginius elementus "ir", "arba", "ne" ir netgi primityvų kompiuterį su aritmetiniu loginiu įtaisu, magistrale ir atmintimi Šis kompiuteris pasižymi universalios Tiuringo mašinos charakteristikomis ir gali spręsti bet kokio tipo uždavinius, kuriuos galima aprašyti algoritmiškai Pavyzdys: Belousovo-Žabotinskio (BŽ) reakcijos modeliavimas Cheminis osciliatorius Modeliuoja periodinius biologinius procesus gyvuosiuose organizmuose (pvz. širdies plakimas) Gali būti aprašomas Lotka-Volterra lygtimis arba LA Jei ląstelė yra būsenoje 1, ji pereina į [a/k1]+[b/k2]+1 būseną, kur a yra ląstelių kiekis tarpinėse būsenose (t.y. ne minimalioje ir ne maksimalioje), o b yra ląstelių kiekis max. būsenoje Jei ląstelė yra maksimalioje būsenoje, jos būsena pasikeičia į minimalią. Tarpinėse būsenose esančios ląstelės būsena turi būti suvidurkinta atsižvelgiant į kaimynų būsenas: [S/(a+b+1)]+g, kur S yra 8 kaimynių ir pačios ląstelės būsenų suma, o g vartotojo parinkta konstanta. http://mokslasplius.lt/rizikos-fizika/bz-reakcija Ląstelinių automatų demonstracija 5 LA tipai http://www.hermetic.ch/dnld.php?code=PCA Didelis taisyklių rinkinys http://www001.upp.so-net.ne.jp/suzudo/index_e.html Bioinformatika (B110M100) 29 Evoliuciniai skaičiavimai (ES) Apima genetinius algoritmus (GA), evoliucijos strategijas ir evoliucinį programavimą (EP). Remiasi fundamentaliais “natūralios evoliucijos” principais. Terminai buvo pasiskolinti iš biologijos ir genetikos, “individai” (arba “genotipai”, “struktūros”) populiacijoje yra vadinami “chromosomomis” (arba “eilutėmis”), “genai” (ar “savybės”, “tipai”, “šifratoriai”) yra chromosomų elementai (arba vienetai). Evoliucinė programa yra tikimybinis algoritmas, kuris aprašo individų populiaciją P(t) = x1(t),...,xn(t), kur t žymi iteracijų skaičių. Tipinis ES algoritmas Pradžia t < - 0 u ž d u o t i s k a i č i u o p r t i a d i n e P ( t ) s P ( t ) r kol (neįvykdyta sąlyga P a b a i g a c i k l o t - > t + 1 i š r i n p e r r s k a c i k p r k t i i n k t i i č i u o t i l o p a b a a d ž i a P ( t ) P ( t ) P ( t g a i i ) š e i – P ( k š m e s r i b a ) t + 1 ) s k a i č i u o t i ES procedūra 1) Problema apibrėžiama kaip n-mačio realių skaičių vektoriaus XR’, kuris maksimizuoja tikslo funkciją F(X), paieška. 2) Pradinių vektorių Xi, i = 1,...,P, populiacija atsitiktinai parenkama iš kiekvieno kintamojo galimų reikšmių intervalo. 3) Rezultatų vektorius, Xi’, i = 1,...,P, gaunamas prie kiekvieno vektoriaus tėvo Xi atsitiktinį dydį, pasiskirsčiusį pagal Gauso pasiskirstymą su nuliniu vidurkiu. 4) Lyginant paklaidas F(Xi) ir F(Xi’), i = 1,...,P išrenkamas vienas vektorius. P vektoriai su mažiausia paklaida tampa naujais kitos kartos tėvais. 5) Iteracijos 2-3 kartojamos tol, kol gaunamas pakankamas sprendinys ar baigiasi duotas skaičiavimo laikas. Genetiniai algoritmai (GA) 1) Apibrėžiama problema ir aprašoma tikslo funkcija. 2) Atsižvelgiant į apribojimus sugeneruojama galimų sprendimų X populiacija. X - “chromosoma”, o jos elementai - “genai”. 3) Kiekviena populiacijos chromosoma, Xi, i = 1,...,P, dekoduojama į formą, tinkamą skaičiavimui, ir jai priskiriama vertė atitinkanti tikslo funkciją. 4) Kiekvienai chromosomai priskiriama reprodukcijos tikimybė Pi, i = 1,...,P. 5) Iš esamos populiacijos sukuriama nauja chromosomų populiacija naudojant genetinius operatorius. 6) Procesas nutraukiamas, jeigu randamas tinkamas sprendimas arba baigiasi duotas skaičiavimo laikas. Priešingu atveju pereinama į 3 žingsnį ir ciklas kartojamas. Pagr. GA operatoriai Kryžminimas taikomas 2 chromosomom (tėvams) ir sukuria 2 naujas chromosomas (vaikus) parenkant atsitiktinę vietą dvejetainiame kode ir sujungiant dalį pirmos eilutės prieš pasirinktą vietą su dalimi antros eilutės po pasirinktos vietos Mutacija leidžia pakeisti bet kurį bitą naujo sprendimo kodo eilutėje Tipinis GA Pradžia g : = 0 S u k u Į v e r k o l g : / / r t i t i n n e = g + kartų skaitliukas p t i a t o l p u l i a c i j ą p o p u l i a c i i k t a P j ( ą g ) P ( g g ) / / 1 Pasirinkti P(g) iš P(g 1) Atlikti P(g) kryžminimą A t l i k t i P ( Įvertinti P a c i k l o b a i g a k o l p a g ) m P ( g ) b a i g u a t a c i j ą s u s k a i č i u o t i t i k s l o f - j o s r e i k š m e s GA ir ES palyginimas GA naudoja genetinių operatorių modelius, tokius kaip kryžminimas, inversija ir mutacija, ir taiko juos konkrečioms chromosomoms. ES naudoja mutuojančius tėvus ir jų vaikus individo ar sprendimų erdvės lygyje. Taikant GA reikalingas informacijos kodavimas (pervedimas į dvejetaines eilutes) ir dekodavimas (pervedimas iš dvejetainės eilutės į realius fizinius dydžius). ES gali tiesiogiai dirbti su natūraliomis duomenų struktūromis be kodavimo ir dekodavimo procesų. Demonstracija http://ccl.northwestern.edu/netlogo/models/SimpleGeneti cAlgorithm Bioinformatika (B110M100) 37