Sunteți pe pagina 1din 15

?? ?

Programare evolutivă
și algoritmi genetici
GA – Schema generală de recombinare

 B  / O – populația de părinți / descendenți



 dim – dimensiunea populației de părinți
 K – nr. de operații de recombinare între doi indivizi din B; (rezultă 2 descendenți)
 - probabilitatea de recombinare

A. Probleme fără constrîngeri


pentru i=1:K
1. alege aleator doi indivizi din B:
2. generează
3. dacă
3.1.
3.2. evaluează și
altfel
3.3.
4. → O
GA – Schema generală de recombinare

B.Probleme cu constrîngeri   3.2. a=1


  pentru i=1:K pentru j=1:2
1. alege aleator doi indivizi din B, dacă
2. generează a=0
3. dacă dacă a==1
3.1. evaluează și
3.2. pentru j=1:2 altfel mergi la 3.1
dacă
evaluează
altfel
altfel
3.3. recombinarea asexuată:
4. → O
GA – operatori de recombinare

 Recombinare (crossover): părinți, probabilitate, descendenți


 Reprezentare binară
▪ Încrucișare unipunct / multipunct / uniformă
 Reprezentare prin șiruri de numere întregi
 Reprezentare prin șiruri de numere reale
▪ De tip discret
▪ Aritmetică: simplă / singulară / totală
 Reprezentare prin permutări
▪ PMX (Partially Mapped Crossover)
▪ OCX (Order Crossover)
▪ CX (Cycle Crossover)
▪ ECX (Edge Crossover)

 Recombinare multiplă
GA – recombinare. Șiruri binare

 Unipunct Punct de încrucișare

 pr pp

 1 poziție
Părinți
Părinți Descendenți
Descendenți

Puncte de încrucișare
 Multipunct
 pr
p1 p2 p3
 n poziții
Părinți Descendenți

 Uniformă
 pr
 fiecare poziție
Părinți Descendenți
GA – recombinare. Șiruri de numere întregi

 Aceleași tipuri de încrucișări ca la reprezentarea binară


 Alte operații (ex. aritmetice)  cromozomi aberanți (alelele nu sînt
numere întregi)

 Încrucișare

 Unipunct: pr, un punct (genă) de încrucișare

 Multipunct: pr, n puncte (gene) de încrucișare

 Uniformă: pr, la fiecare poziție (genă)


GA – recombinare. Șiruri de numere reale

0.3*5.8+(1-0.3)*3.5 = 4.19
 Recombinare

  de tip discret
 Aceleași =0.3tipuri de încrucișări ca la reprezentarea binară
1.4 2.5Nu
0.1produce valori
5.8 3.4 9.1 noi7.3ale
4.5 6.2 3.0genelor 1.4 2.5 0.1 4.19
pp m
m 0.3*5.8+(1-0.3)*3.5 = 4.19
4.5 6.1 3.6 3.5 2.4 5.3 1.2 5.7 8.2 1.3 4.5 6.1 3.6 5.11
 Recombinarea
=0.3 aritmetică: , (pondere)0.3*5.8+(1-0.3)*3.5 = 4.19
1.4 2.5Medie
0.1 5.8ponderată ͵͵a
6.2unei perechi de gene:
1.4 2.5, 0.1
,
 9.1 ߙ4.5Ǥ
Părinți
Părințiൌ
3.4 Ͳ Ͳ 7.3 3.0
Descendenți
3.4 9.1 4.5 6.2 7.3 3.0
pp (1-0.3)*5.8+0.3*3.5 = 5.11
1.4 2.5 0.1 5.8 3.4 9.1 4.5 6.2 7.3 3.0
4.5 6.1 3.6 3.5 2.4 5.3 1.2 5.7 8.2 1.3 4.5 6.1 3.6 2.4 5.3 1.2 5.7 8.2 1.3

4.5 6.1 3.6 3.5 2.4 5.3 1.2 5.7 8.2 1.3
Părinți
Părinți Descendenți
Descendenți

