Sunteți pe pagina 1din 101

UNIVERSITATEA BABE-BOLYAI

Facultatea de Matematic i Informatic

INTELIGEN
ARTIFICIAL

Rezolvarea problemelor de cutare


Strategii de cutare informat local
Algoritmi Evolutivi

Laura Dioan
Sumar
A. Scurt introducere n Inteligena Artificial (IA)

B. Rezolvarea problemelor prin cutare


Definirea problemelor de cutare
Strategii de cutare
Strategii de cutare neinformate
Strategii de cutare informate
Strategii de cutare locale (Hill Climbing, Simulated Annealing, Tabu Search, Algoritmi
evolutivi, PSO, ACO)
Strategii de cutare adversial

C. Sisteme inteligente
Sisteme bazate pe reguli n medii certe
Sisteme bazate pe reguli n medii incerte (Bayes, factori de
certitudine, Fuzzy)
Sisteme care nva singure
Arbori de decizie
Reele neuronale artificiale
Maini cu suport vectorial
Algoritmi evolutivi
Sisteme hibride
Martie, 2013 Inteligen artificial - metode de cutare local 2
Sumar
Rezolvarea problemelor prin cutare

Strategii de cutare informate (euristice) SCI


Strategii locale
Algoritmi evolutivi

Martie, 2013 Inteligen artificial - metode de cutare local 3


Materiale de citit i legturi utile
capitolul 14 din C. Groan, A. Abraham, Intelligent
Systems: A Modern Approach, Springer, 2011

M. Mitchell, An Introduction to Genetic Algorithms, MIT


Press, 1998

capitolul 7.6 din A. A. Hopgood, Intelligent Systems for


Engineers and Scientists, CRC Press, 2001

Capitolul 9 din T. M. Mitchell, Machine Learning, McGraw-


Hill Science, 1997

Martie, 2013 Inteligen artificial - metode de cutare local 4


Cutare local
Tipologie

Cutare local simpl - se reine o singur stare


vecin
Hill climbing alege cel mai bun vecin
Simulated annealing alege probabilistic cel mai bun
vecin
Cutare tabu reine lista soluiilor recent vizitate

Cutare local n fascicol (beam local search) se


rein mai multe stri (o populaie de stri)
Algoritmi evolutivi
Optimizare bazat pe comportamentul de grup (Particle
swarm optimisation)
Optimizare bazat pe furnici (Ant colony optmisation)
Martie, 2013 Inteligen artificial - metode de cutare local 5
Algoritmi inspirai de natur
Care este cea mai bun metod de rezolvare a unei
probleme?
Creierul uman
a creat roata, maina, oraul, etc
Mecanismul evoluiei
a creat creierul (mintea) uman

Simularea naturii
Cu ajutorul mainilor reelele neuronale artificiale
simuleaz mintea uman
maini de zbor, computere bazate pe ADN, computere cu
membrane
Cu ajutorul algoritmilor
algoritmii evolutivi simuleaz evoluia naturii
algoritmii inspirai de comportamentul de grup simuleaz
adaptarea colectiv i procesele sociale dintr-un colectiv (Particle
Swarm Optimisation)
algoritmii inspirai de furnici (Ant Colony Optimisation)

Martie, 2013 Inteligen artificial - metode de cutare local 6


Algoritmi evolutivi aspecte teoretice
Simularea naturii
Zborul liliecilor

Leonardo da Vinci schema unei


maini de zbor

Zborul psrilor i al avioanelor

Zborul psrilor i turbinele


eoliene

Martie, 2013 Inteligen artificial - metode de cutare local 7


Algoritmi evolutivi aspecte teoretice
Care sunt caracteristicile de baz ale AE?
Implic procese iterative i paralele
Folosesc populaii de poteniale soluii
Se bazeaz pe o cutare aleatoare
Sunt inspirai de biologie implic mecanisme
precum:
selecia natural
reproducerea
recombinarea
mutaia

Martie, 2013 Inteligen artificial - metode de cutare local 8


Algoritmi evolutivi aspecte teoretice
Cteva repere istorice
Jean Baptise de Lamark (1744-1829)
A propus n 1809 o explicaie pentru
originea speciilor n cartea
Zoological Philosophy:
Nevoile unui organism determin
caracteristicile care evolueaz
Caracteristicile utile dobndite n cursul

vieii unui organism se pot transfera


urmailor acestuia
Legea utilizrii i neutilizrii
use and disuse

Martie, 2013 Inteligen artificial - metode de cutare local 9


Algoritmi evolutivi aspecte teoretice
Cteva repere istorice
Charles Darwin (1807-1882)
n cartea Origin of Species demostreaz c toate organismele
au evoluat din alte organisme pe baza:

variaiei
supraproducia de descendeni

seleciei naturale
competiia (generaii constante ca dimensiune)

supravieuirea pe baza calitii/adaptrii la


mediul de via (fitness)

reproducerea

apariia de specii noi

Martie, 2013 Inteligen artificial - metode de cutare local 10


Algoritmi evolutivi aspecte teoretice
Cteva repere istorice
Teoria evolutiv modern
mbogete teoria Darwinian cu mecanismul motenirii genetice
Variaia genetic se produce prin:
mutaie spontan i
reproducere sexual

L. Fogel 1962 (San Diego, CA) programare evolutiv PE


(Evolutionary Programming)

J. Holland 1962 (Ann Arbor, MI) algoritmi genetici AG (Genetic


Algorithms)

I. Rechenberg & H.-P. Schwefel 1965 (Berlin, Germany) strategii


evolutive SE (Evolution Strategies)

J. Koza 1989 (Palo Alto, CA) programare genetic PG (Genetic


Programming)
Martie, 2013 Inteligen artificial - metode de cutare local 11
Algoritmi evolutivi aspecte teoretice
Metafora evolutiv

Evoluia natural Rezolvarea problemelor


Individ Soluie potenial
Populaie Mulime de soluii poteniale
Cromozom Codarea unei soluii poteniale
Gen Parte a codrii
Fitness Calitate
ncruciare i mutaie Operatori de cutare
Mediu Problem

Martie, 2013 Inteligen artificial - metode de cutare local 12


Algoritmi evolutivi - algoritm

Schema general

Proiectare

Martie, 2013 Inteligen artificial - metode de cutare local 13


.

Algoritmi evolutivi algoritm


Schema general a unui AE
Generaional
Steady-state

Selecia prinilor
Gen(t) pentru perturbare ncruciare

Selecia pentru
supravieuire Mutaie

Gen(t+1)
Selecia pentru supravieuire

Martie, 2013 Inteligen artificial - metode de cutare local 14


Algoritmi evolutivi algoritm
Proiectare
Alegerea unei reprezentri a cromozomilor
Alegerea unui model de populaie
Stabilirea unei funcii de evaluare
Stabilirea operatorilor genetici
Selecie
Mutaie
Recombinare
Stabilirea unui criteriu de stop

Martie, 2013 Inteligen artificial - metode de cutare local 15


Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
2 nivele de existen pentru o soluie candidat

Nivel exterior fenotip


Individ - obiectul original n contextul dat de problem
Aici are loc evaluarea unei poteniale soluii
Furnic, rucsac, elefant, orae, ...

Nivel interior genotip


Cromozom codul asociat unui obiect
format din gene, poziionate n locuri (fixe) loci i
avnd anumite valori alele
Aici are loc cutarea unei noi poteniale soluii
Vector unidimensional (numeric, boolean, string), matrice,
...

Martie, 2013 Inteligen artificial - metode de cutare local 16


Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
Reprezentarea trebuie s fie relevant pentru:
problem,
funcia de evaluare i
operatorii genetici

Genotip
Fenotip
Codare
(reprezentare)

Decodare

Martie, 2013 Inteligen artificial - metode de cutare local 17


Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
Tipologia reprezentrii cromozomilor

Liniar
Discret
Binar problema rucsacului
Ne-binar
ntreag
Oarecare procesarea imaginilor
Permutri problema comisului voiajor
Categorial problema colorrii hrilor
Continu (real) optimizri de funcii

Arborescent probleme de regresie


Martie, 2013 Inteligen artificial - metode de cutare local 18
Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
Reprezentare liniar discret binar cromozom

