Sunteți pe pagina 1din 19

?? ?

Programare evolutivă
și algoritmi genetici
Algoritmi genetici - GA

 Clasă a algoritmilor evolutivi (1975, Holland)


 Metodă de optimizare (cu excepții)

 Algoritmul general EA
 Elemente specifice pentru algoritmul clasic (canonic)
 Reprezentare prin șiruri binare
 Probabilitate de selecție proporțională cu calitatea
 Probabilitate de recombinare mare (principalul operator de variație)
 Probabilitate de mutație mică
 Selecția supraviețuitorilor pe baza vîrstei (1 generație)
GA - reprezentare

 Reprezentare

 
 Fenotip  Genotip

 Cea mai importantă și dificilă în construirea unei rezolvări evolutive

 Se alege în funcție de problemă


▪ Binară
▪ Șiruri de numere întregi
▪ Șiruri de numere reale
▪ Permutări
GA – reprezentare. Binară

 Reprezentarea

  binară
 Naturală pentru probleme cu variabile de decizie booleană
, unde

 Reprezentările trebuie să respecte constrîngerile problemelor

 Exemple
▪ Problema rucsacului 0-1. Capacitate maximă cmax, valori asociate
cost. Vector cu elemente:
şi

▪ 
GA – reprezentare. Binară

   Exemplu. Codificarea Gray


 Distanța Hamming: fie ,

 ex. a=14, b=15, c=16,

 Codificare
▪ fie , ,

,

 ex. a=14
GA – reprezentare. Binară

   Decodificare

▪ Pas 1: determină reprezentarea binară standard pe biți


▪ ; val=

 dacă ,

Număr ▪ Pas
0 2: calculează
1 2 3 4 5 6 7
Binar std. 0000 0001 0010 0011 0100 0101 0110 0111

Gray 0000 0001 0011 0010 0110 0111 0101 0100


Număr 8 9 10 11 12 13 14 15
Binar std. 1 0 0 0 1001 1010 1011 1100 1101 1110 1111

Gray 1100 1101 1111 1110 1010 1011 1001 1000


GA – reprezentare. Șiruri de numere întregi

 Reprezentare

  prin șiruri de numere întregi

 Mai mult de două valori (discrete) posibile pentru o genă


, unde
 Domeniu finit / infinit

 Exemple:
▪ Funcții de optimizare definite pe (un interval)
▪ Codificarea unui set de operații / opțiuni
▪ Deplasare într-o rețea: sus, stînga, jos, dreapta

 Codificarea și operatorii: se aleg în funcție de relațiile naturale


▪ Atribute ordinale
▪ Atribute cardinale
GA – reprezentare. Șiruri de numere reale

 Reprezentare

  prin șiruri de numere reale

 Pentru funcții de optimizare definite pe intervale continue


, unde

 Exemplu
GA – reprezentare. Permutări

 Reprezentare

  prin permutări
 Ordinea apariției unor evenimente  valori întregi distincte
, unde ,

 Operatorii de variație aleși corespunzător

 Două tipuri: evenimentele , permutarea


▪  poziția pentru evenimentul  evenimentul a e al 2-lea
▪  evenimentul de pe poziția  primul e evenimentul b

 Tipuri de probleme
▪ Ordinea evenimentelor e importantă: planificare activități, problema
celor n regine
▪ Dependența de vecinătăți: problema comis-voiajorului (start=?)
GA – operatori de mutație

 Mutație

  Mecanism?
 Operator genetic unar: 1 cromozom „părinte” descendent
Dimensiune
populație
 Factor stochastic: probabilitate de aplicare , mică
▪ Asupra fiecărei gene, cu probabilitatea Dimensiune
▪ Se modifică sau se păstrează alela cromozom
▪ În medie se modifică gene din generația curentă
▪ Limite: 1 genă din 1 cromozom 1 genă din fiecare cromozom
  1 1
 Specific fiecărui tip de reprezentare
𝑝𝑚 ∈
[
𝑑𝑖𝑚 ∗ 𝑛 𝑑𝑖𝑚
,
]
▪ Binară: negare
▪ Numere întregi: resetare aleatoare, fluaj
▪ Numere reale: mutație uniformă, mutație neuniformă
▪ Permutări: interschimbare, inserare, amestec, inversiune (!)
GA – operatori de mutație. Negare

 Reprezentare binară: negare

 Exemplu: mutația are loc asupra genelor 2, 3, 8, 12

