Sunteți pe pagina 1din 13

Mutaie-probabiliatatea de mutaie se d

Reprezentare binar
Pentru un individ x de lungime/dimensiune n se parcurge individul cu un for i de la 1 la n i se
genereaz la fiecare iteraie un numr r aleator. Dac r este mai mare dect probabilitatea de
mutaie dat, atunci bitul de pe poziia i se neag.
For i=0,n
R=random
If(r>prob)
X(i)=~x(i)
Reprezentare numere ntregi
1) Mutaie aleatoare
Se parcurge cu for i de la 1 la n populaia x, se genereaz la fiecare iteraie un numr p.
Dac p este mai mare dect probabilitatea de mutaie atunci x(i) i schimb valoarea cu
una generat aleator.
2) De tip fluaj
Se parcurge cu for i de la 1 la n populaia x, se genereaz la fiecare iteraie un numr p.
Dac p este mai mare dect probabilitatea de mutaie atunci x(i) devine x(i)+ o valoare
aleatore. Avem grij ca x(i) s rmn n interval
Reprezentare numere reale
1) De tip fluaj: la fel ca la ntregi
2) Mutaie uniform: la fel ca la mutaie aleatoare
Reprezentare permutri
1)interschimbare
Se genereaz aleator dou poziii i se schimb valorile ntre ele.
2)inserare

Se genereaz aleator dou poziii p1 i p2. Elementul de pe poziia p2 se mut pe poziia p1+1,
iar toate elementele de la p1+1 se mut cu unul mai la dreapta.
1234567
P1=2 , p2=5
Dup inserare: 1 2 5 3 4 6 7
3)inversare
Se genereaz aleator dou poziii p1 i p2 i elementele dintre poziiile p1 i p2 (inclusiv cele de
pe p1 i p2 ) se nverseaz
1234567
P1=2, p2=5
1543267
4)amestec
Se genereaz aleator dou poziii p1 i p2 i elementele dintre poziiile p1 i p2 (inclusiv cele de
pe p1 i p2 ) se amestec ntre ele
1234567
P1=2, p2=5
1 425 3 67

Recombinare
Reprezentare binar
1) Unipunct

Avem 2 prini de imensiune n i obinem 2 copii. Se genereaz aleator o poziie p. Primele p


elemente din primul printe se copiaz n primul copil (pe poziiile de la 1 la p) i de la p+1 la n
n copilul doi pe poziiile de la p+1 la n. Din al doilea printe ultimele p+1 elemnte se copiaz n
primul copil i primele p elemnte se copiaz n al doilea copil

2) Multipunct
Avem 2 prini de imensiune n i obinem 2 copii. Se genereaz aleator un numr k de
poziii i se pun n copii aleator.

Reprezentare numere ntregi


ncruciare uniform
Doi prini x1 i y1 de dimensiune n i rezult doi copii x2 i y2. i se d o probabilitate de
recombinare
For i=1 la n
Se genereaz un numr random r
Dac r<prob de recombinare
X2(i)=x1(i)

Y2(i)=y1(i)
Else
X(2)=y1(i)
Y2(i)=x1(i)

Reprezentare numere reale


1) De tip discret
Doi prini iar copii rezult amestecnd elementele prinilor.
2) Aritmetic simpl-avem un alfa ntre 0 i 1 dat
Se genereaz aleator o poziie i e la fel pentru cei doi prini c ai aceeai lungime
For j=1,i-1
X2(j)=x1(j)
Y2(j)=y1(j)
For j=i,n
X2(j)=alfa*y1(j)+(1-alfa)*x1(j)
Y2(j)=alfa*x1(j)+(1-alfa)*y1(j)

3) Aritmetic singular avem un alfa alfa ntre 0 i 1 dat

Se genereaz aleator o poziie i e la fel pentru cei doi prini c ai aceeai lungime
For j=1, i-1
X2(j)=x1(j)
Y2(j)=y1(j)
Pentru i avem
X2(i)=alfa*y1(i)+(1-alfa)*x1(i)
Y2(i)=alfa*x1(i)+(1-alfa)*y1(i)
For j=i+1,n
X2(j)=x1(j)
Y2(j)=y1(j)

4) Aritmetic complet avem un alfa alfa ntre 0 i 1 dat


For i=1,n
X2(i)=alfa*y1(i)+(1-alfa)*x1(i)
Y2(i)=alfa*x1(i)+(1-alfa)*y1(i)

Reprezentare permutari
1)Cicluri

Se formeaz cicluri cu cele dou permutri. Apoi sub fiecare se trece numrul ciclului. n copii,
se copiaz din x1 n x2 cele din ciclurile impare(i din y1 n y2 tot cele din ciclurile impare), iar
din y1 n x2 cele din ciclurile pare, i din x1 n y2 cele din ciclurile pare.

2)Order
Se genereaz dou poziii p1i p2. Se copiaz n x2 pe poziiile de la p1 la p2 elementele de la
p1 la p2 din x1 i n y2 se copiaz n x2 pe poziiile de la p1 la p2 elementele de la p1 la p2 din
y1. Apoi n x1 de la poziia p2+1 se copiaz din y1 ncepnd de la poziia p2 elementele care nu
se repet. Analog la y2

