Download 03_local_search_EA

Document related concepts
no text concepts found
Transcript
INTELIGENŢĂ
ARTIFICIALĂ
Curs 3
Rezolvarea problemelor de căutare
Strategii de căutare locală
Algoritmi evolutivi
Laura Dioşan
Sumar
B. Rezolvarea problemelor de căutare
Căutare locală

Tipologie

Căutare locală simplă - se reţine o singură
stare vecină




Căutare tabu  reţine lista soluţiilor recent vizitate
Hill climbing  alege cel mai bun vecin
Simulated annealing  alege probabilistic cel mai
bun vecin
Căutare locală în fascicol (beam local search) –
se reţin mai multe stări (o populaţie de stări)



Algoritmi evolutivi
Optimizare bazată pe comportamentul de grup
(Particle swarm optimisation)
Optimizare bazată pe furnici (Ant colony optmisation)
Algoritmi inspiraţi de natură

Care este cea mai bună metodă de
rezolvare a unei probleme?

Creierul uman


Mecanismul evoluţiei


A creat roata, maşina, oraşul, etc
A creata creierul (mintea) umană
Simularea naturii

Cu ajutorul maşinilor  reţele neuronale
artificiale simulează mintea umană


Maşini de zbor, computere bazate pe ADN,
computere cu membrane
Cu ajutorul algoritmilor

algoritmii evolutivi simulează evoluţia naturii
Algoritmi evolutivi

Simularea naturii

Imagini de la cursul lui Mihai
Algoritmi evolutivi

Care sunt caracteristicile de bază sunt AE?




Implică procese iterative şi paralele
Folosesc populaţii de potenţiale soluţii
Se ghidează pe o căutare aleatoare
Sunt inpiraţi de biologie – implică mecanisme
precum:




Selecţia naturală
Reproducerea
Recombinarea
Mutaţia
Algoritmi evolutivi

Câteva repere istorice

Jean Baptise de Lamark (1744-1829)


A propus în 1809 o explicaţie pentru originea speciilor
în cartea Zoological Philosophy:
 Nevoile unui organism determină care
caracteristici ale lui evoluează
 Caracteristicile utile dobândite în cursul vieţii unui
organism se pot transfera urmaşilor acestuia
Legea utilizării şi neutilizării (use and disuse)
Algoritmi evolutivi

Câteva repere istorice

Charles Darwin (1807-1882)

În cartea Origin of Species demostrează că toate
organismele au evoluat din alte organisme pe baza
 variaţiei
 supraproducţia de descendenţi
 şi a selecţiei naturale
 Competiţia (generaţii constante ca
dimensiune)
 Supravieţuirea pe baza calităţii/adaptării la
mediul de viaţă (fitness)
 Reproducerea
 Apariţia de specii noi
Algoritmi evolutivi

Câteva repere istorice

Teoria evolutivă modernă






Îmbogăţeşte teoria Darwiniană cu mecanismul
moştenirii genetice
Variaţia genetică se produce prin:
 mutaţie – spontană
 şi reproducere sexuală
L. Fogel 1962 (San Diego, CA)  programare
evolutivă (Evolutionary Programming)
J. Holland 1962 (Ann Arbor, MI)  algoritmi genetici
(Genetic Algorithms)
I. Rechenberg & H.-P. Schwefel 1965 (Berlin,
Germany) strategii evolutive (Evolution Strategies)
J. Koza 1989 (Palo Alto, CA)  programare genetică
Algoritmi evolutivi

Metafora evolutivă
Evoluţia naturală
Rezolvarea problemelor
Individ
↔
Soluţie potenţială
Populaţie
↔
Mulţime de soluţii potenţiale
Cromozom
↔
Codarea unei soluţii potenţiale
Genă
↔
Parte a codării
Fitness
↔
Calitate
Încrucişare şi mutaţie
↔
Operatori de căutare
Mediu
↔
Problemă

Exemplu
Algoritmi evolutivi

Elemente






Algoritm
Individ
Populaţie
Fitness
Operatori de căutare
Selecţie
Algoritmi evolutivi – algoritm

ddd
Algoritmi evolutivi

Proiectare




