Microsoft Word - Algoritmi genetici.docx

Documente similare
SSC-Impartire

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart

Inteligenta Artificiala

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 3 noiembrie 2014

OPERATII DE PRELUCRAREA IMAGINILOR 1

Modelarea si Simularea Sistemelor de Calcul

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

Communicate at your best - Manual - Cap 3 - RO

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Cuantizare Vectoriala.doc

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Paradigme de Programare

Introducere

PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi C

Concurs online de informatică Categoria PROGRAMARE Secţiunea 5-6 avansaţi PROBLEMA puncte DANS De 1 Iunie - Ziua Copilului se organizează un spe

METODE NUMERICE ÎN INGINERIE

Analiză de flux de date 29 octombrie 2012

Microsoft Word - Lucrarea_10_t.doc

Paradigme de programare

Aproximarea functiilor prin metoda celor mai mici patrate

Analiză statică Analiza fluxului de date 23 octombrie 2014

Microsoft Word - 2 Filtre neliniare.doc

Microsoft Word - Curs1.docx

Slide 1

Microsoft Word - cap1p4.doc

Diapositive 1

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Microsoft Word - O problema cu bits.doc

Laborator Implementarea algoritmului DES - Data Encryption Standard. Exemplu DES Algoritmul DES foloseşte numere b

Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Microsoft Word - Matematika_kozep_irasbeli_javitasi_0911_roman.doc

E_d_Informatica_sp_SN_2014_bar_10_LRO

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

PowerPoint Presentation

Microsoft Word - Curs_09.doc

D.Rusu, Teoria măsurii şi integrala Lebesgue 6 MĂSURA LEBESGUE Cursul 5 Teorema 6.26 Există submulţimi ale lui R care nu sunt măsurabile Lebesgue. Dem

Microsoft Word - CarteC.doc

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

Universitatea Lucian Blaga Sibiu Facultatea de inginerie-Departamentul de calculatoare şi Inginerie Electrică Titular curs: Şef lucrări dr.mat. Po

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x.

Capitole Speciale de Informatica - Curs 5: Extragerea informatiilor prin feedback de relevanta. Metode probabiliste de extragere a informatiilor

Managementul Resurselor Umane

Microsoft Word - Lab1a.doc

Microsoft Word - 03 Dominica MOISE.doc

Aggregating Data

Lucrarea 7 Filtrarea imaginilor BREVIAR TEORETIC Filtrarea imaginilor se înscrie în clasa operaţiilor de îmbunătăţire, principalul scop al acesteia fi

Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut s

Microsoft Word - Curs_08.doc

Microsoft Word - Matematika_kozep_irasbeli_jav_utmut0513V28_roman.doc

Microsoft Word - Laborator 6 - Expresii Regulate IV.doc

Lucrarea nr. 4 - Algoritmi de sortare şi ordonare Breviar teoretic Un algoritm de sortare este o metoda prin care se aranjează elementele unui tablou

Microsoft Word - Tema 06 - Convertoare analog-numerice.doc

Microsoft Word - TIC5

Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică Gheorghe Asachi Iaşi, 2015 Analiză Matematică Lucian Maticiuc 1 / 29

Microsoft Word - 5_ _Eval_ ETC_master_ESI_AnI-II_completat.doc

Slide 1

Microsoft Word - grile.doc

Slide 1

Subiectul 1

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Lab6LCD

7 Pasi simpli pentru a avea succes online Sunteti pasionat de marketingul digital si vreti sa va creati propriul site sau blog cu care sa faceti bani,

Laborator 3

Autoevaluare curs MN.doc

LOGICA MATEMATICA SI COMPUTATIONALA Sem. I,

Politica N21 privind modulele Cookie mobile Network TwentyOne se angajează să vă protejeze pe dumneavoastră și orice date (anonime sau de altă natură)

Calcul Numeric

Laborator 2 Incompatibilităţi/Diferenţe între C şi C++ Completări C++ Supraîncărcarea (redefinirea) numelui de funcţii În C nu este permisă existenţa

Microsoft Word - matem_aplicate in Economie aa FD Bala.doc

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIȘA DISCIPLINEI 1.

PowerPoint Presentation

Recrutarea: Un ghid digital 1

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Ce linii trasează L’Oréal pentru divizia de mass-market

DOMENIUL: Matematica

Microsoft Word - Cap09_AutoorganizareSiEmergentaInSistemeleAdaptiveComplexe_grile.doc

Entrepreneurship and Technological Management

PowerPoint-Präsentation

Microsoft Word - Prognoza_2 saptamani_regiuni_ 30 mai - 12 iunie 2016 fara ploi.doc

rules_ro

Programarea şi utilizarea calculatoarelor

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea de Vest din Timișoara 1.2 Facultatea Matematică și Informa

Microsoft Word - Rezolvarea Test 16 carte 2015.doc

