Sunteți pe pagina 1din 19

Algoritmi genetici (GA).

Reprezentări cromozomiale.
Operatorul mutație.
I. ALGORITMI GENETICI (GA)
 Respectă structura unui EA
II. Reprezentarea soluțiilor. Reprezentarea binară
 Alegerea unei anumite reprezentări depinde de problema particulară de
rezolvat și este foarte importantă pentru ca GA să furnizeze soluții apropiate
de cele optime.

 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

 Î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 prin utilizarea reprezentărilor directe
Reprezentarea binară. Exemplu
Problema rucsacului de tip 0-1

 Fiind date m obiecte, fiecare cu câte o valoare şi respectiv un cost de


selecţie, determină un set de obiecte cu proprietatea că este de valoare
maximă şi costul<Cmax.
 val: vectorul valorilor asociate celor m obiecte; cost: vectorul costurilor
 Poate fi selectat un obiect (nu fracțiuni din el) dacă nu este depăşit Cmax.

 O soluţie posibilă: un set de obiecte selectate astfel încât costul< Cmax.


Reprezentarea unui candidat la soluţie: vector de m elemente, v, unde
1, 𝑑𝑎𝑐ă 𝑜𝑏𝑖𝑒𝑐𝑡𝑢𝑙 𝑖 𝑎 𝑓𝑜𝑠𝑡 𝑠𝑒𝑙𝑒𝑐𝑡𝑎𝑡 î𝑛 𝑚𝑢𝑙ţ𝑖𝑚𝑒
𝑣 𝑖 =ቊ , 𝑖 = 1, … , 𝑚 şi
0, î𝑛 𝑐𝑎𝑧 𝑐𝑜𝑛𝑡𝑟𝑎𝑟
𝑚

෍ 𝑐𝑜𝑠𝑡 𝑖 ∗ 𝑣 𝑖 < 𝐶𝑚𝑎𝑥


𝑖=1
 Fiecare genotip v corespunde unui număr 𝑅 ∈ 1, … , 2𝑚 , v este
reprezentarea binară a lui R-1 şi astfel încât nu este depăşit pragul Cmax.
Reprezentarea binară. Codificarea Gray
 Reprezentarea binară standard a numerelor naturale are dezavantajul că
distanța Hamming între două numere consecutive nu este 1

 Pentru 𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 , y= 𝑦1 , 𝑦2 , … , 𝑦𝑛 distanța Hamming este


𝑑𝐻 𝑥, 𝑦 = 𝑖, 1 ≤ 𝑖 ≤ 𝑛 𝑥 𝑖 ≠ 𝑦 𝑖

 Exemplu- k=15, k_s=14, k_d=16 și reprezentarea lor pe 5 biți


 𝑥 → 01111 𝑥_𝑠 → 01110 𝑥_𝑑 → 10000
 𝑑𝐻 𝑥, 𝑥_𝑠 = 1 𝑑𝐻 𝑥, 𝑥_𝑑 = 5

 O variantă de reprezentare în care distanța Hamming între două numere


naturale consecutive este 1: codificarea Gray.
 ℱ = 0,1,2, … , 𝑛 , 2𝑚−1 < 𝑛 ≤ 2𝑚 − 1.
 𝑥 ∈ ℱ , 𝑏𝑥 reprezentarea binară standard pe 𝑚 biţi: 𝑥 = σ𝑚
𝑖=1 𝑏𝑥 ሺ𝑚 + 1 −
 Reciproc, fie 𝑔𝑥 reprezentarea Gray pe m biți a unui număr 𝑥 ∈ ℱ. Calculul lui
x:
 Pas 1: determină 𝑏𝑥 reprezentarea binară standard pe 𝑚 biți
 𝑏𝑥 1 = 𝑔𝑥 1 ; val= 𝑏𝑥 1
 𝑖 = 2, … , 𝑚
 Dacă 𝑔𝑥 𝑖 = 1, val=not(val)
 𝑏𝑥 𝑖 = 𝑣𝑎𝑙
 Pas2: calculează 𝑥 = σ𝑚 𝑖=1 𝑏𝑥 𝑚 + 1 − 𝑖 ∗ 2
𝑖−1
.

Exemplu pentu 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.

 Exemplu: problema determinării unui drum între două puncte date într-o
reţea de puncte în care conexiunile posibile sunt sus, jos, stânga şi
respectiv dreapta revine la determinarea unei secvenţe de deplasări către
nord, sud, est, respectiv vest cu câte o unitate. Fiecare tip de deplasare
este codificată cu o valoare din 0,1,2,3 .

 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ă.
IV. Reprezentarea prin numere reale
 În multe situaţii practice, reprezentarea unui candidat la soluţie este
