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