Alegerea unei reprezentări a cromozomilor
Alegerea unui model de populaţie
Stabilirea unei funcţii de evaluare
Stabilirea operatorilor genetici




Selecţie
Mutaţie
Recombinare
Stabilirea unui criteriu de stop
Algoritmi evolutivi
Proiectare – alegerea unei reprezentări

2 nivele de existenţă pentru o soluţie candidat

Nivel exterior  fenotip




Individ - obiectul original în contextul dat de problemă
Aici are loc evaluarea unei potenţiale soluţii
Furnică, rucsac, ...
Nivel interior  genotip



Cromozom - codul asociat unui obiect
 Format din gene, poziţionate în locuri (fixe) – loci – şi
având anumite valori – alele
Aici are loc căutarea unei noi potenţiale soluţii
String, matrice, etc
Algoritmi evolutivi
Proiectare – alegerea unei reprezentări

Alegerea unei reprezentări


Relevantă pentru problemă
Relevantă pentru evaluare şi operatorii genetici
Algoritmi evolutivi
Proiectare – alegerea unei reprezentări
Reprezentare – tipologie:
 Liniară

Discretă




Binară  problema rucsacului
Ne-binară
 Întreagă
 Oarecare  procesarea imaginilor
 Permutări  problema comisului voiajor
 Categorială  problema colorării hărţilor
Continuă (reală)  optimizări de funcţii
Arborescentă  probleme de regresie
Algoritmi evolutivi
Proiectare – alegerea unei reprezentări

Reprezentare liniară discretă binară

Genotip


Fenotip




şir de biţi
Elemente de tip Boolean
Numere întregi 
Numere reale într-un anumit interval
Ex. Problema rucsacului


Genotip – şir de biţi
Fenotip – obiectele alese pentru umplerea rucsacului
Mapping real values on bit strings
z  [x,y]   represented by {a1,…,aL}  {0,1}L
•
•
[x,y]  {0,1}L must be invertible (one phenotype
per genotype)
: {0,1}L  [x,y] defines the representation
y  x L1
(a1,..., aL )  x  L
 (  a L  j  2 j )  [ x, y ]
2  1 j 0