realizată prin intermediul unui şir de numere reale. În general este preferată
această reprezentare atunci când fenotipurile provin dintr-o distribuţie
continuă. Genotipul corespunzător unui candidat soluţie cu n gene este deci
vectorul 𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 , unde 𝑥𝑖 ∈ ℝ, 𝑖 = 1, … , 𝑛.

 Exemple: probleme de optimizarea de tipul

max 𝑓 𝑥
𝑥∈𝐷
𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 𝑇
𝑛

𝐷 = ෑ 𝑎𝑖 , 𝑏𝑖
𝑖
- probleme de optimizarea potrofoliilor de active
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ă. Exemplu: problema planificării activităţilor;
 probleme în care apare dependenţa de adiacenţă – scopul:
stabilirea vecinătăților. Exemplu: problema comis-voiajorului
 Diferenţa: în cazul celei de-a doua clase, punctul de start (în
cazul problemei comis-voiajorului oraşul de plecare) nu este
important.
VI. Schemele generale de mutaţie
Schemele de principiu
Reprezentarea prin șiruri de Reprezentarea prin permutări
biți/ numere din ℤ/ℝ (Reprezentare 2)
(Reprezentare 1)
• 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 𝑟 ∈ 0,1
• generează aleator 𝑟 ∈ 0,1 • if 𝑟 ≤ 𝑝𝑚
• if 𝑟 ≤ 𝑝𝑚 • efectuează mutație în
• efectuează mutație cromozomul O(i,:)
asupra alelei O(i,j)
Schemele generale de mutaţie aplicată populației
progeniturilor – 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ă 𝑟 ∈ 0,1
2. for j=1:n 2. if 𝑟 ≤ 𝑝𝑚
2.1. generează 𝑟 ∈ 0,1 2.1. MO(i,:)=mutație(O(i,:));
2.2. if 𝑟 ≤ 𝑝𝑚 2.2. evaluează MO(i,:)
• MO(i,j)=mutație(O(i,j));
• mutat=1;
3. if mutat
• evaluează MO(i,:)
Schemele generale de mutaţie aplicată populației
progeniturilor – problemele cu constrângeri
Reprezentare 1 Reprezentare 2

• O – populația de progenituri cu dim • O –populația de progenituri cu 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ă 𝑟 ∈ 0,1
2. for j=1:n 2. if 𝑟 ≤ 𝑝𝑚
2.1. generează 𝑟 ∈ 0,1 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,:)
Schemele generale de mutaţie aplicată populației
progeniturilor – problemele cu constrângeri:variantă
Reprezentarea prin șiruri de biți/ numere din ℤ/ℝ

• O – populația de progenituri cu dim cromozomi de lungime n


• 𝑝𝑚 - probabilitatea de mutație
• MO – populația rezultată
MO=O;
for i=1:dim
1. mutat=0; y_prec=O(i,:);
2. for j=1:n
2.1. generează 𝑟 ∈ 0,1
2.2. if 𝑟 ≤ 𝑝𝑚
• y=y_prec; y(j)=mutație(y_prec(j));
• if Admisibil (y)
• y_prec=y; mutat=1;
• else
• y=y_prec;
3. if mutat
• MO(i,:)=y;
• evaluează MO(i,:)
VII. Operatorul mutaţie. Reprezentarea binară
 Cel mai utilizat operator de mutaţie în reprezentarea binară consideră
fiecare genă a fiecărui cromozom pentru inversarea valorii asociate cu o
probabilitate pm în general mică.

 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 𝑝𝑚 ∗ 𝑑𝑖𝑚 ∗ 𝑛.

 Exemplu: dacă în cromozomul părinte


este aplicat operatorul de mutaţie genelor 2, 3 şi 7, rezultă cromozomul
copil

 Parametrul pm este setat în următoarele limite: într-o generaţie, în medie,


este modificată o singură genă a unui singur cromozom din populaţie,
respectiv în populaţia curentă este modificată, în medie, câte o genă din
fiecare cromozom.
VIII. Mutaţia în reprezentarea prin numere întregi
 Resetarea aleatoare prin care, cu probabilitatea pm, valoarea fiecărei
gene este modificată prin generarea aleatoare a unei valori din mulţimea
valorilor admisibile pentru gena respectivă. Acest operator este utilizat în
situaţia în care genele codifică atribute de tip cardinal (în acest caz
valorile admisibile ale unei gene trebuie să poată fi selectate cu aceeaşi
probabilitate într-o operaţie de mutaţie).

 Exemplu: dacă un cromozom conţine 4 gene, fiecare cu valori în


