ALGORITMI GENETICI Comanici Nadia Continut Notiuni de Genetica






















- Slides: 22
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 Aproximare a realitatii Pasi / etape Fenotip Cromozom Genotip Algoritmi Solutii Calcule - Finititudine - Corectitudine - Generalitate Optimizare Programele Evolutive Algoritmii Genetici
Ce este evolutia?
Notiuni de Genetica - 1 Gena – unitate de baza purtatoare a ereditatii in organismele vii Cromozom – colectie de gene Individ – organism care se identifica in mod unic prin combinatia sa de cromozomi Populatie – multime de indivizi dintr-o anume specie care interactioneaza intre ei
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 organismeparinte fac schimb de informatie genetica si in urma caruia rezulta organisme-copil
Programe Evolutive Algoritmi probabilistici Pastreaza o populatie de indivizi, pentru fiecare iteratie. Fiecare individ : Reprezinta o potentiala solutie la problema Este reprezentat sub forma unei structuri de date specifice problemei Este evaluat pe baza unei functii de fitness Se aplica operatori genetici: selectie, incrucisare si mutatie
Programe Evolutive + Structuri de Date = Algoritmi Genetici
Structura unui Algoritm Genetic Pasul 1 : se alege populatia initiala Pasul 2 : se evalueaza fiecare individ din populatie Pasul 3 : repeta – Pasul 3. 1 : se selecteaza cei mai buni indivizi pentru urmatoarea generatie – Pasul 3. 2 : pe baza unor probabilitati, se aplica operatorii de ıncrucisare si mutatie indivizilor selectati anterior pentru a forma noua populatie – Pasul 3. 3 : se evalueaza fiecare individ din noua populatie pe baza functiei de fitness pana cand (conditie de oprire)
Elemente definitorii ale Algoritmilor Genetici Structura genetica a unui individ Crearea populatia initiala Functia de evaluare a fitness-ului fiecarui individ (simuleaza mediul) Operatori genetici: selectie, incrucisare, mutatie Parametrii specifici algoritmului
Constrangeri hard (de corectitudine) care sunt asigurate pentru fiecare individ al populatiei Constrangeri soft (de valoare) pe baza carora se realizeaza evolutia indivizilor
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
Selectia
Incrucisarea Incrucisare cu un punct de taiere Parinte 1: Copil 1: Parinte 2: Copil 2: Incrucisare cu mai multe puncte de taiere Parinte 1: Copil 1: Parinte 2: Copil 2: Incrucisare ‘taie si adauga’ 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#Applicatio ns
Problema 1: Maximizarea unei functii 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
Demo : Problema maximizarii unei functii
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
Demo : Problema orarului - evolutie
Q&A






















