Sunteți pe pagina 1din 25

Algoritmi genetici (GA).

Reprezentări cromozomiale.
Operatorul mutație.
I. ALGORITMI GENETICI (GA)

 Respectă structura unui EA

 Implementează toate operațiile de selecție și variație

 Operatorii genetici sunt aplicați în manieră stochastică

 Selecția este realizată astfel încât indivizii sunt aleși proporțional cu


calitatea lor, cei mai slabi nefiind excluși

 Recombinarea este realizată cu o probabilitate mare (de obicei >0.5)

 Mutația este realizată cu probabilitate mica (de obicei <0.1)


I. ALGORITMI GENETICI (GA)
II. Reprezentarea soluțiilor

 Reprezentare

 Fenotip  Genotip

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

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

 Se alege în funcție de problemă


II. Reprezentarea soluțiilor. Reprezentarea binară
 Cele mai utilizate tipuri de reprezentări în GA:
 secvenţe binare;
 secvenţe de numere întregi;
 secvenţe de numere reale;
 permutări.

 Reprezentarea binară: prima ca istoric  GA canonic

 În cazul unor clase de probleme care conţin variabile de tip decizie


booleană, reprezentarea binară este cea mai naturală. Altfel, pot fi
obţinuţi GA superiori ca performanţe utilizând reprezentări directe.
Reprezentarea binară. Exemplu
Problema rucsacului de tip 0-1

 m obiecte; obiectul i 

 determină un set de obiecte de valoare maximă şi costul<Cmax.

 poate fi selectat un obiect (nu fracțiuni din el) dacă nu este depăşit Cmax.

 Reprezentarea unui candidat la soluţie: vector de m elemente, v, unde


şi

Restricție

Problemă
de optim
Reprezentarea binară. Codificarea Gray
,y

 distanța Hamming :

 reprezentarea binară standard  distanța Hamming între reprezentările


binare ale două numere consecutive nu este 1

 k=15, k_s=14, k_d=16 


 Codificarea Gray  distanța Hamming între două numere naturale


consecutive este 1

  pe biţi:


Bitul cel mai
semnificativ
 reprezentarea Gray pe m biți a unui număr

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


 ; val=
Bitul cel mai
semnificativ
 Dacă , val=not(val)

 Pas2: calculează .

Exemplu pentru m=4


Număr 0 1 2 3 4 5 6 7
Cod binar 0000 0001 0010 0011 0100 0101 0110 0111
std.
Cod Gray 0000 0001 0011 0010 0110 0111 0101 0100
Număr 8 9 10 11 12 13 14 15
Cod binar 1000 1001 1010 1011 1100 1101 1110 1111
std.
Cod Gray 1100 1101 1111 1110 1010 1011 1001 1000
III. Reprezentarea prin vectori cu numere întregi

 Este utilizată în problemele de optimizare a funcţiilor cu variabile luând


valori în mulţimea numerelor întregi.

 Alegerea unei codificări - pe baza unor relaţii naturale între valorile pe care
le poate lua fiecare atribut (variabilă).
 Atribute ordinale - dacă sunt cu valori într-o mulţime de numere
întregi, valoarea 2 este “mai similară“ cu 3 decât cu 312.
 Atributelor cardinale – distanța între două valori posibile este
irelevantă.

 Exemplu – atribute cardinale


Determinarea unui drum între două puncte date într-o reţea de puncte în
care conexiunile posibile sunt sus, jos, stânga şi respectiv dreapta 
determinarea unei secvenţe de deplasări către nord, sud, est,
respectiv vest cu câte o unitate. Deplasarea este codificată cu o valoare
din .
III. Reprezentarea prin vectori cu numere întregi
 Exemplu – atribute ordinale
O companie aeriană dorește să își extindă flota aeriană. Pentru achiziție e
disponibil un buget de 5000 unități și sunt luate în considerare trei tipuri de
avioane, cu următoarele caracteristici::
 Tip 1: costă 100 unități, are autonomie de 6000 km și raza sistemului de
evitare a coliziunilor în zbor (TCAS) de 30 km;
 Tip 2: costă 60 unități, are autonomie de 4200 km și raza TCAS de 48
km;
 Tip 3: costă 50 unități, are autonomie de 2800 km și raza TCAS de 32
km.

Calculați cîte avioane din fiecare tip trebuie cumpărate astfel încît
 să se încadreze în buget (variație: utilizând cât mai mult din buget)
 Autonomia medie să fie cât mai mare
 Raza medie pentru TCAS să fie minim 40 km.
III. Reprezentarea prin vectori cu numere întregi

Reprezentare – secvență de numere întregi

Constrângeri

Funcția de evaluare
IV. Reprezentarea prin numere reale
 Reprezentarea este preferată atunci când fenotipurile provin dintr-o
distribuţie continuă.
 Genotipul corespunzător unui candidat soluţie cu n gene este deci vectorul ,
unde .

 Exemple:
 probleme de optimizarea de tipul

 probleme de optimizarea potrofoliilor de active, problema rucsacului în


caz continuu etc.
V. Reprezentarea prin permutări
 Permutările sunt utilizate în probleme în care trebuie stabilită
ordinea apariţiei unor secvenţe de evenimente.

 Operatorii de variaţie trebuie definiţi astfel încât rezultatul


aplicării acestora să corespundă unor soluţii admisibile.

 Clase de probleme:
 probleme în care ordinea apariţiei evenimentelor este