1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0

1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0
GA – operatori de mutație pe șiruri de numere întregi

 Resetare

  aleatoare
 Modifică alela cu o valoare aleatoare: distribuție uniformă
 În general pentru atribute de tip cardinal
 Exemplu:

-8 4 6 -5 2 10 7 -3 -8 1 6 -5 2 10 7 -3

 Fluaj
 Modifică alela cu o valoare mică (): distribuție de medie 0
 În general pentru atribute de tip ordinal
 Exemplu:
-8 4 6 -5 2 10 7 -3 -8 4 6 -5 1 10 7 -3

-8 4 6 -5 1 11 7 -3
GA – operatori de mutație pe șiruri de numere reale

 Mutație

  uniformă (~resetare aleatoare)
 Modifică o alelă cu o valoare aleatoare: distribuție uniformă
 Exemplu: ,

0.4 0.1 0.7 0.9 1.0 0.2 0.3 0.5 0.4 0.7 0.7 0.9 1.0 0.2 0.3 0.5

 Mutație neuniformă (~fluaj)


  Domeniu modificare
 Modifică valoarea unei gene cu o valoare mică
▪ distribuție gaussiană de medie 0, deviație standard : , unde
GA – operatori de mutație pe permutări

 Se

  aplică la nivel de cromozom, nu genă
 Interschimbare
 alege aleator două gene și , interschimbă cu
 Exemplu:

4 3 6 5 7 2 1 8 4 3 1 5 7 2 6 8

 Inserare
 alege aleator două gene < , inserează pe poziția
 Alelele se deplasează la dreapta cu o poziție
 Dacă nu are efect
 Exemplu:
4 3 6 5 7 2 1 8 4 3 6 1 5 7 2 8
GA – operatori de mutație pe permutări

 Amestec:

  alege aleator două gene <
 repoziționează aleator alelele în același interval
 Exemplu:

4 3 6 5 7 2 1 8 4 3 7 2 5 1 6 8

 Inversiune: alege aleator două gene <


 inversează ordinea alelelor în același interval
 Exemplu:
4 3 6 5 7 2 1 8 4 3 1 2 7 5 6 8
 
GA – Schema generală de mutație,
reprezentarea prin șiruri de biți / numere din

Probleme fără constrîngeri Probleme cu constrîngeri


• O / MO – populația de progenituri / rezultată cu dim cromozomi de lungime n
• – probabilitatea de mutație
• MO=O; • MO=O;
• pentru i=1:dim • pentru i=1:dim
1. mutat=0; 1. mutat=0;
2. pentru j=1:n 2. pentru j=1:n
2.1. generează 2.1. generează
2.2. dacă 2.2. dacă
• MO(i,j)=mutație (O(i,j)); • MO(i,j)=mutație(O(i,j));
• mutat=1; • mutat=1;
3. dacă mutat 3. dacă mutat
• evaluează MO(i,:) 3.1. dacă admisibil(MO(i,:))
• evaluează MO(i,:)
altfel
• MO(i,:)=O(i,:)
GA – Schema generală de mutație,
reprezentare prin permutări

Probleme fără constrîngeri Probleme cu constrîngeri


• O – populația de progenituri cu dim cromozomi de lungime n
• – probabilitatea de mutație
• MO – populația rezultată
• MO=O; • MO=O;
• pentru i=1:dim • pentru i=1:dim
1. generează 1. generează
2. dacă 2. dacă
2.1. MO(i,:)=mutație(O(i,:)); 2.1. MO(i,:)=mutație(O(i,:));
2.2. evaluează MO(i,:) 2.2. dacă admisibil(MO(i,:))
• evaluează MO(i,:)
altfel
• MO(i,)=O(i,:)
GA – Schema generală de mutație,
reprezentare prin permutări

 Referințe
 Capitolul3
▪ 3.1. Introducere
▪ 3.2. Reprezentare
▪ 3.3. Mutație

 Temă
 Implementați toți operatorii de mutație (cîte o funcție pentru fiecare)
▪ I: cromozom, probabilitate de mutație, alte informații necesare
▪ E: noul cromozom, calitate
Spor la învăţat!

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