Genotip 1 0 1 0 0 0 1 1
ir de bii
gen
Fenotip
Elemente de tip Boolean
Ex. Problema rucsacului obiectele alese pentru
umplerea rucsacului

Numere ntregi

Numere reale ntr-un anumit


interval

Martie, 2013 Inteligen artificial - metode de cutare local 19


Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
Reprezentare liniar discret binar
Genotip
ir de bii
Fenotip
Elemente de tip Boolean
Ex. Problema rucsacului obiectele alese pentru
umplerea rucsacului
Genotip Fenotip
ob1+ob3+ob7+ob8

Numere ntregi
Au fost alese obiectele 1, 3, 7 i 8

Numere reale ntr-un anumit


interval

Martie, 2013 Inteligen artificial - metode de cutare local 20


Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
Reprezentare liniar discret binar
Genotip
ir de bii
Fenotip
Elemente de tip Boolean
Ex. Problema rucsacului obiectele alese pentru
umplerea rucsacului
Genotip Fenotip

Numere ntregi

Numere reale ntr-un anumit


interval

Martie, 2013 Inteligen artificial - metode de cutare local 21


Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
Reprezentare liniar discret binar
Genotip
ir de bii
Fenotip
Elemente de tip Boolean
Ex. Problema rucsacului obiectele alese pentru
umplerea rucsacului

Numere ntregi

Genotip Fenotip
Numere reale ntr-un anumit
Interval (ex. [2.5, 20.5])

Martie, 2013 Inteligen artificial - metode de cutare local 22


Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
Transformarea valorilor reale reprezentate pe bii
Fie z [x,y] reprezentat ca {a1,,aL} {0,1}L

Funcia [x,y] {0,1}L trebuie s fie inversabil (un


fenotip corespunde unui genotip)

Funcia : {0,1}L [x,y] definete reprezentarea


y x L1
( a1 ,..., a L ) x L ( a L j 2 j ) [ x , y ]
2 1 j 0
Observaii
Se pot reprezenta doar 2L valori
L indic precizia maxim a soluiei
Pentru o precizie ct mai bun cromozomi lungi
evoluie ncetinit

Martie, 2013 Inteligen artificial - metode de cutare local 23


Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
Reprezentare liniar discret ne-binar ntreag
oarecare
Genotip
ir de numere ntregi dintr-un anumit interval
Fenotip
Utilitatea numerelor n problem

Ex. Problema plii unei sume folosind diferite monezi


Genotip ir de nr ntregi de lungime egal cu numrul de
monezi diferite, fiecare numr din intervalul
[0,suma/valoarea monezii curente]
Fenotip cte monezi din fiecare tip trebuie considerate

Martie, 2013 Inteligen artificial - metode de cutare local 24


Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
Reprezentare liniar discret ne-binar ntreag
de tip permutare
Genotip
Permutare de n numere (n numrul de gene)
Fenotip
Utilitatea permutrii n problem

Ex. Problema comisului voiaior


Genotip permutare de n elemente
Fenotip ordinea de vizitare a oraelor, tiind c fiecrui
ora i corespunde un numr din mulimea {1,2,...,n}

Martie, 2013 Inteligen artificial - metode de cutare local 25


Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
Reprezentare liniar discret ne-binar categorial
Similar cu cea ntreag, dar n loc de numere se folosesc
etichete

Genotip
ir de etichete dintr-o anumit mulime

Fenotip
Interpretarea etichetelor

Ex. Problema colorrii hrilor


Genotip ir de etichete (culori) de lungime egal cu numrul
de ri, fiecare etichet aparinnd unei mulimi de culori date
Fenotip cu ce culoare trebuie haurat fiecare hart a unei
ri

Martie, 2013 Inteligen artificial - metode de cutare local 26


Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
Reprezentare liniar continu (real)
Genotip
ir de numere ntregi
Fenotip
Utilitatea numerelor n problem

Ex. Problema optimizrii funciilor f:Rn R


Genotip tuplu de numere reale X=[x1, x2, ..., xn], xi R
Fenotip valorile asociate argumentelor funciei f

Martie, 2013 Inteligen artificial - metode de cutare local 27


Algoritmi evolutivi algoritm
Proiectare alegerea unei reprezentri
Reprezentare arborescent
Genotip
Arbori care codeaz S-Expresii
Nodurile interne ale arborelui funcii (F)
Matematice
Operatori aritmetici
Operatori de tip Boolean
Instruciuni
ntr-un limbai de programare
Alt tip de instruciuni
Frunzele arborelui terminale (T)
Valori reale sau Booleene, constante sau variabile
Subprograme
Fenotip
Interpretarea S-expresiilor

Ex. Calculul ariei unui cerc *


2
*r *
r r

Martie, 2013 Inteligen artificial - metode de cutare local 28


Algoritmi evolutivi algoritm
Proiectare formarea unei populaii
Populaie concept
Scop
reine o colecie de soluii candidat
se permit repetiii
este folosit n ntregime n procesul de selecie pentru
reproducere

Proprieti
dimensiune (de obicei) fix
diversitate
Nr de fitness-uri/fenotipuri/genotipuri diferite

Observaii
Reprezint unitatea de baz care evolueaz
populaia ntreag evolueaz, nu indivizii!!!

Martie, 2013 Inteligen artificial - metode de cutare local 29


Algoritmi evolutivi algoritm
Proiectare formarea unei populaii
Populaie iniializare
Uniform (dac e posibil) n spaiul de cutare

Stringuri binare
generarea de 0 i 1 cu probabilitatea 0.5

iruri de numere reale generate uniform (ntr-un anumit interval)

Permutri
generarea permutrii identice i efectuarea unor schimbri

Martie, 2013 Inteligen artificial - metode de cutare local 30


Algoritmi evolutivi algoritm
Proiectare formarea unei populaii
Populaie iniializare
Uniform (dac e posibil) n spaiul de cutare
Arbori

Metoda Full arbori complei


Nodurile de la adncimea d < Dmax se iniializeaz aleator cu o funcie din
setul de funcii F
Nodurile de la adncimea d = Dmax se iniializeaz aleator cu un terminal din
setul de terminale T

Metoda Grow arbori incomplei


Nodurile de la adncimea d < Dmax se iniializeaz aleator cu un element din
FUT
Nodurile de la adncimea d = Dmax se iniializeaz aleator cu un terminal din
setul de terminale T

Metoda Ramped half and half


din populaie se creeaz cu metoda Full
din populaie se creeaz cu metoda Grow
Folosind diferite adncimi

Martie, 2013 Inteligen artificial - metode de cutare local 31


Algoritmi evolutivi algoritm
Proiectare formarea unei populaii
Modele de populaii algoritm evolutiv:
Generaional
n fiecare generaie se creaz descendeni
Fiecare individ supravieuiete o singur generaie
Mulimea prinilor este nlocuit n ntregime cu mulimea
descendenilor
Steady-state
n fiecare generaie se obine un singur descendent
Un singur printe (cel mai slab) este nlocuit cu
descendentul obinut

Discrepana ntre generaii (Generation Gap)


Proporia populaiei nlocuite
1 = /, pentru modelul generaional
1/, pentru modelul steady-state
Martie, 2013 Inteligen artificial - metode de cutare local 32
Algoritmi evolutivi algoritm
Proiectare funcia de evaluare
Scop
Reflect condiiile la care trebuie s se adapteze populaia
Funcie de calitate sau funcie obiectiv
Asociaz o valoare fiecrei soluii candidat
Consecine asupra seleciei cu ct sunt mai multe valori diferite, cu att e mai
bine

Proprieti
Etapa cea mai costisitoare
Nu se re-evalueaz indivizii nemodificai

Tipologie:
Dup nr de obiective urmrite:
Uni-obiectiv
Multi-obiectiv fronturi Pareto
Dup direcia optimizrii
De maximizat
De minimizat
Dup gradul de exactitate
Exact
Euristic

Martie, 2013 Inteligen artificial - metode de cutare local 33