importantă  dependenţa de ordine: problema planificării
activităţilor
 probleme cu dependenţă de adiacenţă  stabilirea
vecinătăților: TSP
VI. Operatorul de mutație
 Operator unar

 Aplicat unui genotip rezultă o variantă “mutantă”, numită progenitură sau


copil. Operatorul mutaţie este întotdeauna stochastic: rezultatul depinde de
o serie de alegeri aleatoare.

 Rolul mutaţiei depinde de tipul de algoritm implementat: în cazul GA,


mutaţia are rolul de a „împrospăta” structura genetică a unei populaţii.

 În general un operator mutaţie permite modificarea oricărei alele dintr-un


cromozom cu orice variantă posibilă, cu o probabilitate nenulă.
VI. Operatorul de mutație
 GA  mutația este aplicată cu o probabilitate mică

 Reprezentare vector binar/ cu numere întregi/ cu numere


reale
 Mutația este aplicată la nivel de genă – modifică o alelă
 Numărul valorilor modificate nu este fixat, dar, în medie,
dacă populaţia conţine dim cromozomi cu câte n gene, este
egal cu .
 pm în următoarele limite: o genă/populație, o
genă/cromozom 𝑝𝑚 ∈
[1
,
1
𝑑𝑖𝑚 ∗ 𝑛 𝑛 ]
 Reprezentare permutări
 Mutația este aplicată la nivel de individ – modifică un individ
 Numărul cromozomilor modificați este, în medie, .
 pm  numărul de indivizi mutați
VII. Schemele generale de mutaţie aplicată asupra
unei populații de copii/progenituri
Schemele de principiu
Șiruri de biți/ numere din Permutări
(Reprezentare 1) (Reprezentare 2)
• O – populația de progenituri • O – populația de progenituri
• dim – dimensiunea populației • dim – dimensiunea populației
• n – lungimea unui cromozom • - probabilitatea de mutație
• - probabilitatea de mutație

for i=1:dim for i=1:dim


for j=1:n • generează aleator
• generează aleator • if
• if • efectuează mutație în
• efectuează mutație cromozomul O(i,:)
asupra alelei O(i,j)
Problemele fără constrângeri
Reprezentare 1 Reprezentare 2

• O – populația de progenituri cu • O –populația de progenituri cu


dim cromozomi de lungime n dim cromozomi
• - probabilitatea de mutație • - probabilitatea de mutație
• MO – populația rezultată • MO – populația rezultată

MO=O; MO=O;
for i=1:dim for i=1:dim
1. mutat=0; 1. generează
2. for j=1:n 2. if
2.1. generează 2.1.
2.2. if MO(i,:)=mutație(O(i,:));
• MO(i,j)=mutație(O(i,j)); 2.2. evaluează MO(i,:)
• mutat=1;
3. if mutat
• evaluează MO(i,:)
Probleme cu constrângeri
Reprezentare 1 Reprezentare 2

• O – populația de progenituri cu • O –populația de progenituri cu dim


dim cromozomi de lungime n cromozomi
• - probabilitatea de mutație • - probabilitatea de mutație
• MO – populația rezultată • MO – populația rezultată

MO=O; MO=O;
for i=1:dim for i=1:dim
1. mutat=0; 1. generează
2. for j=1:n 2. if
2.1. generează 2.1. MO(i,:)=mutație(O(i,:));
2.2. if 2.2. if Admisibil(MO(i,:))
• MO(i,j)=mutație(O(i,j)); • evaluează MO(i,:)
• mutat=1; else
3. if mutat • MO(i,)=O(i,:)
3.1. if Admisibil(MO(i,:))
• evaluează MO(i,:)
else
• MO(i,:)=O(i,:)
VIII. Operatorul mutaţie. Reprezentarea binară
 Cel mai utilizat operator de mutaţie în reprezentarea binară  bit flip.

 Exemplu: mutații în genele 2,3,8 și 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
IX. Mutaţia în reprezentarea prin numere întregi
 Resetarea aleatoare  cu probabilitatea pm, valoarea fiecărei gene este
modificată prin generarea aleatoare uniformă a unei valori din mulţimea
valorilor admisibile pentru gena respectivă.
 Utilizat în cazul atributelor de tip cardinal 𝑎𝑐𝑒𝑒𝑎 ș 𝑖 ș 𝑎𝑛𝑠 ă
 Exemplu – dacă fiecare alelă este în

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

 Mutaţiei de tip fluaj  cu probabilitate pm, variază o alelă cu o valoare


mică ( )
 Utilizat în cazul atributelor de tip ordinal
 Exemplu – dacă fiecare alelă este în

-8 4 6 -5 2 10 7 -3 -8 4 6 -5 1 10 7 -3
X. Mutaţia în reprezentarea prin numere reale
 Mutație uniformă (corespondent: 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ă (corespondent: fluaj)


 Modifică valoarea unei gene cu o valoare mică
 distribuție gaussiană de medie 0, deviație standard :

 Exemplu: , ,

 +
 Dacă valorile cu care sunt modificate alelele sunt în atunci ele pot fi
generate din distribuţia , unde
XI. Mutaţia în reprezentarea prin 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
XI. Mutaţia în reprezentarea prin 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
Referințe curs

 Referințe
 Manual
 capitolul 3.1

 capitolul 3.2

 capitolul 3.3

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