Está en la página 1de 13

1.

vadas
Genetiniai algoritmai yra vienas i evoliucinio skaiiavimo metod . Apskritai evoliuciniai
skaiiavimo metodai i kit isiskiria tuo, kad pagrindiniai j konstrukcijos ir realizacijos elementai
remiasi gerai inomomis evoliucijos savybmis. Paprastai tariant, problemos iuo metodu yra
sprendiamos evoliuciniu procesu, kurio metu gaunamas geriausias sprendinys, t. y. sprendinys
evoliucionuoja. inomos ios evoliucini skaiiavimo metod klass: genetiniai algoritmai,
evoliucinis programavimas, evoliucins strategijos bei klasifikavimo sistemos.
Genetiniai algoritmai buvo kvpti . Darvino atradimais evoliucijos teorijoje. Trumpai
sakant, problemos yra sprendiamos evoliucijos proces pagalba, kurio rezultatas yra geriausias
galimas sprendimas.
Evoliuciniai skaiiavimai 1960 metais buvo aprayti I. Reenbergo (Rechenberg) darbe:
Evoliucins strategijos (Evolutionsstrategie), kurio idjos buvo ipltotos kit tyrintoj. O patys
genetiniai algoritmai buvo irasti Dono Holando (John Holland) ir sukurti su jo student ir koleg
pagalba. Jis studijavo natralios adaptacijos fenomen ir iekojo bd j perkelti kompiuter.
Genetiniai algoritmai buvo pristatyti kaip biologins evoliucijos modeliavimo priemon. Vliau jis
para apie tai knyg Adaptacija natraliose ir dirbtinse sistemose (Adaption in Natural and
Artificial Systems), kuri ileido 1975 metais. J.Holandas studijavo natralios adaptacijos fenomen
ir iekojo bd j perkelti kompiuter. Genetiniai algoritmai buvo pristatyti kaip biologins
evoliucijos modeliavimo priemon. Tradicikai genetini algoritm genomams aprayti naudojamos
dvejetains iraikos. Taiau pleiantis udavini spektrui ilgainiui buvo pradtos naudoti ir
kitokios genomo iraikos: sveika skaitins, realieji skaiiai, vektoriai, masyvai, grafai (neuroniniai
tinklai).
Individ parinkimas yra tikimybin funkcija pagrsta individo kokybe. Proporcingo
individ parinkimo funkcija parenka individ su tokia tikimybe, kad jis bt parinktas apie tiek
kart kiek gautume individo kokybe padaline i vidutins populiacijos kokybs. Paprastas metodas
atlikti proporcing individ parinkim yra rulets rato pavyzdys. Sukurt nauj individ kiekis
atitinka pradini individ kiek. Vliau jie pakeiia visus pradinius individus. is metodas neturi
galimybs isaugoti geriausi individ ir jie gali bti prarasti.

Nauji individai yra kuriami kryminant senus individus su nustatyta tikimybe. Po to jam
dar pritaikoma mutacija su labai maa tikimybe kiekvienam genomo genui. Pradinje genetinio
algoritmo idjoje kryminimas yra ikeliamas kaip pagrindin paiekos operacija, o mutacija
nustumiama al, kaip pagalbinis veiksnys. Susidomjimas mutacijos operacija atsirado ne taip
seniai, dalinai dl evoliucini strategij ir evoliucinio programavimo takos.