Algoritmi evolutivi algoritm
Proiectare funcia de evaluare
Exemple
Problema rucsacului
reprezentare liniar discret binar
fitness abs(greutatea rucsacului greutatea obiectelor alese)
minimizare
Problema plii unei sume folosind diferite monezi
reprezentare liniar discret ntreag
fitness abs(suma de plat suma monezilor selectate) minimizare
Problema comisului voiaior
reprezentare liniar discret ntreag sub form de permutare
fitness costul drumului parcurs minimizare
Problema optimizrii funciilor
Reprezentare liniar continu real
fitness valoarea funciei minimizare/maximizare
Calculul ariei unui cerc
reprezentare arborescent
fitness suma ptratelor erorilor (diferenelor ntre valoarea real i cea
calculat pe un set de exemple) minimizare

Martie, 2013 Inteligen artificial - metode de cutare local 34


Algoritmi evolutivi algoritm
Proiectare selecia
Scop:
acord anse de reproducere/supravieuire mai mari indivizilor mai
buni
i indivizii mai slabi trebuie s aib ansa s se reproduc/supravieuiasc
pentru c pot conine material genetic util
direcioneaz populaia spre mbuntirea calitii

Proprieti
lucreaz la nivel de populaie
se bazeaz doar pe fitnessul indivizilor (este independent de
reprezentare)
aiut la evadarea din optimele locale datorit naturii sale stocastice

Martie, 2013 Inteligen artificial - metode de cutare local 35


Algoritmi evolutivi algoritm
Proiectare selecia
Tipologie
n funcie de scop:
Selecia prinilor (din generaia curent) pentru reproducere
Selecia supravieuitorilor (din prini i descendeni) pentru generaia
urmtoare

n funcie de modul de decidere al ctigtorului


Determinist cel mai bun ctig
Stocastic cel mai bun are cele mai mari anse s ctige

n funcie de mecanism
Selecia pentru reproducere
Selecie proporional (bazat pe fitness)
Bazate pe ntreaga populaie
Selecie bazat pe ranguri
Selecie prin turnir ---- Bazat pe o parte din populaie
Selecia pentru supravieuire
Bazat pe vrst
Bazat pe calitate (fitness)

Martie, 2013 Inteligen artificial - metode de cutare local 36


Algoritmi evolutivi algoritm
Proiectare selecia pt. reproducere
Selecie proporional (bazat pe fitness) SP
Ideea de baz
Algoritmul ruletei la nivelul ntregii populaii
Estimarea numrului de copii ale unui individ
f (i )
f , unde:
E (ni )

= dimensiunea populaiei, Cel mai bun


f(i) = fitnessul individului i,
f = fitnessul mediu al populaiei Cel mai slab
Indivizii mai buni
au alocat mai mult spaiu n rulet
au anse mai mari s fie selectai
Ex. O populaie cu = 3 indivizi
f(i) PselSP(i)

A A 1 1/10=0.1

B 5 5/10=0.5
C
B 4/10=0.4
C 4
Suma 10 1
Martie, 2013 Inteligen artificial - metode de cutare local 37
Algoritmi evolutivi algoritm
Proiectare selecia pt. reproducere
Selecie proporional (bazat pe fitness)
Avantaie
Algoritm simplu
Dezavantaie
Convergena prematur
cromozomii foarte buni tind s domine populaia
Presiune de selecie foarte mic atunci cnd fintessurile indivizilor sunt foarte apropiate (la sfritul
rulrii)
Susceptibil de traspoziia funciei
Rezultatele reale ale unei astfel de selcii difer de distribuia probabilistic teoretic
Lucreaz cu ntreaga populaie
Soluii
scalarea fitnessului
Windowing
f(i) = f(i) - t , unde este un parametru care depinde de istoria recent a evoluiei
ex. este fitnessul celui mai slab individ din populaia curent (a t-a generaie)
Scalare de tip sigma (de tip Goldberg)
f(i) = max{f(i) (f c * f ), 0.0}, unde:
c este o constant (de obicei 2)
f - fitnessul mediu al populaei
f deviaia standard a fitnessului populaiei
Scalare prin normalizare
Se ncepe cu fitnessurile absolute (iniiale)
Se standardizeaz astfel nct Se aiusteaz fitnessurile a..:
ele s aparin [0,1]
cel mai bun fitness s fie cel mai mic (egal cu 0)
suma lor s fie 1
alt mecanism de selecie
Martie, 2013 Inteligen artificial - metode de cutare local 38
Algoritmi evolutivi algoritm
Proiectare selecia pt. reproducere
Selecia bazat pe ranguri SR
Ideea de baz
Se ordoneaz ntreaga populaie pe baza fitnessului
Crete puin complexitatea algoritmului, dar se poate
negliia aceast cretere comparativ cu timpul necesar
evalurii unui individ
Se acord ranguri fiecrui individ
Se calculeaz probabilitile de selecie pe baza
rangurilor
Cel mai slab individ are rangul 1
Cel mai bun individ are rangul

ncearc s rezolve problemele seleciei proporionale


prin folosirea fitnessurilor relative (n locul celor
absolute)

Martie, 2013 Inteligen artificial - metode de cutare local 39


Algoritmi evolutivi algoritm
Proiectare selecia pt. reproducere
Selecia bazat pe ranguri SR
Modaliti de acordare a rangurilor
Liniar (RL) 2 s 2i( s 1)
Plin _ rank (i )

( 1)
s presiunea de selecie
msoar avantaiele celui mai bun individ
1.0 < s 2.0
n algoritmul genetic generaional s este numrul de copii ai unui individ
Ex. pentru o populaie cu = 3 indivizi
f(i) PselSP(i) Rang PselRL(i) pt. s=2 PselRL(i) pt. s=1.5
A 1 1/10=0.1 1 0 0.167
B 5 5/10=0.5 3 0.67 0.5
C 4 4/10=0.4 2 0.33 0.33
Suma 10 1 1 1
i
Exponenial (RE) 1 e
Pexp_ rank (i )
c
Cel mai bun individ poate avea mai mult de 2 copii
c factor de normalizare
depinde de dimensiunea populaiei ()
trebuie ales a.. suma probabilitilor de selecie s fie 1

Martie, 2013 Inteligen artificial - metode de cutare local 40


Algoritmi evolutivi algoritm
Proiectare selecia pt. reproducere
Selecia bazat pe ranguri SR
Avantaie
Pstreaz presiunea de selecie constant
Dezavantaie
Lucreaz cu ntreaga populaie
Soluii
Alt mecanism de selecie

Martie, 2013 Inteligen artificial - metode de cutare local 41


Algoritmi evolutivi algoritm
Proiectare selecia pt. reproducere
Selecia prin turnir
Ideea de baz
Se aleg aleator k indivizi eantion de k indivizi (k mrimea turnirului)
Se selecteaz cel mai bun individ dintre cei alei anterior
Probabilitatea alegerii unui individ n eantion depinde de
Rangul individului
Dimensiunea eantionului (k)
Cu ct k este mai mare, cu att crete i presiunea de selcie
Modul n care se face alegerea dac se realizeaz cu nlocuire (model steady-
state) sau nu
Alegerea fr nlocuire crete presiunea de selecie
Pt k = 2 timpul necesar ca cel mai bun individ s domine populaia este acelai cu
cel de la selecia pe baz de ranguri liniare cu s = 2 * p, p probabilitatea alegerii
celui mai bun individ din populaie
Populaia

Concureni

Ctigtori

Martie, 2013 Inteligen artificial - metode de cutare local 42


Algoritmi evolutivi algoritm
Proiectare selecia pt. reproducere
Selecia prin turnir

Avantaje
Nu implic lucrul cu ntrega populaie
Uor de implementant
Uor de controlat presiunea de selcie prin intermediul
parametrului k

Dezavantaje
Rezultatele reale ale unei astfel de selecii difer de distribuia
probabilistic teoretic (similar seleciei prin mecanismul ruletei)

Martie, 2013 Inteligen artificial - metode de cutare local 43


Algoritmi evolutivi
Proiectare selecia
Selecia pentru supravieuire (nlocuire)
Pe baza vrstei
eliminarea celor mai btrni indivizi
Pe baza calitii (fitness-ului)
seleciei proporional
selecie bazat pe ranguri
selecie prin turnir
elitism
Pstrarea celor mai buni indivizi de la o generaie
la alta (dac descendenii sunt mai slabi ca
prinii se pstreaz prinii)
GENITOR (nlocuirea celui mai slab individ)
Eliminarea celor mai slabi indivizi
Martie, 2013 Inteligen artificial - metode de cutare local 44
Algoritmi evolutivi - algoritm
Proiectare operatori de variaie
Scop:
Generarea unor soluii poteniale noi