Only 2L values out of infinite are represented
L determines possible maximum precision of
solution
High precision  long chromosomes (slow
Algoritmi evolutivi
Proiectare – alegerea unei reprezentări

Reprezentare liniară discretă ne-binară întreagă
oarecare

Genotip


Fenotip


şir de numere întregi dintr-un anumit interval
Utilitatea numerelor în problemă
Ex. Problema plăţii unei sume folosind diferite monezi


Genotip  şir de nr întregi de lungime egală cu numărul de
monezi diferite, fiecare număr din intervalul
[0,suma/valoarea monezii curente]
Fenotip  câte monezi din fiecare tip trebuie considerate
Algoritmi evolutivi
Proiectare – alegerea unei reprezentări

Reprezentare liniară discretă ne-binară întreagă
de tip permutare

Genotip


Fenotip


Permutare de n numere (n – numărul de gene)
Utilitatea permutării în problemă
Ex. Problema comisului voiajor


Genotip  permutare de n
Fenotip  ordinea de vizitare a oraşelor ştiind că fiecărui
oraş îi corespunde un număr
Algoritmi evolutivi
Proiectare – alegerea unei reprezentări

Reprezentare liniară discretă ne-binară
categorială

Similară cu cea întreagă, dar în loc de numere se
folosesc etichete

Ex. Problema colorării hărţilor


Genotip  şir de etichete (culori) de lungime egală cu
numărul de ţări, fiecare etichetă aparţinând unei mulţimi
date
Fenotip  cu ce culoare trebuie haşurată fiecare hartă
Algoritmi evolutivi
Proiectare – alegerea unei reprezentări

Reprezentare liniară continuă (reală)

Genotip


Fenotip


Şir de numere întregi
Utilitatea numerelor în problemă
Ex. Problema optimizării funcţiilor f:Rn  R


Genotip  tuplu de numere reale X=[x1, x2, ..., xn], xi є R
Fenotip  valorile asociate argumentelor funcţiei f
Algoritmi evolutivi
Proiectare – alegerea unei reprezentări

Reprezentare arborescentă

Genotip




Fenotip


Arbori care codează S-Expresii
Nodurile interne ale arborelui  funcţii
 Matematice
 Operatori reali
 Operatori de tip Boolean
 Instrucţiuni
 Într-un limbaj de programare
 Alt tip de instrucţiuni
Frunzele arborelui  terminale
 Valori reale sau Booleene, constante sau variabile
 Subprograme
Interpretarea S-expresiilor
Ex. Calculul ariei unui cerc
 *r
2
*

*
r
r
Algoritmi evolutivi
Proiectare – formarea unei populaţii

Populaţie

Scop: reţine o colecţie de soluţii candidat




De obicei are o dimensiune fixă μ
Este folosită în întregime în procesul de selecţie pentru reproducere
Diversitate


Se permit repetiţii
Nr de fitness-uri/fenotipuri/genotipuri diferite
Reprezintă unitatea de bază care evoluează

i.e., the population is evolving, not the individuals
Algoritmi evolutivi
Proiectare – formarea unei populaţii

Iniţializare

Uniformă (dacă e posibil) în spaţiul de căutare




Stringuri binare – generarea de 0 şi 1 cu probabilitatea 0.5
Şiruri de numere reale generate uniform (într-un anumit interval)
Permutări
Arbori
 Metoda Full – arbori compleţi
 Nodurile de la adâncimea d < Dmax se iniţializează aleator
setul de funcţii F
 Nodurile de la adâncimea d = Dmax se iniţializează aleator
setul de terminale T
 Metoda Grow – arbori incompleţi
 Nodurile de la adâncimea d < Dmax se iniţializează aleator
din F U T
 Nodurile de la adâncimea d = Dmax se iniţializează aleator
setul de terminale T
 Metoda Ramped half and half
 ½ din populaţie se creează cu metoda Full
 ½ din populaţie se creează cu metoda Grow
 Folosind diferite adâncimi
cu o funcţie din
cu un terminal din
cu un element
cu un terminal din
Algoritmi evolutivi
Proiectare – formarea unei populaţii

Modele de populaţii

Generaţional




Steady-state



În fiecare generaţie se generează μ descendenţi
Fiecare individ supravieţuieşte o singură generaţie
Mulţimea părinţilor este înlocuită în întregime cu mulţimea
descendenţilor
În fiecare generaţie se obţine un singur descendent
Un singur părinte este înlocuit cu descendentul obţinut
Discrepanţa între generaţii (Generation Gap)



Proporţia populaţiei înlocuite
1 = μ/μ, pentru modelul generaţional
1/μ, pentru modelul steady-state
Algoritmi evolutivi
Proiectare – funcţia de evaluare


Reflectă condiţiile la care trebuie să se adapteze populaţia
Funcţie de calitate sau funcţie obiectiv

Asociază o valoare fiecărei soluţii candidat


Tipologie:




Consecinţe asupra selecţiei  cu cât sunt mai multe valori diferite, cu atât e mai bine
După


După


După


nr de obiective urmărite:
Uni-obiectiv
Multi-obiectiv  fronturi Pareto
direcţia optimizării
De maximizat
De minimizat
gradul de exactitate
Exactă
Euristică
Etapa cea mai costisitoare

Nu se re-evaluează indivizii nemodificaţi
Algoritmi evolutivi
Proiectare – funcţia de evaluare

Exemple

Problema rucsacului



Problema plăţii unei sume folosind diferite monezi




Reprezentare liniară discretă întreagă sub formă de permutare
Fitness = costul drumului parcurs  minimizat
Problema optimizării funcţiilor



Reprezentare liniară discretă întreagă
Fitness = abs(suma de plată – suma monezilor selectate)  minimizat
Problema comisului voiajor


reprezentare liniară discretă binară
Fitness = abs(greutatea rucsacului – greutatea obiectelor alese) 
minimizat
Reprezentare liniară continuă reală
Fitness = valoarea funcţiei  minimizat/maximizat
Calculul ariei unui cerc


Reprezentare arborescentă
Fitness = suma pătratelor erorilor (diferenţelor între valoarea reală şi cea
calculată pe un set de exemple)
Algoritmi evolutivi
Proiectare – selecţia

Scop:

Acordă şanse de reproducere/supravieţuire mai mari indivizilor mai buni



Direcţionează populaţia spre îmbunătăţirea calităţii
Proprietăţi




Şi indivizii mai slabi trebuie să aibă şansa să se reproducă/supravieţuiască pentru că pot conţine material genetic util
lucrează la nivel de populaţie
Se bazează doar pe fitnessul indivizilor (independent de reprezentare)
Ajută la evadarea din optimele locale datorită naturii sale stocastice
Tipologie

În funcţie de scop:



În funcţie de modul de decidere al câştigătorului



Selecţia părinţilor (din generaţia curentă) pentru reproducere
Selecţia supravieţuitorilor (din părinţi şi descendenţi) pentru generaţia următoare
Deterministă – cel mai bun câştigă
Stocastică – cel mai bun are cele mai mari şanse să câştige
În funcţie de mecanism


Selecţia pentru reproducere
 Selecţie proporţională (bazată pe fitness)
 Selecţie bazată pe ranguri
 Selecţie prin turnir ----
Selecţia pentru supravieţuire
 Bazată pe vârstă
 Bazată pe calitate (fitness)
Bazate pe întreaga populaţie
Bazate pe o parte din populaţie
Algoritmi evolutivi
Proiectare – selecţia

Selecţie proporţională (bazată pe fitness)


Algoritmul ruletei la nivelul întregii populaţii
Estimarea numărului de copii ale unui individ E(ni) =  • f(i)/ f , unde:




 = dimensiunea populaţiei
f(i) = fitnessul individului i,
f = fitnessul mediu al populaţiei
Indivizilor mai buni


li se alocă mai mult spaţiu în ruletă
Au şanse mai mari să fie selectaţi
Algoritmi evolutivi
Proiectare – selecţia

Selecţie proporţională (bazată pe fitness)

Dezavantaje

Convergenţa prematură – cromozomii foarte buni tind să domine
populaţia
 Presiune de selecţie foarte mică când fintessurile indivizilor sunt
foarte apropiate (la sfârşitul rulării)
 Susceptibilă de traspoziţia funcţiei
Rezolvare  Scalarea fitnessului
 Windowing: f’(i) = f(i) -  t , unde  este cel mai slab individ din
populaţia curentă
 Scalare de tip sigma: f’(i) = max( f(i) – ( f  - c • f ), 0.0), unde
c este o constantă (de obicei 2)
 Scalare prin normalizare:


Se începe cu fitnessurile absolute (iniţiale)
Se standardizează astfel încât cel mai bun fitness să fie cel mai mic
(egal cu 0)
Se ajustează fitnessurile astfel încât să aparţină [0,1]

Se normalizază fitnessurile astfel încât suma lor să fie 1


Algoritmi evolutivi
Proiectare – selecţia

Selecţia bazată pe ranguri


Încearcă să rezolve problemele selecţiei
proporţionale prin folosirea fitnessurilor
relative (în locul celor absolute)
Algoritm


Se ordonează întreaga populaţie pe baza fitnessului
 Creşte puţin complexitatea algoritmului, dar se
poate neglija această creştere comparativ cu
timpul necesar evaluării unui individ
Se calculează probabilităţile de selecţie pe baza
rangurilor
 Cel mai slab individ are rangul 1
 Cel mai bun individ are rangul 
Algoritmi evolutivi
Proiectare – selecţia

Selecţia bazată pe ranguri

Modalităţi de acordare a rangurilor

Liniară
 s – presiunea de selecţie
 măsoară avantajele celui mai bun individ


1.0 < s  2.0
în algoritmul genetic generaţional s este numărul de copii ai unui
individ
 Ex. Pt o populaţie cu  indivizi

Exponenţială
 Cel mai bun individ poate avea mai mult de 2 copii
 Normalise constant factor c according to population size
Algoritmi evolutivi
Proiectare – selecţia

Selecţia prin turnir


Lucrează doar cu o parte din populaţie
Algoritm



Probabilitatea alegerii unui individ în eşantion depinde de




Se aleg aleator k indivizi  eşantion de k indivizi (k – mărimea turnirului)
Se selectează cel mai bun individ dintre cei aleşi anterior
Rangul individului
Dimensiunea eşantionului (k)
 Cu cât k este mai mare, cu atât creşte şi presiunea de selcţie
Modul în care se face alegerea – dacă se realizează cu înlocuire (model steady-state) sau
nu
 Alegerea fără înlocuire creşte presiunea de selecţie
Pt k = 2 timpul necesar ca cel mai bun individ să domine populaţia este acelaşi
cu cel de la selecţia pe bază de ranguri liniare cu s = 2 * p
Algoritmi evolutivi
Proiectare – selecţia

Selecţia pentru supravieţuire (înlocuire)

Pe baza vârstei


Eliminarea celur mai “bătrâni” indivizi
Pe baza calităţii





selecţiei proporţională
Selecţie bazată pe ranguri
Selecţie prin turnir
Elitism
 Păstrarea celor mai buni indivizi de la o generaţie
la alta
GENITOR
 Eleiminarea celor mai slabi indivizi
Algoritmi evolutivi
Proiectare – operatori de variaţie

Scop:


Proprietăţi





Generarea unor soluţii potenţiale noi
lucrează la nivel de individ
se bazează doar pe reprezentarea indivizilor
(independent de fitness)
Ajută la explorarea şi exploatarea spaţiului de căutare
Trebuie să producă indivizi valizi
Tipologie

În funcţie de aritate


Aritate 1  operatori de mutaţie
Aritate > 1  operatori de recombinare
 Aritate = 2  operatori de încrucişare
Algoritmi evolutivi
Proiectare - mutaţia

Scop




Operator unar de căutare (în spaţiul continuu)
introducerea diversităţii în populaţie (în spaţiul discret – binar)
Reintroducerea în populaţie a materialului genetic pierdut
Proprietăţi

Responsabilă cu explorarea unor noi regiuni promiţătoare ale spaţiului de căutare


Acţionează la nivel de genotip
Bazată pe elemente aleatoare
May guarantee connectedness of search space and hence convergence
proofs
Mărimea mutaţiei trebuie să fie controlabilă
Este responsabilă de evadarea din optimele locale
Este un operator de explorare a spaţiului de căutare
Trebuie să producă mici schimbări stocastice ale individului
strong causality principle

Mutation usually happens with probability pm for each gene






Algoritmi evolutivi
Proiectare - mutaţia

Tipologie

Reprezentare binară



Reprezentare întreagă




Mutaţie 2-opt
Mutaţie k-opt
Mutaţie prin inserţie
Reprezentare reală




Random resetting
Reprezentare permutare


Mutaţie tare - bit-flipping
Mutaţie slabă
Mutaţie uniformă
Mutaţie neuniformă
 Mutaţie Gaussiană
 Mutaţie Cauchy
 Mutaţie Laplace
Mutaţie auto-adaptată
Reprezentare arborescentă






Mutaţie grow
mutaţie shrink
Mutaţie switch
Mutaţie cycle
Mutaţie tip Koza
Mutaţie pentru terminalele numerice

Mutaţie uniformă
General scheme of floating point mutations
x  x1 , ..., xl  x   x1, ..., xl
xi , xi  LBi ,UBi 

Uniform mutation:
xi drawn randomly (uniform) from LBi ,UBi 

Mutaţie neuniformă




Many methods proposed,such as time-varying
range of change etc.
Most schemes are probabilistic but usually only
make a small change to value
Most common method is to add random
deviate to each variable separately, taken from
N(0, ) Gaussian distribution and then curtail
to range
Standard deviation  controls amount of
change (2/3 of deviations will lie in range (- 
to + )

Mutaţie prin inserţie – pentru permutare
Pick two allele values at random
 Move the second to follow the first,
shifting the rest along to accommodate
 Note that this preserves most of the order
and the adjacency information


Swap mutation – pt permutare
Pick two alleles at random and swap their
positions
 Preserves most of adjacency information
(4 links broken), disrupts order more


Mutaţie prin inversie
Pick two alleles at random and then invert
the substring between them.
 Preserves most adjacency information
(only breaks two links) but disruptive of
order information


Scramble mutation
Pick a subset of genes at random
 Randomly rearrange the alleles in those
positions

(note subset does not have to be
contiguous)
Algoritmi evolutivi
Proiectare - recombinarea

Scop



Amestecarea informaţiilor preluate din părinţi
Combinarea caracteristicilor din diferite surse
Proprietăţi





Alegerea informaţilor care se amestecă este aleatoare
Unii descendenţi pot fi mai buni, la fel de buni sau mai slabi decât părinţii lor
Efectele sale se reduc pe măsură ce căutarea converge
Operator de exploatare a spaţiilor deja descoperite
The child should inherit something from each parent. If this is not the case then the
operator is a mutation operator
Algoritmi evolutivi
Proiectare - recombinarea

Tipologie – în funcţie de reprezentarea indivizilor

Reprezentare binară şi întreagă



Reprezentare reală






Discretă
Intermediară (aritmetică)

Aritmetică singulară

Aritmetică simplă

Aritmetică completă
Geometrică
Încrucişare blend
Încrucişare binară simulată
Reprezentare cu permutări





Cu puncte de tăietură
Uniformă
Încrucişare prin ordonare (versiunea 1 şi versiunea 2)
Încrucişare transformată parţial (Partially Mapped Crossover)
Încrucişare ciclică
Încrucişare bazată pe legături (muchii)
Reprezentare cu arbori

Încrucişare de sub-arbori
Încrucişare cu n puncte de tăietură
 Choose n random crossover points
 • Split along those points
 • Glue parts, alternating between parents
 • Generalisation of 1 point (still some
positional
 bias)

Uniform crossover




Assign 'heads' to one parent, 'tails' to the other
Flip a coin for each gene of the first child
Make an inverse copy of the gene for the second
child
Inheritance is independent of position

Incrucişare – reală

Discrete:



each allele value in offspring z comes from one
of its parents (x,y) with equal probability: zi =
xi or yi
Could use n-point or uniform
Intermediate


exploits idea of creating children “between”
parents (hence a.k.a. arithmetic
recombination)
zi =  xi + (1 - ) yi
 1.
where  : 0  
Single arithmetic crossover
•
•
•
Parents: x1,…,xn  and y1,…,yn
Pick a single gene (k) at random,
child1 is:
•
reverse for other child. e.g. with  = 0.5
x1 , ..., xk ,   yk  (1   )  xk , ..., xn
Simple arithmetic crossover
•
•
•
Parents: x1,…,xn  and y1,…,yn
Pick random gene (k) after this point mix values
child1 is:
x , ..., x ,   y
 (1   )  x
, ...,   y  (1   )  x
1
k
k 1
k 1
n
n
•
reverse for other child. e.g. with  = 0.5
Whole arithmetic crossover
•
•
•
Most commonly used
Parents: x1,…,xn  and y1,…,yn
child1 is:
a  x  (1  a)  y
•
reverse for other child. e.g. with  = 0.5
Încrucişare geometrică
 the o®spring is obtained as a product of
the parents,
 each parent having a di®erent power
exponent:

being a random real value
 from [0; 1] range.

blend crossover (BLX) (Eshelman et al.,
1989) { one o®spring is generated,
whose genes are
 obtained randomly from the genes of the
parents from the interval [Min ¡ I ¢ a;Max
+ I ¢ a],


simulated binary crossover (SBX-a) (Deb
and Agrawal, 1995) { two o®spring are
generated as combination of the parents:
Crossover operators for permutations

“Normal” crossover operators will often
lead to inadmissible solutions
1234
5
5432
1

1232
1
5434
5
Many specialised operators have been
devised which focus on combining order
or adjacency information from the two
parents
Order 1 crossover


Idea is to preserve relative order that elements
occur
Informal procedure:
1. Choose an arbitrary part from the first
parent
2. Copy this part to the first child
3. Copy the numbers that are not in the first
part, to the first child:
 starting right from cut point of the copied
part,
 using the order of the second parent
 and wrapping around at the end
Order 1 crossover example

Copy randomly selected set from first parent

Copy rest from second parent in order 1,9,3,8,2
Partially Mapped Crossover (PMX)
Informal procedure for parents P1 and P2:
1. Choose random segment and copy it from P1
2. Starting from the first crossover point look for elements in
that segment of P2 that have not been copied
3. For each of these i look in the offspring to see what
element j has been copied in its place from P1
4. Place i into the position occupied j in P2, since we know
that we will not be putting j there (as is already in
offspring)
5. If the place occupied by j in P2 has already been filled in
the offspring k, put i in the position occupied by k in P2
6. Having dealt with the elements from the crossover
segment, the rest of the offspring can be filled from P2.
Second child is created analogously
PMX example

Step 1

Step 2

Step 3
Cycle crossover
Basic idea:
Each allele comes from one parent together with its
position.
Informal procedure:
1. Make a cycle of alleles from P1 in the following way
(a) Start with the first allele of P1.
(b) Look at the allele at the same position in P2.
(c) Go to the position with the same allele in P1.
(d) Add this allele to the cycle.
(e) Repeat step b through d until you arrive at the first allele
P1.
2. Put the alleles of the cycle in the first child on the
Cycle crossover example

Step 1: identify cycles

Step 2: copy alternate cycles into offspring
Edge Recombination
Works by constructing a table listing which
edges are present in the two parents, if an
edge is common to both, mark with a +
 e.g. [1 2 3 4 5 6 7 8 9] and [9 3 7 8 2 6 5 1 4]

Edge Recombination 2
Informal procedure once edge table is constructed
1.
2.
3.
4.
Pick an initial element at random and put it in the offspring
Set the variable current element = entry
Remove all references to current element from the table
Examine list for current element:



If there is a common edge, pick that to be next element
Otherwise pick the entry in the list which itself has the
shortest list
Ties are split at random
5. In the case of reaching an empty list:


Examine the other end of the offspring is for extension
Otherwise a new element is chosen at random
Edge Recombination example
arborescenţe

sub-tree crossover

Similarly to the binary case, some parts from
the parents are exchanged, but these parts are
sub-trees of the chromosomes.

ff
Multiparent recombination




Recall that we are not constricted by the
practicalities of nature
Noting that mutation uses 1 parent, and
“traditional” crossover 2, the extension to a>2
is natural to examine
Been around since 1960s, still rare but studies
indicate useful
Three main types:



Based on allele frequencies, e.g., p-sexual voting
generalising uniform crossover
Based on segmentation and recombination of the
parents, e.g., diagonal crossover generalising n-point
crossover
Based on numerical operations on real-valued alleles,
e.g., center of mass crossover, generalising arithmetic

Mutaţie sau recombinare?

Decade long debate: which one is better / necessary / main-background
Answer (at least, rather wide agreement):





it depends on the problem, but
in general, it is good to have both
both have another role
mutation-only-EA is possible, xover-only-EA would not work
Exploration: Discovering promising areas in the search space, i.e. gaining information on the problem
Exploitation: Optimising within a promising area, i.e. using information
There is co-operation AND competition between them

Crossover is explorative, it makes a big jump to an area somewhere “in between” two (parent) areas

Mutation is exploitative, it creates random small diversions, thereby staying near (in the area of ) the
parent

Only crossover can combine information from two parents

Only mutation can introduce new information (alleles)

Crossover does not change the allele frequencies of the population (thought experiment: 50% 0’s
on first bit in the population, ?% after performing n crossovers)

To hit the optimum you often need a ‘lucky’ mutation

Recombination
– modifications depend on the whole population


Stabilirea unui criteriu de stop
 The optimum is reached!
 • Limit on CPU resources:
 Maximum number of fitness evaluations
 • Limit on the user’s patience:
 After some generations without
 improvement

Evaluarea performanţelor unui AE








Never draw any conclusion from a single run
use statistical measures (averages, medians)
from a sufficient number of independent runs
• From the application point of view
design perspective:
find a very good solution at least once
production perspective:
find a good solution at almost every run
–
–
–
–

Analiza complexităţii

Avantajele calculului evolutiv




EAs are able to produce better results than the
conventional optimisation methods often
because
the last category of algorithms could require
linearization, could make invalid assumptions
or because
they could ignore potential solutions, since
they cannot understand them. Furthermore,
EAs are able
to explore more potential solutions than a
human could.

Dezavantaje

Aplicaţii

Tipuri de algoritmi evolutivi




Strategii evolutive
Programare evolutivă
Algoritmi genetici
Programare genetică