Documente Academic
Documente Profesional
Documente Cultură
ALGORITMI GENETICI
PENTRU
PROBLEMA COLORRII
HRILOR
Ancua-Roxana Vochescu
Bucureti, 2017
1. Enunul problemei
Problema de colorare a hrii a fost propus la nceputul anilor 1850. Ideea este s se
foloseasc numrul minim de culori pentru a umbra diferitele ri, care sunt de culoare diferit
fa de vecinii adiaceni, pe harta lumii. Problema este considerat dificil deoarece nu se
impune nici o restricie asupra numrului de regiuni din harta care mprtesc aceeai limit.
Muli matematicieni, inclusiv Augustus De Morgan, Arthur Kempe i Peter Tait, au dovedit
c problema oricrui grafic simplu poate fi colorat cu cel puin patru culori [1].
De exemplu, galben, verde, albastru , etc. sunt reprezentate prin 1,2,3,..,c, unde c
.Fiecare regiune va fi reprezentat de ctre o gen. De exemplu, o soluie posibil pentru
colorarea a celor 42 de judee din Romnia, inclusiv Bucureti, poate fi reprezentat printr-un
cromozom compus din 42 de gene, fiecare lund valorile 1,2,..,c. Un cromozom A, care
reprezinta colorarea a n regiuni ale unei harti, este notat astfel :
Vom alege pentru implementare reprezentarea cu numere ntregi pentru a putea asocia facil
soluia cu realitatea.
Informaiile despre adiacena a n regiuni din hart pot fi pstrate ntr-o matrice de n n
elemente, cunoscut sub denumirea de matricea adiacenelor.
11 1
Fie M o matrice de adiacenta : M = ( ),
1
1,
unde mij = { , unde i,j =
1, cu i j
0,
1 2 3 4
1 0 1 0 0
2 1 0 1 1
3 0 1 0 1
s4 0 1 1 0
II. La fiecare moment de timp populaia este format din dim indivizi reprezentai
aa cum a fost explicat mai sus. Populia iniial este generat aleator folosind
urmtoarea funcie:
Pe ultima poziie din reprezentarea fiecrui individ se afl valoarea funciei obiectiv.
III. Selecia prinilor este realizat prin urmtorul procedeu: de dim ori sunt alese
perechi de cromozomi din populaia curent i este selectat cel mai bun dintre
ei, din punctul de vedere al funciei de evaluare.
IV. Recombinarea este realizat astfel: pentru fiecare pereche de doi indivizi
aflai pe poziii generate aleator i care nu au mai fost selectai n procesul
curent de recombinare - x i y din populaia curent sunt obinute
progeniturile c1 i c2 prin recombinarea uniform:
Pe ultima poziie din reprezentarea fiecrui individ se afl valoarea funciei obiectiv.
Dac o pereche de prini nu este selectat pentru ncruciare, aceasta este meninut n
populaia urmtoare.
0 1 1 0 1 1 0
1 0 0 1 1 0 1
1 0 0 1 1 1 0
0 1 1 0 1 0 1
1 1 1 1 0 0 0
1 0 1 0 0 0 1
0 1 0 1 0 1 0
4 3 2 4 1 1 2 0
2 3 3 1 3 4 2 2
3 2 2 4 2 1 1 3
4 3 2 4 1 1 2 0
4 3 2 4 1 1 2 0
Urmaii:
4 3 2 4 1 1 2 0
4 3 2 4 1 1 2 0
4 3 2 4 1 1 2 0
Individul rezultat:
4 3 3 4 1 1 2 0
etc.
n urma a zece iteraii celemai bune rezultate ale funciei de evaluare au fost:
Functia fitness:
0 1 2 2 4 3 2 2 2 1
4 3 3 4 1 1 2 0
n urma apelrii aceleai funcii, dar pentru generarea a 20 de populaii am obinut diferenele:
Se observ ct de puin eficient este n acest caz generarea unui numr mic de generaii.
Vom apela funcia pentru 100 de generaii albastru i 200 de generaii portocaliu.
n graficul de mai jos putem urmri evoluia n urma a 500 de generaii albastru i a 1000 de
generaii rou i portocaliu.
>> GA_Harti("judete.txt",3,42,4,4000,0.6,0.01);
>> GA_Harti("judete.txt",3,42,4,10000,0.6,0.01);
>> GA_Harti("judete.txt",3,42,15,300,0.6,0.01);
Se observ c pentru un numr destul de mic de generaii 300, dar mare de culori, se obine
soluia optim.
Bibliografie