mulţimea −100, −99, … , 200 , un exemplu de mutaţie posibilă in
cromozomul (118 -40 110 -44) gena 1 determină obţinerea
cromozomului (-37 -40 110 -44)

 Mutaţiei de tip fluaj. Operatorul este utilizat în cazul atributelor de tip


ordinal şi, cu o probabilitate p, adaugă/scade o anumită cantitate (de
obicei mică) la/din valoarea fiecărei gene a fiecărui cromozom.
IX. Mutaţia în reprezentarea prin numere reale
 Fie n numărul genelor unui cromozom şi presupunem că, pentru 𝑖 =
1, … , 𝑛 , valoarea genei i aparţine intervalului 𝑎𝑖 , 𝑏𝑖 şi, prin aplicarea
operatorului mutaţie asupra cromozomului 𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 este obţinut
𝑦 = 𝑦1 , 𝑦2 , … , 𝑦𝑛 , unde 𝑥𝑖 , 𝑦𝑖 ∈ 𝑎𝑖 , 𝑏𝑖 , 𝑖 = 1, … , 𝑛.

 Mutaţia uniformă : modificarea fiecărei gene 𝑖 = 1, … , 𝑛 din fiecare


cromozom, cu probabilitatea pm, prin generarea aleatoare uniformă a
câte unui număr din 𝑎𝑖 , 𝑏𝑖 . Corespunde mutaţiei prin resetare aleatoare
în cazul reprezentării cromozomiale prin şiruri de numere întregi.

 Mutaţia neuniformă, cu distribuţie fixată: este corespondentul operatorului


de mutaţie fluaj. Operatorul este proiectat astfel încât cantitatea de
informaţie modificată să fie mică. Aplicarea lui asupra unei gene i, 𝑖 =
1, … , 𝑛, presupune modificarea valorii curente cu o valoare generată de
obicei din distribuţia gaussiană cu medie 0 şi deviaţie standard
specificată, 𝜎, (distribuţie notată 𝑁 0, 𝜎 2 ) rezultatul fiind apoi adus pe
intervalul 𝑎𝑖 , 𝑏𝑖 .
 Dacă valorile cu care sunt modificate alelele sunt în −𝑡, 𝑡 , atunci ele
pot fi generate din distribuţia 𝑁 0, 𝜎 2 , unde 3𝜎 < 𝑡:
𝑃 −3𝜎 ≤ 𝑥 ≤ 3𝜎 ≅ 0.9973
X. Mutaţia în reprezentarea prin permutări
 Operatorul mutaţie poate fi aplicat doar la nivel de cromozom, deci rata
de mutaţie corespunde probabilităţii modificării unui genotip.

 Mutaţia prin interschimbare: selectarea aleatoare a două gene dintr-un


cromozom şi interschimbarea valorilor asociate acestora. Exemplu:
pentru poziţiile 5 şi 8
din 3 6 1 8 7 5 2 4 rezultă
3 6 1 8 4 5 2 7

 Mutaţia prin inserare presupune selectarea aleatoare a două gene, 1 ≤


𝑖 < 𝑗 ≤ 𝑛, memorarea alelei din gena j, A, deplasarea cu o poziţie către
dreapta a valorilor genelor 𝑖 + 1, 𝑖 + 2, … , 𝑗 − 1 şi plasarea valorii A pe
poziţia i+1. Dacă 𝑖 + 1 = 𝑗 nu are efect.
Exemplu: pentru poziţiile i = 5 < 𝑗 = 8, 𝑛 = 10
din 3 6 10 8 7 5 2 4 1 9, A=4, rezultă
3 6 10 8 7 4 5 2 1 9
Mutaţia în reprezentarea prin permutări
 Mutaţia prin amestec : repoziţionarea fiecărei alele în mod aleator,
pentru o secvenţă de gene ale unui cromozom sau pentru întreg
cromozomul. Exemplu:
din 4 3 1 7 8 5 2 6
prin amestecul aleator al valorilor genelor 3,4,5 şi 6 poate rezulta
4 3 7 1 5 8 2 6.

 Mutaţia prin inversiune presupune selectarea aleatoare a două gene,


1 ≤ 𝑖 < 𝑗 ≤ 𝑛, şi inversarea ordinii în secvenţa dintre cele două poziţii.
Exemplu: 𝑖 = 3 < 𝑗 = 6
din 4 3 1 7 8 5 2 6 rezultă
4 3 5 8 7 1 2 6.
 În problemele bazate pe dependenţa de adiacenţă, inversiunea unui
subşir aleator într-un cromozom este cea mai mică modificare ce poate
fi adusă acelui cromozom şi corespunde reprezentării Gray în cazul
spaţiului genotipurilor şiruri binare.

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