2. Genetiniai algoritmai
2.1 Sprendim paiekos erdv
Kai mes iekome kokios nors problemos sprendimo, mes daniausiai siekiame geriausio
varianto tarp kit. Visi galimi variantai, skaitant ir iekom, sudaro paiekos erdv. Vienas takas
erdvje atitinka vien galim sprendim, kuris gali bti vertintas tinkamumu problemai isprsti.
T.y. mes gauname funkcij, kurios argumentas yra sprendimas, o reikm tinkamumas. Tada iekoti
sprendimo yra tas pats kas surasti tos funkcijos ekstremumo takus. Kartais i erdv yra lengvai
apibriama, taiau daniausiai mes inome tik kelis jos takus. Genetinio algoritmo proceso metu
yra generuojami kiti takai ir itaip iekoma sprendimo.
Problema yra tame, kad i erdv gali bti labai sudtinga ir galima neinoti kaip iekoti
sprendimo ar net nuo kur pradti. Yra daug metod kaip surasti tinkam, bet nevisi jie veda prie
geriausio sprendimo. Kai kurie i i metod yra kaln lipjai (hill climbers), tabu iekotojai
(tabu search), dirbtiniai grdintojai (simulated annealing) ir genetiniai algoritmai.
Vienas pavyzdys yra nedeterminuot polinom (NP) problem klas, kurios negali bti
isprstos tradiciniais bdais. Yra daug egzistuojaniu problem, kuri sprendimus yra sunku
surasti, taiau jei tok turime (atspjame) yra lengva patikrinti jo teisingum. is faktas lm NPpiln problem klass atsiradim. NP-piln klas yra apribota problemoms kuri atsakymas gali
bti taip arba ne. NP-sunki klas nra taip apribota.
Viena i NP charakteristik yra ta, kad gali bti naudojamas nesudtingas algoritmas
surasti galimiems panaudojamams sprendimams, taiau tokie metodai paprastai duoda daug
atsakym ir j patikrinimas gali uimti daug laiko. iomis dienomis niekas neino ar egzistuoja
greitesnis algoritmas, kurio pagalba bt galima gauti tiksl atsakym NP problemoms, o daugelis
mano, kad jis i vis neegzistuoja ir jie ieko alternatyv. Ir viena i j yra genetiniai algoritmai.
2.2 Biologinis pagrindas
Gyvi organizmai yra sudaryti i lsteli. Kiekviena i j turi rinkin chromosom, kurios
yra DNR eiluts ir yra kaip modelis visam organizmui. DNR blokai sudaro genus, kurie turi savo
pozicijas chromosomoje, vadinamas lokusais, ir ukoduoja tam tikrus proteinus. Praktikai galima
sakyti, kad kiekvienas genas nusako tam tikr poym, pvz. aki spalv. Visi galimi poymiai (pvz.
raudona, alia) yra vadinami alelmis (allele). Visa genetin mediaga yra vadinama genomu, o
3

konkretus rinkinys genotipu. Isivysts i genotipo individas yra vadinamas fenotipu fizins ir
vidins charakteristikos.
Reprodukcijos metu vyksta rekombinacija ir i abiej tv gen yra gaunama visikai
nauja chromosoma. Neretai jos metu DNR elementai gali pakisti, t.y. mutuoti. Tai gali atsitikti kai
yra netiksliai nukopijuojami genai, prarandama dalis informacijos, arba vyksta pasislinkimai ir
panas dalykai. Btent rekombinacija ir mutacija yra genetikos ir evoliucijos pagrindas, kurios
metu palikuonys paveldi ar gali gauti gersias savybes.
2.3 Genetinio algoritmo schema
Klasikin genetinio algoritmo schema pateikta 1 pav.
Pirmame pateiktos schemos ingsnyje (Pradia) sukuriama pradin sprendini aib
(populiacija). Paprasiausias pradini sprendini parinkimo bdas yra j generavimas atsitiktine
tvarka. Populiacijos dydis nesikeiia algoritmo vykdymo metu, taigi jis yra vienas i genetinio
algoritmo parametr. Toliau algoritmas vykdo cikl, kuris gali bti apribotas maksimaliu iteracij
skaiiumi arba vykdymo laiku. Kiekvienoje ciklo iteracijoje stengiamasi pereiti prie geresns
populiacijos. Vis pirma vertinama esama populiacija (Tinkamumas). Toliau kuriama nauja (Nauja
populiacija). Nauja populiacija kuriame i senosios pritaikius genetinius operatorius: kryminim
(Irinkimas, Kryminimas) ir mutacij (Mutacija).

vestis: tikslo funkcija f .