Proprieti
lucreaz la nivel de individ
se bazeaz doar pe reprezentarea indivizilor (independent
de fitness)
Aiut la explorarea i exploatarea spaiului de cutare
Trebuie s produc indivizi valizi

Tipologie
n funcie de aritate
Aritate 1 operatori de mutaie
Aritate > 1 operatori de recombinare/ncruciare

Martie, 2013 Inteligen artificial - metode de cutare local 45


Algoritmi evolutivi algoritm
Proiectare mutaia
Scop
Reintroducerea n populaie a materialului genetic pierdut
Operator unar de cutare (spaiul continuu)
Introducerea diversitii n populaie (n spaiul discret binar)

Proprieti nainte

Acioneaz la nivel de genotip


dup
Bazat pe elemente aleatoare

Responsabil cu explorarea unor noi regiuni promitoare ale spaiului


de cutare
Este responsabil de evadarea din optimele locale

Trebuie s produc mici schimbri stocastice ale individului


Mrimea mutaiei trebuie s fie controlabil
Se produce cu o anumit probabilitate (pm) la nivelul fiecrei
gene a unui cromozom
Martie, 2013 Inteligen artificial - metode de cutare local 46
Algoritmi evolutivi algoritm
Proiectare mutaia
Tipologie
Reprezentare binar
Mutaie tare - bit-flipping
Mutaie slab
Reprezentare ntreag
Random resetting
Creep mutation
Reprezentare permutare
Mutaie prin inserie
Mutaie prin interchimbare
Mutaie prin inversare
Mutaie prin amestec
Mutaie k-opt
Reprezentare real
Mutaie uniform
Mutaie neuniform
Mutaie Gaussian
Mutaie Cauchy
Mutaie Laplace
Reprezentare arborescent ntr-un curs viitor
Mutaie grow
mutaie shrink
Mutaie switch
Mutaie cycle
Mutaie tip Koza
Mutaie pentru terminalele numerice

Martie, 2013 Inteligen artificial - metode de cutare local 47


Algoritmi evolutivi algoritm
Proiectare mutaia (reprez. binar)
Un cromozom c=(g1,g2,...,gL) devine c=(g1,g2,...,gL),
unde gi, gi {0,1}, pt. i=1,2,...,L

Mutaie tare bit flipping


Ideea de baz
Schimbarea cu probabilitatea pm (rat de mutaie) a unor
gene n complementul lor
10
01
Ex. Un cromozom cu L = 8 gene, pm = 0.1

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

Martie, 2013 Inteligen artificial - metode de cutare local 48


Algoritmi evolutivi algoritm
Proiectare mutaia (reprez. binar)
Un cromozom c=(g1,g2,...,gL) devine
c=(g1,g2,...,gL), unde gi, gi {0,1}, pt.
i=1,2,...,L

Mutaie slab
Ideea de baz
Schimbarea cu probabilitatea pm (rat de mutaie) a
unor gene n 0 sau 1
1 0/1
0 1/0
Ex. Un cromozom cu L = 8 gene, pm = 0.1
1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1

Martie, 2013 Inteligen artificial - metode de cutare local 49


Algoritmi evolutivi algoritm
Proiectare mutaia (reprez. ntreag)
Un cromozom c=(g1,g2,...,gL) devine c=(g1,g2,...,gL),
unde gi, gi {val1, val2,...,valk}, pt. i=1,2,...,L

Mutaie random resetting


Ideea de baz
Valoarea unei gene este schimbat (cu probabilitatea
pm) ntr-o alt valoare (din setul de valori posibile)

3 0 2 5 1 3 1 0 3 1 5 5 1 3 1 2

Martie, 2013 Inteligen artificial - metode de cutare local 50


Algoritmi evolutivi algoritm
Proiectare mutaia (reprez. ntreag)
Un cromozom c=(g1,g2,...,gL) devine c=(g1,g2,...,gL),
unde gi, gi {val1, val2, ..., valk}, pt. i=1,2,...,L

Mutaie creep
Ideea de baz
Valoarea unei gene este schimbat (cu probabilitatea pm)
prin adugarea unei valori (pozitiv sau negativ)
valoarea face parte dintr-o distribuie simetric fa
de zero
modificarea produs este fin (mic)

3 0 2 5 1 3 1 0 3 1 1 5 1 3 1 2

Martie, 2013 Inteligen artificial - metode de cutare local 51


Algoritmi evolutivi algoritm
Proiectare mutaia (reprez. permutare)
Un cromozom c=(g1,g2,...,gL) cu gigi pentru orice ii devine
c=(g1,g2,...,gL), unde gi, gi {val1, val2,...,valL}, pt. i=1,2,...,L
a.. gigi pentru orice ii.

Mutaie prin interschimbare (swap


mutation)
Ideea de baz
Se aleg aleator 2 gene i se interschimb valorile lor

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

Martie, 2013 Inteligen artificial - metode de cutare local 52


Algoritmi evolutivi algoritm
Proiectare mutaia (reprez. permutare)
Un cromozom c=(g1,g2,...,gL) cu gigi pentru orice ii devine
c=(g1,g2,...,gL), unde gi, gi {val1, val2,...,valL}, pt. i=1,2,...,L
a.. gigi pentru orice ii.

Mutaie prin inserie


Ideea de baz
Se aleg 2 gene oarecare gi i gj cu j > i
Se insereaz gj dup gi a.. gi=gi, gi+1=gj,
gk+2=gk+1, pentru k=i, i+1, i+2, ...

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

Martie, 2013 Inteligen artificial - metode de cutare local 53


Algoritmi evolutivi algoritm
Proiectare mutaia (reprez. permutare)
Un cromozom c=(g1,g2,...,gL) cu gigi pentru orice ii devine
c=(g1,g2,...,gL), unde gi, gi {val1, val2,...,valL}, pt. i=1,2,...,L
a.. gigi pentru orice ii.

Mutaie prin inversare


Ideea de baz
Se aleg aleator 2 gene i se inverseaz ordinea
genelor situate ntre ele (substringul dintre gene)

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

Martie, 2013 Inteligen artificial - metode de cutare local 54


Algoritmi evolutivi algoritm
Proiectare mutaia (reprez. permutare)
Un cromozom c=(g1,g2,...,gL) cu gigi pentru orice ii devine
c=(g1,g2,...,gL), unde gi, gi {val1, val2,...,valL}, pt. i=1,2,...,L
a.. gigi pentru orice ii.

Mutaie prin amestec (scramble mutation)


Ideea de baz
Se alege aleator un subir (continuu sau discontinuu)
de gene i se rearanjeaz acele gene

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

Martie, 2013 Inteligen artificial - metode de cutare local 55


Algoritmi evolutivi algoritm
Proiectare mutaia (reprez. permutare)
Un cromozom c=(g1,g2,...,gL) cu gigi pentru orice ii devine
c=(g1,g2,...,gL), unde gi, gi {val1, val2,...,valL}, pt. i=1,2,...,L
a.. gigi pentru orice ii.

Mutaie k-opt
Ideea de baz
Se aleg 2 substringuri disjuncte i de lungime k
Se interchimb 2 elemente ale acestor substringuri
de gene
1 8 7 1 8 7
2 5 3 4 8 6 1 7

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

Martie, 2013 Inteligen artificial - metode de cutare local 56


Algoritmi evolutivi algoritm
Proiectare mutaia (reprez. real)
Un cromozom c=(g1,g2,...,gL) devine c=(g1,g2,...,gL),
unde gi, gi [LIi, LSi], pt. i=1,2,...,L

Mutaie uniform
Ideea de baz
gi este schimbat cu probabilitatea pm la o valoare
aleas aleator uniform din [LIi, LSi]

Martie, 2013 Inteligen artificial - metode de cutare local 57


Algoritmi evolutivi algoritm
Proiectare mutaia (reprez. real)
Un cromozom c=(g1,g2,...,gL) devine
c=(g1,g2,...,gL), unde gi, gi [LIi, LSi], pt.
i=1,2,...,L

