VYSOK ´
E U ˇ
CEN´I TECHNICK ´
E V BRN ˇ
E
BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA INFORMA ˇ
CN´ICH TECHNOLOGI´I
´
USTAV PO ˇ
C´ITA ˇ
COV ´
YCH SYST ´
EM ˚
U
FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS
EVOLU ˇ
CN´I N ´
AVRH VYU ˇ
Z´IVAJ´IC´I BOOLEOVSK ´
E S´IT ˇ
E
DIPLOMOV ´
A PR ´
ACE
MASTER’S THESIS
AUTOR PR ´
ACE
Bc. MICHAL MRNU ˇ
ST´IK
AUTHOR
VYSOK ´
E U ˇ
CEN´I TECHNICK ´
E V BRN ˇ
E
BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA INFORMA ˇ
CN´ICH TECHNOLOGI´I
´
USTAV PO ˇ
C´ITA ˇ
COV ´
YCH SYST ´
EM ˚
U
FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS
EVOLU ˇ
CN´I N ´
AVRH VYU ˇ
Z´IVAJ´IC´I BOOLEOVSK ´
E S´IT ˇ
E
EVOLUTIONARY DESIGN USING RANDOM BOOLEAN NETWORKS
DIPLOMOV ´
A PR ´
ACE
MASTER’S THESIS
AUTOR PR ´
ACE
Bc. MICHAL MRNU ˇ
ST´IK
AUTHOR
VEDOUC´I PR ´
ACE
Ing. MICHAL BIDLO, Ph.D.
SUPERVISOR
Abstrakt
Tato diplomov´a pr´ace pˇredstavuje moˇznosti vyuˇzit´ı booleovsk´ych s´ıt´ı jako v´yvojov´eho modelu v evoluˇcn´ım n´avrhu. Jsou zde pops´any reprezentace booleovsk´ych s´ıt´ı vhodn´e pro evoluˇcn´ı n´avrh vˇcetnˇe genetick´ych oper´ator˚u. Booleovsk´e s´ıtˇe jsou pouˇzity jako v´yvojov´y model pro v´yvoj kombinaˇcn´ıch obvod˚u a ˇradic´ıch s´ıt´ı. D´ale je uvedena jedna z moˇzn´ych re-prezentac´ı aplikovateln´a pro n´avrh obrazov´ych filtr˚u. Navrˇzen´e metody jsou experiment´alnˇe ovˇeˇreny a je navrˇzeno jejich potenci´aln´ı vylepˇsen´ı a smˇer dalˇs´ıho v´yzkumu.
Kl´ıˇ
cov´
a slova
Evoluˇcn´ı algoritmus, development, booleovsk´a s´ıt’, kombinaˇcn´ı obvod, ˇradic´ı s´ıt’, obrazov´y filtr.
Abstract
This master’s thesis introduces the Random Boolean Networks as a developmental model in the evolutionary design. The representation of the Random Boolean Networks is described. This representation is combined with an evolutionary algorithm. The genetic operators are described too. The Random Boolean Networks are used as the developmental model for the evolutionary design of the combinational circuits and the sorting networks. Moreover a representation of the Random Boolean Networks for the design of image filters is introduced. The proposed methods are evaluated in different case-studies. The results of the experiments are discussed together with the potential improvements and topics of the next research.
Keywords
Evolutionary design, development, Random Boolean Network, combinational circuit, sor-ting network, image filter.
Citace
Michal Mrnuˇst´ık: Evoluˇcn´ı n´avrh vyuˇz´ıvaj´ıc´ı booleovsk´e s´ıtˇe, diplomov´a pr´ace, Brno, FIT VUT v Brnˇe, 2010
Evoluˇ
cn´ı n´
avrh vyuˇ
z´ıvaj´ıc´ı booleovsk´
e s´ıtˇ
e
Prohl´
aˇ
sen´ı
Prohlaˇsuji, ˇze jsem tuto diplomovou pr´aci vypracoval samostatnˇe pod veden´ım pana Ing. Michala Bidla Ph.D. Uvedl jsem vˇsechny liter´arn´ı prameny a publikace, ze kter´ych jsem ˇcerpal.
. . . . Michal Mrnuˇst´ık
23. kvˇetna 2010
Podˇ
ekov´
an´ı
Pˇredevˇs´ım bych chtˇel podˇekovat vedouc´ımu pr´ace Ing. Michalu Bidlovi, Ph.D. za kvalitn´ı veden´ı a podporu.
c
Michal Mrnuˇst´ık, 2010.
Tato pr´ace vznikla jako ˇskoln´ı d´ılo na Vysok´em uˇcen´ı technick´em v Brnˇe, Fakultˇe in-formaˇcn´ıch technologi´ı. Pr´ace je chr´anˇena autorsk´ym z´akonem a jej´ı uˇzit´ı bez udˇelen´ı opr´avnˇen´ı autorem je nez´akonn´e, s v´yjimkou z´akonem definovan´ych pˇr´ıpad˚u.
Obsah
1 Uvod´ 3 2 Evoluˇcn´ı algoritmy 4 2.1 Genetick´y algoritmus . . . 5 2.1.1 V´ybˇer rodiˇc˚u . . . 6 2.1.2 Kˇr´ıˇzen´ı . . . 6 2.1.3 Mutace . . . 82.1.4 V´ybˇer jedinc˚u do n´asleduj´ıc´ı populace . . . 9
2.2 V´yvojov´e modely v evoluˇcn´ım n´avrhu . . . 9
2.2.1 Mapov´an´ı genotypu na fenotyp . . . 9
2.3 Implementace genetick´eho algoritmu . . . 10
3 Booleovsk´e s´ıtˇe 12 3.1 Struktura booleovsk´e s´ıtˇe . . . 12
3.2 Moˇznosti booleovsk´ych s´ıt´ı . . . 13
4 Booleovsk´e s´ıtˇe v evoluˇcn´ım n´avrhu 15 4.1 N´avrh reprezentace booleovsk´ych s´ıt´ı . . . 15
4.2 Genetick´e oper´atory pro booleovsk´e s´ıtˇe . . . 16
4.2.1 Mutace . . . 16
4.2.2 Kˇr´ıˇzen´ı . . . 16
5 N´avrh kombinaˇcn´ıch obvod˚u pomoc´ı booleovsk´ych s´ıt´ı 17 5.1 N´avrh obvodu booleovskou s´ıt´ı . . . 17
5.2 Reprezentace a genetick´e oper´atory . . . 19
5.3 Fitness funkce . . . 19
5.4 Experimenty . . . 20
5.4.1 N´asobiˇcka . . . 20
5.4.2 Sˇc´ıtaˇcka . . . 22
5.4.3 Radic´ı obvod . . . .ˇ 24 5.4.4 Medi´anov´y obvod . . . 25
6 N´avrh ˇradic´ıch s´ıt´ı 28 6.1 Radic´ı s´ıtˇˇ e a kompar´atory . . . 28
6.2 N´avrh ˇradic´ı s´ıtˇe booleovskou s´ıt´ı . . . 28
7 N´avrh filtru pro odstraˇnov´an´ı ˇsumu 31
7.1 Impulsn´ı ˇsum a jeho odstraˇnov´an´ı . . . 31
7.2 Neline´arn´ı filtr realizovan´y booleovskou s´ıt´ı . . . 31
7.2.1 Fitness funkce . . . 33
7.2.2 Filtr s r˚uzn´ym poˇctem krok˚u . . . 33
7.2.3 Tr´enovac´ı data . . . 33
7.3 Experimenty . . . 34
7.3.1 Filtr s pevnˇe dan´ym poˇctem krok˚u . . . 34
7.3.2 Filtr s pevnˇe dan´ym poˇctem krok˚u pouˇz´ıvaj´ıc´ı pouze logick´e funkce 37 7.3.3 Filtr s nastaviteln´ym poˇctem krok˚u . . . 38
7.3.4 Celkov´e srovn´an´ı . . . 41
Kapitola 1
´
Uvod
V kaˇzd´em oboru existuj´ı zaˇzit´e postupy a metody. Ty jsou odzkouˇseny l´ety praxe a fun-guj´ı. V´ysledky, kter´ych je dosaˇzeno, jsou vˇsak do urˇcit´e m´ıry omezen´e. Evoluˇcn´ı n´avrh umoˇzˇnuje v urˇcit´ych pˇr´ıpadech nalezen´ı lepˇs´ıch ˇreˇsen´ı, neˇz jak´e poskytuj´ı zaˇzit´e postupy. Tak´e nevyˇzaduje tolik znalost´ı v dan´em oboru jako konvenˇcn´ı n´avrhov´e metody a umoˇzˇnuje ˇ
c´asteˇcnou automatizaci.
C´ılem t´eto diplomov´e pr´ace je vyuˇzit´ı booleovsk´e s´ıtˇe jako v´yvojov´eho modelu v evoluˇcn´ım n´avrhu. Konkr´etnˇe se zab´yv´a aplikac´ı booleovsk´ych s´ıt´ı jako konstruktoru kombinaˇcn´ıch obvod˚u a d´ale jejich vyuˇzit´ım pˇri filtrov´an´ı obrazu.
Z´akladem evoluˇcn´ıho n´avrhu jsou evoluˇcn´ı algoritmy. Ty jsou zaloˇzeny na simulaci pˇrirozen´eho v´ybˇeru, kter´y prob´ıh´a v pˇr´ırodˇe (viz [4]). Schopnost pˇreˇz´ıt je vyj´adˇrena schop-nost´ı ˇreˇsit urˇcit´y probl´em. Evoluˇcn´ım algoritm˚um a jejich rozˇs´ıˇren´ım o v´yvojov´e modely se vˇenuje kapitola 2. Problematika evoluˇcn´ıch algoritm˚u je velmi rozs´ahl´a, proto jsou pops´any jen z´akladn´ı principy a informace nutn´e k pochopen´ı dalˇs´ıch kapitol.
V kapitole 3 jsou pops´any booleovsk´e s´ıtˇe, jejich struktura a moˇznosti. P˚uvodn´ı model slouˇz´ıc´ı jako genetick´a regulaˇcn´ı s´ıt’ byl v kapitole 4 upraven, aby mohl slouˇzit jako v´yvojov´y model pˇri evoluˇcn´ım n´avrhu. Proto byla navrˇzena reprezentace booleovsk´e s´ıtˇe a genetick´e oper´atory aplikovateln´e na tuto reprezentaci.
Pomoc´ı evoluˇcn´ıho n´avrhu lze navrhovat tak´e hardware a software a existuje mnoho metod jak toho dos´ahnout. V kapitole 5 je uvedeno jak za pouˇzit´ı booleovsk´ych s´ıt´ı na-vrhovat hardware. Konkr´etnˇe se jedn´a o kombinaˇcn´ı obvody na ´urovni hradel. Uveden´a metoda navazuje na postup popsan´y v [3], kde se k n´avrhu kombinaˇcn´ıch obvod˚u vyuˇz´ıvaj´ı celul´arn´ı automaty. V t´eto kapitole jsou tak´e pops´any v´ysledky experiment˚u, jeˇz mˇely za c´ıl navrhnout r˚uzn´e typy kombinaˇcn´ıch obvod˚u.
Kapitola 6 se zab´yv´a n´avrhem ˇradic´ıch s´ıt´ı. Koncept z kapitoly 5 je upraven, aby m´ısto hradel mohly b´yt pouˇzity kompar´atory a tak´e musel b´yt pˇrizp˚usoben struktuˇre ˇradic´ı s´ıtˇe. Kapitola 7 se zab´yv´a n´avrhem filtru. Model booleovsk´ych s´ıt´ı popsan´y v kapitole 3 je upra-ven tak, aby odpov´ıdal reprezentaci obrazu a operac´ım, kter´e s n´ım m´a smysl prov´adˇet. Je navrˇzeno nˇekolik typ˚u filtr˚u, kter´e jsou otestov´any a v´ysledky jsou srovn´any s medi´anov´ym filtrem.
Na z´avˇer v kapitole 8 je uvedeno shrnut´ı navrˇzen´ych metod, jejich celkov´e zhodnocen´ı a n´avrh moˇznost´ı dalˇs´ıho v´yzkumu. Diplomov´a pr´ace navazuje na stejnojmenn´y semestr´aln´ı projekt vypracovan´y v zimn´ım semestru akademick´eho roku 2009/2010. V´ysledky tohoto projektu jsou vyuˇzity v kapitol´ach 2, 3, 4 a 5.
Kapitola 2
Evoluˇ
cn´ı algoritmy
Pˇr´ıroda a jej´ı z´akony se uk´azaly jako dobr´a inspirace pˇri v´yvoji v´ypoˇcetn´ıch metod. Z´aklady pro evoluˇcn´ı algoritmy poloˇzil Charles Darwin svou teori´ı pˇrirozen´eho v´ybˇeru. Ta je pops´ana v [4]. Druhy ob´yvaj´ıc´ı naˇsi planetu se jiˇz po miliony let vyv´ıjely z jednobunˇeˇcn´ych orga-nism˚u. Pˇreˇz´ıvaj´ı ty, kter´e se dok´azaly pˇrizp˚usobit okoln´ım podm´ınk´am l´epe neˇz ostatn´ı.
Evoluˇcn´ı algoritmy se pouˇz´ıvaj´ı k ˇreˇsen´ı sloˇzit´ych optimalizaˇcn´ıch probl´em˚u, kde nee-xistuje jin´y postup nebo je ˇcasovˇe pˇr´ıliˇs n´aroˇcn´y. Pracuj´ı na podobn´em principu jako evo-luce v pˇr´ırodˇe. M´ısto jednotliv´ych organism˚u m´ame jedince pˇredstavuj´ıc´ı ˇreˇsen´ı probl´emu. Jedinec b´yv´a definov´an svou vnitˇrn´ı reprezentac´ı (tzv. genomem) a hodnotou fitness, kter´a pˇredstavuje ˇc´ıselnˇe vyj´adˇrenou kvalitu ˇreˇsen´ı, kter´e jedinec pˇredstavuje. Genom m´ıv´a r˚uznou reprezentaci. Nejˇcastˇeji b´yv´a genom reprezentov´an bin´arnˇe nebo vektorem re´aln´ych ˇ
ci pˇrirozen´ych ˇc´ısel, ale lze pouˇz´ıt cokoli, co bude vhodn´e (znaky, stromy, atd.). Fitness funkce je kl´ıˇcov´ym bodem pˇri n´avrhu evoluˇcn´ıho algoritmu. Mˇela by b´yt v´ypoˇcetnˇe co nejm´enˇe n´aroˇcn´a. D´ale mus´ı platit, ˇze ˇc´ım vyˇsˇs´ı (nebo niˇzˇs´ı, pokud hled´ame minimum) je hodnota fitness, t´ım kvalitnˇejˇs´ı ˇreˇsen´ı jedinec poskytuje. Tak´e je vhodn´e, aby prostor, kter´y prohled´av´ame, neobsahoval mnoho lok´aln´ıch maxim, ale postupnˇe stoupal ke glob´aln´ımu maximu (viz obr´azek 2.1).
fitness fitness
Obr´azek 2.1: Vlevo nevhodn´e a vpravo vhodn´e rozloˇzen´ı fitness v prohled´avan´em prostoru Podle [12] rozliˇsujeme evoluˇcn´ı algoritmy pˇredevˇs´ım na genetick´e algoritmy, evoluˇcn´ı strategie a genetick´e programov´an´ı.
Mutace i kˇr´ıˇzen´ı se projevuje na ´urovni jednotliv´ych bit˚u.
• Evoluˇcn´ı strategie (viz [16] a [17]) reprezentuje jedince jako vektor re´aln´ych ˇc´ısel. Pro kˇr´ıˇzen´ı a mutaci lze pouˇz´ıt jak metod pouˇz´ıvan´ych pro genetick´e algoritmy, tak r˚uzn´ych vektorov´ych operac´ı.
• Genetick´e programov´an´ı (viz [11]) je vytv´aˇren´ı algoritm˚u pomoc´ı evoluˇcn´ıho procesu. Na obr´azku 2.2 je sch´ema obecn´eho evoluˇcn´ıho algoritmu. Jednotliv´e varianty, kter´e byly uvedeny v´yˇse se liˇs´ı v tom, jak´ym zp˚usobem z´ısk´avaj´ı dalˇs´ı populaci z t´e st´avaj´ıc´ı. K n´avrhu metod v t´eto pr´aci byl vybr´an genetick´y algoritmus, kter´emu se budeme vˇenovat d´ale.
vyhodnocení fitness
je splněna některá
z ukončovacích podmínek?
vytvoření další populace
vyhodnocení fitness ANO
NE
vytvoření počáteční populace
konec
Obr´azek 2.2: Sch´ema obecn´eho evoluˇcn´ıho algoritmu podle [2]
2.1
Genetick´
y algoritmus
Na obr´azku 2.3 jsou jednotliv´e f´aze genetick´eho algoritmu. Na zaˇc´atku je n´ahodnˇe vy-generov´ana populace jedinc˚u. Je vyhodnocena jejich fitness. N´aslednˇe se kontroluje, zda nebyla splnˇena nˇekter´a ukonˇcovac´ı podm´ınka (napˇr. dosaˇzen´ı urˇcit´e hodnoty fitness, ma-xim´aln´ıho poˇctu generac´ı atd.). Pak jsou vybr´ani rodiˇce n´asleduj´ıc´ı populace (viz 2.1.1). Kˇr´ıˇzen´ım a mutac´ı z nich z´ısk´ame potomky a vyhodnot´ıme jejich fitness. V´ybˇerem z rodiˇc˚u a potomk˚u nahrad´ıme st´avaj´ıc´ı populaci. Tak algoritmus pokraˇcuje, dokud nen´ı splnˇena ukonˇcovac´ı podm´ınka.
Obr´azek 2.3: Sch´ema genetick´eho algoritmu
Ve zbytku t´eto podkapitoly jsou pˇr´ıklady postup˚u pro jednotliv´e kroky evoluˇcn´ıho algo-ritmu. Kter´ykoli z nich lze nahradit jin´ym (vhodnˇejˇs´ım) postupem pro konkr´etn´ı probl´em.
2.1.1 V´ybˇer rodiˇc˚u
Existuj´ı r˚uzn´e postupy jak vybrat jedince, kteˇr´ı se stanou rodiˇci n´asleduj´ıc´ı populace. V´ybˇer prob´ıh´a tak, aby jedinci s vyˇsˇs´ı fitness mˇeli vˇetˇs´ı ˇsanci st´at se rodiˇci, ale urˇcitou roli hraje i n´ahoda. V´ybˇer prob´ıh´a tolikr´at, kolik potˇrebujeme rodiˇc˚u (jedinec m˚uˇze b´yt vybr´an i v´ıckr´at). Jedn´ım z algoritm˚u, kter´e lze pouˇz´ıt k v´ybˇeru rodiˇc˚u, je proporcion´aln´ı v´ybˇer (tzv. v´aˇzen´a ruleta), kter´y je pops´an algoritmem 2.4. Dalˇs´ı moˇznost´ı je turnajov´y v´ybˇer popsan´y algoritmem 2.5. Na vybran´e rodiˇce jsou aplikov´any oper´atory kˇr´ıˇzen´ı a mutace.
2.1.2 Kˇr´ıˇzen´ı
Kˇr´ıˇzen´ım se kombinuj´ı vlastnosti dvou jedinc˚u (v nˇekter´ych pˇr´ıpadech lze pouˇz´ıt jedinc˚u i v´ıce, ale vˇetˇsinou k tomu nen´ı d˚uvod). C´ılem je vznik jedince lepˇs´ıho neˇz kter´ykoli z rodiˇc˚u. Postupy mohou b´yt velmi rozmanit´e a lze je r˚uznˇe kombinovat. V nˇekter´ych pˇr´ıpadech nen´ı pro pouˇzit´ı kˇr´ıˇzen´ı d˚uvod, a tak se vynech´av´a.
Mezi nejpouˇz´ıvanˇejˇs´ı patˇr´ı jednobodov´e kˇr´ıˇzen´ı, kter´e je zn´azornˇeno na obr´azku 2.6 a pops´ano v algoritmu 2.7.
Existuj´ı i varianty, kde se generuje v´ıce bod˚u kˇr´ıˇzen´ı. Napˇr´ıklad u dvou bod˚u vzniknou tˇri ˇc´asti A,B a C. Potomci vzniknou v´ymˇenou ˇc´ast´ı B.
• Spoˇc´ıtej souˇcet hodnoty fitness pro vˇsechny jedince v populaci S: S = P X j=1 f itness(i).
P je velikost populace a j ukazuje na jednotliv´e jedince v populaci. • Generuj n´ahodn´e ˇc´ıslo x ∈ h0, 1i.
• Opakuj postupnˇe pro jedince j od 1 do P dokud x > 0: x = x −f itness(j)
S
Jedinec u kter´eho je dosaˇzeno x ≤ 0 je vybr´an jako rodiˇc. Funkce f itness(j) znaˇc´ı hodnotu fitness funkce jedince j.
Algoritmus 2.4: Proporcion´aln´ı v´ybˇer (v´aˇzen´a ruleta)
• N´ahodnˇe vyber x jedinc˚u z populace.
• Z tˇechto x jedinc˚u vyber toho s nejlepˇs´ı fitness jako rodiˇce.
Algoritmus 2.5: Turnajov´y v´ybˇer o z´akladu x
Kˇr´ıˇzen´ı by mˇelo b´yt navrˇzeno tak, aby nerozb´ıjelo ty ˇc´asti genomu, kter´e zapˇr´ıˇciˇnuj´ı vysokou fitness jedince, ale aby vhodnˇe kombinovalo tyto ˇc´asti z obou rodiˇc˚u. Pokud m´ame napˇr´ıklad bin´arnˇe k´odovan´y genom, ve kter´em je zahrnuto v´ıce ˇc´ast´ı (dejme tomu bin´arnˇe reprezentovan´y vektor pˇrirozen´ych ˇc´ısel), b´yv´a vˇetˇsinou vhodnˇejˇs´ı volit body kˇr´ıˇzen´ı na hranici tˇechto ˇc´ast´ı. Potomek tak bude opravdu jen kombinac´ı rodiˇc˚u a nebudou se v nˇem objevovat prvky, kter´e ˇz´adn´y z rodiˇc˚u neobsahuje. Toto kˇr´ıˇzen´ı lze pouˇz´ıt i na genom re-prezentovan´y vektorem re´aln´ych ˇc´ısel, jen m´ısto bit˚u jsou sloˇzky vektoru. Dalˇs´ı pouˇzitelnou metodou je kˇr´ıˇzen´ı pr˚umˇerem (viz [12]). Ze sloˇzek rodiˇcovsk´ych vektor˚u r1 a r2 vznikne
jedin´y potomek s odpov´ıdaj´ıc´ı sloˇzkou p = r1+r2
2 . Odliˇsn´y pˇr´ıstup je kˇr´ıˇzen´ı line´arn´ı
kombi-nac´ı rodiˇc˚u. Pro kaˇzdou sloˇzku r1 a r2 rodiˇcovsk´ych vektor˚u a ˇc´ıslo x v intervalu h0, 1i jsou
vypoˇc´ıt´any sloˇzky potomk˚u:
p1 = xr1+ (1 − x)r2 (2.1)
p2 = (x − 1)r1+ xr2 (2.2)
Obr´azek 2.6: Jednobodov´e kˇr´ıˇzen´ı
• Vyber dva rodiˇce A, B. • N´ahodnˇe zvol bod kˇr´ıˇzen´ı.
• A0 vznikne z t´e ˇc´asti A, kter´a leˇz´ı pˇred bodem kˇr´ıˇzen´ı a z ˇc´asti B leˇz´ıc´ı za bodem
kˇr´ıˇzen´ı.
• B0 vznikne z t´e ˇc´asti B, kter´a leˇz´ı pˇred bodem kˇr´ıˇzen´ı a z ˇc´asti A leˇz´ıc´ı za bodem
kˇr´ıˇzen´ı.
Algoritmus 2.7: Jednobodov´e kˇr´ıˇzen´ı
2.1.3 Mutace
V pr˚ubˇehu evoluˇcn´ıho algoritmu je vhodn´e, kdyˇz se v populaci objev´ı prvky, kter´ych nelze dos´ahnout kˇr´ıˇzen´ım. To zajiˇst’uje pr´avˇe mutace. Algoritmus 2.8 popisuje z´akladn´ı postup mutace pro bin´arn´ı genom. U re´aln´ych nebo celoˇc´ıseln´ych genom˚u se neprov´ad´ı negace, ale napˇr´ıklad souˇcet s pˇredem stanoven´ym nebo n´ahodnˇe generovan´ym ˇc´ıslem v urˇcit´em rozsahu.
• Pro kaˇzd´y bit b v genomu: – N´ahodnˇe generuj x ∈ h0, 1i. – Pokud x ≤ pm neguj b.
Algoritmus 2.8: Mutace bin´arn´ıho genomu
U mutace je velmi d˚uleˇzit´a velikost pravdˇepodobnosti pm s jakou k mutaci dojde. Pˇr´ıliˇs
n´ızk´a hodnota zp˚usob´ı, ˇze se mutace neprojev´ı a do evoluce nezas´ahne. Pˇrehnanˇe vysok´a pravdˇepodobnost zmˇen´ı jedince tak, ˇze by se od p˚uvodn´ıho liˇsil stejnˇe jako n´ahodnˇe gene-rovan´y.
2.1.4 V´ybˇer jedinc˚u do n´asleduj´ıc´ı populace
Pot´e, co m´ame k dispozici potomky vznikl´e kˇr´ıˇzen´ım a mutac´ı, je tˇreba vybrat, kteˇr´ı jedinci se budou ´uˇcastnit dalˇs´ıho pr˚ubˇehu evoluce. Pouˇz´ıvaj´ı se r˚uzn´e kombinace pˇredchoz´ı populace a potomk˚u. Rodiˇce a potomky lze spojit do jedn´e populace a z n´ı potom vybrat potˇrebn´y poˇcet jedinc˚u pomoc´ı postup˚u popsan´ych v podkapitole 2.1.1. Tak´e lze vybrat ty nejlepˇs´ı (tzv. elitismus), nebo celou pˇredchoz´ı populaci nahradit potomky.
2.2
V´
yvojov´
e modely v evoluˇ
cn´ım n´
avrhu
Evoluˇcn´ı n´avrh je pouˇzit´ı evoluˇcn´ıch algoritm˚u k ˇcinnosti, kterou bychom oznaˇcili jako tv˚urˇc´ı, pokud by ji prov´adˇel ˇclovˇek. M˚uˇze se jednat o n´avrh strojn´ıch souˇc´ast´ı, staveb, hardwaru, analogov´ych obvod˚u atd. Po v´ysledku poˇzadujeme, aby vyhovoval poˇzadavk˚um l´epe, nebo aby n´avrh trval kratˇs´ı dobu, neˇz kdyby ho prov´adˇel odborn´ık v dan´e oblasti. V´yhodou je, ˇze evoluˇcn´ı n´avrh m˚uˇze b´yt znaˇcnˇe inovativn´ı, protoˇze bere do ´uvahy i ˇreˇsen´ı, kter´ych nelze dos´ahnout konvenˇcn´ım postupem. M˚uˇzeme tak objevit vˇeci, na kter´e by ˇclovˇek nikdy nepˇriˇsel (napˇr´ıklad [21]).
Pomoc´ı evoluˇcn´ıch algoritm˚u, tak jak jsou pops´any v pˇredchoz´ı kapitole, a vhodn´eho zak´odov´an´ı lze pomˇernˇe efektivnˇe vyv´ıjet jednoduch´e struktury, jako napˇr´ıklad kombinaˇcn´ı obvody (napˇr´ıklad [22]). Pokud bychom vˇsak chtˇeli vytv´aˇret obvody sloˇzitˇejˇs´ı, tak se zvˇetˇs´ı prostor, kter´y mus´ı evoluˇcn´ı algoritmus prohled´avat. To je zp˚usobeno t´ım, ˇze vˇetˇs´ı a sloˇzitˇejˇs´ı obvod sest´av´a z v´ıce hradel a t´ım se zvˇetˇs´ı velikost genomu, kter´y m´a tento ob-vod reprezentovat. Dalˇs´ı komplikac´ı je, ˇze poˇcet kombinac´ı, kter´e mus´ıme testovat, roste exponenci´alnˇe s poˇctem vstup˚u obvodu. Hovoˇr´ıme o tzv. probl´emu ˇsk´alovatelnosti.
Tento probl´em lze ˇreˇsit pomoc´ı v´yvojov´ych model˚u (tzv. development). Stejnˇe jako evoluˇcn´ı algoritmy i v´yvojov´e modely naˇsly svou inspiraci v pˇr´ırodˇe. V tomto pˇr´ıpadˇe vˇsak ve v´yvoji v´ıcebunˇeˇcn´ych organism˚u. Vlastnosti a schopnosti organism˚u jsou d´any moleku-lou DNA. Z jedin´e buˇnky vznikne mnohobunˇeˇcn´y organismus, napˇr´ıklad ˇclovˇek. Jeho v´yvoj je d´an pr´avˇe DNA a prostˇred´ım. Nab´ız´ı se tedy moˇznost nehledat pomoc´ı evoluˇcn´ıho algo-ritmu pˇr´ımo ˇreˇsen´ı, ale nˇejak´y pˇredpis (napˇr. algoritmus), pomoc´ı kter´eho ˇreˇsen´ı z´ısk´ame. V´yvojov´e modely v evoluˇcn´ım n´avrhu pˇredstavuj´ı netrivi´aln´ı zp˚usob mapov´an´ı mezi geno-typy a fenogeno-typy.
Algoritmus 2.9 pˇrevzat´y z [1] je uk´azkou genetick´eho algoritmu s developmentem. Oproti klasick´emu evoluˇcn´ımu algoritmu obsahuje aplikaci v´yvojov´eho modelu na jedince. Teprve z v´ysledku t´eto operace se poˇc´ıt´a fitness funkce, jej´ıˇz hodnota je n´aslednˇe pˇriˇrazena jedinci.
2.2.1 Mapov´an´ı genotypu na fenotyp
Pˇr´ıroda vytvoˇrila DNA jako reprezentaci genotypu. Postup, kter´ym DNA urˇcuje v´yvoj organismu (fenotypu), jeˇstˇe nen´ı ´uplnˇe prozkoum´an. Pˇri pouˇzit´ı v´yvojov´eho modelu je tedy tˇreba navrhnout reprezentaci genotypu, genetick´e oper´atory (kˇr´ıˇzen´ı a mutace, viz podkapitoly 2.1.2 a 2.1.3) a postup jak´ym se z genotypu stane fenotyp. Nen´ı nutn´e, aby byl tak sloˇzit´y a univerz´aln´ı jako ten pˇr´ırodn´ı. Staˇc´ı, kdyˇz pˇrinese v´yhody oproti pˇr´ım´emu mapov´an´ı. Jednou z takov´ych v´yhod m˚uˇze b´yt, ˇze nevyv´ıj´ıme obvod urˇcit´e velikosti, ale najdeme postup pro n´avrh libovolnˇe velk´ych obvod˚u. To bylo provedeno napˇr´ıklad pro ˇradic´ı s´ıtˇe (viz [18]). Byla pouˇzita mal´a ˇradic´ı s´ıt’ a pomoc´ı evoluˇcn´ıho algoritmu byl nalezen pˇredpis, kter´y ji postupnˇe upravoval aˇz na poˇzadovanou velikost.
1. ˇCas t = 0.
2. N´ahodnˇe generuj jedince v populaci P (t). 3. Aplikuj development na kaˇzd´eho jedince v P (t). 4. Vypoˇcti fitness takto z´ıskan´ych ˇreˇsen´ı.
5. Pˇriˇrad’ fitness jedinc˚um.
6. Dokud nen´ı splnˇena ukonˇcovac´ı podm´ınka opakuj: • Vyber rodiˇce z P (t).
• Kˇr´ıˇzen´ım a mutac´ı z´ıskej potomky O(t). • Aplikuj development kaˇzd´eho jedince v O(t). • Vypoˇcti fitness takto z´ıskan´ych ˇreˇsen´ı. • Pˇriˇrad’ fitness jedinc˚um.
• Z O(t) a P (t) vyber populaci P (t + 1). • Aktualizuj ˇcas t = t + 1.
Algoritmus 2.9: Genetick´y algoritmus s developmentem
V [6] je pˇr´ıstup k v´yvojov´ym model˚um rozdˇelen na explicitn´ı a implicitn´ı. Explicitn´ı pˇr´ıstup je zaloˇzen na pouˇzit´ı embrya. Embryo je z´arodek s urˇcitou ˇc´ast´ı poˇzadovan´e funkˇcnosti. Evoluˇcn´ım algoritmem hled´ame pˇredpis k jeho modifikaci aˇz do dosaˇzen´ı poˇzadovan´e funkˇcnosti. Tento pˇr´ıstup je vyuˇzit v jiˇz zmiˇnovan´em ˇcl´anku [18].
Implicitn´ı pˇr´ıstup pouˇz´ıv´a gramatiky a pˇrepisovac´ı pravidla podobnˇe jak jsou pouˇz´ıv´any ve form´aln´ıch jazyc´ıch. M´ame nˇejak´y poˇc´ateˇcn´ı symbol a hled´ana jsou pˇrepisovac´ı pravidla. Do t´eto skupiny patˇr´ı i pouˇzit´ı Lindenmayerov´ych syst´em˚u (viz [13]). Ty se od bˇeˇzn´ych gramatik liˇs´ı v tom, ˇze je aplikov´ano v´ıce pˇrepisovac´ıch pravidel paralelnˇe v jednom kroku. Pouˇzito je to napˇr´ıklad v [7].
2.3
Implementace genetick´
eho algoritmu
Implementace se drˇz´ı sch´ematu z obr´azku 2.3. N´ahodnˇe se vygeneruj´ı booleovsk´e s´ıtˇe (viz kapitola 4), provede se jejich v´yvoj a v´ysledek je ohodnocen. To je pops´ano v kapitol´ach zab´yvaj´ıc´ıch se konkr´etn´ımi aplikacemi. Poˇcet generovan´ych s´ıt´ı z´avis´ı na zvolen´e velikosti poˇc´ateˇcn´ı populace. Jedince je tˇreba ohodnotit pouze jednou, protoˇze podm´ınky vyhodno-cen´ı fitness funkce se v pr˚ubˇehu algoritmu nemˇen´ı.
K v´ybˇeru rodiˇc˚u je pouˇzit turnaj (viz algoritmus 2.5). N´ahodnˇe jsou vybr´ani dva jedinci a ten lepˇs´ı z nich se stane rodiˇcem. Vˇzdy dva rodiˇce se spolu kˇr´ıˇz´ı (viz podkapitola 4.2.2) a vzniknou dva potomci. Kˇr´ıˇzen´ı prob´ıh´a vˇzdy, ale kdyˇz je jako bod kˇr´ıˇzen´ı vybr´an prvn´ı nebo posledn´ı prvek genomu, tak se kˇr´ıˇzen´ı neprojev´ı. Na potomky je d´ale aplikov´an oper´ator mutace, kter´y je pops´an v podkapitole 4.2.1. Takto vytvoˇr´ıme tolik potomk˚u, jak´a je velikost populace, provedeme jejich v´yvoj a vyhodnot´ıme fitness.
Potomci jsou um´ıstˇeni do pˇredchoz´ı populace a ta je seˇrazena podle hodnoty fitness. Nejhorˇs´ı jedinci, kteˇr´ı pˇresahuj´ı velikost populace, jsou zahozeni. Takto evoluce pokraˇcuje, dokud nenalezne jedince s nejlepˇs´ı moˇznou fitness (napˇr´ıklad funkˇcn´ı kombinaˇcn´ı obvod), nebo nedos´ahne nastaven´eho omezen´ı poˇctu generac´ı.
Kapitola 3
Booleovsk´
e s´ıtˇ
e
Booleovsk´e s´ıtˇe (Random Boolean Networks, d´ale RBN) byly navrˇzeny Stuartem Kauff-mannem (viz [9]) jako model pro genetick´e regulaˇcn´ı s´ıtˇe. P˚uvodn´ım c´ılem byl tedy v´yzkum princip˚u ˇzivota, ale podle [5] naˇsly uplatnˇen´ı napˇr´ıklad v matematice, sociologii, neuro-nov´ych s´ıt´ıch a robotice. Od Kauffmanova n´avrhu vzniklo nˇekolik modifikac´ı, ale v t´eto kapitole bude pops´ana p˚uvodn´ı verze.
3.1
Struktura booleovsk´
e s´ıtˇ
e
S´ıt’ se skl´ad´a z N uzl˚u. Kaˇzd´y uzel m˚uˇze nab´yvat hodnoty 1 nebo 0 (odtud booleovsk´e) a je pˇripojen na K libovoln´ych uzl˚u. M˚uˇze b´yt pˇripojen v´ıckr´at k jednomu uzlu i s´am k sobˇe. Propojen´ı uzl˚u je hlavn´ı rozd´ıl oproti bin´arn´ımu celul´arn´ımu automatu, kde n´asleduj´ıc´ı stav z´avis´ı na buˇnk´ach v sousedstv´ı. Booleovsk´e s´ıtˇe jsou tedy zobecnˇen´ım bin´arn´ıho celul´arn´ıho automatu. Na obr´azku 3.3 v ˇc´asti (a) je zobrazen pˇr´ıklad sch´ematu booleovsk´e s´ıtˇe s N = 3 a K = 2.
Kaˇzd´y uzel v sobˇe obsahuje logickou funkci fi, kter´a ze stav˚u si(t) pˇripojen´ych uzl˚u urˇc´ı
dalˇs´ı stav si(t+ 1). Podle Kauffmanova modelu z´avis´ı stav uzlu v ˇcase t+ 1 pouze na stavech
pˇripojen´ych uzl˚u v ˇcase t. Pˇri v´ypoˇctu mus´ıme m´ıt uloˇzen st´avaj´ıc´ı stav, spoˇc´ıtat n´asleduj´ıc´ı stav pro vˇsechny uzly a pak aktualizovat stav vˇsech uzl˚u. Logick´e funkce pro jednotliv´e uzly jsou uloˇzeny ve vyhled´avac´ıch tabulk´ach. Pˇr´ıklad takov´e tabulky je na obr´azku 3.3 v ˇc´asti (c). Velikost tabulky je 2K hodnot (vˇsechny kombinace hodnot vstupn´ıch uzl˚u). D˚uleˇzit´e je tedy i poˇrad´ı v jak´em jsou uzly pˇripojeny. N´ahodn´e vytvoˇren´ı s´ıtˇe je pops´ano v algoritmu 3.1 a v´yvoj, kter´y v s´ıti prob´ıh´a, je pops´an v algoritmu 3.2.
• N´ahodnˇe generuj logickou funkci fi s K vstupy pro kaˇzd´y uzel.
• N´ahodnˇe pˇripoj ke kaˇzd´emu uzlu K uzl˚u.
• N´ahodnˇe vygeneruj poˇc´ateˇcn´ı stav pro kaˇzd´y uzel (1 nebo 0).
Algoritmus 3.1: N´ahodn´e vytvoˇren´ı booleovsk´e s´ıtˇe
Kv˚uli lepˇs´ımu pochopen´ı si pop´ıˇseme obr´azek 3.3. V ˇc´asti (a) je grafick´e zn´azornˇen´ı s´ıtˇe. Uzel je ovlivnˇen tˇemi uzly, z kter´ych do nˇej smˇeˇruj´ı ˇsipky. Takˇze napˇr´ıklad uzel A
• V kaˇzd´em kroku t:
– Pro kaˇzd´y uzel i (0 < i ≤ N ) urˇci jeho n´asleduj´ıc´ı hodnotu si(t + 1)
z pˇripojen´ych uzl˚u pomoc´ı funkce fi.
– Aktualizuj hodnotu vˇsech uzl˚u.
Algoritmus 3.2: V´yvoj booleovsk´e s´ıtˇe
je ovlivnˇen uzlem C a s´am sebou a uzel B je ovlivnˇen pouze uzlem A. V ˇc´asti (c) vid´ıme tabulky logick´ych funkc´ı fipro jednotliv´e uzly. V ˇc´asti (b) je uk´az´an v´yvoj s´ıtˇe z poˇc´ateˇcn´ıho
stavu, kdy t = 0. V poˇc´ateˇcn´ım stavu maj´ı vˇsechny uzly hodnotu 0. Prvn´ım vstupem uzlu A je uzel A a druh´ym je uzel C. Hodnoty obou uzl˚u jsou v ˇcase t = 0 rovny 0, pouˇzijeme tedy ˇr´adek 00 a vid´ıme, ˇze v ˇcase t = 1 bude m´ıt uzel A hodnotu 1. Stejnˇe budeme postupovat u dalˇs´ıch uzl˚u. Kdyˇz zn´ame hodnoty vˇsech uzl˚u, m˚uˇzeme nastavit spoˇc´ıtan´e stavy uzl˚u jako aktu´aln´ı a zv´yˇsit ˇcas na t = 1. Stejn´ym zp˚usobem potom v´yvoj s´ıtˇe pokraˇcuje d´al.
A
B
C
(a) t 0 1 2 3 4 5 sA(t) 0 1 0 0 0 1 sB(t) 0 1 0 1 1 1 sC(t) 0 1 1 1 0 0 (b) A B C sA(t) sC(t) sA(t + 1) sA(t) sA(t) sB(t + 1) sB(t) sA(t) sC(t + 1) 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 1 0 1 1 1 (c)Obr´azek 3.3: Pˇr´ıklad booleovsk´e s´ıtˇe a jej´ıho v´yvoje:
(a) graf booleovsk´e s´ıtˇe, (b) zn´azornˇen´ı v´yvoje, (c) logick´e funkce pro jednotliv´e uzly
3.2
Moˇ
znosti booleovsk´
ych s´ıt´ı
V [20] je uk´az´ano, ˇze pomoc´ı dvourozmˇern´eho celul´arn´ıho automatu lze simulovat v´ypoˇcetnˇe ´
uplnou mnoˇzinu hradel. Tento celul´arn´ı automat vˇsak nen´ı bin´arn´ı. V [15] je dok´az´ano, ˇze pomoc´ı bin´arn´ıho celul´arn´ıho automatu, kter´y pouˇz´ıv´a pravidlo 110, lze simulovat
determi-nistick´y Turing˚uv stroj. Vzhledem k tomu, ˇze booleovsk´e s´ıtˇe jsou zobecnˇen´ım celul´arn´ıch automat˚u, tak by mˇelo b´yt moˇzn´e pomoc´ı vhodn´ych booleovsk´ych s´ıt´ı realizovat jak´ykoli algoritmus. Kl´ıˇcov´ym probl´emem je tedy pro dan´y ´ukol nal´ezt tu spr´avnou s´ıt’. Jen vˇsech moˇzn´ych logick´ych funkc´ı pro jeden uzel je 22K a poˇcet vˇsech moˇzn´ych s´ıt´ı o velikosti N a
poˇctu pˇripojen´ı K je uveden v [5] a lze jej vyj´adˇrit rovnic´ı:
poˇcet vˇsech moˇzn´ych s´ıt´ı = 2
2K
N ! (N − K)!
!N
. (3.1)
Toto n´am pro v´ypoˇcet, kter´y chceme realizovat s´ıt´ı s K = 3 a N = 8, d´av´a pˇribliˇznˇe 3 · 1039 moˇzn´ych s´ıt´ı. Tedy i pro pomˇernˇe malou s´ıt’ dostaneme velk´y stavov´y prostor, kter´y je tˇreba prohledat.
Kapitola 4
Booleovsk´
e s´ıtˇ
e v evoluˇ
cn´ım
n´
avrhu
V pˇredchoz´ı kapitole jsme si popsali Kauffman˚uv model booleovsk´ych s´ıt´ı. Ten je tˇreba nˇejak´ym zp˚usobem reprezentovat, aby jej bylo moˇzno implementovat a mohly b´yt navrˇzeny genetick´e oper´atory kˇr´ıˇzen´ı a mutace. Tato reprezentace bude slouˇzit v konkr´etn´ıch apli-kac´ıch, jenˇz jsou uvedeny v dalˇs´ıch kapitol´ach.
4.1
N´
avrh reprezentace booleovsk´
ych s´ıt´ı
Je tˇreba navrhnout, jak´ym zp˚usobem budou realizov´ana propojen´ı a tabulky logick´ych funkc´ı pro jednotliv´e uzly. Propojen´ı lze realizovat pomoc´ı vektoru pˇrirozen´ych ˇc´ısel. Kaˇzd´y uzel v s´ıti dostane podle sv´eho um´ıstˇen´ı poˇradov´e ˇc´ıslo i (0 < i ≤ N ). Ke kaˇzd´emu uzlu i je pˇripojeno K uzl˚u. Tˇemto pˇripojen´ım pˇriˇrad´ıme poˇradov´e ˇc´ıslo j (0 < j ≤ K). V´yslednou reprezentac´ı vˇsech propojen´ı v s´ıti je vektor
~c = (c11, c12, . . . , c1K, . . . , cij, . . . , cN K), (4.1)
kde cij je poˇradov´e ˇc´ıslo uzlu, kter´y je pˇripojen k uzlu i na j-tou pozici.
Tabulky logick´ych funkc´ı lze realizovat podobn´ym zp˚usobem. Tentokr´at se vˇsak bude jednat o bin´arn´ı vektor. Nejprve si uk´aˇzeme tvar tabulky pro jeden uzel a z´ısk´an´ı hodnoty z n´ı. Tabulka pro uzel i je reprezentov´ana bin´arn´ım vektorem
~
fi= (fi0, fi1, . . . , fik, . . . , fi(2K−1)). (4.2)
Index k, kter´y potˇrebujeme pro z´ısk´an´ı hodnoty uzlu i v ˇcase t + 1, z´ısk´ame pˇreveden´ım bin´arn´ıho vektoru ~vi na ˇc´ıslo v des´ıtkov´e soustavˇe. ~vi m´a tvar
~
vi= (vi1, vi2, . . . , vij, . . . viK). (4.3)
Kde vij je hodnota uzlu cij v ˇcase t, vi1je nejv´yznamnˇejˇs´ı bit a viK nejm´enˇe v´yznamn´y.
Ta-bulky pro celou s´ıt’ jsou reprezentov´any zˇretˇezen´ım vektor˚u fi pro jednotliv´e uzly. V´ysledn´y
vektor m´a tvar
~
4.2
Genetick´
e oper´
atory pro booleovsk´
e s´ıtˇ
e
Vektor pˇripojen´ı ~c je tvoˇren cel´ymi ˇc´ısly a vektor reprezentuj´ıc´ı tabulky logick´ych funkc´ı ~
f je bin´arn´ı. Oba tyto vektory dohromady tvoˇr´ı jedince. Booleovskou s´ıt’ B tedy budeme reprezentovat jako dvojici vektor˚u:
B = (~c, ~f ). (4.5)
Oper´atory kˇr´ıˇzen´ı a mutace pracuj´ı s kaˇzd´ym z tˇechto dvou vektor˚u zvl´aˇst’.
4.2.1 Mutace
Pro vektor pˇripojen´ı ~c zvol´ıme pravdˇepodobnost mutace pmc∈ (0, 1). Kaˇzd´a sloˇzka vektoru
bude mutovat s pravdˇepodobnost´ı pmc. Pokud zmutuje, tak se n´ahodnˇe vybere jin´y uzel,
ke kter´emu pˇripojen´ı povede.
Pro vektor tabulek logick´ych funkc´ı ~f zvol´ıme pravdˇepodobnost mutace pmf ∈ (0, 1).
Kaˇzd´a sloˇzka vektoru bude s pravdˇepodobnost´ı pmf negov´ana.
4.2.2 Kˇr´ıˇzen´ı
Booleovsk´e s´ıtˇe budeme kˇr´ıˇzit pomoc´ı jednobodov´eho kˇr´ıˇzen´ı (viz 2.1.2). Pro kaˇzd´y vektor, kter´ym reprezentujeme booleovskou s´ıt’, zvol´ıme n´ahodnˇe bod kˇr´ıˇzen´ı.
Nejdˇr´ıve n´ahodnˇe zvol´ıme bod kˇr´ıˇzen´ı Bc (1 < Bc < |~c|) a potomk˚um pˇriˇrad´ıme
od-pov´ıdaj´ıc´ı ˇc´asti vektor˚u ~c, kter´e n´aleˇzely rodiˇc˚um. Pot´e n´ahodnˇe zvol´ıme bod kˇr´ıˇzen´ı Bf
(1 < Bc< | ~f |) a postupujeme stejnˇe jako v pˇredchoz´ım pˇr´ıpadˇe. V n´asleduj´ıc´ıch kapitol´ach
budou booleovsk´e s´ıtˇe rozˇs´ıˇreny jeˇstˇe o dalˇs´ı vektory, jenˇz budou pouˇzity ke specifick´ym ´
Kapitola 5
N´
avrh kombinaˇ
cn´ıch obvod˚
u
pomoc´ı booleovsk´
ych s´ıt´ı
V [3] je pops´ana metoda pro evoluˇcn´ı n´avrh kombinaˇcn´ıch obvod˚u na ´urovni hradel. Jako v´yvojov´y model je pouˇzit celul´arn´ı automat. V t´eto kapitole bude pops´ana upraven´a me-toda, kter´a m´ısto celul´arn´ıho automatu bude pouˇz´ıvat booleovskou s´ıt’. Pouˇzijeme p˚uvodn´ı Kauffman˚uv model tak, jak je pops´an v kapitole 3 s reprezentac´ı a genetick´ymi oper´atory podle kapitoly 3. Ten rozˇs´ıˇr´ıme o ˇc´ast slouˇz´ıc´ı k n´avrhu kombinaˇcn´ıho obvodu.
5.1
N´
avrh obvodu booleovskou s´ıt´ı
Obvod bude sloˇzen z logick´ych hradel se dvˇema vstupy. Pouˇzit´a hradla jsou uvedena v tabulce 5.1. Poˇcet hradel v jedn´e ´urovni bude roven poˇctu vstup˚u obvodu (M ). Bude umoˇznˇeno jen pˇripojen´ı k pˇredchoz´ı ´urovni. Prvn´ı ´uroveˇn bude pˇripojena na vstupy a k po-sledn´ı budou pˇripojeny v´ystupy. Kaˇzd´e hradlo v jedn´e ´urovni obvodu je generov´ano jedn´ım uzlem booleovsk´e s´ıtˇe. Poˇcet uzl˚u booleovsk´e s´ıtˇe mus´ı b´yt alespoˇn takov´y, jako je poˇcet vstup˚u generovan´eho obvodu. Celkov´y poˇcet uzl˚u v s´ıti (N ) m˚uˇze b´yt i vyˇsˇs´ı. ˇC´ast uzl˚u generuje hradla a ˇc´ast slouˇz´ı pouze pro zv´yˇsen´ı variability s´ıtˇe. V n´asleduj´ıc´ım popisu se uvaˇzuje, ˇze N je rovno poˇctu vstup˚u, ale experimenty byly prov´adˇeny i se s´ıtˇemi s vyˇsˇs´ım N .
ˇ
C´ıslo Typ Vstupy Popis
0 AND in1, in2 logick´y souˇcin vstup˚u in1 a in2
1 OR in1, in2 logick´y souˇcet vstup˚u in1 a in2
2 XOR in1, in2 exkluzivn´ı logick´y souˇcet vstup˚u in1 a in2
3 IDA in1,– jednobitov´y buffer, v´ystup je stejn´y jako vstup in1
4 IDB –, in2 jednobitov´y buffer, v´ystup je stejn´y jako vstup in2
Tabulka 5.1: Pouˇzit´a hradla
Logickou funkci fiz algoritmu 3.2 uprav´ıme tak, aby byl definov´an nejen dalˇs´ı stav uzlu,
ale tak´e hradlo, kter´e v tom kroku vznikne. Pokud pouˇzijeme s´ıt’ s poˇctem pˇripojen´ych uzl˚u K = 3, m´ame pro kaˇzd´y uzel i definov´anu pˇrechodovou funkci jako mnoˇzinu pravidel tvaru
kde si(t + 1) je stav uzlu i v ˇcase t + 1 a vi1vi2vi3 jsou hodnoty uzl˚u pˇripojen´ych k uzlu i na
prvn´ı, druh´e a tˇret´ı pozici. Pokud chceme navrhovat kombinaˇcn´ı obvody, mus´ı pravidlo spe-cifikovat hradlo, kter´e m´a b´yt vytvoˇreno, a tak pro n´avrh kombinaˇcn´ıch obvod˚u pouˇzijeme mnoˇzinu pravidel tvaru
vi1vi2vi3→ si(t+1): g in1 in2, (5.2)
kde g je hradlo z tabulky 5.1 generovan´e uzlem i, in1 a in2 jsou indexy pin˚u, na kter´e jsou
vstupy hradla pˇripojeny. V prvn´ı ´urovni jsou to vstupy obvodu a v dalˇs´ıch ´urovn´ıch v´ystupy hradel z pˇredchoz´ı ´urovnˇe. Pokaˇzd´e, kdyˇz se urˇcuje n´asleduj´ıc´ı stav nˇekter´eho uzlu, se tak´e vytvoˇr´ı nov´e hradlo. Jedna ´uroveˇn obvodu vznikne v jednom kroku booleovsk´e s´ıtˇe.
Pˇr´ıklad vytvoˇren´ı obvodu je zn´azornˇen na obr´azku 5.1. Vlevo je obvod a vpravo je poˇc´ateˇcn´ı stav a prvn´ı dva kroky booleovsk´e s´ıtˇe. B´ıl´e ˇctvereˇcky pˇrestavuj´ı uzly ve stavu 1, ˇ
cern´e ve stavu 0. V tabulce 5.2 je ˇc´ast pravidel pro uzel 2. K tomu je na pozici jedna pˇripojen uzel 1, na pozici 2 tak´e uzel 1 a na pozici 3 uzel 3. V poˇc´ateˇcn´ım stavu s´ıtˇe vybereme z tabulky 5.2 ˇr´adek, kde jsou hodnoty pˇripojen´ych uzl˚u 0 0 1, n´asleduj´ıc´ı stav bude 1 a vytvoˇr´ıme v prvn´ı ´urovni hradlo na pozici 2 pˇripojen´e na vstupy 2 a 3. To se provede i pro ostatn´ı uzly (podle jejich vlastn´ıch tabulek, kter´e tu nejsou uvedeny). V dalˇs´ım kroku s´ıtˇe vybereme z tabulky 5.2 ˇr´adek 1 1 1, kter´y odpov´ıd´a hodnot´am pˇripojen´ych uzl˚u. Vytvoˇr´ı se hradlo AND na pozici dvˇe v druh´e ´urovni. To je pˇripojeno k hradl˚um v prvn´ı ´urovni na pozic´ıch 1 a 2. Pak se urˇc´ı nov´e stavy dalˇs´ıch uzl˚u a vytvoˇr´ı se odpov´ıdaj´ıc´ı hradla. Tak se pokraˇcuje, dokud nen´ı z´ısk´an funkˇcn´ı obvod, nebo nen´ı dosaˇzeno maxim´aln´ıho poˇctu krok˚u. Pokud by byl poˇcet uzl˚u N vˇetˇs´ı neˇz poˇcet vstup˚u M , tak M uzl˚u bude vytv´aˇret hradla a bude pro nˇe platit tabulka podobn´a tabulce 5.2. Ostatn´ı uzly nebudou v tabulce m´ıt sloupce g,i1 a i2. 1 2 3 4 úroveň 1 úroveň 2 1 2 0 krok uzel 4 1 2 3
v21 v22 v23 s2(t+1) g2 i1 i2
0 0 0 1 OR 3 4
0 0 1 1 XOR 2 3
. . .
1 1 1 0 AND 1 2
Tabulka 5.2: ˇC´ast tabulky pro uzel 2 z obr´azku 5.1 Pˇripojen´ı jsou c21= 1, c22= 1, c23= 3
5.2
Reprezentace a genetick´
e oper´
atory
V kapitole 4.1 byla pops´ana reprezentace booleovsk´ych s´ıt´ı. Tuto reprezentaci pouˇzijeme a pˇrid´ame k n´ı dalˇs´ı vektor ~r. Ten bude obsahovat tabulky pravidel pro jednotliv´e uzly. Tato pravidla budou spojena za sebou pro vˇsechny uzly. V´ysledn´y vektor bude m´ıt tvar
~r = (g10, in110, in210, g11, in111, in211, . . . , g1(2K−1), in11(2K−1), in21(2K−1), . . .
. . . , gM (2K−1), in1M (2K−1), in2M (2K−1)). (5.3)
Pokud budeme cht´ıt z´ıskat z tohoto vektoru hodnoty pro urˇcit´y uzel, pouˇzijeme n´asleduj´ıc´ı vztahy uveden´e v tabulce 5.3. Pro ´uplnost jsou zde i vztahy pro vektory ~c a ~f .
Hodnota Vektor Vzorec
Uzel pˇripojen´y k i-t´emu uzlu na j-t´e pozici ~c (i − 1) · K + j
N´asleduj´ıc´ı hodnota uzlu i f~ (i − 1) · 2K+ k + 1
Hradlo vytvoˇren´e na i-t´e pozici ~r ((i − 1) · 2K+ k + 1) · 3
Vstup in1 hradla na i-t´e pozici ~r ((i − 1) · 2K+ k + 1) · 3 + 1
Vstup in2 hradla na i-t´e pozici ~r ((i − 1) · 2K+ k + 1) · 3 + 2
Tabulka 5.3: Pˇr´ıstup k hodnot´am ve vektorech ~c, ~f a ~r, index i se poˇc´ıt´a od 1
Jedince n´am tedy budou tvoˇrit vektory ~c, ~f a ~r. Na obr´azku 5.2 je zobrazen pˇr´ıklad ge-nomu. Je tam vidˇet, kter´e ˇc´asti patˇr´ı k uzl˚um 1–4. Tak´e je u prvn´ıch dvou ˇc´ast´ı zn´azornˇeno, kter´a ˇc´ast vektoru ~r odpov´ıd´a hradlu a vstup˚um.
Kˇr´ıˇzen´ı a mutace odpov´ıd´a postupu popsan´em v kapitole 4.2. Mutace probˇehne stejnˇe jako u vektoru ~c. Pravdˇepodobnost mutace se pro kaˇzdou poloˇzku vektoru vyhodnocuje zvl´aˇst’. Pokud mutuje poloˇzka odpov´ıdaj´ıc´ı hradlu, je novou hodnotou n´ahodnˇe zvolen´e hradlo. U vstup˚u je novou hodnotou n´ahodnˇe vybran´y vstup.
5.3
Fitness funkce
V [22] je fitness funkc´ı poˇcet shodn´ych bit˚u na v´ystupu evoluc´ı navrˇzen´eho obvodu s poˇzadovan´ym v´ystupem pro vˇsechny moˇzn´e bin´arn´ı testovac´ı vektory obvodu. Poˇzadovan´y v´ystup je d´an pravdivostn´ı tabulkou navrhovan´eho obvodu. Poˇcet vˇsech moˇzn´ych bin´arn´ıch testovac´ıch vektor˚u pro obvod s V vstupy je 2V.
V naˇsem pˇr´ıpadˇe je fitness funkce poˇcet bit˚u, kter´e se od poˇzadovan´eho v´ystupu liˇs´ı. Evoluˇcn´ı algoritmus se tedy snaˇz´ı fitness funkci minimalizovat a dos´ahnout hodnoty 0, coˇz je funkˇcn´ı obvod.
1 2 3 414 42 2 324 0 1 11 0010 001 1 0 01 1 1 2 4 3 1 3 241 2 3 12 32 3 143 241 4 2 2 1 2 3 2 14 4 2 2 12 0 0 1 4 3 0 0 2 2 324 1 2 3 4 g in1 in2 c f r
Obr´azek 5.2: Pˇr´ıklad kompletn´ıho genomu pro K = 2, M = 4 a N = 4
5.4
Experimenty
Byl proveden n´avrh sˇc´ıtaˇcky, n´asobiˇcky, ˇradic´ıho obvodu a medi´anov´eho obvodu. U kaˇzd´eho z tˇechto obvod˚u bylo experiment´alnˇe ovˇeˇreno, jak velk´y obvod lze nal´ezt, jak se evoluce chov´a pro r˚uzn´e hodnoty N a jestli maj´ı uzly nav´ıc (ty, kter´e negeneruj´ı ˇz´adn´a hradla) nˇejak´y vliv na ´uspˇeˇsnost evoluce, nebo vlastnosti vytv´aˇren´ych obvod˚u.
Pˇredem nev´ıme kolik, krok˚u bude booleovsk´a s´ıt’ potˇrebovat ke tvorbˇe funkˇcn´ıho obvodu. Fitness funkce je proto vyhodnocov´ana postupnˇe pro kaˇzd´y poˇcet ´urovn´ı aˇz do stanoven´eho maxima. V´ysledn´a fitness jedince odpov´ıd´a hodnotˇe fitness pro ten poˇcet ´urovn´ı, kter´y dos´ahl nejlepˇs´ıch v´ysledk˚u.
Pro kaˇzdou variantu (velikost obvodu, r˚uzn´a N a K) bylo provedeno 100 bˇeh˚u evoluce omezen´ych na 1000 generac´ı a v kaˇzd´e generaci bylo 1000 jedinc˚u. ´Udaj, ˇze evoluce byla ´
uspˇeˇsn´a napˇr´ıklad v 50% pˇr´ıpad˚u znamen´a, ˇze v pades´ati bˇez´ıch evoluce byl nalezen funkˇcn´ı obvod dˇr´ıve, neˇz bylo dosaˇzeno maxim´aln´ıho poˇctu generac´ı. Parametry evoluce byly zvo-leny na z´akladˇe kr´atk´ych experiment˚u bˇehem implementace. Pravdˇepodobnost mutace byla stanovena na 5%. Poˇcet generac´ı je omezen na 1 000. A jedinc˚u v populaci je takt´eˇz 1 000. Poˇc´ateˇcn´ı stav vˇsech uzl˚u s´ıtˇe je stanoven na 0.
5.4.1 N´asobiˇcka
Nejvˇetˇs´ı n´asobiˇcka, kterou se podaˇrilo nal´ezt, m´a velikost 2 × 2 bity. V tabulce 5.4 jsou uvedeny v´ysledky experiment˚u. Sloupce oznaˇcen´e poˇcet generac´ı ukazuj´ı nejmenˇs´ı, nejvˇetˇs´ı a pr˚umˇern´y poˇcet generac´ı, kter´y byl potˇreba k nalezen´ı funkˇcn´ıho obvodu (poˇc´ıtaj´ı se pouze ´uspˇeˇsn´e bˇehy). Sloupec poˇcet ´urovn´ı ukazuje, jak´e zpoˇzdˇen´ı mˇely nalezen´e funkˇcn´ı obvody. Sloupec poˇcet hradel uv´ad´ı poˇcty hradel v nalezen´ych funkˇcn´ıch obvodech (v tomto pˇr´ıpadˇe nepoˇc´ıt´ame IDA a IDB jako hradla).
N K uspˇ´ eˇsnost poˇcet generac´ı poˇcet ´urovn´ı poˇcet hradel
min pr˚umˇer max min pr˚umˇer max min pr˚umˇer max
4 2 86% 61 200.49 952 3 4.13 8 7 11.74 28 6 2 85% 78 227.42 940 3 4.15 8 7 11.71 25 8 2 85% 51 211.36 585 3 4.32 8 7 12.24 25 10 2 86% 63 279.26 865 3 4.43 8 7 12.80 31 12 2 87% 78 236.33 946 3 4.56 8 7 13.16 32 14 2 90% 87 330.99 977 3 4.27 8 7 11.89 24 16 2 92% 100 277.96 888 3 4.03 8 7 11.52 25 18 2 91% 83 292.53 987 3 4.25 8 7 11.89 28 20 2 89% 69 291.52 946 3 4.16 8 7 11.67 28 28 2 93% 80 288.52 882 3 4.01 8 7 11.42 30 4 3 90% 45 243.92 976 3 4.17 8 7 11.32 20 5 3 84% 78 267.15 945 3 4.23 8 7 11.87 28 6 3 82% 94 237.24 803 3 4.10 8 7 11.28 25 8 3 85% 85 270.82 863 3 3.79 8 7 10.31 24 10 3 89% 90 271.51 774 3 3.54 8 7 10.16 32 12 3 93% 110 311.06 896 3 3.72 8 7 10.78 26 14 3 88% 97 338.50 914 3 3.65 8 7 10.26 29 16 3 87% 46 302.24 854 3 3.72 8 7 10.49 25 4 4 82% 50 204.20 843 3 4.02 8 7 11.27 23 6 4 84% 110 279.07 961 3 3.77 8 7 10.20 25 8 4 89% 102 316.74 913 3 3.37 8 7 9.54 22 10 4 91% 140 327.97 963 3 3.38 8 7 9.70 28 12 4 92% 132 318.42 756 3 3.28 6 7 9.33 18 14 4 89% 110 335.87 987 3 3.26 8 7 9.15 18 16 4 93% 106 361.98 967 3 3.24 6 7 8.99 14
Tabulka 5.4: V´ysledky experiment˚u pro n´asobiˇcku 2 × 2 bity, omezen´ı poˇctu ´urovn´ı je 8.
Jak je patrn´e z tabulky 5.4, poˇcet uzl˚u s´ıtˇe N ani poˇcet propojen´ı K nemaj´ı v´yraznˇejˇs´ı vliv na ´uspˇeˇsnost evoluˇcn´ıho procesu. Podle poˇctu generac´ı lze usoudit, ˇze nejrychleji se daˇrilo hledat s´ıtˇe s N = 2. Se vzr˚ustaj´ıc´ım N a K se u potˇrebn´eho poˇctu generac´ı vy-skytuj´ı vyˇsˇs´ı hodnoty. Pˇri vˇsech testovan´ych kombinac´ıch N a K se podaˇrilo naj´ıt obvody s nejmenˇs´ım zpoˇzdˇen´ım 3 a poˇctem hradel 7, coˇz jsou nejlepˇs´ı nalezen´e hodnoty. Pˇri vyˇsˇs´ıch N a K maj´ı nalezen´e n´asobiˇcky pr˚umˇernˇe menˇs´ı poˇcet ´urovn´ı i hradel.
Nyn´ı se budeme vˇenovat booleovsk´e s´ıti, kter´a vytvoˇrila jednu z nejlepˇs´ıch n´asobiˇcek. V tabulce 5.5 jsou uvedena pravidla, kter´a evoluce naˇsla pro jednotliv´e uzly. Uzel oznaˇcuje index uzlu poˇc´ıtan´y od 0. Pravidla jsou uvedena ve tvaru popsan´em v rovnici 5.2.
Na obr´azku 5.3 v ˇc´asti (a) je sch´ema vytvoˇren´e n´asobiˇcky. Vlevo jsou vstupy obvodu a vpravo v´ystupy. Skl´ad´a se pouze z hradel AND a XOR. V prvn´ım kroku vˇsechny uzly vytvoˇrily hradlo AND, v dalˇs´ıch kroc´ıch se jiˇz vygenerovan´a hradla liˇs´ı. Na obr´azku 5.3 v ˇc´asti (b) je tabulka s postupem vytvoˇren´ı obvodu. Pˇripojen´ı uv´ad´ı indexy uzl˚u, ke kter´ym je dan´y uzel pˇripojen. V dalˇs´ıch ˇr´adc´ıch jsou uvedeny stavy jednotliv´ych uzl˚u a hradla, kter´a byla vytvoˇrena pˇri pˇrechodu do n´asleduj´ıc´ıho stavu.
Na obr´azc´ıch 5.4 a 5.5 jsou dalˇs´ı pˇr´ıklady nalezen´ych n´asobiˇcek. Ta na obr´azku 5.4 je velmi podobn´a t´e z obr´azku 5.3, ale uzel s indexem 2 se ust´alil jiˇz v druh´em kroku a hradlo XOR muselo b´yt vygenerov´ano jin´ym uzlem. S´ıt’ pot´e potˇrebovala jeˇstˇe jeden krok, aby dovedla v´ystup hradla XOR na spr´avnou pozici. Na obr´azku 5.5 je n´asobiˇcka, kde se v˚ubec nevyskytuj´ı buffery IDA a IDB. M´ısto nich jsou pouˇzita hradla OR se vstupy pˇripojen´ymi na v´ystup stejn´eho hradla.
(a)
uzel 0 1 2 3
pˇripojen´ı 0 1 2 0 2 0 2 3
stav 0 0 0 0
hradlo AND 0 2 AND 3 0 AND 2 1 AND 1 3
stav 1 0 0 1
hradlo IDB 2 0 XOR 2 1 IDA 3 3 AND 2 1
stav 1 0 1 0
hradlo IDB 2 0 IDA 1 0 XOR 2 3 IDA 3 0
stav 1 0 1 1
(b)
Obr´azek 5.3: Jedna z nejlepˇs´ıch nalezen´ych n´asobiˇcek (N = 4, K = 2) a postup jej´ıho vytvoˇren´ı. uzel 0 1 2 3 pravidla 00 → 1 : AN D 0 2 00 → 0 : AN D 3 0 00 → 0 : AN D 2 1 00 → 1 : AN D 1 3 01 → 1 : IDB 2 0 01 → 1 : OR 0 1 01 → 0 : AN D 2 1 01 → 1 : IDA 3 0 10 → 1 : AN D 3 2 10 → 0 : XOR 2 1 10 → 1 : IDA 3 3 10 → 0 : AN D 2 1
11 → 1 : IDB 3 2 11 → 0 : IDA 1 0 11 → 1 : XOR 2 3 11 → 1 : IDB 0 2
Tabulka 5.5: Uk´azka nalezen´ych pravidel.
(a)
´ uroveˇn
1 2 3 4
AND 2 0 IDA 0 2 IDA 0 0 IDA 0 0
AND 2 1 XOR 1 2 IDB 0 1 IDB 0 1
AND 3 0 IDA 3 1 IDA 3 1 IDA 3 1
AND 1 3 AND 1 2 XOR 3 2 IDB 0 2
(b)
Obr´azek 5.4: Jedna z n´asobiˇcek nalezen´ych s N = 5 a K = 3.
5.4.2 Sˇc´ıtaˇcka
Na rozd´ıl od n´asobiˇcky se podaˇrilo nal´ezt sˇc´ıtaˇcku 3 + 3 bity. To je zp˚usobeno tak´e t´ım, ˇ
ze n´asobiˇcka je pro evoluˇcn´ı n´avrh sloˇzitˇejˇs´ı (viz [19]). V´ysledky experiment˚u jsou shrnuty v tabulce 5.6. Sloupce maj´ı stejn´y v´yznam jako u n´asobiˇcky. U experiment˚u pro K = 2 byl
(a) ´ uroveˇn 1 2 3 AND 2 0 OR 0 0 OR 0 0 AND 3 0 OR 3 1 XOR 3 1 AND 3 1 OR 2 2 XOR 2 3
AND 1 2 AND 0 2 AND 0 2
(b)
Obr´azek 5.5: Jedna z n´asobiˇcek nalezen´ych s N = 6 a K = 3.
maxim´aln´ı poˇcet ´urovn´ı nastaven na 15. Z v´ysledk˚u je vidˇet, ˇze tato velikost je o mnoho vˇetˇs´ı neˇz nejmenˇs´ı nalezen´a. Proto byla horn´ı hranice pro K = 3 a K = 4 stanovena na 10. V tabulce 5.6 jsou uvedeny v´ysledky experiment˚u pro sˇc´ıtaˇcku 3 + 3 bity. Experimenty s nastaven´ym K = 4 se vyznaˇcuj´ı niˇzˇs´ı ´uspˇeˇsnost´ı, ale na druhou stranu tak´e menˇs´ım pr˚umˇern´ym zpoˇzdˇen´ım nalezen´ych sˇc´ıtaˇcek. Nejlepˇs´ı sˇc´ıtaˇcka byla nalezena pˇri nastaven´ı N = 8 a K = 3. Na obr´azku 5.6 v ˇc´asti (a) je jej´ı sch´ema a v ˇc´asti (b) jsou hradla vytvoˇren´a pro jednotliv´e ´urovnˇe. Je vidˇet, ˇze jsou pouˇzity vˇsechny typy hradel.
N K uspˇ´ eˇsnost poˇcet generac´ı poˇcet ´urovn´ı poˇcet hradel
min pr˚umˇer max min pr˚umˇer max min pr˚umˇer max
6 2 12% 242 688.83 990 4 5.00 8 15 19.42 24 8 2 13% 336 627.46 921 4 5.92 10 14 24.38 38 10 2 28% 108 618.71 979 4 5.71 9 16 24.75 39 12 2 15% 309 628.87 965 4 6.40 15 15 27.67 65 14 2 16% 268 704.69 997 4 5.19 8 17 21.75 35 16 2 23% 384 714.96 971 4 5.35 10 17 22.00 35 18 2 17% 276 678.65 951 4 5.41 9 17 22.71 35 20 2 29% 337 713.38 986 4 5.62 11 16 23.52 43 30 2 25% 283 650.48 945 4 5.80 12 16 25.16 53 6 3 14% 178 586.14 988 4 5.36 9 17 23.57 38 8 3 22% 256 616.91 962 4 5.55 10 17 24.27 43 10 3 23% 308 694.35 995 4 5.09 8 17 23.17 41 12 3 18% 307 646.78 882 4 5.39 10 16 22.06 36 14 3 9% 488 683.78 984 4 5.56 10 17 22.22 35 16 3 10% 503 774.70 954 4 4.50 6 16 19.50 27 6 4 12% 404 699.17 999 4 5.42 9 16 23.75 41 8 4 9% 263 678.89 994 4 4.67 6 15 20.78 31 10 4 8% 532 729.75 905 4 4.38 5 16 18.50 20 12 4 6% 424 742.33 914 4 5.33 8 16 24.00 35 14 4 7% 509 754.14 963 4 4.86 6 15 22.57 30 16 4 7% 529 821.00 982 4 4.71 7 16 20.29 30
Tabulka 5.6: V´ysledky experiment˚u pro sˇc´ıtaˇcku 3 + 3 bity, omezen´ı poˇctu ´urovn´ı je 15 pro K = 2 a 10 pro K = 3 a K = 4.
(a)
´ uroveˇn
1 2 3 4
XOR 3 0 IDB 3 0 IDB 3 0 IDB 3 0
XOR 1 4 XOR 1 4 IDA 1 1 IDA 1 1
XOR 5 2 XOR 5 2 XOR 5 2 IDB 0 2
AND 2 5 AND 2 5 OR 3 4 OR 3 4
AND 3 0 IDA 3 0 AND 2 5 IDB 5 4
AND 1 4 AND 1 4 IDB 3 3 IDB 3 3
(b)
Obr´azek 5.6: Nejlepˇs´ı sˇc´ıtaˇcka (N = 8, K = 2) a vytvoˇren´a hradla.
N K uspˇ´ eˇsnost poˇcet generac´ı poˇcet ´urovn´ı poˇcet hradel
min pr˚umˇer max min pr˚umˇer max min pr˚umˇer max
6 2 2% 490 546.00 602 8 10.00 12 44 52.00 60 8 2 8% 512 660.00 933 5 9.00 14 30 49.75 72 10 2 7% 473 636.86 945 6 9.00 14 36 49.43 74 12 2 10% 397 685.00 986 5 9.40 14 30 52.90 78 14 2 10% 475 700.80 969 6 10.00 15 34 54.60 90 16 2 9% 305 601.56 923 5 8.22 12 30 47.44 70 6 3 1% 530 530.00 530 12 12.00 12 60 60.00 60 8 3 3% 813 864.00 910 6 8.00 12 36 41.00 51 10 3 3% 435 536.00 589 8 9.00 11 44 52.67 66 12 3 5% 606 794.60 926 7 8.80 12 42 50.40 72 14 3 4% 436 731.00 905 7 9.00 11 42 53.50 66 16 3 4% 727 843.50 963 8 8.75 9 38 48.50 54 6 4 2% 544 597.50 651 5 5.50 6 30 33.00 36 8 4 3% 472 716.67 915 7 8.33 10 41 44.33 48 10 4 2% 740 859.50 979 7 8.00 9 40 47.00 54 12 4 4% 534 774.75 998 6 8.00 12 33 45.75 66 14 4 1% 662 662.00 662 10 10.00 10 60 60.00 60
Tabulka 5.7: V´ysledky experiment˚u pro ˇradic´ı obvod se ˇsesti vstupy.
5.4.3 Radic´ı obvodˇ
Pro experimenty s ˇradic´ımi obvody nebylo evoluci umoˇznˇeno pouˇz´ıt hradlo XOR, protoˇze pokud jsou pˇri n´avrhu pouˇzita jen hradla AND a OR, lze je v obvodu nahradit prvky ma-ximum a minimum a pouˇz´ıt i pro jin´e neˇz bin´arn´ı hodnoty. Podrobnˇeji je tato problematika pops´ana v kapitole 6.1. Nejvˇetˇs´ı ˇradic´ı obvod, kter´y se podaˇrilo navrhnout, m´a ˇsest vstup˚u. V tabulce 5.7 jsou v´ysledky experiment˚u pro ˇsestibitov´y ˇradic´ı obvod. ´Uspˇeˇsnost evoluce je niˇzˇs´ı neˇz u pˇredchoz´ıch experiment˚u. Pro K = 2 byla ´uspˇeˇsnost nejlepˇs´ı a pak postupnˇe klesala. Pˇri nastaven´ı N = 16 a K = 4 se nepodaˇrilo nal´ezt ˇz´adn´y ˇradic´ı obvod. Pro vyvozov´an´ı nˇejak´ych z´avˇer˚u o vlivu nastaven´ı N a K na poˇcet ´urovn´ı a hradel bylo nalezeno pˇr´ıliˇs m´alo funkˇcn´ıch ˇradic´ıch obvod˚u.
Na obr´azku 5.7 v ˇc´asti (a) je sch´ema jednoho z nejlepˇs´ıch nalezen´ych ˇradic´ıch obvod˚u a v ˇc´asti (b) jsou uvedena hradla, kter´a byla vygenerov´ana booleovskou s´ıt´ı v jednotliv´ych kroc´ıch. Tˇret´ı a p´at´a ´uroveˇn s´ıtˇe jsou shodn´e a ˇctvrt´a se liˇs´ı od druh´e jen v hradlu AND, kter´e bylo pouˇzito pro pˇrenos hodnoty sv´eho vstupu do dalˇs´ı ´urovnˇe. Tak´e lze vidˇet, ˇze ve vˇsech ´urovn´ıch kromˇe ˇctvrt´e se vyskytuj´ı vˇzdy dvojice hradel AND a OR, kter´e maj´ı stejn´e vstupy. To odpov´ıd´a struktuˇre kompar´atoru, kter´a je pops´ana v kapitole 6.1.
(a) ´ uroveˇn
1 2 3 4 5
AND 2 1 AND 2 1 AND 1 0 AND 2 1 AND 1 0
AND 5 0 AND 5 0 OR 1 0 AND 0 0 OR 1 0
AND 3 4 OR 2 1 AND 2 3 OR 2 1 AND 2 3
OR 2 1 AND 3 4 OR 2 3 AND 3 4 OR 2 3
OR 0 5 OR 5 0 AND 4 5 OR 5 0 AND 4 5
OR 3 4 OR 3 4 OR 5 4 OR 3 4 OR 5 4
(b)
Obr´azek 5.7: Jeden z nejlepˇs´ıch ˇsestibitov´ych ˇradic´ıch obvod˚u (N = 8, K = 2) a vytvoˇren´a hradla.
5.4.4 Medi´anov´y obvod
Z d˚uvodu uveden´eho u pˇredchoz´ıho experimentu bylo i u medi´anov´eho obvodu vypuˇstˇeno hradlo XOR. Nejdˇr´ıve byly provedeny experimenty pro medi´anov´y obvod o sedmi vstupech, jejich v´ysledky jsou v tabulce 5.8. Na rozd´ıl od n´asobiˇcek a sˇc´ıtaˇcek nevznikaj´ı pro vyˇsˇs´ı K obvody s menˇs´ım poˇctem ´urovn´ı a hradel, sp´ıˇse naopak. S rostouc´ım K se tak´e sniˇzuje ´
uspˇeˇsnost evoluce a zvyˇsuje poˇcet generac´ı potˇrebn´ych k nalezen´ı funkˇcn´ıho ˇreˇsen´ı.
Nejlepˇs´ı nalezen´y medi´anov´y obvod se sedmi vstupy m´a sedm ´urovn´ı a ve tvaru, kter´em byl navrˇzen evoluc´ı m´a 36 hradel. Na obr´azku 5.8 v ˇc´asti (b) jsou hradla vygenerov´ana pro jednotliv´e ´urovnˇe. Pˇri vytvoˇren´ı ˇctvrt´e ´urovnˇe se booleovsk´a s´ıt’ ust´alila a vytvoˇren´a hradla se pak opakuj´ı aˇz do posledn´ı ´urovnˇe. V ˇc´asti (a) je sch´ema nalezen´eho obvodu po odstranˇen´ı zbyteˇcn´ych hradel, ˇc´ımˇz se poˇcet hradel sn´ıˇzil na 25. Stejnˇe jako u ˇradic´ıho obvodu z obr´azku 5.7 se u navrˇzen´eho medi´anov´eho obvodu vyskytuj´ı dvojice hradel AND a OR se stejn´ymi vstupy. Nen´ı to vˇsak tak pravideln´e jako u ˇradic´ıho obvodu, protoˇze
u medi´anov´eho obvodu n´am staˇc´ı hodnota uprostˇred seˇrazen´e posloupnosti, kdeˇzto ˇradic´ı obvod mus´ı tuto posloupnost poskytnout celou.
Nejvˇetˇs´ı medi´anov´y obvod, kter´y se podaˇrilo navrhnout, m´a 9 vstup˚u. Byl prove-den pouze jeprove-den experiment o 100 evoluˇcn´ıch bˇez´ıch a na z´akladˇe v´ysledk˚u z tabulky 5.8 byly vybr´any pro tento experiment parametry, pˇri kter´ych bylo dosaˇzeno nejvyˇsˇs´ı ´
uspˇeˇsnosti(N = 14 a K) a z´aroveˇn byl nalezen nejlepˇs´ı ˇsestibitov´y medi´anov´y obvod. V´ysledky tohoto experimentu jsou v tabulce 5.9. Nejlepˇs´ı zpoˇzdˇen´ı odpov´ıd´a poˇctu vstup˚u stejnˇe jako u medi´anov´eho obvodu se sedmi vstupy.
N K uspˇ´ eˇsnost poˇcet generac´ı poˇcet ´urovn´ı poˇcet hradel
min pr˚umˇer max min pr˚umˇer max min pr˚umˇer max
7 2 15% 199 448.87 885 8 10.40 14 42 62.80 84 8 2 34% 211 472.41 974 7 10.62 15 40 62.71 91 10 2 37% 197 370.81 866 7 10.92 15 40 65.51 91 12 2 40% 127 414.05 959 7 10.38 15 38 61.00 86 14 2 47% 123 387.09 866 7 10.57 14 36 61.57 90 16 2 34% 167 514.71 951 7 10.74 15 39 64.35 105 7 3 10% 355 587.90 876 7 10.30 13 42 61.80 79 8 3 22% 213 634.68 994 10 11.36 15 50 68.36 82 10 3 34% 212 478.26 952 7 11.06 15 42 65.09 98 12 3 30% 215 606.73 998 7 11.00 15 38 65.50 90 14 3 37% 207 584.30 1000 8 10.78 15 42 63.54 90 16 3 29% 387 668.38 989 7 10.72 15 42 62.69 92 7 4 3% 422 540.00 643 10 12.00 15 60 80.33 105 8 4 14% 290 571.07 991 8 11.50 15 48 69.36 97 10 4 29% 218 636.31 989 8 11.14 15 42 65.14 84 12 4 23% 290 638.78 950 7 11.00 15 41 63.70 96 14 4 27% 380 712.67 990 8 11.37 15 50 69.33 105 16 4 29% 424 769.52 1000 7 10.52 15 39 61.79 87
Tabulka 5.8: V´ysledky experiment˚u pro sedmibitov´y medi´anov´y obvod.
N K uspˇ´ eˇsnost poˇcet generac´ı poˇcet ´urovn´ı poˇcet hradel
min pr˚umˇer max min pr˚umˇer max min pr˚umˇer max
14 2 15% 156 658.67 878 11 13.47 15 66 106.80 135
(a) ´ uroveˇn
1 2 3 4 5 6 7
AND 2 0 AND 2 0 IDA 2 4 IDA 2 4 IDA 2 4 IDA 2 4 IDA 2 4
IDB 0 6 IDB 0 5 IDB 0 5 IDB 0 5 IDB 0 5 IDB 0 5 IDB 0 5
AND 4 3 AND 4 3 AND 4 3 AND 4 3 AND 4 3 AND 4 3 AND 4 3
AND 5 1 AND 1 6 AND 1 6 AND 5 1 AND 5 1 AND 5 1 AND 5 1
OR 2 0 OR 2 0 OR 2 0 OR 2 0 OR 2 0 OR 2 0 OR 2 0
OR 4 3 OR 4 3 OR 4 3 OR 4 3 OR 4 3 OR 4 3 OR 4 3
OR 1 5 OR 1 6 IDB 0 2 AND 2 1 AND 2 1 AND 2 1 AND 2 1
(b)
Kapitola 6
N´
avrh ˇ
radic´ıch s´ıt´ı
Jako dalˇs´ı vyuˇzit´ı booleovsk´e s´ıtˇe coby v´yvojov´eho modelu pˇredstav´ıme metodu pro n´avrh ˇradic´ıch s´ıt´ı. Navrhovan´e ˇradic´ı s´ıtˇe maj´ı pevnˇe urˇcen´y poˇcet vstup˚u. Na rozd´ıl od pˇredchoz´ı kapitoly nebude n´avrh prob´ıhat na ´urovni jednotliv´ych hradel, ale budou pouˇzity kom-par´atory.
6.1
Radic´ı s´ıtˇ
ˇ
e a kompar´
atory
Kompar´ator je z´akladn´ım prvkem ˇradic´ı s´ıtˇe. M´a dva vstupy a dva v´ystupy. Prvky na vstupech porovn´a a pˇred´a na v´ystup tak, ˇze pro v´ystupy a a b vˇzdy plat´ı, ˇze a ≤ b. Na obr´azku 6.1 v ˇc´asti (a) je zn´azornˇena realizace kompar´atoru pomoc´ı maxima a minima. Ten lze pouˇz´ıt pro ˇrazen´ı jak´ychkoli prvk˚u, kter´e je moˇzno porovnat. Pokud m´ame porovn´avat pouze jednotliv´e bity (a seˇradit je do neklesaj´ıc´ı posloupnosti), je moˇzno pouˇz´ıt m´ısto prvk˚u maxima a minima hradla AND a OR (na obr´azku 6.1 v ˇc´asti (b)). ˇC´ast (c) zn´azorˇnuje znaˇcku kompar´atoru, kter´a se pouˇz´ıv´a pˇri grafick´em zn´azornˇen´ı ˇradic´ıch s´ıt´ı.
´
Ukolem ˇradic´ı s´ıtˇe je seˇradit libovolnou posloupnost, kter´a je pˇrivedena na jej´ı vstup. Je realizov´ana pomoc´ı vhodnˇe uspoˇr´adan´ych kompar´ator˚u. Tento koncept byl pˇredstaven roku 1954 a jeho historie je pops´ana v [10]. Na rozd´ıl od klasick´ych ˇradic´ıch algoritm˚u je poˇcet porovn´an´ı (a t´ım i sloˇzitost s´ıtˇe) pevnˇe d´an a nez´avis´ı na vstupn´ıch hodnot´ach. To je vhodn´e pro paraleln´ı zpracov´an´ı a hardwarovou implementaci. Pro s´ıt’ o V vstupech jsou d˚uleˇzit´e dva parametry. Poˇcet kompar´ator˚u, ze kter´ych se s´ıt’ skl´ad´a, a zpoˇzdˇen´ı s´ıtˇe. To ud´av´a poˇcet skupin kompar´ator˚u, kter´e mus´ı b´yt vykon´any sekvenˇcnˇe.
Pokud m´ame zjistit, zda s´ıt’ seˇrad´ı spr´avnˇe vˇsechny moˇzn´e vstupy, je tˇreba vyzkouˇset V ! vstupn´ıch vektor˚u. V [10] je uveden tzv. 1 − 0 princip (zero-one principle). Ten ˇr´ık´a, ˇze pokud ˇradic´ı s´ıt’ um´ı seˇradit do neklesaj´ıc´ı posloupnosti vˇsechny moˇzn´e vstupn´ı kombinace bin´arn´ıch hodnot, um´ı (pokud pouˇzijeme kompar´ator sloˇzen´y z prvk˚u maximum a mini-mum) seˇradit posloupnost libovoln´ych hodnot. D´ıky tomu staˇc´ı vyzkouˇset 2V vstupn´ıch kombinac´ı a nav´ıc lze pracovat jen s bin´arn´ımi hodnotami.
6.2
N´
avrh ˇ
radic´ı s´ıtˇ
e booleovskou s´ıt´ı
Vytv´aˇren´ı ˇradic´ı s´ıtˇe je obdobn´e jako vytv´aˇren´ı kombinaˇcn´ıho obvodu v kapitole 5. ˇRadic´ı s´ıtˇe jsou vˇsak sloˇzeny pouze z kompar´ator˚u, a tak bude mnoˇzina pravidel pro vytv´aˇren´ı kompar´ator˚u vypadat takto:
V tomto pravidle in1 a in2 jsou indexy pˇripojen´ych vstup˚u a z´aroveˇn v´ystup˚u kompar´atoru.
V jednom kroku s´ıtˇe je vytvoˇreno nejv´yˇse V2 kompar´ator˚u. Na rozd´ıl od kombinaˇcn´ıch obvod˚u m˚uˇze b´yt v jedn´e ´urovni vstup pouˇzit pouze jedn´ım kompar´atorem. Pokud k t´eto situaci dojde, tak kompar´ator poruˇsuj´ıc´ı tuto podm´ınku nen´ı vytvoˇren. Vˇsechny ostatn´ı detaily vˇcetnˇe fitness funkce a oper´ator˚u kˇr´ıˇzen´ı a mutace jsou stejn´e jako v kapitole 5.
MAX MIN
OR AND
(a) (b) (c)
Obr´azek 6.1: Kompar´ator zn´azornˇen pomoc´ı maxima a minima (a), hradel (b) a sch´ematick´e znaˇcky (c)
6.3
Experimenty
V tabulce 6.1, kter´a je pˇrevzata z [18], jsou uvedeny parametry nejlepˇs´ıch zn´am´ych ˇradic´ıch s´ıt´ı. C´ılem experiment˚u je zjistit, jak´e ˇradic´ı s´ıtˇe s pomoc´ı booleovsk´ych s´ıt´ı podaˇr´ı navrh-nout a porovnat jejich parametry s tˇemi zn´am´ymi.
Poˇcet vstup˚u 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Zpoˇzdˇen´ı 0 1 3 3 5 5 6 6 7 8 8 9 10 10 10 10
Poˇcet kompar´ator˚u 0 1 3 5 9 12 16 19 25 29 35 39 45 51 56 60
Tabulka 6.1: Zpoˇzdˇen´ı a poˇcet kompar´ator˚u u nejlepˇs´ıch zn´am´ych ˇradic´ıch s´ıt´ı.
Nejdˇr´ıve bylo provedeno nˇekolik experiment˚u s r˚uzn´ym nastaven´ım, aby bylo moˇzno odhadnout vhodn´e nastaven´ı pro fin´aln´ı sadu experiment˚u. Pro kaˇzdou kombinaci hodnot bylo provedeno 100 bˇeh˚u evoluce. Kaˇzd´y bˇeh byl omezen na 1 000 generac´ı a populace mˇela 1 000 jedinc˚u. Pravdˇepodobnost mutace byla nastavena na 5%.
V´ysledky jsou shrnuty v tabulce 6.2. Sloupce poˇcet ´urovn´ı uv´adˇej´ı zpoˇzdˇen´ı ˇradic´ı s´ıtˇe a t´ım i poˇcet krok˚u v´ypoˇctu booleovsk´e s´ıtˇe, kter´e je tˇreba prov´est, abychom danou ˇradic´ı s´ıt’ z´ıskali. Sloupec omezen´ı je nejvyˇsˇs´ı poˇcet krok˚u booleovsk´e s´ıtˇe, pro kter´y se testuje spr´avnost funkce vytvoˇren´e ˇradic´ı s´ıtˇe.
Nejvˇetˇs´ı ˇradic´ı s´ıt’, kterou se podaˇrilo nal´ezt, m´a 13 vstup˚u a obsahuje 66 kompar´ator˚u. Podaˇrilo se naj´ıt vˇetˇs´ı ˇradic´ı s´ıtˇe neˇz pomoc´ı kombinaˇcn´ıch obvod˚u, coˇz je zp˚usobeno pouˇzit´ım kompar´ator˚u m´ısto hradel. Vid´ıme, ˇze v ˇz´adn´em experimentu nebylo dosaˇzeno zpoˇzdˇen´ı, kter´e by odpov´ıdalo ´udaj˚um z tabulky 6.1. Z tohoto d˚uvodu je u n´asleduj´ıc´ıch experiment˚u, kde se snaˇz´ıme dos´ahnout nejlepˇs´ıch hodnot, nastaven poˇcet krok˚u booleovsk´e s´ıtˇe na nejlepˇs´ı zn´amou hodnotu pro dan´y poˇcet vstup˚u z tabulky 6.1. Vzhledem k tomu, ˇ
ze nal´ezt funkˇcn´ı s´ıtˇe s menˇs´ım zpoˇzdˇen´ım je pro evoluˇcn´ı algoritmus tˇeˇzˇs´ı, neˇz kdyˇz je zpoˇzdˇen´ı vˇetˇs´ı (viz tabulka 6.2 a v´ysledky pro 10 vstup˚u), tak byl zv´yˇsen maxim´aln´ı poˇcet generac´ı na 5 000. Pro kaˇzd´y poˇcet vstup˚u s´ıtˇe bylo provedeno 100 bˇeh˚u evoluce, velikost populace byla opˇet 1 000.
V tabulce 6.3 jsou uvedeny v´ysledky tˇechto experiment˚u. Nejvˇetˇs´ı nalezen´a ˇradic´ı s´ıt’, jej´ıˇz zpoˇzdˇen´ı odpov´ıd´a tabulce 6.1, m´a 10 vstup˚u. Nejvˇetˇs´ı s´ıt’, u kter´e odpov´ıd´a tabulce
6.1 i poˇcet kompar´ator˚u, m´a 8 vstup˚u. ´Uspˇeˇsnost evoluce se s poˇctem vstup˚u postupnˇe sniˇzovala, a s´ıt’ o jeden´acti vstupech se zpoˇzdˇen´ım 8 se jiˇz objevit nepodaˇrilo.
Na obr´azku 6.2 v ˇc´asti (a) je sch´ema s´ıtˇe s osmi vstupy a v ˇc´asti (b) jsou uvedeny kompar´atory, z kter´ych se skl´ad´a (ˇc´ısla oznaˇcuj´ı, kter´e dva vstupy kompar´ator porovn´av´a). Symbol × oznaˇcuje, ˇze byl vygenerov´an kompar´ator, kter´y mˇel pouˇz´ıt jiˇz pouˇzit´e vstupy, a tak byl odstranˇen.
poˇcet
N K ´uspˇeˇsnost poˇcet generac´ı poˇcet ´urovn´ı
vstup˚u min pr˚umˇer max omezen´ı min pr˚umˇer max
10 10 2 100% 64 225.78 386 20 15 18.74 20 10 10 2 3% 480 732.67 958 9 9 9.00 9 12 12 2 64% 267 613.33 935 16 15 15.95 16 12 12 2 87% 233 520.44 912 20 18 19.63 20 12 14 2 52% 329 600.73 946 16 15 15.94 16 13 13 2 1% 984 984.00 984 13 13 13.00 13
Tabulka 6.2: V´ysledky experiment˚u s r˚uzn´ym poˇctem vstup˚u, poˇctem uzl˚u booleovsk´e s´ıtˇe N a omezen´ım poˇctu ´urovn´ı (krok˚u booleovsk´e s´ıtˇe).
poˇcet
N K poˇcet uspˇ´ eˇsnost poˇcet generac´ı poˇcet kompar´ator˚u
vstup˚u ´urovn´ı min pr˚umˇer max min pr˚umˇer max
5 5 2 5 100% 4 31.80 801 9 9.87 10 6 6 3 5 98% 29 175.65 3743 12 13.31 15 7 7 3 6 71% 105 1070.23 4943 16 17.65 18 8 8 3 6 39% 279 1790.56 4991 19 21.41 23 9 9 3 7 1% 3384 3384.00 3384 27 27.00 27 10 10 4 8 4% 2000 3589.00 4668 35 37.00 40
Tabulka 6.3: V´ysledky experiment˚u, kde byly nalezeny s´ıtˇe se zpoˇzdˇen´ım odpov´ıdaj´ıc´ım tabulce 6.1. i0 i2 i1 i3 i4 i5 i6 i7 (a) ´ uroveˇn 1 2 3 4 5 6 1-4 5-6 2-4 3-5 2-3 5-6 2-5 1-3 × 4-6 × × 0-6 4-7 6-7 × 4-5 3-4 3-7 0-2 0-1 1-2 × 1-2 (b)
Kapitola 7
N´
avrh filtru pro odstraˇ
nov´
an´ı
ˇ
sumu
Dalˇs´ı pouˇzit´ı booleovsk´ych s´ıt´ı se zab´yv´a n´avrhem filtru pro odstraˇnov´an´ı impulsn´ıho ˇsumu z obrazu. P˚uvodn´ı Kauffman˚uv model je upraven, aby l´epe odpov´ıdal reprezentaci obrazu. Tak´e se z urˇcit´eho ´uhlu pohledu nejedn´a o v´yvojov´y model, protoˇze navrhovan´a s´ıt’ nen´ı pouˇzita k navrˇzen´ı filtru, ale pˇr´ımo k jeho realizaci.
7.1
Impulsn´ı ˇ
sum a jeho odstraˇ
nov´
an´ı
ˇ
Sum je poˇskozen´ı obrazu, kter´e vznik´a r˚uzn´ymi zp˚usoby v pr˚ubˇehu z´ısk´av´an´ı a pˇrenosu obrazu. Podle [23] je jedn´ım z nejzmiˇnovanˇejˇs´ıch pr´avˇe impulsn´ı ˇsum. Jedn´ım z jeho typ˚u je ˇsum s˚ul a pepˇr (salt-and-pepper noise), jemuˇz se budeme v t´eto pr´aci vˇenovat. Ten se vyznaˇcuje t´ım, ˇze poˇskozen´e pixely nab´yvaj´ı maxima, nebo minima barevn´eho rozsahu (pro obraz v odst´ınech ˇsedi vznikaj´ı ˇcern´e, nebo b´ıl´e pixely). Obraz m˚uˇze obsahovat r˚uzn´e mnoˇzstv´ı ˇsumu. To b´yv´a vyj´adˇreno v procentech. Napˇr´ıklad intenzita ˇsumu 5% znamen´a, ˇ
ze v obrazu by mˇelo b´yt 5% poˇskozen´ych pixel˚u.
Existuj´ı dva typy filtr˚u. Line´arn´ı filtr projde postupnˇe vˇsechny pixely obrazu a vypoˇcte jejich novou hodnotu jako line´arn´ı kombinaci okoln´ıch pixel˚u (napˇr. Gauss˚uv filtr, viz [24]). Nev´yhodou tohoto pˇr´ıstupu je rozmaz´an´ı obrazu a t´ım p´adem i ztr´ata detail˚u. Druh´ym typem jsou neline´arn´ı filtry. Ty s okoln´ımi pixely prov´adˇej´ı jin´e operace neˇz line´arn´ı kombi-naci. V [23] je jako nejobl´ıbenˇejˇs´ı uveden medi´anov´y filtr, kter´y je sice vhodn´y k hardwarov´e implementaci, ale pro vyˇsˇs´ı intenzitu ˇsumu jiˇz ned´av´a pˇr´ıliˇs dobr´e v´ysledky.
Poˇcet okoln´ıch pixel˚u, kter´e jsou br´any v ´uvahu pˇri v´ypoˇctu nov´e hodnoty pixelu je jedn´ım ze z´akladn´ıch parametr˚u filtru. Vˇetˇsinou se jedn´a o ˇctverec a jeho strana m´a lich´y poˇcet pixel˚u. Stˇredem je pixel, jehoˇz hodnota je filtrov´ana. Toto
”okno“ se postupnˇe posouv´a pixel po pixelu obrazem. Okrajov´e body obrazu jsou ty, jejichˇz okol´ı dan´e velikost´ı filtru by bylo mimo obraz. V t´eto pr´aci jsou zanedb´any.
7.2
Neline´
arn´ı filtr realizovan´
y booleovskou s´ıt´ı
C´ılem je navrhnout neline´arn´ı obrazov´y filtr, kter´y bude odstraˇnovat impulsn´ı ˇsum typu s˚ul a pepˇr. Vstupn´ı obraz bude v odst´ınech ˇsedi s barevnou hloubkou 8 bit˚u. Pokud bychom chtˇeli pouˇz´ıt Kauffman˚uv model, tak bychom potˇrebovali s´ıt’ o velikosti alespoˇn:
a pro filtr o velikosti pouh´ych 3 × 3 pixely n´am minim´aln´ı poˇcet uzl˚u vych´az´ı:
N = 3 · 3 · 8 = 72. (7.2)
Pˇri pˇredchoz´ıch experimentech s kombinaˇcn´ımi obvody a ˇradic´ımi s´ıtˇemi se n´am nepodaˇrilo nal´ezt takto velkou booleovskou s´ıt’, kter´a by plnila svou funkci, a tak je tˇreba Kauffman˚uv model m´ırnˇe upravit.
Pixely obrazu jsou reprezentov´any osmibitov´ym ˇc´ıslem, a tak budeme uzly s´ıtˇe repre-zentovat stejnˇe. Pro takov´e uzly jiˇz nen´ı vhodn´e pouˇz´ıt tabulku, kter´a m˚uˇze obsahovat libovolnou logickou funkci, jak tomu bylo u kombinaˇcn´ıch obvod˚u. Takov´a tabulka by byla pˇr´ıliˇs velk´a.
V [19] je pops´ana metoda pro n´avrh obrazov´eho filtru pomoc´ı virtu´aln´ıho rekonfiguro-vateln´eho obvodu. Jsou zde tak´e uvedeny oper´atory vhodn´e pro n´avrh neline´arn´ıho filtru a z nich byly vybr´any takov´e, kter´e jsou vhodn´e pro pouˇzit´ı v booleovsk´e s´ıti. Ty jsou uvedeny v tabulce 7.1. Vstupem oper´atoru jsou hodnoty pˇripojen´ych uzl˚u. Pokud m´a oper´ator pouze jeden vstup, pouˇzije se prvn´ı pˇripojen´y uzel. V tabulce 7.1 jsou jako pˇr´ıklad uvedeny jen dva vstupy, ale skuteˇcn´y poˇcet vstup˚u z´avis´ı na poˇctu pˇripojen´ych uzl˚u. V´ystup je pouˇzit jako n´asleduj´ıc´ı stav uzlu. Vzhledem k t´eto zmˇenˇe je tˇreba vektor ~f z rovnice 4.4 nahradit vektorem
~o = (o1, o2, . . . , oN), (7.3)
kde o1. . . oN jsou oper´atory z tabulky 7.1 pˇriˇrazen´e jednotliv´ym uzl˚um.
oper´ator v´yznam
255 konstanta x identita 255 − x inverze x ∨ y bitov´y OR ¯ x ∨ y bitov´y ¯x OR y x ∧ y bitov´y AND x ∧ y bitov´y NAND x ⊕ y bitov´y XOR x 1 dˇelen´ı dvˇema
x 2 dˇelen´ı ˇctyˇrmi (x + y) mod 255 souˇcet modulo 255
(x + y) 1 pr˚umˇer
max(x, y) maximum
min(x, y) minimum
Tabulka 7.1: Funkce pouˇzit´e pˇri n´avrhu obrazov´eho filtru.
Evoluˇcn´ı algoritmus hled´a ke kaˇzd´emu uzlu s´ıtˇe oper´ator a pˇripojen´e uzly. Pouˇzito je jednobodov´e kˇr´ıˇzen´ı, kter´ym se kˇr´ıˇz´ı vektory ~c a ~o. Mutovan´y prvek vektoru ~o je nahrazen n´ahodnˇe zvolen´ym oper´atorem.
Poˇc´ateˇcn´ı stav uzl˚u s´ıtˇe je urˇcen hodnotou odpov´ıdaj´ıc´ıch pixel˚u vstupn´ıho obrazu. Uzly jsou seskupeny do ˇctverce, jak je vidˇet na obr´azku 7.1. ˇC´arkovanˇe jsou pixely, plnou ˇcarou jsou zn´azornˇeny uzly a jejich propojen´ı. Z poˇc´ateˇcn´ıho stavu se provede urˇcit´y poˇcet krok˚u. Pak se odeˇcte hodnota prostˇredn´ıho uzlu a uloˇz´ı se jako hodnota odpov´ıdaj´ıc´ıho pixelu do v´ystupn´ıho obrazu.