Ivestis: geriausias rastas sprendinys.
1. [Pradia] generuoti pradini sprendini populiacij, kurios dydis yra n.
2. [Tinkamumas] apskaiiuoti kiekvieno sprendinio tinkamum pagal tikslo
funkcij f(s).
3. [Nauja populiacija] sukurti nauj populiacij kartojant sekanius ingsnius tol,
kol populiacija prisipildys.
3.1 [Irinkimas] Pagal tinkamum irinkti du tvinius sprendinius i
populiacijos
(kuo didesnis tinkamumas, tuo sprendinys turi didesn tikimyb bti irinktas).
3.2 [Kryminimas] I tvyni sprendini sukuriamas naujas sprendinys
(vaikas).
3.3 [Mutacija] Pagal mutacijos tikimyb keisti sprendin (vaik) atskirose jo
dalyse.
3.4 [Primimas] dti sprendin (vaik) nauj populiacij.
4. [Pakeitimas] Tolimesniame darbe naudoti naujai sugeneruot populiacij.
5. [Tikrinti] Jei pabaigos slyga tenkinama, sustabdyti algoritm ir grinti
geriausi sprendin i einamos populiacijos.
6. [Ciklas] Grti ingsn 2.
1 pav. Genetinio algoritmo schema
Tv parinkim kryminimui galima atlikti naudojant vairiausias strategijas. Tv
parinkim kryminimui galima atlikti naudojant vairiausias strategijas.
Galima naudoti rulets metod. iuo metodu kiekvienam sprendiniui populiacijoje

priskiriama irinkimo tikimyb, kuri tiesiogiai priklauso nuo sprendinio gerumo:

p( s)

f (s)
f (s) .
s

Tada pagal apskaiiuotas tikimybes tvai parenkami kryminimui. Kryminime dalyvauja


maiausiai du tvai. Atsitiktiniu bd parenkamas vienas arba daugiau pjvio tak. Tada nauj
sprendin gauname pamus tvini sprendini dalis gautas perkitus juos per pjvio takus. 2 pav.
pateiktas kryminimo pavyzdys su dvejais tvais ir vienu pjvio taku. 3 pav. pateiktas kryminimo
pavyzdys su dvejais tvais ir dvejais pjvio takais.

Tvas A
Tvas B
Vaikas

A
B
A

A
A
A A A A A A
B
B
B B B B B B
A
A
A A A B B B
2 pav. Kryminimas per vien tak

A
B
B

Tvas A
Tvas B
Vaikas

A
B
B

A
B
B

A
B
B

A
A A A A A
B
B B B B B
A
A A A B B
3 pav. Kryminimas per du takus

A
B
B

Toliau gautiems naujiems sprendiniams pritaikoma mutacija. Mutacijos metu tam tikros
nauj sprendini dalys yra pakeiiamos. Taip daroma norint ivengti populiacijos ustrigimo
lokaliame optimume. Mutacijos pavyzdys pateiktas 4 pav. Svarbu atkreipti dmes tai, kad
mutacijos tikimyb neturt bti labai didel. Kuo didesn i tikimyb, tuo labiau genetinis
algoritmas panaja paprasiausia atsitiktin algoritm. Klasikinje schemoje mutacijos tikimyb
nesikeiia algoritmo vykdymo metu, todl galima tarti, kad mutacijos tikimyb yra vienas i
genetinio algoritmo parametr.

Senas A
Naujas A

A
A

A
A
A
A A A
A
A
A
B A A
4 pav. Vieno geno mutacija

A
A

A
A

2.4 Genetinio algoritmo eskizas


Algoritmas prasideda nuo pradins sprendim (individ) populiacijos sudarymo.
Kiekvienas sprendimas yra ireikiamas chromosomomis. Tada i vienos populiacijos yra imami
individai ir sukuriama nauja populiacija. io proceso motyvacija yra paremta tikjimu, kad naujoji
karta bus geresn u senj. Imant individus naujai populiacijai sudaryti yra atsivelgiama
sprendimo teisingum t.y. kuo tikslesnis sprendimas tuo didesn tikimyb, kad jis bus
pasirinktas. Toks procesas yra kartojamas iki ubrto tikslo: kart skaiius arba sprendimo
tikslumas.
Algoritmo eskizas:
1. Sugeneruoti n chromosom kurios reprezentuoja problem sprendimus ir sudarys
pradin populiacij.
6