Mutaie neuniform
Ideea de baz
Valoarea unei gene este schimbat (cu probabilitatea pm)
prin adugarea unei valori (pozitiv sau negativ)
valoarea face parte dintr-o distribuie
N(, ) (Gaussian) cu = 0
Cauchy (x0, )
Laplace (, b)
i readus la [LIi, LSi] (dac este necesar) clamping

Martie, 2013 Inteligen artificial - metode de cutare local 58


Algoritmi evolutivi algoritm
Proiectare - recombinarea
Scop
Amestecarea informaiilor preluate din prini

Proprieti
Descendentul trebuie s moteneasc ceva de la fiecare dintre prini
Alegerea informailor care se amestec este aleatoare
Operator de exploatare a spaiilor deja descoperite
Descendenii pot s fie mai buni, la fel de buni sau mai slabi dect prinii lor
Efectele sale se reduc pe msur ce cutarea converge

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

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

Martie, 2013 Inteligen artificial - metode de cutare local 59


Algoritmi evolutivi algoritm
Proiectare - recombinarea
Tipologie n funcie de reprezentarea indivizilor
Reprezentare binar i ntreag
Cu puncte de tietur
Uniform

Reprezentare cu permutri
ncruciare prin ordonare (versiunea 1 i versiunea 2)
ncruciare transformat parial (Partially Mapped Crossover)
ncruciare ciclic
ncruciare bazat pe legturi (muchii)

Reprezentare real
Discret
Intermediar (aritmetic)
Aritmetic singular
Aritmetic simpl
Aritmetic complet
Geometric
ncruciare amestecat
ncruciare binar simulat

Reprezentare cu arbori
ncruciare de sub-arbori ntr-un curs viitor

Martie, 2013 Inteligen artificial - metode de cutare local 60


Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. binar i ntreag)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi {0,1} / {val1, val2, ..., valk}, pt. i=1,2,...,L

ncruciare cu n puncte de tietur


Ideea de baz
Se aleg n puncte de tietur (n < L)
Se taie cromozomii prini prin aceste puncte
Se lipesc prile obinute, alternnd prinii
1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1
n=2
0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 0
Martie, 2013 Inteligen artificial - metode de cutare local 61
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. binar i ntreag)
ncruciare cu n puncte de tietur
Proprieti
Media valorilor codate de prini = media valorilor codate de descendeni
Ex. Reprezentarea binar pe 4 bii a numerelor ntregi XO cu n = 1 dupa
bitul 2
p1 = (1,0,1,0), p2 = (1,1,0,1)
d1 = (1,0, 0,1), d2 = (1,1,1,0)
val(p1) = 10, val(p2) = (13) (val(p1) + val(p2))/2 = 23/2=11.5
val(d1) = 9, val(d2) = (14) (val(d1) + val(d2))/2 = 23/2=11.5
Ex. Reprezentare binar pe 4 bii pentru problema rucsacului de capacitate K
= 10 cu 4 obiecte de greutate i valoare ((2,7), (1,8), (3,1), (2,3))
p1 = (1,0,1,0), p2 = (1,1,0,1)
d1 = (1,0, 0,1), d2 = (1,1,1,0)
val(p1) = 8, val(p2) = 18 (val(p1) + val(p2))/2 = 26/2=13
val(d1) = 10, val(d2) = 16 (val(d1) + val(d2))/2 = 26/2=13
Probabilitatea apariiei unui factor de rspndire 1 este mai mare dect
probabilitatea oricrui alt factor
val (d1 ) val (d 2 )

val ( p1 ) val ( p2 )
ncruciare prin contracie < 1
Valorile descendenilor se afl ntre valorile prinilor
ncruciare prin extensie > 1
Valorile prinilor se afl ntre valorile descendenilor
ncruciare staionar = 1
Valorile descendenilor coincid cu valorile prinilor

Martie, 2013 Inteligen artificial - metode de cutare local 62


Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. binar i ntreag)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi {0,1} / {val1, val2, ..., valk}, pt. i=1,2,...,L

ncruciare uniform
Ideea de baz
Fiecare gen a unui descendent provine dintr-un printe ales
aleator i uniform:
Pentru fiecare gen n parte se genereaz un numr aleator r care respect legea
uniform
Dac numrul generat r < probabilitatea p (de obicei p=0.5), c1 va lua gena
respectiv din p1 i c2 va lua gena respectiv din p2,
Altfel c1 va lua gena respectiv din p2 i c2 va lua gena respectiv din p1

p=0.5 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1

0 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0
10*r 8 6 3 2 6 4 7 2
Martie, 2013 Inteligen artificial - metode de cutare local 63
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
2 3 2 3
Din 2 cromozomi prini 1 4 1 4
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni 8 5 5
8
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
7 6
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L 7 6

2 3
ncruciare ordonat 1 4
Ideea de baz
Descendenii pstreaz ordinea de apariie a genelor 8 5
prinilor
7 6
Se alege un substring de gene din primul printe p1

Se copiaz substringul din p1 n descendentul d1 (pe poziii corespondente)

1 2 3 4 5 6 7 8
4 5 6 7
7 2 6 8 1 5 4 3
Martie, 2013 Inteligen artificial - metode de cutare local 64
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
2 3 2 3
Din 2 cromozomi prini 1 4 1 4
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni 8 5 5
8
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
7 6
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L 7 6

2 3
ncruciare ordonat 1 4
Ideea de baz
Descendenii pstreaz ordinea de apariie a genelor 8 5
prinilor
7 6
Se alege un substring de gene din primul printe p1

Se copiaz substringul din p1 n descendentul d1 (pe poziii corespondente)

Se copiaz genele din p2 n descendentul d1 astfel:

ncepnd cu prima poziie de dup terminarea substringului


Respectnd ordinea genelor din p2 i
Re-lund genele de la prima pozie (dac s-a ajuns la sfrit)

1 2 3 4 5 6 7 8
4 5 6 7 4 5 6 7 3
7 2 6 8 1 5 4 3
Martie, 2013 Inteligen artificial - metode de cutare local 65
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
2 3 2 3
Din 2 cromozomi prini 1 4 1 4
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni 8 5 5
8
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
7 6
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L 7 6

2 3
ncruciare ordonat 1 4
Ideea de baz
Descendenii pstreaz ordinea de apariie a genelor 8 5
prinilor
7 6
Se alege un substring de gene din primul printe p1

Se copiaz substringul din p1 n descendentul d1 (pe poziii corespondente)

Se copiaz genele din p2 n descendentul d1 astfel:

ncepnd cu prima poziie de dup terminarea substringului


Respectnd ordinea genelor din p2 i
Re-lund genele de la prima pozie (dac s-a ajuns la sfrit)

1 2 3 4 5 6 7 8
4 5 6 7 4 5 6 7 3
7 2 6 8 1 5 4 3
Martie, 2013 Inteligen artificial - metode de cutare local 66
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
2 3 2 3
Din 2 cromozomi prini 1 4 1 4
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni 8 5 5
8
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
7 6
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L 7 6

2 3
ncruciare ordonat 1 4
Ideea de baz
Descendenii pstreaz ordinea de apariie a genelor 8 5
prinilor
7 6
Se alege un substring de gene din primul printe p1

Se copiaz substringul din p1 n descendentul d1 (pe poziii corespondente)

Se copiaz genele din p2 n descendentul d1 astfel:

ncepnd cu prima poziie de dup terminarea substringului


Respectnd ordinea genelor din p2 i
Re-lund genele de la prima pozie (dac s-a ajuns la sfrit)

1 2 3 4 5 6 7 8
4 5 6 7 2 4 5 6 7 3
7 2 6 8 1 5 4 3
Martie, 2013 Inteligen artificial - metode de cutare local 67
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
2 3 2 3
Din 2 cromozomi prini 1 4 1 4
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni 8 5 5
8
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
7 6
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L 7 6

2 3
ncruciare ordonat 1 4
Ideea de baz
Descendenii pstreaz ordinea de apariie a genelor 8 5
prinilor
7 6
Se alege un substring de gene din primul printe p1

Se copiaz substringul din p1 n descendentul d1 (pe poziii corespondente)

