Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 L1 (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ă