Sunteți pe pagina 1din 8

DETERMINAREA DISTANEI MINIME NTRE DOU

PUNCTE FOLOSIND ALGORITMI GENETICI


Ancua DOBRCU, Daniela BORDENCEA, Honoriu VLEAN

FINDING THE SHORTEST PATH BETWEEN TWO POINTS


USING GENETHIC ALGORITHMS
This paper describes some fundamentals of genetic algorithms. A
genetic algorithm (or GA for short) is a heuristic search technique used in
computing and Artificial Intelligence to find optimized solutions to search
problems using techniques inspired by evolutionary biology: mutation, selection,
reproduction [inheritance] and recombination.
Keywords: genetic algorithm
Cuvinte cheie: algoritm genetic

1. Introducere
Algoritmii genetici fac parte din categoria algoritmilor de calcul
evoluionist i sunt inspirai de teoria lui Darwin asupra evoluiei. Ideea
de calcul evoluionist a fost introdus n 1960 de I. Rechemberg n
lucrarea intitulat Evolution Strategies.
Algoritmii genetici au fost inventai i dezvoltai de ctre John
Holland, relevant fiind cartea sa Adaptation in Natural and Artificial
Systems publicat n 1975. Obiectivele urmrite de Holland sunt
mbuntirea nelegerii procesului de adaptare natural i proiectarea
sistemelor artificiale care au proprieti similare cu sistemele naturale.
n 1992 John Koza folosete algoritmi genetici pentru a dezvolta
programe care rezolv anumite sarcini. El i numete metoda
programare genetic.
181

Algoritmii genetici sunt programe inteligente capabile s


soluioneze probleme folosind conceptul evoluiei speciilor, fiind aplicai
cu succes ntr-o varietate de aplicaii care necesit optimizarea global
a soluiei. Algoritmii genetici sunt proceduri adaptive care gsesc soluia
problemei pe baza unui mecanism de selecie natural i evoluie
genetic. Algoritmul este folosit n cazul n care gsirea soluiei optime
nu este uoar sau cel puin ineficient datorit caracteristicilor cutrii
probabilistice. Algoritmii genetici codific o soluie posibil ntr-o singur
structur de date numit cromozom i aplic operatori genetici la aceste
structuri astfel nct s menin informaiile critice.
2. Fundamente biologice
Toate organismele vii sunt formate din celule. n fiecare celul
se afl acelai set de cromozomi. Un cromozom este compus din
gene. Fiecare gen codific o trstur, de exemplu culoarea ochilor,
iar valorile pe care le poate lua o gen se numesc allele. Fiecare gen
se gsete n cromozom la o poziie numit locus. Setul complet al
materialului genetic (toi cromozomii) poart numele de genom. Un set
particular de gene ale genomului se numete genotip.
n timpul procesului de reproducere, n prima faz survine
recombinarea (sau crossover). Genele de la prini formeaz ntr-un fel
ntreg cromozomul nou. Urmaii nou creai pot suferi mutaii. Mutaia
nseamn c elementele ADN-ului sunt puin schimbate. Aceste
schimbri sunt cauzate n principal de copierea eronat a genelor de la
prini.
3. Spatiul de cutare a soluiilor
Rezolvarea unei probleme presupune gsirea celei mai bune
soluii din mulimea soluiilor posibile. Spaiul tuturor soluiilor posibile se
numete spaiul de cutare sau spaiul strilor. Fiecare punct din acest
spaiu reprezint o soluie posibil. Cutarea unei soluii este o
problem foarte complicat dar exist multe metode pentru gsirea
soluiei adecvate, printre care se numr i algoritmii genetici.
4. Algoritmul genetic
Algoritmii genetici au ca punct de plecare o mulime iniial de
soluii aleas aleator i care se numete populaie. n aceast populaie
fiecare individ, numit cromozom reprezint o soluie posibil a
182

problemei. Cromozomii evolueaz de la o generaie la alta, n fiecare