Spatii vectoriale

Your Presentation Name

Algoritmi genetici paraleli. Implementari Java. Continut laborator: 1. Obiectivul lucrarii. 2. Notiuni teoretice: 3. Cerinte laborator. 4. Tema. 1. Ob

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

DAN LASCU ADRIANA-LIGIA SPORIŞ ANDA OLTEANU PAUL VASILIU MATEMATICĂ. CULEGERE DE PROBLEME TIP GRILĂ PENTRU ADMITEREA ÎN ACADEMIA NAVALĂ MIRCEA CEL BĂT

1

Regulile jocului Hotline Hotline este un slot video cu 5 role, 3 rânduri și 30 de linii (fixe) care conține simboluri Wild și Expanding Wild, Re-Spins

B

PROGRAMA CONCURSULUI NAŢIONAL

CARS&CARGO Shaping Transport Collaboration Case study

Microsoft Word - probleme_analiza_numerica_ses_ian09.rtf

Transcriere:

1.1 Generalităţi Algoritmii genetici fac parte din categoria algoritmilor de calcul evoluționist și sunt inspirați de teoria lui Darwin asupra evoluției. Idea calculului evoluționist a fost introdusă în 1960 de I. Rechenberg în lucrarea intitulată Evolution strategies. Algoritmii genetici au fost aplicați cu succes într-o varietate de aplicații NP-complete care necesită optimizarea globală a soluției și nu avem o metodă iterativă de rezolvare sau metoda iterativa ia foarte mult timp. Algoritmii genetici se referă la un model introdus și analizat de J. Holland în 1975 și sunt proceduri adaptive care găsesc soluția problemei pe baza unui mecanism de selecție naturală și evoluție genetică. Algoritmul este des folosit pentru probleme în care găsirea soluției optime nu este ușoară sau cel puțin ineficientă datorită caracteristicilor căutării probabilistice. Algoritmii genetici codifică o soluție posibilă la o problemă specifică într-o singură structură de date numită cromozom și aplică operatori genetici la aceste structuri astfel încât să mențină informațiile critice. Algoritmii genetici pornesc de la o mulțime inițială de soluții posibile ale problemei (de obicei aleasă aleator) numită în literatură populație. În această populație fiecare individ este numit cromozom și reprezintă o soluție posibilă a problemei. În aproape toate cazurile cromozomul este un șir de simboluri (de obicei reprezentat ca un șir de biți). Acești cromozomi evoluează pe durata iterațiilor succesive numite generații. În fiecare generație, cromozomii sunt evaluați utilizând unele măsuri de potrivire (fitness). Pentru crearea următoarei populații cei mai buni cromozomi din generația (populația) curentă sunt selectați și noii cromozomi sunt formații folosind unul dintre cei trei operatori genetici esențiali: selecția, crossover și mutația. Selecția asigură că anumiți cromozomi din generația curentă sunt copiați în acord cu valoarea funcției lor de potrivire în noua generație ceea ce înseamnă că cromozomii cu o importanță mare au o probabilitate mare să contribuie la formarea noii generații. Crossover este un alt operator genetic care reprezintă procesul prin care pe baza a doi cromozomi din populația curentă sunt formați doi cromozomi pentru populația următoare. Mutația este procesul prin care un cromozom din populația curentă este modificat și salvat în noua populație. 1 of 3

1.2 Codificarea cromozomilor și problema de optimizare Algoritmii genetici au două componente principale care depind de problema abordată: codificarea problemei și funcția de evaluare (de fitness). Cromozomii care reprezintă codificarea problemei trebuie într-o oarecare măsură să conțină informațiile despre soluția problemei și depind foarte mult de problemă. Există mai multe codificări, care au fost utilizate cu succes cum ar fi codificarea binară (cromozomul este format din șiruri de 0 sau 1 care reprezintă binar soluția problemei) sau codificarea prin valoare (cromozomul este format dintr-un șir de valori vector întregi sau reale care pe ansamblu reprezintă soluția problemei). De exemplu un cromozom poate avea următoare formă (reprezentat prin valoare): Cromozom 1-0.23 0 0 0.89 0 0.52 0 0 0 0-0.04 0.03 Cromozom 2 0 0 0.08-0.67-0.01 0 0 0 0 0.01 0 0.01 Funcția de evaluare numită și funcția de fitness (potrivire) este funcția care ne permite să dăm o încredere la fiecare cromozom din populație. Această funcție este de obicei funcția care reprezintă descrierea problemei. Când trebuie să rezolvăm o problemă, de obicei ne uităm după anumite soluții care sunt mai bune decât alte soluții obținute anterior. Spațiul tuturor soluțiilor fezabile este numit spațiul de căutare sau spațiul stărilor. Problemele abordate folosind algoritmi genetici sunt de obicei probleme pentru care căutarea în spațiul soluțiilor este o problemă complicată sau chiar (NP-completă). De obicei nu știm unde să ne uităm după soluție și de unde să începem. Soluțiile obținute folosind algoritmi genetici sunt de obicei considerate ca soluții bune deoarece nu este întotdeauna posibil să cunoaștem care este optimul real. 1.3 Metode de selecție a cromozomilor Un alt pas important în algoritmul genetic este cum selectăm părinții din populația curentă care vor alcătuii noua populație. Aceasta poate fi făcută în mai multe feluri, dar idea de bază este de a selecta cei mai buni părinți (în speranța că aceștia vor produce cei mai buni copii). În acest pas poate apărea o problemă: făcând noua populație doar pe baza noilor copii obținuții poate duce la pierderea celui mai bun cromozom obținut până la acel pas. De obicei această problemă este rezolvată prin utilizarea așa numitei metode de elitism. Adică cel puțin un cromozom care produce cea mai bună soluție conform cu funcția de fitness este copiat fără nici o modificare în noua populație, astfel cea mai bună soluție obținută până la acel moment să nu se pierde. 2 of 3