Se copiaz genele din p2 n descendentul d1 astfel:

ncepnd cu prima poziie de dup terminarea substringului


Respectnd ordinea genelor din p2 i
Re-lund genele de la prima pozie (dac s-a ajuns la sfrit)

1 2 3 4 5 6 7 8
4 5 6 7 2 4 5 6 7 3
7 2 6 8 1 5 4 3
Martie, 2013 Inteligen artificial - metode de cutare local 68
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
2 3 2 3
Din 2 cromozomi prini 1 4 1 4
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni 8 5 5
8
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
7 6
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L 7 6

2 3
ncruciare ordonat 1 4
Ideea de baz
Descendenii pstreaz ordinea de apariie a genelor 8 5
prinilor
7 6
Se alege un substring de gene din primul printe p1

Se copiaz substringul din p1 n descendentul d1 (pe poziii corespondente)

Se copiaz genele din p2 n descendentul d1 astfel:

ncepnd cu prima poziie de dup terminarea substringului


Respectnd ordinea genelor din p2 i
Re-lund genele de la prima pozie (dac s-a ajuns la sfrit)

1 2 3 4 5 6 7 8
4 5 6 7 2 8 4 5 6 7 3
7 2 6 8 1 5 4 3
Martie, 2013 Inteligen artificial - metode de cutare local 69
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
2 3 2 3
Din 2 cromozomi prini 1 4 1 4
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni 8 5 5
8
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
7 6
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L 7 6

2 3
ncruciare ordonat 1 4
Ideea de baz
Descendenii pstreaz ordinea de apariie a genelor 8 5
prinilor
7 6
Se alege un substring de gene din primul printe p1

Se copiaz substringul din p1 n descendentul d1 (pe poziii corespondente)

Se copiaz genele din p2 n descendentul d1 astfel:

ncepnd cu prima poziie de dup terminarea substringului


Respectnd ordinea genelor din p2 i
Re-lund genele de la prima pozie (dac s-a ajuns la sfrit)

1 2 3 4 5 6 7 8
4 5 6 7 2 8 1 4 5 6 7 3
7 2 6 8 1 5 4 3
Martie, 2013 Inteligen artificial - metode de cutare local 70
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
2 3 2 3
Din 2 cromozomi prini 1 4 1 4
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni 8 5 5
8
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
7 6
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L 7 6

2 3
ncruciare ordonat 1 4
Ideea de baz
Descendenii pstreaz ordinea de apariie a genelor 8 5
prinilor
7 6
Se alege un substring de gene din primul printe p1

Se copiaz substringul din p1 n descendentul d1 (pe poziii corespondente)

Se copiaz genele din p2 n descendentul d1 astfel:

ncepnd cu prima poziie de dup terminarea substringului


Respectnd ordinea genelor din p2 i
Re-lund genele de la prima pozie (dac s-a ajuns la sfrit)
Se reia procedeul pentru al doilea descendent d2.

1 2 3 4 5 6 7 8
4 5 6 7 2 8 1 4 5 6 7 3
7 2 6 8 1 5 4 3
Martie, 2013 Inteligen artificial - metode de cutare local 71
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare parial transformat (partially mapped XO)


Ideea de baz
Se alege un substring de gene din primul printe p1
Se copiaz substringul din p1 n descendentul d1 (pe poziii corespondente)
Se iau pe rnd elementele i din substringul din p2 care nu apar n substringul
din p1 i se determin care element j a fost copiat n locul lui din p1
Se plaseaz i n d1 n poziia ocupat de j n p2 (dac locul este liber)
Dac locul ocupat de j n p2 a fost deja completat n d1 cu elementul k, i se
pune n locul ocupat de k n p2
Restul elementelor se copiaz din p2 n d1
Pentru descendentul d2 se procedeaz similar, dar inversnd prinii
1 2 3 4 5 6 7 8
4 5 6 7 4 5 6 7 8

4 3 7 8 2 6 5 1
Martie, 2013 Inteligen artificial - metode de cutare local 72
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare parial transformat (partially mapped XO)


Ideea de baz
Se alege un substring de gene din primul printe p1
Se copiaz substringul din p1 n descendentul d1 (pe poziii corespondente)
Se iau pe rnd elementele i din substringul din p2 care nu apar n substringul
din p1 i se determin care element j a fost copiat n locul lui din p1
Se plaseaz i n d1 n poziia ocupat de j n p2 (dac locul este liber)
Dac locul ocupat de j n p2 a fost deja completat n d1 cu elementul k, i se
pune n locul ocupat de k n p2
Restul elementelor se copiaz din p2 n d1
Pentru descendentul d2 se procedeaz similar, dar inversnd prinii
1 2 3 4 5 6 7 8
4 5 6 7 2 4 5 6 7 8

4 3 7 8 2 6 5 1
Martie, 2013 Inteligen artificial - metode de cutare local 73
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
2 3 2 3

1 4 1 4
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
5 5
se obin 2 descendeni 8 8

c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL), 7 6
7 6
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L
2 3

ncruciare parial transformat 1 4

Ideea de baz
Se alege un substring de gene din primul printe p1 8 5

Se copiaz substringul din p1 n descendentul d1 (pe poziii


7 6
corespondente)
Se iau pe rnd elementele i din substringul din p2 care nu apar n substringul din p1 i se
determin care element j a fost copiat n locul lui din p1
Se plaseaz i n d1 n poziia ocupat de j n p2 (dac locul este liber)
Dac locul ocupat de j n p2 a fost deja completat n d1 cu elementul k, i se pune n locul
ocupat de k n p2
Restul elementelor se copiaz din p2 n d1
Pentru descendentul d2 se procedeaz similar, dar inversnd prinii

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

4 3 7 8 2 6 5 1
Martie, 2013 Inteligen artificial - metode de cutare local 74
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare ciclic
Ideea de baz
1. iniial k = 1
2. Se formeaz un ciclu
Se adaug n ciclu gena de pe poziia k din p1 (gk1)
Se consider gena de pe poziia k din p2 (gk2)
Se alege gena din p1 cu valoarea egal cu gk2 (gr1) i se include n ciclu
Se consider gena de pe poziia r din p2 (gr2)
Se repet paii anteriori pn cnd se ajunge la gena de pe poziia k din p1
3. Se copiaz genele din ciclu n d1 (respectnd poziiiile pe care apar n p1)
4. Se incrementeaz k i se formeaz un nou ciclu dar cu genele din p2
5. Se copiaz genele din ciclu n d1 (respectnd poziiiile pe care apar n p2)
6. Se repet paii 2-5 pn cnd k = L

k=1 1 2 3 4 5 6 7 8 9
1 4 8 9

9 3 7 8 2 6 5 1 4
Martie, 2013 Inteligen artificial - metode de cutare local 75
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare ciclic
Ideea de baz
1. iniial k = 1
2. Se formeaz un ciclu
Se adaug n ciclu gena de pe poziia k din p1 (gk1)
Se consider gena de pe poziia k din p2 (gk2)
Se alege gena din p1 cu valoarea egal cu gk2 (gr1) i se include n ciclu
Se consider gena de pe poziia r din p2 (gr2)
Se repet paii anteriori pn cnd se ajunge la gena de pe poziia k din p1
3. Se copiaz genele din ciclu n d1 (respectnd poziiiile pe care apar n p1)
4. Se incrementeaz k i se formeaz un nou ciclu dar cu genele din p2
5. Se copiaz genele din ciclu n d1 (respectnd poziiiile pe care apar n p2)
6. Se repet paii 2-5 pn cnd k = L

k=2 1 2 3 4 5 6 7 8 9
1 3 7 4 2 5 8 9

9 3 7 8 2 6 5 1 4
Martie, 2013 Inteligen artificial - metode de cutare local 76
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare ciclic
Ideea de baz
1. iniial k = 1
2. Se formeaz un ciclu
Se adaug n ciclu gena de pe poziia k din p1 (gk1)
Se consider gena de pe poziia k din p2 (gk2)
Se alege gena din p1 cu valoarea egal cu gk2 (gr1) i se include n ciclu
Se consider gena de pe poziia r din p2 (gr2)
Se repet paii anteriori pn cnd se ajunge la gena de pe poziia k din p1
3. Se copiaz genele din ciclu n d1 (respectnd poziiiile pe care apar n p1)
4. Se incrementeaz k i se formeaz un nou ciclu dar cu genele din p2
5. Se copiaz genele din ciclu n d1 (respectnd poziiiile pe care apar n p2)
6. Se repet paii 2-5 pn cnd k = L