generaie fiind evaluai prin utilizarea unor funcii de fitness (msuri de
potrivire). Pentru crearea populaiei urmtoare, se selecteaz cei mai
buni cromozomi din generaia curent, iar noii cromozomi sunt formai
folosind unul din cei trei operatori genetici eseniali: selecia,
ncruciarea i mutaia.
Selecia asigur c anumii cromozomi din generaia curent
sunt copiai, n acord cu valoarea funciei de fitness, n noua generaie,
ceea ce nseamn c acei cromozomi cu o importan mare au o
probabilitate mare s contribuie la formarea noii generaii.
Crossover este alt operator genetic care reprezint procesul
prin care se formeaz doi cromozomi pentru populaia urmtoare, pe
baza a doi cromozomi din populaia curent.
Mutaia este procesul prin care un cromozom din populaia
curent este modificat i salvat n noua populaie.
Noile generaii sunt formate pn la ndeplinirea unor condiii,
de exemplu pn se ajunge la un anumit numr de populaii.
Paii de baz a unui algoritm genetic sunt prezentai n cele ce
urmeaz:
[Start] Se genereaz aleator populaia cu n cromozomi
[Fitness] Se evalueaz fitness-ul f(x) pentru fiecare cromozom
x al populaiei
[Populaie Noua ] Se creeaz o nou populaie repetnd paii
urmtori pn cnd noua populaie e
complet
[Selecie] Se selecteaz doi cromozomi printe din
populaie, conform cu fitness-ul (cu ct e mai
bun fitness-ul, cu att sunt mai mari ansele
ca ei s fie selectai )
[Crossover] Prinii se ncrucieaz cu o anumit
probabilitate de ncruciate pentru a rezulta
urmai
[Mutaie] Se aplic mutaii urmailor
[Aceptare] Se plaseaz tnra generaie ntr-o nou
populaie
[nlocuire] Utilizarea noii generaii n rularea algoritmului
[Test] Dac este satisfcut condiia de terminare, stop
algoritm i se returneaz cea mai bun soluie din
populaia curent.
[Loop] Revenire la pasul 2.

183

5. Operatorii Algoritmilor Genetici


5.1. Codificarea cromozomilor
Cromozomii, care reprezint codificarea problemei, trebuie s
conin informaiile despre soluia problemei i depind foarte mult de
problem. Exist mai multe moduri de codificare utilizate, cum ar fi
codificarea binar, codificarea prin valoare sau sub form de
permutare. De exemplu, un cromozom poate avea urmtoarele forme:

Cromozomul
A
1001100101011101011010011
(codificare binar)
Cromozomul A 1.234 5.3243 0.4456 2.3293 2.4545
(codificare sub form de valori)
Cromozomul A 1 5 3 2 6 4 7 9 8 (codificare sub form de
permutare)
Funcia de evaluare numit i funcia de fitness este funcia
care ne permite s dm o ncredere la fiecare cromozom din populaie.
Aceast funcie este de obicei funcia care reprezint descrierea
problemei.
5.2. ncruciarea (crossover)
ncruciarea este o parte important a algoritmilor genetici. n
momentul n care s-a luat o hotrre asupra modului n care se
realizeaz codificarea, se poate trece la partea de ncruciare. n
procesul de ncruciare se selecteaz gene ale cromozomilor printe i
se creeaz urmai. Cel mai simplu mod de a realiza asta este s se
aleag aleator un punct de ncruciare i tot ceea ce este naintea
acestui punct s se copieze de la primul printe iar ce este dup, s se
copieze de la al doilea printe. ncruciarea poate s se prezinte astfel:

Exist i alte modaliti de a realiza ncruciarea, una dintre ele


fiind prin alegerea mai multor puncte de ncruciare.
5.3. Mutaia
Alturi de ncruciare, mutaia este o alt parte important a
algoritmilor genetici. Ea se aplic dup realizarea ncrucirii i are ca
184

scop evitarea ajungerii soluiilor ntr-un optim local. n cazul unei


codificri sub form de permutare, mutaia se prezint astfel:

6. Selecia
Cromozomii sunt selectai din populaie pentru a fi prini ntr-o
ncruciare. Conform teoriei lui Darwin, cei mai buni prini
supravieuiesc i se nmulesc crend noi urmai. Dintre metodele cel
mai des ntlnite de selecie amintim:
Selecia aleatoare n care doi prini sunt alei aleator din
populaie.
Selecia cu ajutorul ruletei ponderate n care prinii sunt
selectai n conformitate cu fitness-ul lor. Cu ct sunt mai buni, cu att
ansa lor de a fi alei este mai mare. Imaginai-v o rulet n care sunt
dispui toi cromozomii din populaie. Fiecrui cromozom i corespunde
un sector al ruletei, direct proporional, ca mrime, cu fitness-ul
cromozomului respectiv. n acest fel cromozomii cu fitness mai mare au
ataate sectoare mai mari iar cei cu fitness mic au ataate sectoare mai
mici. La aruncarea bilei pe rulet exist mai multe anse de alegere
pentru cromozomii cu fitness mare.
Selecia aranjat este folosit n cazul n care fitness-ul
cromozomilor difer foarte mult. Astfel se ordoneaz cromozomii
cresctor dup fitness, apoi se renumeroteaz cu numere ntregi din
intervalul [1,..,dimensiunea populaiei]. Cromozomul cu fitness-ul cel
mai mic are numrul 1 etc., iar cromozomul cu fitness-ul cel mai mare
are numrul egal cu dimensiunea populaiei. Aceste numere se
consider fitness-uri i pe ele se aplic selecia roii de rulet.
Elitism. Cnd se creeaz o nou populaie prin ncruciare i
mutaii, exist o ans mare de a pierde cei mai buni cromozomi. De
aceea se recomand copierea celor mai buni cromozomi n noua
populaie, fr a-i schimba.
7. Aplicaie
Pentru a nelege mai bine algoritmii genetici i modul de
utilizare a lor, s-a formulat urmtoarea problem: Exist un depozit n
care se afl poziionate n cutii, fiecare cutie coninnd acelai produs.
Exist un manipulator care trebuie s culeag toate cele n cutii pentru a
185