3) Muchii
Cele dou permutri avem elemente de la 1 la n. Pentru fiecare element de la 1 la n i scriem
vecinii din ambele permutri..vecinii care se repet se trec cu +.
Apoi se alege un element de la care se ncepe i din lista lui de vecini se pune pe urmtoarea
poziie veciunul cu + , dac nu exist se alege vecinul care are cei mai puin vecini. Dup ce se
trece un element se taie din toate listele.

4)PMX
......nu tiu s explic asta)

Selectia
De trei tipuri:
1)rulet
2)SUS
3)Turneu

Selecia de tip turneu


Dintr-o populaie cu n indivizi se va genera o populaie de prini tot cu n indivizi. Pentru a
genera prinii parcurgem vu un for i de la 1 la n, i la fiecare iteraie se genereaz aleator un
numr k. Selectm aleator k indivizi din populaie i pentru cei k indivizi calculm funcia
obiectiv. Individul cu funcia obiectivcu cea mai mare valoare devine printe. Procedeul se repet
de n ori(adic se face for-ul).

Pentru rulet i SUS se folosesc ranguri i FPS.


Cum se calculeaz FPS: pentru fiecare individ i se calculeaz funcia obiectiv,apoi se calculeaz
suma funciilor obiectiv. Valoarea FPS-ului unui idivid este egal cu funcia lui obiectiv/suma
funciilor obiectiv. (sau Val FPS-ului e raportul dintre funcia lui obiectiv/suma fct obiectiv).
Dup ce se calculeaz FPS-ul se calculeaz probabilitatea cumulat: primul idivid are ca
probabilitate cumulat FPS-ul lui, urmtorul are FPS-ul lui a celui de dinainte i tot aa.

Cum se calcuelaz rangurile: rangul unui individ se face cu formula aia cu


2-s/dimensiunea populaiei*(2*i(s-1)/dim(dim-1)).

Apoi probabilitatea cumulat se calculeaz ca mai sus doar c n loc de FPS se foloses ranguri.
(rang elemnt/suma rangurilor)

Selecia de tip rulet


Cu un for k de la 1 la n se parcurge populaia y. La fiecare iteraie se genereaz un numr random
r, apoi se compar valoarea lui r cu probabilitaetea cumulat a elementului k. Dac r<q(k)
printele= y(k) altfel se merge la urmtorul individ din populaie i se verific dac probabilitatea
cumulat a individului e mai mic dect r.

Selecia de tip SUS


Se declar un k=1 apoi cu un for i de la 1 la n se parcurge populaia. La fiecare iteraie se
genereaz un numr random r ntre 0 i 1/n. Ct timp k este mai mic ca n, ct timp r este mai
mic dect q(i)(q probabilitatea cumulat) parinte(k)=y(i), r=r+1/n i k=k+1. Cnd iese din while
k<n i devine i+1.
K=1
For i=1,n
Random r
Cat timp k<n
Cat timp r<q(i)
Parinte(k)=y(i)
R=r+1/n
K=k+1
i=i+1

Schimbarea generaiei(asta se face la ultimul pas din paii algoritmului genetic)


1) Elitist- i lum pe cei mai buni
2) Vrst i lum pe cei mai tineri

Probleme

1)One-MAX-funcia e suma elementelor vecotrului


Indivizii sunt pe reprezentare binar
Pop iniial e generat aleator
Recombinarea: ncruciare unipunct
Mutaia: cea de la binar
Selecia: SUS cu FPS sau Turnir cu k=2
Schimb de generaii: vrst
Condiia de oprire: un anumit numr de iteraii

2)Comis voiajor-are funcia lui cu distan i cost


Indivizii sunt permutri
Pop iniial generat aleator
Recombinrea: cilcuri
Mutaie: inversare
Selecia prinilor: SUS cu ranguri sau FPS sau Turnir
Schimb de generii: elitist sau vrst
Oprire: un anumit numr de iteraii
3)Planificarea activitilor
Indivizii=permutri
Pop iniial= generat aleator
Recombinare:PMX

Mutaie:interschimbare
Selecie: SUS cu FPS
Schimb de generaii: elitist
Oprire: dup planificare tuturor activitilor

4)Portofolii
Indivizii: ir de numere reale la short selling elementele sunt ntre -1 i 1 i la fr short selling
elemntele sunt ntre 0 i 1.
Pop iniial : generat aleator dar se ine cont de condiii pentru short i fprp short swlling
Recombinare: aritmetic total(se verific s respecte condiiile)
Mutaie: de tip fluaj
Selecie: SUS
Schimb de generaii:: elitist
Oprire: val maxim a portofoliului sau nr de iteraii.
5) Problema celor 8 regine
Indivizii: permutri
Pop iniial: aleator
Recombinare: order
Mutaie: interschimbare
Selecie:turneu k =2
Schimb de generaie: elitist
Oprire: soluie sau numr de iteraii

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