2. Apskaiiuoti kiekvienos chromosomos (sprendimo) x tinkamum f(x). T.y. randame


tako x paiekos erdvje reikm.
3. Sukurti nauj populiacij kartojant iuos ingsnius:

Pasirinkti du tvus x, y i populiacijos atsivelgiant i j tinkamum.

Su tikimybe Pc sukryminti x ir y chromosomas, kad gautumme naujus


individus. Jei kryminimas nevyko, tada jie yra tikslios tv kopijos.

Su tikimybe Pm mutuoti kiekvien chromosoma kiekviename lokuse


(pozicija chromosomoje).

Patalpinti naujas chromosomas i populiacij.

4. Kartoti algoritm nuo 2 punkto, tol kol yra patenkintos tam tikros slygos.
5. Grinti geriausi sprendim.
is algoritmas atrodo paprastai, taiau yra daugyb parametr ir bd jam realizuoti.
Pirmiausia ikyla klausimas kaip reprezentuoti sprendimus chromosomomis, ir kokiu bdu jas
ukoduoti. Tada reikia apibrti pagrindinius genetinio algoritmo operatorius: kryminim ir
mutacij. Sekantis klausimas kaip parinkti tvus, kad tikimyb gauti geresn sprendim bt kuo
didesn.
2.5 Chromosomos kodavimas
Yra daug chromosom kodavimo bd, ir jie labai susij su sprendiama problema.
Binarinis kodavimas bene daniausiai naudojamas ir yra populiarus dl savo paprastumo ir
galimybs ukoduoti praktikai bet k. Be to, jis buvo naudotas ir paiuose pirmuose genetini
algoritm bandymuose. iame kodavime chromosom sudaro dviej bit, 0 ir 1, eilut (5 pav.).
Deja, toks metodas danai nra natralus sprendiamoms problemoms, ir neretai reikia pataisym
po kryminimo arba mutacij.
101100101110110
5 pav. Binarinis chromosomos kodavimas
Kitas metodas yra perstatym kodavimas. Jis gali bti naudojamas rikiavimo problemose,
tokiose kaip keliaujanio pirklio. Tokiame kodavime chromosoma yra numeri eilut (6 pav.), kuri
nusako pozicij sekoje. Kaip ir su bitais taip ir ia kai kurioms problemoms reikia pataisym po
kryminimo ar mutacij operatori, kad naujos sekos likt prasmingos.

1 9 8 10 4 6 2 11 7 3 5 0 12
6 pav. Perstatymus koduojanti chromosoma
Problemose kuriose yra naudojamos sudtingesns reikms, kaip pvz. reals skaiiai, bit
kodavimas bt per sudtingas ir nepraktikas. Todl yra naudojamas tiesioginis kodavimas, ir
kiekvienas genas atspindi tikrj reikm. ia chromosomos eilut gali bti sudaryta i bet koki
reikmi (7 pav.), nuo reali skaii iki vairi objekt. Toks kodavimas labai tinkamas
neuroniniams tinklams.
0.24 2.45 1.02 0.1 6.45 2
(kairn) (deinn) (emyn)
7 pav. Tiesioginio kodavimo chromosomos
Be i trij paprast kodavim egzistuoja ir sudtingesnis, t.y. medio metodas. Jis
daniausiai naudojamas ivystyti programas ar kokias nors iraikas. Tokiame metode chromosoma
gali reprezentuoti med sudaryt i programavimo kalbos funkcij ar komand. ia labai tinka LISP
programavimo kalba, nes joje programos kaip tik yra reprezentuojamos i med panaiomis
struktromis.

2.6 Kryminimas ir mutacija


Kryminimas ir mutacija yra pagrindiniai genetinio algoritmo operatoriai lemiantys
problem sprendim vystymsi. J tip pasirinkimas ir realizavimas priklauso nuo problemos, bei
naudojam chromosom kodavimo.
Vieno tako kryminime yra pasirenkamas vienas takas, tada naujai chromosomai
sudaryti dalis iki to tako yra paimama i vieno tvo, o likusi dalis i kito (8 pav.). Lygiai taip pat
veikia ir dviej tak kryminimas, tik ia figruoja trys dalys pirma ir paskutin i vieno tvo, o
likusi vidurin i kito. Pastovus (uniform) kryminimas primena vieno ir dviej tak, tik ia i
tak yra daug, t.y. kiekvienas genas yra atsitiktinai imamas (daniausiai su tikimybe 0,5) arba i
vieno tvo arba kito. Be i operatori chromosomoms koduojamoms bit metodu (ir netik) gali
bti taikomi ir kitokie bdai, pvz. standartin AND operacija.