Ca și metode de selecție a cromozomilor propunem două metode, fiecare dintre ele cu avantajele și dezavantajele ei: 1.3.1 Metoda Roulette Wheel (ruleta) În această metodă fiecare individ din populația curentă este reprezentat printr-un spațiu proporțional cu valoarea funcției lui de evaluare. Prin eșantionări aliatoare succesive din acest spațiu de reprezentare a cromozomilor asigură că cei mai buni cromozomi au șanse mai mari să fie selectați la un anumit pas decât cei cu mai slabi. Această metodă de selecție va avea probleme în momentul în care valoarea funcției de evaluare diferă foarte mult de la un cromozom la altul. De exemplu dacă cel mai bun cromozom are valoare funcției de evaluare mare (care va ocupa 90% din spațiul de reprezentare) iar restul cromozomilor au valori ale funcțiilor de evaluare foarte mici această metodă va selecta de foarte multe ori cromozomul cel mai bun ducând în final la degenerarea populației. 1.3.2 Selecția utilizând metoda lui Gauss Pașii propuși pentru această metodă sunt: 1. Se alege un cromozom din populația curentă. 2. Utilizând formula lui Gauss calculăm probabilitatea ca acel cromozom să fie un cromozom bun (Acela care obține valoarea funcție de evaluare maximă). P ( M fitness( 2 2 ( c i ) e c i )) 2 unde P(.) reprezintă probabilitatea calculată pentru cromozomul ci, M reprezintă media, care aici este valoarea maximă care poate fi obținută de către funcția de evaluare și σ care reprezintă dispersia sau panta cu care scade probabilitatea, iar fitness(ci) reprezintă valoarea funcției de evaluare pentru acel cromozom. De exemplu dacă valoare maximă a funcției de evaluare este 1, M va fi 1 iar pentru dispersie propunem o valoare între 0.3-0.5. 3. În al treilea pas această probabilitate calculată este comparată cu o probabilitate aleasă aleator în domeniul [0,1] (Probabilitatea lui Gauss întoarce valori în acest domeniu). 4. Se verifică dacă probabilitatea lui Gauss calculată pentru cromozomul ales este mai mare decât probabilitatea aleasă aleator: a. Dacă da cromozomul ales aleator se ia în considerare pentru a forma noua populație 3 of 4

b. Dacă nu se trece din nou la pasul 1 Această metodă asigură posibilitatea luării în considerare și a cromozomilor care nu au obținut valori mari pentru funcția de evaluare (oferă șanse mai mari de evoluție și cromozomilor mai slabi). 1.4 Operatorii genetici 1.4.1 Selecția Pentru acest operator genetic de obicei se selectează doar un singur cromozom din populația. Acest cromozom este copiat în noua populație fără nici o modificare. Această metodă se mai folosește și pentru a nu pierde cromozomul care a obținut cea mai bună valoare la funcția de evaluare (elitism) în populația curentă. De asemenea, acest operator se aplică și pentru alți cromozomi selectați pe baza metodelor de selecție propuse dar de obicei acest operator apare de un număr mic de ori la generarea noii populații. 1.4.2 Mutația Mutația este un alt operator genetic important și reprezintă procesul prin care cromozomul curent își modifică ocazional una sau mai multe valori într-un singur pas. Mutația depinde de asemenea de codificarea cromozomului. Mutația alege doar un singur candidat și aleator modifică unele valori ale acestuia (modificând doar semnul acelei valori sau uneori se modifică și valoarea în cazul reprezentării prin valoare sau se schimbă doar valoarea în cazul reprezentării binare). Mutația funcționează prin alegerea aleatoare a numărului de valori care vor fi schimbate și a modului de modificare a acestora. Prezentăm un exemplu de modificare a 2 cromozomi primul având trei puncte de modificare iar al doilea doar două puncte de modificare. În funcție de dimensiunea cromozomului se alege numărul de puncte pentru care se aplică mutația. Original 1-0.23 0 0 0.89 0 0.52 0 0 0 0-0.04 0.03 Original 2 0 0 0.08-0.67-0.01 0 0 0 0 0.01 0 0.01 Urmaș modificat 1 0.23 0 0 0.89 0 0.52 0 0-1.0 0-0.04-0.03 Urmaș modificat 2 1.0 0 0.08-0.67-0.01 0 0 0 0 0.1 0 0.01 4 of 5