k=3 1 2 3 4 5 6 7 8 9
1 3 7 4 2 6 5 8 9

9 3 7 8 2 6 5 1 4
Martie, 2013 Inteligen artificial - metode de cutare local 77
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. permutare)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare bazat pe muchii


A se consulta: Whitley, Darrell, Timothy Starkweather, D'Ann Fuquay (1989).
"Scheduling problems and traveling salesman: The genetic edge recombination
operator".International Conference on Genetic Algorithms. pp. 133140 link

Martie, 2013 Inteligen artificial - metode de cutare local 78


Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. real)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare discret
Ideea de baz
Fiecare gen a unui descendent este luat (cu aceeai
probabilitate, p = 0.5) dintr-unul din prini
Similar ncrucirii uniforme de la reprezentarea binar/ntreag
Nu se modific valorile efective ale genelor (nu se creeaz
informaie nou)

0.3 -1.5 3.2 2.4 -1.1 0.6 2.0 -1.7 -2.1 1.3 3.2 2.4 1.1 0.6 1.0 -1.7
p=0.5
-2.1 1.3 0.2 -1.4 1.1 -0.3 1.0 1.7 0.3 -1.5 0.2 -1.4 -1.1 -0.3 2.0 1.7

10*r 8 6 3 2 6 4 7 2
Martie, 2013 Inteligen artificial - metode de cutare local 79
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. real)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare intermediar (aritmetic)


Ideea de baz
Se creeaz copii aflai (ca valoare) ntre prini ncruciare
aritmetic
zi = xi + (1 - ) yi unde : 0 1.
Parametrul poate fi:
Constant ncruciare aritmetic uniform
Variabil ex. dependent de vrsta populaiei
Aleator pt fiecare ncruciare produs
Apar noi valori ale genelor

Tipologie
ncruciare aritmetic singular
ncruciare aritmetic simpl
ncruciare aritmetic complet
Martie, 2013 Inteligen artificial - metode de cutare local 80
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. real)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare intermediar (aritmetic) singular


Se alege cte o gen (de acelai index k) din cei doi prini i
se combin
gk= gk1 + (1-)gk2
gk= (1-)gk1 + gk2
Restul genelor rmn neschimbate
0.6*3.2+(1-0.6)*0.2=2.0
gi= gi1
gi= gi2 , pentru i = 1,2,...,L i i k (1-0.6)*3.2+0.6*0.2=1.4
[LI,LS] = [-2.5, +3]
k=3 0.3 -1.5 3.2 2.4 -1.1 0.6 2.0 -1.7 0.3 -1.5 2.0 2.4 -1.1 0.6 2.0 -1.7
= 0.6
-2.1 1.3 0.2 -1.4 1.1 -0.3 1.0 1.7 -2.1 1.3 1.4 -1.4 1.1 -0.3 1.0 1.7

Martie, 2013 Inteligen artificial - metode de cutare local 81


Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. real)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare intermediar (aritmetic) simpl


Se alege o poziie k i se combin toate genele de dup acea
poziie
gi= gi1 + (1-)gi2
gi= (1-)gi1 + gi2 , pentru i=k, k+1, ..., L
Genele de pe poziii < k rmn neschimbate
gi= gi1 0.6*0.6+(1-0.6)*(-0.3)=0.24
gi= gi2 , pentru i = 1,2,...,k-1
(1-0.6)*0.6+0.6*(-0.3)=0.06
[LI,LS] = [-2.5, +3]
k=4
0.3 -1.5 3.2 2.4 -1.1 0.6 2.0 -1.7 0.3 -1.5 3.2 2.4 -1.1 0.24 1.6 -0.34
= 0.6
-2.1 1.3 0.2 -1.4 1.1 -0.3 1.0 1.7 -2.1 1.3 0.2 -1.4 1.1 0.06 1.4 0.34

Martie, 2013 Inteligen artificial - metode de cutare local 82


Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. real)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare intermediar (aritmetic) complet


Toate genele (de pe poziii corespunztoare) se combin
gi= gi1 + (1-)gi2
gi= (1-)gi1 + gi2 , pentru i=1,2,...,L

0.6*0.3+(1-0.6)*(-2.1)=-0.66

(1-0.6)*0.3+0.6*(-2.1)=-1.14
[LI,LS] = [-2.5, +3]
= 0.6
0.3 -1.5 3.2 2.4 -1.1 0.6 2.0 -1.7 -0.66 4.3 2.0 0.48 -0.22 0.24 1.6 -0.34

-2.1 1.3 0.2 -1.4 1.1 -0.3 1.0 1.7 -1.14 0.18 1.4 0.12 0.22 0.06 1.4 0.34

Martie, 2013 Inteligen artificial - metode de cutare local 83


Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. real)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare geometric
Ideea de baz
Fiecare gen a unui descendent reprezint produsul genelor
prinilor, fiecare cu un anumit exponent , respectiv 1- (unde
numr real pozitiv subunitar)
gi= (gi1) (gi2)1-
gi= (gi1)1- (gi2) 0.30.7+2.11-0.7=1.68

0.31-0.7+2.10.7=2.38
[LI,LS] = [-2.5, +3]
= 0.7 0.3 1.5 3.2 2.4 1.1 0.6 2.0 1.7 1.68 2.41 2.87 2.95 2.10 1.40 2.62 2.62

2.1 1.3 0.2 1.4 1.1 0.3 1.0 1.7 2.38 2.33 1.74 2.57 2.10 1.29 2.23 2.62
Martie, 2013 Inteligen artificial - metode de cutare local 84
Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. real)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obine 1 descendent
c1 =(g1,g2,...,gL),
unde gi1,gi2, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare amestecat (blend crossover BLX)


Ideea de baz
Se genereaz un singur descendent
Genele gi ale descendentului sunt alese aleator n intervalul [Mini-I*a,
Maxi+I*a], unde:
Mini = min{gi1, gi2}, Maxi = max{gi1, gi2}
I = Max Min, a parametru din [0,1]
[LI,LS] = [-2.5, +3]
a = 0.7 0.3 1.5 3.2 2.4 1.1 0.6 2.0 1.7

1.25 1.45 -1.11 2.37 1.10 0.11 0.70 1.70


2.1 1.3 0.2 1.4 1.1 0.3 1.0 1.7

Min 0.3 1.3 0.2 1.4 1.1 0.3 1.0 1.7 Min-Ia -0.26 1.16 -1.90 0.70 1.10 0.09 0.30 1.70
Max 2.1 1.5 3.2 2.4 1.1 0.6 2.0 1.7 Max+Ia 2.66 1.50 3.20 2.40 1.10 0.60 2.00 1.70
I 0.8 0.2 3.0 1.0 0 0.3 1.0 0.0

Martie, 2013 Inteligen artificial - metode de cutare local 85


Algoritmi evolutivi algoritm
Proiectare recombinarea (reprez. real)
Din 2 cromozomi prini
p1=(g11,g21,...,gL1) i p2=(g12,g22,...,gL2)
se obin 2 descendeni
c1 =(g1,g2,...,gL) i c2 =(g1,g2,...,gL),
unde gi1,gi2, gi, gi [LIi, LSi], pt. i=1,2,...,L

ncruciare binar simulat


Ideea de baz
Fiecare gen a unui descendent reprezint o combinaie a genelor
prinilor p1 p2 p2 p1 p1 p2 p2 p1
d1 , d2
2 2 2 2
a.. s se respecte cele 2 proprieti de la ncruciarea cu n puncte
de tietur (pt. reprezentarea binar)
media valorilor codate n prini = media valorilor codate n
descendeni
probabilitatea apariiei unui factor de rspndire 1 este
mai mare dect a oricrui alt factor

Martie, 2013 Inteligen artificial - metode de cutare local 86


Algoritmi evolutivi algoritm
Proiectare recombinarea
Recombinarea multipl

Bazat pe frecvena valorilor din prini (ncruciare uniform


general)