le pune pe un palet, paletul urmnd a fi pus ntr-un loc special destinat


lui i aflat n punctul Y, prin urmare, manipulatorul pornete din punctul
X i trebuie s ajung n punctul Y, trecnd prin toate punctele n care
se afl cutiile. Poziia cutiilor este cunoscut, prin urmare se poate
determina distana dintre dou cutii. Se dorete determinarea traseului
de lungime minim pe care l parcurge manipulatorul.
O prezentare grafic a problemei se poate observa n figura de
mai jos.

Pentru simplificarea problemei, s-a luat n considerare un


numr de 5 cutii.
1 reprezint poziia manipulatorului
7 reprezint poziia unde trebuie poziionat paletul
2, 3, 4, 5, 6 poziia celor 5 cutii
Cunoscnd aceste poziii se poate realiza o matrice distan
care s conin distanele dintre dou cutii.
Codificarea cromozomului:
Lungimea cromozomului este egal cu 7.

Codificarea genelor:
Un cromozom va fi reprezentat printr-o permutare de tipul 1 2 3
4 5. O permutare reprezint ordinea n care manipulatorul culege cutiile.
186

Orice cromozom are gen [1] = 1 i gen [7] = 7. n gene se pun


identificatorii cutiilor pe care manipulatorul urmeaz s le culeag.
Codificarea genelor
Gena 3
Gena 4
Gena 5
2 Cutia 2
2 Cutia 2
2 Cutia 2
3 Cutia 3
3 Cutia 3
3 Cutia 3
4 Cutia 4
4 Cutia 4
4 Cutia 4
5 Cutia 5
5 Cutia 5
5 Cutia 5
6 Cutia 6
6 Cutia 6
6 Cutia 6
7 Depozit 7 7 Depozit 7 7 Depozit 7

Gena 2
2 Cutia 2
3 Cutia 3
4 Cutia 4
5 Cutia 5
6 Cutia 6
7 Depozit 7

Gena 6
2 Cutia 2
3 Cutia 3
4 Cutia 4
5 Cutia 5
6 Cutia 6
7 Depozit 7

Exemplu:
1

3
2

Prin decodificarea genelor cromozomului de mai sus se obine ruta:


1 -> 3 -> 2-> 4-> 6-> 5-> 7
Se consider c populaia iniial este format din 20 de
indivizi i se realizeaz aleator.
Funcia de fitness care se consider n cazul acestei selecii
este:
1

, dac ruta e convenabil


n
F i1d(Pi ,Pj )

dac ruta e irealizabil


0,
unde: Pi - poziia cutiei i, iar Pf poziia cutiei j
d(Pi ,Pj ) ( X j Xi )2 ( Yj Yi )2

Vom cuta s obinem cromozomi cu un fitness ct mai mic.


Grupul de elit conine primii 3 indivizi din populaia curent cu
cele mai bune valori ale indicelui de fitness.
Modul de ncruciare n cazul problemei de fa: se alege
aleator un punct de ncruciare (poziia de tiere linia vertical); se
copiaz primele dou pri n cei doi descendeni; a doua parte se
completeaz prin inserarea de valori de la cellalt printe n ordinea n
187

care apar acolo, ncepnd cu punctul de dup tietur, srind valorile


care se gsesc deja n descendent

Mutaia

n urma aplicrii operatorilor genetici definii anterior se obine


noua generaie de 20 de indivizi.
Acest algoritm se va repeta pentru un numr de 10 generaii,
numr dup care se consider c s-a gsit un numr de soluii care s
satisfac cerina problemei.
Dup 10 generaii se vor selecta numrul de indivizi care
satisfac cerina funciei de fitness.
BIBLIOGRAFIE
[1] * * * http://obitko.com/tutorials/genetic-algorithms/ Introduction to Genetic
Algorithms
[2] Popescu Rozica Maria, Algoritmi genetici, ISBN 978-606-577-027-0.
[3] Nagib, Gi., Gharieb, W., Path Planning for a mobile robot using genetic
algorithms.
[4] Johannes, F., Knabe, Wegner, K., Maria, J., Schilstra Genetic Algorithms
and their Application to the Artificial Evolution of Genetic Regulatory Networks,
Tutorial ICSB 2007, University of Hertfordshire, UK.
Drd.Ing. Ancuta DOBRCU
Drd.Ing. Daniela BORDENCEA
membru AGIR
Prof.Dr.Ing. Honoriu VLEAN
Universitatea Tehnic din Cluj-Napoca
Catedra de Automatic
Email: ancuta.dobircau@aut.utcluj.com

188

S-ar putea să vă placă și