1.4.3 Crossover Crossover poate fi văzut ca crearea următoarei populații folosind populația curenta. Acest operator depinde foarte mult de tipul de codificare al cromozomilor. Metoda de crossover este aplicată la o pereche de părinți aleși folosind una din metodele prezentate. Cu o probabilitate pc părinții sunt recombinați pentru a forma doi noi copii care vor fi introduși în noua populație. De exemplu luăm 2 părinți din populația curentă, îi împărțim și încrucișăm componentele astfel încât să producem 2 noi candidați. Acești candidați în urma încrucișării trebuie să reprezenta o soluție posibilă pentru parametrii problemei noastre de optimizare de aceea de obicei se inter-schimbă valori de pe aceleași poziții. Utilizând un punct de recombinare putem crea noii candidați prin combinarea primei părți din primul părinte cu a doua parte din al doilea părinte. După recombinare se poate face aleator o mutație pe noii candidați obținuți. Dacă dimensiunea cromozomului este mare se pot alege mai multe puncte de recombinare. Prezentăm un exemplu cu două puncte de recombinare: Cromozom 1-0.23 0 0 0.89 0 0.52 0 0 0 0-0.04 0.03 Cromozom 2 0 0 0.08-0.67-0.01 0 0 0 0 0.01 0 0.01 Urmaş1-0.23 0 0 0.89-0.01 0 0 0 0 0.01 0 0.03 Urmaș 2 0 0 0.08-0.67 0 0.52 0 0 0 0-0.04 0.01 1.5 Pașii algoritmului genetic: 1. Se codifică datele problemei într-un cromozom. 2. Se generează aleator o populație. Se recomandă ca populația să aibă un număr suficient de mare de cromozomi (50-100 cromozomi soluții aleatoare ale problemei). Fiecare valoare din cromozom este inițializată cu o valoare aleatoare mică. 3. Pentru fiecare cromozom din populație se calculează încrederea acestuia folosind funcția de evaluare (fitness). 4. Dacă s-a găsit un cromozom pentru care se obține valoarea dorită (dacă se cunoaște) se termină algoritmul iar acel cromozom reprezintă soluția problemei (în cazul în care se știe unde dorim să ajungem). O altă condiție de terminare a algoritmului ar putea fi cazul în care după un număr specificat de pași nu s-au mai obținut îmbunătățiri (în cazul în care nu știm exact valoarea unde vom ajunge). 5. Folosind rezultatele funcției de evaluare se generează următoare populație astfel: a. Se vor selecta primii cei mai buni 50% din cromozomi din prima populație și se vor 5 of 6

copia în noua populație; b. Pentru restul de 50% din noua populație se vor folosii operatorii de crossover și mutaţie astfel: i. Se selectează aleator folosind una din metodele prezentate doi cromozomi din prima jumătate a noii populații. ii. Se aplică operatorul de crossover pentru cei 2 cromozomi selectați. iii. La un număr mic de cromozomi rezultați după aplicarea operatorului de crossover se aplică și operatorul de mutație. Maxim la 5-10% din noii cromozomi rezultați. 6. Se continuă algoritmul sărind la pasul 3. Problema 1. Să se implementeze un algoritm genetic pentru calcul minimului următoarei funcții: cos( x) *cos( x) 1, pentru x 0,5 f ( x) sinh, x număr real Obs. Pentru această problemă un cromozom va fi format din reprezentarea binară a numărului real x. Se va folosi o populație de 100 de cromozomi. Funcția de fitness pentru această problemă va fi de fapt funcția f(x) prezentată mai sus. Exemplu de algoritm genetic: http://www.obitko.com/tutorials/genetic-algorithms/example-functionminimum.php Problema 2. Să se implementeze un algoritm genetic care să găsească pozițiile optime pentru centroizii folosiți de algoritmul din laboratorul 2 (K-Means). Pentru evaluarea unei poziții în algoritmul de învățare K-Means se poate folosi funcția de cost E dis P C, unde k reprezintă numărul de centroizi, P reprezintă mulțimea de exemple de antrenament care aparțin unui centroid, iar Ci reprezintă centroidul i. 6 of 6