8 pav. Vieno tako kryminimas


Perstatym kodavime reikia atsivelgti i tai, kad danai skaiius chromosomoje gali
kartotis tik viena kart. Tokiais atvejais vieno tako kryminime yra kopijuojama pirmoji dalis i
vieno tvo, o kita dalis papildoma trkstamais elementais skenuojant antrj. Taiau egzistuoja ir
kitoki bd antrai daliai upildyti.
Medio kodavime vienas takas yra pasirenkamas abiejuose tvuose ir gautos akos yra
sukeiiamos ir prikabinamos tose paiose vietose.
Mutacijos operatorius yra gana paprastai realizuojamas. Bit kodavime kiekvienas bitas su
tikimybe Pm yra keiiamas i prieing. Tiesioginiame metode jis priklauso nuo naudojam reikmi,
pvz. naudojant realius skaiius mutacija gali bti tiesiog atsitiktinio skaiiaus pridjimas ar
atmimas. Perstatym metode gali bti tiesiog sukeiiami du genai vietomis. O medio kodavime
yra keiiami mazgai.
Nors mutacijos operatoriai atlieka tik paprastas funkcijas, taiau jie gali bti pakeisti
truputi sudtingesniais. Pavyzdiui, keliaujanio pirklio udavinyje naudojant perstatym metod
bt netikslinga atlikti mutacij jei galime lengvai patikrinti ar rezultate sprendimas turs geresn
tinkamum.

2.7 Selekcija
Selekcija taip pat turi didel reikm genetiniams algoritmams. Btent is operatorius
nusako kurie tvai i populiacijos bus paimti tolimesnei evoliucijai. Remiantis . Darvino teorija
ilieka tik geriausi, todl ir ia didesn tikimyb bti irinktiems yra suteikiama toms
chromosomoms, kurios nusako tinkamesnius problemos sprendimus. Egzistuoja keletas bd tai
padaryti.
Rulets rato metode kiekviena chromosoma yra renkama tiesiogiai pagal jos tinkamumo
reikm kuo didesnis tinkamumas, tuo didesn tikimyb. Kiekviena rulets dalis yra proporcika
jai atitinkanios chromosomos tinkamumui. Darant selekcij rulet yra isukama ir pozicija ties
kuria ji sustoja atitiks vien chromosoma. Toks algoritmas galt bti realizuotas taip:
1. Susumuoti vis chromosom tinkamumo reikmes S, S = t1 + ... + tn.
9

2. Sugeneruoti atsitiktin skaii r, i intervalo (0; S).


3. Pereiti per populiacij sumuojant tinkamumus s. Jei sumuojant s > r, grinti
pridedam chromosom.
Deja, toks algoritmas turs problem kai vienos (ar keli) chromosom tinkamumo
reikm sudarys didel dal paios rulets. Tokiu atveju mao tinkamumo sprendimai turs labai
maai ans bti pasirinktais. iam reikiniui itaisyti yra naudojamas rang metodas. Jo metu
kiekvienam sprendimui yra priskiriamas eils numeris nuo 1 iki n, pradedant nuo blogiausi
tinkamum turini sprendim ir ubaigiant geriausiu. Taiau ia geresns ir blogesns
chromosomos neturi tokio didelio skirtumo kas gali atsiliepti konvergavimo greiiui.

2.8 Pastovios bsenos selekcija ir elitizmas


Pastovios bsenos selekcija nra visikai atskiras selekcijos operatorius. Jo idja yra
ilaikyti sen populiacij tiesiog pakeiiant blogesnius tinkamumus turinius individus naujai
sukurtais, tokiu bdu isaugant geriausius sprendimus.
Elitizmas yra panaus metodas, tik ia jis taikomas kai naujoji populiacija visikai pakeiia
senj. Tokiam procese yra didel tikimyb, kad geriausias individas inyks arba kryminimo
procese arba mutacijoje, todl taikant elitizm viena arba keletas geriausi chromosom yra
perkeliama i sekani kart.