Bazat pe segmentare i recombinare (ncruciare general cu


puncte de tietur diagonal)

Bazat pe operaii numerice specifice valorilor reale


(ncruciare bazat pe centrul de mas, ncruciare general
aritmetic)

Martie, 2013 Inteligen artificial - metode de cutare local 87


Algoritmi evolutivi algoritm
Proiectare mutaie sau recombinare?
Dezbateri aprinse
ntrebri:
care operator este mai bun?
care operator este necesar?,
care operator este mai important?
Rspunsuri:
Depinde de problem, dar
n general, este bine s fie folosii ambii operatori
Fiecare avnd alt rol
Sunt posibili AE doar cu mutaie, dar nu sunt posibili AE doar cu ncruciare

Aspecte ale cutrii:


Explorare descoperirea regiunilor promitoare ale spaiului de cutare (acumulnd informaie util
despre problem)
Exploatare optimizarea ntr-o regiune promitoare (folosind informaia existent)
Trebuie s existe cooperare i competiie ntre aceste 2 aspecte

ncruciarea
Operator exploatativ, realiznd un mare salt ntr-o regiune undeva ntre regiunile asociate prinilor
Efectele exploatative se reduc pe msur ce AE converge
Operator binar (n-ar) care poate combina informaia din 2 (sau mai muli) prini
Operator care nu schimb frecvena valorilor din cromozomi la nivelul ntregii populaii
Mutaia
Operator explorativ, realiznd mici diversiuni aleatoare, rmnnd n regiunea apropiat printelui
Evadarea din optimele locale

Operator care poate introduce informaie genetic nou


Operator care schimb frecvena valorilor din cromozomi la nivelul ntregii populaii

Martie, 2013 Inteligen artificial - metode de cutare local 88


Algoritmi evolutivi algoritm
Proiectare criteriu de oprire
Stabilirea unui criteriu de stop
S-a identificat soluia optim
S-au epuizat resursele fizice
S-a efectuat un anumit numr de evaluari ale
funciei de fitness
S-au epuizat resursele utilizatorului (timp, rbdare)
S-au nscut cteva generaii fr mbuntiri

Martie, 2013 Inteligen artificial - metode de cutare local 89


Algoritmi evolutivi - algoritm
Evaluarea performanelor unui AE
Dup mai multe rulri se calculeaz:
Msuri statistice
media soluiilor,
mediana soluiilor,
cea mai bun soluie,
cea mai slab soluie,
deviaia standard pentru comparabilitate
Calculate pentru un numr suficient de mare de rulri
independente

Martie, 2013 Inteligen artificial - metode de cutare local 90


Algoritmi evolutivi
Analiza complexitii
Partea cea mai costisitoare calculul
fitnessului

Martie, 2013 Inteligen artificial - metode de cutare local 91


Algoritmi evolutivi
Avantaje
Schema AE universal pentru toate problemele
se modific doar
reprezentarea
funcia de fitness

AE sunt capabili s produc rezultate mai bune


dect metodele convenionale de optimizare pentru
c:
nu necesit liniarizare
nu implic anumite presupuneri (continuitate,
derivabilitate, etc. a funciei obiectiv)
nu ignor anumite poteniale soluii

AE sunt capabili s exploreze mai multe poteniale


soluii dect poate explora omul
Martie, 2013 Inteligen artificial - metode de cutare local 92
Algoritmi evolutivi
Dezavantaje
Timp de rulare ndelungat

Martie, 2013 Inteligen artificial - metode de cutare local 93


Algoritmi evolutivi
Aplicaii
Proiectri vehicule
Componena materialelor
Forma vehiculelor
Proiectri inginereti
Optimizarea structural i organizatoric a construciilor (cldiri, roboi,
satelii, turbine)
Robotic
Optimizarea proiectrii, funcionrii componentelor
Evoluare de hardware
Optimizarea de circuite digitale
Optimizarea telecomunicaiilor
Generarea de glume i jocuri de cuvinte
Invenii biomimetice (inspirate de arhitecturi naturale)
Rutri pentru trafic i transporturi
Jocuri de calculator
Criptri
Profilul expresiv al genelor
Analiza chimc a cinecticii
Strategii financiare i marketing
Martie, 2013 Inteligen artificial - metode de cutare local 94
Algoritmi evolutivi
Tipuri de algoritmi evolutivi
Strategii evolutive
Programare evolutiv
Algoritmi genetici
Programare genetic

Martie, 2013 Inteligen artificial - metode de cutare local 95


Cursul urmtor
A. Scurt introducere n Inteligena Artificial (IA)

B. Rezolvarea problemelor prin cutare


Definirea problemelor de cutare
Strategii de cutare
Strategii de cutare neinformate
Strategii de cutare informate
Strategii de cutare locale (Hill Climbing, Simulated Annealing, Tabu Search, Algoritmi
evolutivi, PSO, ACO)
Strategii de cutare adversial

C. Sisteme inteligente
Sisteme bazate pe reguli n medii certe
Sisteme bazate pe reguli n medii incerte (Bayes, factori de
certitudine, Fuzzy)
Sisteme care nva singure
Arbori de decizie
Reele neuronale artificiale
Maini cu suport vectorial
Algoritmi evolutivi
Sisteme hibride
Martie, 2013 Inteligen artificial - metode de cutare local 96
Cursul urmtor
Materiale de citit i legturi utile
capitolul 14 din C. Groan, A. Abraham, Intelligent
Systems: A Modern Approach, Springer, 2011

M. Mitchell, An Introduction to Genetic Algorithms, MIT


Press, 1998

capitolul 7.6 din A. A. Hopgood, Intelligent Systems for


Engineers and Scientists, CRC Press, 2001

Capitolul 9 din T. M. Mitchell, Machine Learning, McGraw-


Hill Science, 1997

Martie, 2013 Inteligen artificial - metode de cutare local 97


Informaiile prezentate au fost colectate din
diferite surse de pe internet, precum i din
cursurile de inteligen artificial inute n anii
anteriori de ctre:

Conf. Dr. Mihai Oltean www.cs.ubbcluj.ro/~moltean

Lect. Dr. Crina Groan - www.cs.ubbcluj.ro/~cgrosan

Prof. Dr. Horia F. Pop - www.cs.ubbcluj.ro/~hfpop

Martie, 2013 Inteligen artificial - metode de cutare local 98


Cursul urmtor
A. Scurt introducere n Inteligena Artificial (IA)

B. Rezolvarea problemelor prin cutare


Definirea problemelor de cutare
Strategii de cutare
Strategii de cutare neinformate
Strategii de cutare informate
Strategii de cutare locale (Hill Climbing, Simulated Annealing, Tabu Search, Algoritmi
evolutivi, PSO, ACO)
Strategii de cutare adversial

C. Sisteme inteligente
Sisteme bazate pe reguli n medii certe
Sisteme bazate pe reguli n medii incerte (Bayes, factori de
certitudine, Fuzzy)
Sisteme care nva singure
Arbori de decizie
Reele neuronale artificiale
Maini cu suport vectorial
Algoritmi evolutivi
Sisteme hibride
Martie, 2013 Inteligen artificial - metode de cutare local 99
Cursul urmtor
Materiale de citit i legturi utile
capitolul 14 din C. Groan, A. Abraham,
Intelligent Systems: A Modern Approach,
Springer, 2011

M. Mitchell, An Introduction to Genetic


Algorithms, MIT Press, 1998

capitolul 7.6 din A. A. Hopgood, Intelligent


Systems for Engineers and Scientists, CRC
Press, 2001

Capitolul 9 din T. M. Mitchell, Machine


Learning, McGraw-Hill Science, 1997

Martie, 2013 Inteligen artificial - metode de cutare local 100


Informaiile prezentate au fost colectate din
diferite surse de pe internet, precum i din
cursurile de inteligen artificial inute n anii
anteriori de ctre:

Conf. Dr. Mihai Oltean www.cs.ubbcluj.ro/~moltean

Lect. Dr. Crina Groan - www.cs.ubbcluj.ro/~cgrosan

Prof. Dr. Horia F. Pop - www.cs.ubbcluj.ro/~hfpop

Martie, 2013 Inteligen artificial - metode de cutare local 101

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