260 likes | 584 Vues
ALGORITMI GENETICI. Comanici Nadia. Continut. Notiuni de Genetica Programe Evolutive Algoritmi Genetici Utilizari Practice ale Algoritmilor Genetici Demo- uri Maximizarea unei functii de o variabila Problema Orarului. Mutatie. Gena. Recombinare. Evolutie. Genetica. Pasi / etape.
E N D
ALGORITMI GENETICI Comanici Nadia
Continut • Notiuni de Genetica • ProgrameEvolutive • AlgoritmiGenetici • UtilizariPractice ale AlgoritmilorGenetici • Demo-uri • Maximizareauneifunctii de o variabila • ProblemaOrarului
Mutatie Gena Recombinare Evolutie Genetica Pasi / etape Aproximare a realitatii Fenotip Cromozom Genotip Solutii Algoritmi Calcule Optimizare - Finititudine - Corectitudine - Generalitate ProgrameleEvolutive AlgoritmiiGenetici
Notiuni de Genetica - 1 Gena – unitatede bazapurtatoarea ereditatii in organismele vii Cromozom – colectie de gene Individ – organism care se identifica in mod unicprincombinatiasa de cromozomi Populatie– multime de indivizidintr-o anume specie care interactioneazaintreei
Notiuni de Genetica - 2 Evolutie – procesul prin care o populatie de organisme isi schimba trasaturile mostenite de la o generatia la generatia urmatoare Mostenire – un organism-copil dobandeste trasaturi ale organismului-parinte Mutatie – schimbare in materialul genetic al unui organism Incrucisare – procesul prin care doua organisme-parinte fac schimb de informatie genetica si in urma caruia rezulta organisme-copil
Programe Evolutive • Algoritmiprobabilistici • Pastreazao populatie de indivizi, pentru fiecare iteratie. • Fiecare individ : • Reprezinta o potentialasolutie la problema • Este reprezentat sub forma uneistructuri de date specificeproblemei • Este evaluatpebazauneifunctii de fitness • Se aplicaoperatorigenetici: selectie, incrucisaresimutatie
ProgrameEvolutive + Structuri de Date = AlgoritmiGenetici
Structura unui Algoritm Genetic • Pasul 1 : se alege populatia initiala • Pasul 2 : se evalueazafiecareindivid din populatie • Pasul 3 : repeta • Pasul 3.1 : se selecteaza cei mai buni indivizi pentruurmatoareageneratie • Pasul 3.2 : pe baza unor probabilitati, se aplica operatorii de ıncrucisare si mutatieindivizilorselectati anterior pentru a forma nouapopulatie • Pasul 3.3 : se evalueazafiecareindivid din nouapopulatiepebazafunctiei de fitness pana cand (conditie de oprire)
Elemente definitorii ale Algoritmilor Genetici Structuragenetica a unuiindivid Creareapopulatiainitiala Functia de evaluare a fitness-uluifiecaruiindivid (simuleazamediul) Operatorigenetici: selectie, incrucisare, mutatie Parametriispecificialgoritmului
Constrangeri Constrangeri hard (de corectitudine) care suntasiguratepentrufiecareindivid al populatiei Constrangeri soft (de valoare) pebazacarora se realizeazaevolutiaindivizilor
Functia de evaluare a fitness-ului Joaca rol de mediu, evaluand indivizii si asociind fiecarui individ o valoare (un fitness) Reprezinta functia pentru care se doreste optimizarea cu ajutorul algoritmilor genetici
Incrucisarea Incrucisare cu un punct de taiere Parinte 1: Copil 1: Parinte 2: Copil 2: Incrucisare cu maimultepuncte de taiere Parinte 1: Copil 1: Parinte 2: Copil 2: Incrucisare ‘taiesiadauga’ Parinte 1: Copil 1: Parinte 2: Copil 2:
Utilizari ale Algoritmilor Genetici Designul topologiilor Spargerea codurilor Optimizarea structurii moleculelor Predictii Planificari (orare, programari etc) Retele neuronale recurente More: http://en.wikipedia.org/wiki/Genetic_algorithm#Applications
Problema 1: Maximizareauneifunctii • Structuri de date speciale • O gena (celula) = un bit (0 sau 1) • Un individ = un cromozom = un numar in binar, reprezentat pe k biti (sir de biti) • O populatie de NR indivizi = o colectie de siruri de biti • Fitness-ul unui individ = valoarea functiei in acel punct (care se obtine din reprezentarea binara)
Problema 1: Maximizarea unei functii • Operatori speciali • Pentru generarea indivizilor initiali – se genereaza aleator o populatie din NR indivizi, fiecare avand k gene • Pentru incrucisare – pe baza unei probabilitati de incrucisare, se considera doi indivizi si se creeaza alti indivizi noi folosind o singura taietura • Pentru mutatie – pe baza unei probabilitati de mutatie (PM), se schimba un bitul cu valoarea 0 in 1 sau cu valoarea 1 in 0
Problema 2: Problema Orarului • Este NP-completa • Presupune numeroase constrangeri (pentru profesori, grupe, cursuri, sali sau facultati) • Presupune diferite tipuri de cursuri • Saptamanale • Bisaptamanale • Partajate
Solutia Problemei folosind Algoritmi Genetici • Structuri de date speciale • O gena (celula) = un container care poate contine diferite tipuri de activitati de tip curs (saptamanale, bisaptamanale sau partajate) • Un individ = un orar • O populatie de indivizi = o colectie de orare • Operatori speciali • Pentru generarea indivizilor initiali • Pentru incrucisare • Pentru mutatie