You are on page 1of 3

U umjetnoj inteligenciji, genetsko programiranje (GP) je tehnika razvoja programa, počevši od

populacije neprikladnih (obično slučajnih) programa, prikladnih za određeni zadatak primjenom


operacija analognih prirodnim genetskim procesima na populaciju programa. To je u biti tehnika
heurističkog pretraživanja koja se često opisuje kao 'penjanje uzbrdo', tj. Traži optimalan ili barem
prikladan program u prostoru svih programa.

Operacije su: odabir najjačih programa za reprodukciju (crossover) i mutacija prema unaprijed
definiranoj kondicionoj mjeri, obično vještina na željenom zadatku. Prelazna operacija uključuje
zamjenu slučajnih dijelova odabranih parova (roditelja) kako bi se proizvela nova i različita potomstva
koja postaju dio nove generacije programa. Mutacija podrazumijeva zamjenu nekog slučajnog dijela
programa nekim drugim slučajnim dijelom programa. - Neki programi koji nisu odabrani za
reprodukciju kopiraju se iz trenutne generacije u novu generaciju. Tada se selekcija i druge operacije
rekurzivno primjenjuju na novu generaciju programa.

Tipično, članovi svake nove generacije su u prosjeku bolje nego članovi prethodne generacije, a
program najbolje generacije često je bolji od programa najbolje generacije iz prethodnih generacija.
Prestanak rekurzije je kada neki individualni program dosegne unaprijed definiranu razinu stručnosti
ili sposobnosti.

Može se i često dešava da određeno izvođenje algoritma rezultira preranim približavanjem nekim
lokalnim maksimumima što nije globalno optimalno ili čak dobro rješenje. Višestruke vožnje (desetke
do stotine) su obično potrebne za dobivanje vrlo dobrog rezultata. Također može biti potrebno
povećati početnu veličinu populacije i varijabilnost pojedinaca kako bi se izbjegle patologije.

Tehnika, utjelovljena u sustavu nazvanom "stroj za izum", patentirao je računalni znanstvenik sa


Sveučilišta Stanford John Koza 1988. godine.
GP razvija računalne programe, tradicionalno predstavljene u memoriji kao strukture stabala. Stabla
se lako mogu ocijeniti na rekurzivan način. Svaki čvor stabla ima operatorsku funkciju i svaki
terminalni čvor ima operand, što olakšava evoluciju i procjenu matematičkih izraza. Tradicionalno, GP
preferira korištenje programskih jezika koji prirodno utjelovljuju drvne strukture (na primjer, Lisp;
prikladni su i drugi funkcionalni programski jezici).

Ne-drvne reprezentacije su predložene i uspješno provedene, kao što je linearno genetsko


programiranje koje odgovara tradicionalnijim imperativnim jezicima [vidi, na primjer, Banzhaf et al.
(1998)]. [31] Komercijalni GP softver Discipulus koristi automatsku indukciju binarnog strojnog koda
("AIM") [32] kako bi postigao bolje performanse. µGP [33] koristi usmjerene multigrame za
generiranje programa koji u potpunosti iskorištavaju sintaksu danog asemblerskog jezika. Ostale
programske reprezentacije na kojima su provedena značajna istraživanja i razvoj uključuju programe
za virtualne strojeve temeljene na stogu [34] [35] [36] i sekvence cijelih brojeva koji su mapirani na
proizvoljne programske jezike putem gramatike [37] [38]. Kartezijansko genetsko programiranje je
još jedan oblik liječnika opće prakse, koji koristi grafički prikaz umjesto uobičajenog prikaza
temeljenog na stablu za kodiranje računalnih programa.

Većina prikaza ima strukturno nedjelotvorni kod (introne). Takvi geni za nekodiranje mogu se činiti
beskorisnim, jer nemaju učinka na djelovanje bilo kojeg pojedinca. Međutim, oni mijenjaju
vjerojatnosti generiranja različitih potomaka pod varijacijskim operatorima, i na taj način mijenjaju
varijabilna svojstva pojedinca. Čini se da eksperimenti pokazuju bržu konvergenciju kada se koriste
programski prikazi koji dopuštaju takve nekodirajuće gene, u usporedbi s programskim prikazima koji
nemaju nekodirajuće gene.

Izbor

Odabir je proces u kojem se pojedini pojedinci biraju iz trenutne generacije koja će služiti kao roditelji
za sljedeću generaciju. Pojedinci su probabilistički odabrani tako da bolje uspješni pojedinci imaju
veću vjerojatnost odabira [18]. Najčešće korištena metoda odabira u liječenju opće prakse je odabir
turnira, iako su se pokazale da druge metode, kao što su proporcionalni izbor fitnessa, izbor leksikaze
[41] i drugi, imaju bolji učinak za mnoge probleme s GP-om.

Elitizam, koji uključuje sijanje sljedeće generacije s najboljim pojedincem (ili najboljim n pojedincima)
iz sadašnje generacije, je tehnika koja se ponekad koristi kako bi se izbjegla regresija.

crossover
Različiti genetski operatori (tj. Križanje i mutacija) primjenjuju se na pojedince odabrane u gore
opisanom koraku selekcije za uzgoj novih pojedinaca. Brzina kojom se ti operateri primjenjuju
određuje raznolikost populacije.

Mutacija

Prijave

GP se uspješno koristi kao alat za automatsko programiranje, alat za strojno učenje i automatski
motor za rješavanje problema [18]. GP je posebno korisna u domenama gdje točan oblik rješenja nije
unaprijed poznat ili je prihvatljivo rješenje aproksimacije (vjerojatno zato što je pronalaženje točne
odluke vrlo teško). Neke od primjena liječnika opće prakse su uklapanje krivulja, modeliranje
podataka, simbolička regresija, odabir značajki, klasifikacija, itd. John R. Koza spominje 76 slučajeva u
kojima je genetsko programiranje bilo u stanju proizvesti rezultate koji su konkurentni s rezultatima
proizvedenim od čovjeka (pod nazivom Human - konkurentni rezultati) [42]. Godišnja konferencija o
genetičkim i evolucijskim računima (GECCO) održava se od 2004. godine na natjecanju Human
Competitive Awards (pod nazivom Humies) [43], gdje se novčane nagrade dodjeljuju rezultatima koji
su kompetitivni za čovjeka, a koji proizlaze iz bilo kojeg oblika genetskog i evolucijskog izračuna. GP je
tijekom godina osvojio brojne nagrade na ovom natjecanju.

Meta-genetsko programiranje

Meta-genetsko programiranje je predložena tehnika metaučenja za razvoj sustava genetskog


programiranja pomoću samog genetskog programiranja. To sugerira da su se kromosomi, križanje i
mutacije sami razvijali, stoga bi se kao i njihovi kolege iz stvarnog života trebali dopustiti da se sami
promijene umjesto da ih određuje ljudski programer. Meta-GP je formalno predložio Jürgen
Schmidhuber 1987. godine [44]. Eurisko Doug Lenat je ranije pokušaj koji može biti ista tehnika. To je
rekurzivni, ali završni algoritam koji mu omogućuje da izbjegne beskonačnu rekurziju. U
"autokonstruktivnoj evoluciji" pristupa metagenetskom programiranju, metode za proizvodnju i
varijacije potomaka kodirane su unutar samih programa koji se razvijaju, a programi se izvode kako bi
se proizveli novi programi koji se dodaju stanovništvu. [45] [46] ]

You might also like