3. Genetini algoritm taikymas globalaus optimizavimo


udaviniams sprsti

10

Tradicini optimizavimo udavini bazje genetiniai algoritmai yra palyginami su


inomais globalaus optimizavimo metodais. Tyrimams naudojami udaviniai: Knapsako (Knapsack)
optimizavimo udavinys; Mokyklos tvarkaraio optimizavimas; Dvikovos (Duel) optimizavimo
udavinys. Taip pat yra globalaus optimizavimo metodai: Bajeso (Bayes), Monte Karlo paiekos
(Monte Carlo search), Ekstrapoliacijos tipo metodas (Unt), Bajeso (Bayes) metodo modifikacija su
kryptinga paieka (Exkor), Klasterizacijos metodas (Globt) ir vienas lokalaus optimizavimo
metodas Bajeso (Bayes) metodo modifikacija su ingsnio dydio kontrole.
Kaip tyrimai rodo, net ir paprastos genetini algoritm versijos be joki strategini
modifikacij neatsilieka, o kartais ir pralenkia nagrinjamus optimizavimo metodus. Dl genetini
algoritm vidins struktros atsiranda galimyb vystyti vairias strategijas ir dar labiau pagerinti
rezultatus.
Genetiniai algoritmai yra taikomi globalaus optimizavimo udaviniams sprsti.
Pagrindinis tokio taikymo trkumas didelis kiekis genetinio algoritmo parametr. Idja yra tokia,
kad vedus genetinio algoritmo parametr optimizavim rezultatai bt tik geresni. Bandymais
siekiama patikrinti genetini algoritm universalum sprendiant skirtingus udavinius ir palyginti
sprendimo kokyb. Pagrindinis palyginimo metodas yra Monte Karlo paieka. is metodas bt
kritin riba vertinant optimizavimo metodo vertingum. Optimizavimui pasirinktos skirtingo
pobdio uduotys su skirtingo stiliaus funkcijomis ir bandoma nustatyti kokiai funkcijai koks
metodas bt tinkamiausias.
Kartais nra galimybs vairiapusikai vertinti optimizavimo metod konkreiai
uduoiai. Taip gali bti dl uduoiai sumodeliuoti reikalaujamo per didelio kiekio kompiuterinio
laiko. Tokiu atveju apsunkja galimybs itirti genetinio algoritmo parametr tak optimizavimo
naumui. Jei genetiniai algoritmai pasirodyt pakankamai universals sprendiant uduotis, tada
galima bt manyti, kad jie panaiai elgsis ir su kitomis uduotimis. Toliau reikt atlikti genetinio
algoritm parametr optimizavimo tyrim, kuris nustatyt, koks geriausias bdas sukurti
beparametrinius genetinius algoritmus, kuriuos bt galima drsiai taikyti sunkiai modeliuojamoms
uduotims optimizuoti.

4. Ivada

11

Yra pastebtas, kad atliekant eksperimentus su genetiniais algoritmais, j iskirtinis


universalumas optimizavimo udaviniuose. Optimizuojant vairiausius udavinius genetiniai
algoritmai visada yra tarp pirmaujanij. Tok j universalum pastebjo ir Holandas
(J.H.Holland). Toks universalumas leido padaryti grandiozin ivad jei genetiniai algoritmai
gerai optimizuos vairias lengvai modeliuojamas uduotis, tai lygiai tiek pat gerai jie optimizuos ir
sunkiai sumodeliuojamus udavinius. i genetini algoritm savyb leidia atlikti bandymus su
lengviau modeliuojamais udaviniais, o gautus rezultatus tiesiogiai taikyti sudtingesniems.

5. Literatra

12

1. http://lt.wikipedia.org/wiki/Genetiniai_algoritmai
2. http://mg.b4net.lt/study/inf98/nn
3. http://www.culture.lt/stud/files
4. http://ai.hacker.lt

13