Părinți (1-0.3)*5.8+0.3*3.5 = 5.11


Descendenți

 Simplă: de la gena la gena (1-0.3)*5.8+0.3*3.5 = 5.11


 Singulară: numai la gena
 Totală: la fiecare genă
▪  descendenți identici
GA – recombinare. Permutări. PMX

 PMX (partially mapped crossover)


 Probleme cu dependență de adiacență. Nu păstrează relațiile comune
5 3 2 4 10 1 8 9 6 7 22 4 10 1 8 5 7
pp11 pp22
6 1 9 7 8 2 5 33 10 4

x,
  y – părinți,
Părințid – descendent, p(1), p(2) – pozițiile
Părinți Descendent
Descendent

d( p(1):p(2) ) = x( p(1):p(2) );
pentru k = p(1):p(2)
dacă y(k) d  k=7 y(k)=5 d
i = poziția lui d(k) in y d(k)=8
cît timp d(i) 0 i=5
i = poziția lui d(i) in y d(i)=10
d(i)=y(k); i=9
pentru i=1:m d(9)=0
daca y(i) d d(9)=y(7)
j = prima poziție libera in d
d(j)=y(i)
GA – recombinare. Permutări. OCX

 OCX (order crossover)


 Probleme în care permutările semnifică ordinea apariției unor
evenimente

5 3 2 4 10 1 8 9 6 7 4 10 1 8
pp11 pp22
6 1 9 7 8 2 5 3 10 4

Părinți
Părinți Descendent
Descendent
 x, y – părinți, d – descendent, p(1), p(2) – pozițiile

d( p(1):p(2) ) = x(p(1):p(2));
unde = p(2)+1;
pentru i = [p(2):m 1:p(2)-1]
dacă y(i) d
dacă unde > m
unde=1;
d(unde) = y(i);
unde = unde+1;
GA – recombinare. Permutări. CX

 CX (cycle crossover)

 Păstrează cît mai bine informația referitoare la poziția absolută în


care apare o valoare în cromozomii părinți

 Ciclu: fiecare element apare în pereche cu un alt element al aceluiași


ciclu în perechea de cromozomi părinte

 Pași
▪ Partajează părinții în cicluri
▪ Construiește descendenții alegînd alternativ cîte un ciclu din fiecare părinte
GA – recombinare. Permutări. CX

 CX (cycle crossover)
xx11 1 2 4 6 5 7 3 9 10 8 xx11 1 2 4 6 5 7 3 9 10 8

xx22 10 5 2 7 9 1 3 8 6 4 xx22 10 5 2 7 9 1 3 8 6 4

C1: 10, 6, 7, 1 C2: 5, 9, 8, 4 ,2

xx11 1 2 4 6 5 7 3 9 10 8 y11 1 5 2 6 9 7 3 8 10 4

xx22 10 5 2 7 9 1 3 8 6 4 y22 10 2 4 7 5 1 3 9 6 8

C2: 3 Descendenți
Descendenți
GA – recombinare. Permutări. ECX

 ECX (edge crossover)

 Utilizează în generarea descendenților exclusiv perechi de alele


prezente în cel puțin unul din părinți

 Păstrarea secvențelor comune ambilor părinți


▪ Liste de adiacență (tabele de muchii)

 Opțional, studiu individual


GA – recombinare multiplă

 Recombinare multiplă  mai mult de 2 părinți (n-tupluri)

 Ușor de implementat, dar fără echivalent biologic

 În general nu duce la îmbunătățirea rezultatelor


▪ Pentru cazuri particulare s-au obținut rezultate mai bune

 Tipuri
▪ Bazați pe frecvența alelelor – generalizare a încrucișării uniforme
▪ Bazați pe segmentare și recombinarea secvențelor – generalizare a
recombinării multipunct
▪ Bazați pe operații asupra alelelor – recombinare de tip baricentru,
generalizare a operatorilor de recombinare aritmetică
GA – recombinare multiplă

 Referințe
 Manual: capitolul 3.4
Spor la învăţat!

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