16
1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski algoritam Oponaša prirodu Skup rješenja svako rješenje je jedan računalni program koji (bolje ili lošije) rješava zadani problem simulacija evolucije: bolja rješenja preživljavaju, loša izumiru Prikaz jedinke - programa Prikaz uz pomoć stabla niz naredbi: funkcije (čvorovi stabla) akcije ili varijable (listovi stabla) Primjer primjene GP-a Mrav se kreće po stazi i skuplja hranu (2D polje) Pretpostavka: mrav 'vidi' samo polje neposredno ispred sebe Rješenje: program koji 'upravlja' mravom! Kvaiteta – količ ina pronañene hrane (u zadanom broju koraka) Struktura jedinke Funkcije: IF (2 podstabla): ako je ispred mrava hrana, izvodi se lijevo, inače desno podstablo PR2, PR3 (2 ili 3 podstabla): izvode se sva podstabla s lijeva na desno – simulacija niza naredbi Akcije: rig: okreni se 90 stupnjeva desno lef: 90 stupnjeva lijevo mov: pomak naprijed Kvaliteta programa - jedinke Ocjena – količ ina pronañene hrane Optimalna jedinka nalazi svu hranu

programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

Embed Size (px)

Citation preview

Page 1: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

1

Uvod u genetsko programiranje

Što je genetsko programiranje? (GP)

� Evolucijski algoritam� Oponaša prirodu

� Skup rješenja� svako rješenje je jedan računalni program koji

(bolje ili lošije) rješava zadani problem� simulacija evolucije: bolja rješenja preživljavaju,

loša izumiru

Prikaz jedinke - programa

� Prikaz uz pomoć stabla

� niz naredbi:� funkcije (čvorovi stabla)� akcije ili varijable (listovi stabla)

Primjer primjene GP-a

� Mrav se kreće po stazi i skuplja hranu (2D polje)

� Pretpostavka: mrav 'vidi' samo polje neposredno ispred sebe

� Rješenje: program koji 'upravlja' mravom!

� Kvaiteta – količina pronañene hrane (u zadanom broju koraka)

Struktura jedinke� Funkcije:

� IF (2 podstabla): ako je ispred mrava hrana, izvodi se lijevo, inače desno podstablo

� PR2, PR3 (2 ili 3 podstabla): izvode se sva podstabla s lijeva na desno – simulacija niza naredbi

� Akcije:� rig: okreni se 90 stupnjeva desno� lef: 90 stupnjeva lijevo� mov: pomak naprijed

Kvaliteta programa - jedinke

� Ocjena – količina pronañene hrane

� Optimalna jedinka nalazi svu hranu

Page 2: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

2

Generiranje inicijalne populacije Mutacija

Mutacija

� Slučajno odabran čvorzamjenjuje se slučajnim podstablom

Selekcija

� Ispitivanje kvalitete rješenja

� Najbolje jedinke prelaze u novu generaciju (preživljavaju)

� Dva rješenja (roditelji) kombiniraju svojstva i tvore novo rješenje (dijete)

Križanje Križanje

Page 3: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

3

Križanje Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 4: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

4

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 5: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

5

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 6: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

6

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 7: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

7

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 8: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

8

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 9: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

9

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 10: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

10

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 11: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

11

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 12: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

12

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 13: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

13

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 14: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

14

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 15: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

15

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Prikaz rada Prikaz rada

Page 16: programiranje Evolucijski algoritam - zemris.fer.hryeti/studenti/Uvod_u_genetsko_programiranje.pdf · 1 Uvod u genetsko programiranje Što je genetsko programiranje? (GP) Evolucijski

16

Prikaz rada Prikaz rada

� Kraj 'života' jedinke:� definirani maksimalni broj ponavljanja algoritma ili

broj koraka (akcija)...� ... ili pronañena sva hrana

� Implementacija nekih primjera:� http://msdn.microsoft.com/msdnmag/issues/04/08

/GeneticAlgorithms/default.aspx� http://www.lalena.com/ai/

Neki primjeri primjene GP...

� automatizirano oblikovanje: analogni sklopovi, kontrolni krugovi, antene, neuronske mreže...

� algoritmi rasporeñivanja (računalni programi, proozvodni procesi, radna snaga,...)

� algoritmi za obradu multimedijalnih podataka (npr. evaluacija VoIP protokola)

� računalna sigurnost: intrusion detection

� database query algorithms� predikcija financijskih podataka

� evolucija OOP komponenata� igranje igara (šah)

� pronalaženje prim brojeva

Umjesto zaklju čka

� GP:� za 36 različitih problema pronañeno rješenje jednako ili

bolje od najboljeg ljudskog rješenja (human competitive)

� 21 problem za koji je GP pronašao prethodno patentirano rješenje

� barem 2 nova rješenja koja se mogu patentirati

� http://www.genetic-programming.org/� http://www.zemris.fer.hr/~golub/ga/ga.html