ArticlePDF Available

OSNOVNI PRINCIPI GENETSKIH ALGORITAMA

Authors:
  • Zagreb University of Applied Sciences

Abstract and Figures

SAŽETAK Genetski algoritam heuristična je metoda pretraživanja inspirirana biološkim procesima evolucije. Ta se metoda pokazala efikasnom za mnoge vrste problema za čije je rješavanje potrebno pretražiti veliki prostor mogućih rješenja i za koje su egzaktne tehnike pretraživanja, kao što je dinamičko programiranje, nedovoljno efikasne. U ovom radu opisani su osnovni principi rada genetskih algoritama kao što je selekcija, križanje, mutacija i funkcija dobrote zajedno s nekim područjima njihove primjene kao što su optimizacija, genetsko programiranje i gramatičko i semantičko zaključivanje. Iako je sam princip rada genetskih algoritama jednostavan, neki od problema koji ih ograničavaju u primjeni i pronalaženju optimalnog ili prihvatljivog rješenja su kompleksna i/ili neefikasna funkcija dobrote i postizanje lokalnog optimuma što ih sprečava u konvergiranju prema globalnom optimumu. Ključne riječi: genetski operatori, evolucijsko računarstvo, optimizacija ABSTRACT Genetic algorithm is a heuristic search method inspired by biological evolution processes. That method has proven successful for many types of problems for which finding a solution requires searching a large potential solution space and for which egzact methods, such as dynamic programming, are not efficient enough. In this paper we describe basic principles of genetic algorithms such as selection, crossover, mutation and fitness function together with some application areas such as optimization, genetic programming and grammatic and semantic inference. Although the basic principles of genetic algorithms are simple, some problems that limit their usability and finding an optimal and/or acceptable solution are complex and/or inneficient fitness function and achieving local optimum which stops them from converging towards a global optimum.
Content may be subject to copyright.
287
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
PD.TVZ.HR PD.TVZ.HR
OSNOVNI PRINCIPI GENETSKIH ALGORITAMA
BASIC PRINCIPLES OF GENETIC ALGORITHMS
Vedran Mihelj1, Aleksandar Stojanović2


SAŽETAK
Genetski algoritam heuristična je metoda
pretraživanja inspirirana biološkim procesima
evolucije. Ta se metoda pokazala ekasnom
za mnoge vrste problema za čije je rješavanje
potrebno pretražiti veliki prostor mogućih rješenja
i za koje su egzaktne tehnike pretraživanja, kao
što je dinamičko programiranje, nedovoljno
ekasne. U ovom radu opisani su osnovni principi
rada genetskih algoritama kao što je selekcija,
križanje, mutacija i funkcija dobrote zajedno s
nekim područjima njihove primjene kao što su
optimizacija, genetsko programiranje i gramatičko
i semantičko zaključivanje. Iako je sam princip
rada genetskih algoritama jednostavan, neki
od problema koji ih ograničavaju u primjeni i
pronalaženju optimalnog ili prihvatljivog rješenja
su kompleksna i/ili neekasna funkcija dobrote i
postizanje lokalnog optimuma što ih sprečava u
konvergiranju prema globalnom optimumu.
Ključne riječi: 

ABSTRACT
Genetic algorithm is a heuristic search method
inspired by biological evolution processes.
That method has proven successful for many
types of problems for which nding a solution
requires searching a large potential solution
space and for which egzact methods, such as
dynamic programming, are not ecient enough.
In this paper we describe basic principles of
genetic algorithms such as selection, crossover,
mutation and tness function together with some
application areas such as optimization, genetic
programming and grammatic and semantic
inference.
Although the basic principles of genetic
algorithms are simple, some problems that limit
their usability and nding an optimal and/or
acceptable solution are complex and/or innecient
tness function and achieving local optimum
which stops them from converging towards a
global optimum.
Keywords: 

1. UVOD
1. INTRODUCTION
Genetski algoritmi su adaptivne metode koje
se mogu upotrebljavati za rješavanje problema
pretraživanja i optimizacije [1]. Osnovni principi
genetskih algoritama, poput selekcije, križanja,
mutacije i funkcije dobrote, prvi su put precizno
postavljeni u [2], a opisani su i u mnogim drugim
radovima. U [3] je opisana tehnika 
 (engl. ) kojom se
može optimizirati globalni optimum zadane
funkcije. Rad [4] obuhvaća praktičnu primjenu
genetskih algoritama namijenjenu inženjerima i
znanstvenicima koji ih žele primjeniti u rješavanju
specičnih problema kao što je dizajn aviona,
dijagnostika višestrukih grešaka (engl. 
) i sekvencijalno raspoređivanje
(engl. ). U [5] je opisana
metoda optimizacije parametara numeričkih
optimizacijskih problema dok je u [6] opisana
primjena genetskih algoritama kroz razne
vrste problema. U [7] i [8] genetski algoritmi
detaljno su opisani zajedno s pripadajućim
teoretskim aspektima kao što je koncept  i
 (engl. 
).
DOI: 10.19279/TVZ.PD.2021-9-4-07
Mrežna inačica: ISSN 2459-6302
Tiskana inačica: ISSN 1849-1995

288
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
PD.TVZ.HR PD.TVZ.HR
Genetski algoritmi zasnovani su na principu
genetskih procesa bioloških organizama. Osnovna
ideja je imitiranje prirodnih procesa selekcije i
razmnožavanja: pojedinci koji su najuspješniji
u borbi za opstanak i pronalaženju partnera imat
će najviše potomaka. Karakteristike roditelja
(geni) prenose se na potomke čime se mogu dobiti
potomci koji su genetski „bolji“ od roditelja, što
ih čini bolje prilagođenima za okolinu.
Na analogan način genetski algoritmi do rješenja
dolaze takvom jednom „evolucijom“, pod
uvjetom da su ispravno implementirani. U ovom
kontekstu,  je skup  (pojedinaca)
koje predstavljaju jedno moguće rješenje zadanog
problema. Svakoj jedinki pridružena je vrijednost
koja označava to koliko je dobro rješenje koje
ona predstavlja. Ta se vrijednost zove
 (engl. ) [9]. Jedinke s boljom
vrijednošću dobrote (u odnosu na druge jedinke)
imaju se prilike međusobno  čime se
dobivaju  koji sadrže neke karakteristike
oba roditelja. Isto tako, i jedinke s lošijom
vrijednošću dobrote mogu se međusobno križati,
zavisno od vrste selekcije upotrebljene za odabir
jedinki za križanje (kao što je 
[1]). One jedinke koje ne uđu u proces križanja
eventualno „izumru“.
Na ovaj se način dobivaju nove  koje
najčešće sadrže više dobrih gena pa se time, kroz
više generacija, dobri geni sve više šire. Time se
efektivno pretražuje prostor mogućih rješenja koja
imaju najviše izgleda da budu jedno od optimalnih
rješenja.
Dobro napravljen genetski algoritam tako će
se kroz više generacija „približavati“ odnosno
 prema optimalnom rješenju. Genetski
algoritmi ne garantiraju uvijek pronalaženje
rješenja. Primjerice, rješenje nekada nije moguće
pronaći u prostoru svih mogućih rješenja
(globalnom prostoru) zbog pojave lokalnih
optimuma (algoritam konvergira u samo jednom
ograničenom području u kojemu ne postoji
rješenje).
2. OSNOVNI PRINCIPI
2. BASIC PRINCIPLES
Rad genetskog algoritma temelji se na četiri
osnovne operacije [10]:
Inicijalizacija
Selekcija
Križanje
Mutacija
Zadnje tri operacije dio su „reprodukcije“ jedinki.
Reprodukcija je jedan od koraka genetskog
algoritma u kojem se kromosomi dvaju „roditelja“
kombiniraju i/ili modiciraju da bi proizveli
potomke za iduću generaciju.
Selekcija je postupak odabira roditelja. Ovisno
o odabranom selekcijskom mehanizmu (kao što
je turnirska selekcija), roditelji se mogu birati
slučajnim odabirom koji favorizira one s boljom
vrijednošću dobrote. Na taj način „dobre“ jedinke
biti će izabrane češće od „lošijih“ [1] [10].
Slika 1 
Figure 1 
289
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
PD.TVZ.HR PD.TVZ.HR
Dva glavna mehanizma reprodukcije su  i
:
Križanje, u osnovnom obliku kako je prikazano
na slici Slika 2, uzme dva roditelja (odabrana
selekcijom) i podijeli njihove kromosome na dva
dijela. Drugi dio oba kromosoma tada se zamijeni
s onim od drugog roditelja čime se dobiju dva
nova potomka (engl. ). Križanje u pravilu
ovisi o problemu, a najčešće se izvodi na način
da novi potomci imaju vjerojatnost 50% za svaki
gen da ga naslijede od jednog ili drugog roditelja.
Vjerojatnost nasljeđivanja gena također može biti
ovisna o kvaliteti pojedinog roditelja gdje roditelji
s boljom vrijednosti funkcije dobrote imaju
proporcionalno veću vrijednost da se upravo
njihov gen naslijedi.
Mutacija se izvodi nad pojedinim genima
potomaka. Ona s malom vjerojatnošću (kao što
je 0.001) modicira jedan ili više gena slučajnim
odabirom u svrhu dodavanja raznolikosti u
populaciji i eventualno ranom sprečavanju
lokalnog optimuma. Slika 3 prikazuje mutaciju
petog gena kromosoma.
Slika 1 prikazuje općeniti princip rada genetskog
algoritma. Svaka iteracija ovog postupka daje
jednu novu populaciju. Nakon generiranja
potrebnog broja populacija dobije se populacija
(posljednja generacija) koja sadrži jednu ili više
jedinki s visokom vrijednošću dobrote. Svaka
takva jedinka predstavlja jedno moguće rješenje
zadanog problema.
2.1. KODIRANJE
2.1. ENCODING
Problem i rješenje genetskog algoritma prikazuje
se skupom gena. Ti se geni povezuju u jedan niz
vrijednosti koji se zove  ili . U
radu [2] autor je pokazao da je za neke probleme
gene najbolje prikazati kao binarni niz, ali postoje
i druge mogućnosti [11]. Na primjer, ako je
problem koji rješavamo maksimiziranje neke
funkcije  onda za svaki parametar ove
funkcije možemo koristiti 10 binarnih znamenki
čime bi dobili kromosom koji se sastoji od 30
binarnih znamenki [1].
U kontekstu genetskih algoritama skup gena
koji predstavljaju neki kromosom naziva se
, dok se konkretan rezultat naziva
. Vrijednost dobrote neke jedinke ovisi o
karakteristikama fenotipa.
2.2 VRIJEDNOST DOBROTE
2.2 FITNESS VALUE
Da bi genetski algoritam odredio koliko je neka
jedinka odnosno kromosom „dobar“, to jest
koliko je dobro rješenje koje on predstavlja,
upotrebljava se funkcija dobrote. Ta funkcija daje
broj koji predstavlja vrijednost dobrote zadanog
kromosoma. Ova funkcija mora biti denirana
specično za problem koji se rješava genetskim
algoritmom. Primjerice, ona može biti prilično
jednostavna ako tražimo minimum ali maksimum
neke funkcije s nekoliko parametara, ali će biti
složenija za probleme kao što je kombinatorna
optimizacija gdje broj parametara može biti puno
veći. Primjerice, neka je problem maksimiziranje
funkcije

za vrijednosti parametra x između 0 i . Ovdje su
potencijalna rješenja vrijednosti za parametar x
koja se mogu prikazati kao niz binarnih znamenki
(0 i 1) koje predstavljaju realne brojeve. Funkcija
dobrote tada bi taj niz pretvorila u realni broj
i evaluirala funkciju za taj x. Dobrota tog niza
binarnih brojeva tada bi bila vrijednosti funkcije f
za tu vrijednost parametra x [12].
Slika 2 
Figure 2 
290
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
PD.TVZ.HR PD.TVZ.HR
Primjer
U ovom dijelu demonstriran je princip rada
genetskih algoritama na jednom jednostavnom
primjeru [10]. Neka je duljina binarnog niza
8, funkcija dobrote  neka daje broj bitova
s vrijednošću 1 u binarnom nizu, veličina
populacije n neka je 4,
neka je = 0.7, a = 0.001. Ove vrijednosti za
i n su male radi jednostavnosti demonstracije.
Na osnovu funkcije dobrote može se zaključiti da
je u ovom primjeru cilj dobiti binarni niz sa što
većim brojem jedinica.
Sada prva populacija (nasumično generirana)
može izgledati kao u tablici Tablica 1.
Da bi mogli primjeniti operacije križanja i
mutacije prvo se mora napraviti selekcija jedinki.
Jedna vrsta selekcije je selekcija proporcionalna
dobroti kod koje je broj puta koji je jedna jedinka
odabrana za reprodukciju jednak njenoj dobroti
podijeljenoj s prosječnom dobrotom cijele
populacije. Jedna jednostavna metoda kojom se
ovakva selekcija može implementirati je 
 [7]. Konceptualno, ideja te metode je
da se za svakog pojedinca odredi površina kotača
ruleta koja odgovara njegovoj dobroti. Kada se
rulet zavrti i kuglica stane na jednoj od površina
odabere se jedinka kojoj je pridružena ta površina.
Ako je n = 4 kotač bi se zavrtio četiri puta čime
bi se dobile jedinke za križanje. Na taj način što
se više puta zavrti kotač to je odabir pojedinačnih
jedinki bliže onom očekivanom.
Na ovaj način parovi se biraju s vjerojatnošću
i križaju čime se dobijaju dva potomka ili
se prenose u novu generaciju nepromijenjeni.
Pretpostavimo da su u ovom primjeru za križanje
odabrani B i D i da su njihovim križanjem iza
prvog bita dobiveni potomci E = 10110100 i F =
01101110. Isto tako, u idućoj selekciji jedinke B
i C se ne križaju nego su njihovi potomci kopije
istih tih roditelja. Nadalje, svaki je potomak
izložen mogućnosti mutacije s vjerojatnošću .
Neka je, stoga, jedinka E mutirana na šestom bitu
tvoreći tako E' = 10110000, potomci F i C ostaju
nemutirani, a potomak B je mutiran na prvom bitu
tvoreći B' = 01101110. Sada je dobivena nova
generacija prikazana u tablici Tablica 2. Iako je
u ovoj populaciji nestala jedinka s dobrotom 6,
prosječna dobrota porasla je s 12/4 na 14/4. Kroz
veći broj generacija eventualno bi dobili niz koji
se sastoji samo od jedinica.
3. GENETSKI ALGORITMI U
RJEŠAVANJU PROBLEMA
3. GENETIC ALGORITHMS IN
PROBLEM SOLVING
U ovom dijelu opisano je nekoliko vrsta problema
za koje se primjenjuju genetski algoritmi.
Slika 3 
Figure 3 
Tablica 1. 
Table 1. 
Oznaka
kromosoma
Kromosom Dobrota
A00000110 2
B11101110 6
C00100000 1
D00110100 3
Tablica 2. 

Table 2. 

Oznaka
kromosoma
Kromosom Dobrota
E' 10110000 3
F 01101110 5
C00100000 1
B' 01101110 5
291
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
PD.TVZ.HR PD.TVZ.HR
3.1. KOMBINATORNA
OPTIMIZACIJA
3.1 COMBINATORIAL
OPTIMIZATION
Kombinatorna optimizacija bavi se pronalaženjem
odgovarajućeg poretka diskretnih objekata.
[1] Neki od tipičnih problema koji su predmet
proučavanja kombinatorne optimizacije su
 [13], [14], [15]. Ovdje
je cilj u neusmjerenom grafu pronaći optimalni
put koji prolazi kroz sve čvorove samo jedanput
koji završava u polaznom čvoru [16].
Još jedan optimizacijski problem je kako
optimalno smjestiti određeni broj predmeta u
neki ograničeni prostor (engl. ). Neki
radovi u kojima se ovaj problem proučava sa
stajališta genetskih algoritama su [17] i [18].
Jedna primjena ovog problema je raspored VLSI
integriranih krugova [19].
Cilj problema  je kako
ekasno raspodijeliti skup resursa (strojeva,
prostorija, ljudi, opreme) da bi odradio neki skup
poslova kao što je, primjerice, izrada dijelova za
neki stroj. Ovdje je problem u tome što postoje
ograničenja; na primjer, jedna te ista prostorija
ne može biti rezervirana za dvije različite svrhe u
isto vrijeme. Ovdje se može optimizirati najbrža
izrada poslova ili najmanje neiskorištenog
vremena ili prostora i slično [20], [21], [22], [23].
3.2. GENETSKO PROGRAMIRANJE
(GP)
3.2 GENETIC PROGRAMMING
(GP)
Cilj genetskog programiranja je dobiti računalni
program „evolucijom“, na sličan način na koji
bi dobili niz koji se sastoji samo od jedinica u
primjeru iz prethodnog dijela. Neki od značajnijih
radova u ovom području su [24] i [25]. U tim se
radovima izvorni kôd prikazuje kao stablo kroz
upotrebu programskog jezika Lisp. Na primjer,
izraz u Lispu se piše .
To se može prikazati  kao na
slici Slika 4. U ova dva rada kandidati rješenja
prikazani su na ovaj način umjesto niza bitova.
Čvorovi kao što su  i nazivaju se ,
a čvorovi označeni s . Genetski
algoritam sada radi na ovaj način [10]:
1. Odaberi skup mogućih terminala i funkcija za
program.
2. Generiraj početnu populaciju slučajnih stabala
(koji moraju biti sintaksno ispravni) koristeći
skup mogućih funkcija i terminala.
3. Izračunaj vrijednost dobrote za svaki program
njegovim pokretanjem nad skupom testnih
vrijednosti.
4. Primjeni operacije selekcije, križanja i
mutacije. Križanje se sastoji od toga da se za
svakog roditelja nasumično odaberu podstabla
koja se onda zamijene.
Koraci 3 i 4 ponavljaju se za određeni broj
generacija.
3.3. GRAMATIČKO I
SEMANTIČKO
ZAKLJUČIVANJE
3.3. GRAMMAR AND SEMANTIC
INFERENCE
Cilj gramatičkog zaključivanja je dobiti
gramatičku strukturu na osnovu skupa uzoraka
[26], [27]. Ispod je prikazano nekoliko primjera
jezika DESK [28]:
1. print a
2. print 23
3. print a + 23
4. print a + b + c
5. print a where a = 23
Slika 4 
Figure 4 
292
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
PD.TVZ.HR PD.TVZ.HR
6. print 23 where b = 11
7. print 23 + c where c = 28
8. print 23 + 11 where c = 28
9. print a where a = 23; a = 28
10. print 28 where a = 23; b = 11
11. print 1 + 2 where b = 23; a = 5
12. print a + b + c where a = 1; b = 2; c = 3
Postupkom gramatičkog zaključivanja dobivena je
sljedeća beskontekstna gramatika:
N1 → print N3 N5
N2 → + N3 | ϵ
N3 → num N2 | id N2
N4 → ; id = num N4 | ϵ
N5 → where id = num N4 | ϵ
U ovom primjeru gramatika je ispravno denirana
u smislu da obuhvaća sve gore navedene uzorke.
Međutim, neki od tih uzoraka nisu semantički
ispravni. Na primjer, uzorci 1, 3 i 4 koriste
nedenirane varijable , i , dok je u uzorku
9 varijabla denirana dva puta. Problem je u
tome što gramatičko zaključivanje obuhvaća
samo sintaksu, ali ne i semantiku. U [28] i [29]
opisano je semantičko zaključivanje upotrebom
 [30] koje pored denicije
sintakse uključuju i semantička pravila. Kod
takvog zaključivanja cilj je automatski generirati
prevodilac ili interpreter na osnovu zadanih
uzoraka.
Pored gore opisanog ispod su ukratko navedena
još neka područja primjene genetskih algoritama:
Ekonomija – analiza raznih ekonomskih
modela kao što je teorija igara i procjenjivanje
vrijednosti imovine;
Neuronske mreže – treniranje rekurentnih i
drugih vrsta neuronskih mreža.
Problemi rasporeda (engl. ) –
pronalaženje prihvatljivog rasporeda s raznim
ograničenjima (kao što je raspored sati);
Strojno učenje – primjena 
 (engl. 
 ili GBML);
Analiza DNA – određivanje strukture DNA
upotrebom spektrometrijskih podataka.
Ovo nije iscrpan popis primjene genetskih
algoritama, ali pokazuje njihovu široku
primjenu i u problemima koji nisu tradicionalno
optimizacijske prirode.
4. ZAKLJUČAK
4. CONCLUSION
Iako je osnovni princip rada genetskih algoritama
relativno jednostavan, detalji rada takvih
algoritama zavise od problema koji se njima
rješava. Način selekcije, križanja, mutacije
i specikacije funkcije dobrote te strategija
izbjegavanja lokalnog optimuma ovise o
specičnostima problema koji se rješava i veličini
prostora pretraživanja. Nadalje, način prikaza
kromosoma (kodiranje) važan je element u
dizajnu genetskog algoritma. Još jedan važan
faktor u primjeni genetskih algoritama je i
način implementacije; primjerice, paralelnom
implementacijom i/ili adekvatnom upotrebom
odgovarajućih struktura podataka može se
ubrzati generiranje novih populacija. U daljnjem
radu fokusirat ćemo se na problem rješavanja
performansi pri pretraživanju velikih prostora za
pretraživanje implementacijom raznih strategija
lokalnih pretraživanja, odnosno korištenjem
memetskih algoritama [31].
5. REFERENCE
5. REFERENCES
[1.] D. Beasley, D. R. Bull i R. R. Martin, »An
Overview of Genetic Algorithms: Part 1,
Fundamentals,« University Computing,
svez. 15, br. 2, pp. 58-69, 1993.
[2.] J. H. Holland, Adaptation in Natural and
Articial Systems, MIT Press, 1975.
[3.] L. Davis, Genetic Algorithms and
Simulated Annealing, Pitman, 1987.
[4.] L. Davis, Handbook of Genetic Algorithms,
Van Nostrand Reinhold, 1991.
[5.] J. J. Grefenstette, »Optimization of control
parameters for genetic algorithms,« IEEE
Trans SMC, svez. 16, pp. 122-128, 1986.
293
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
PD.TVZ.HR PD.TVZ.HR
[6.] J. J. Grefenstette, »Genetic algorithms
and their applications,« u A. Kent and J.
G. Williams, editors, Encyclopaedia of
Computer Science and Technology, Marcel
Dekker, 1990, pp. 139-152.
[7.] D. E. Goldberg, Genetic Algorithms in
search, optimization and machine learning,
Addison Wesley, 1989.
[8.] Z. Michalewicz, Genetic Algorithms +
Data Structures = Evolution Programs,
Springer Verlag, 1992.
[9.] M. Davarynejad, M.-R. Akbarzadeh-T i
N. Pariz, »A novel general framework for
evolutionary optimization: Adaptive fuzzy
tness granulation,« u IEEE Congress on
Evolutionary Computation, 2007.
[10.] M. Mitchell, An Introduction to Genetic
Algorithms, MIT Press, 1996.
[11.] D. Beasley, D. R. Bull i R. R. Martin,
»An overview of genetic algorithms: Part
2, research topics,« University Computing,
svez. 15, br. 4, pp. 170-181, 1993.
[12.] M. Mitchell, »Genetic Algorithms: An
Overview,« Complexity, svez. 1, br. 1, pp.
31-39, 1995.
[13.] D. E. Goldberg, »Alleles, loci, and
the TSP,« u J. J. Grefenstette, editor,
Proceedings of the First International
Conference on Genetic Algorithms, pages
154-159, Lawrence Erlbaum Associates,
1985.
[14.] M. Gorges-Schleuter, »ASPARAGOS: an
asychronous parallel genetic optimization
strategy,« u J. D. Schaer, editor,
Proceedings of the Third International
Conference on Genetic Algorithms, pages
422-427, Morgan Kaufmann, 1989.
[15.] G. E. Liepins, M. R. Hilliard, M. Palmer
i M. Morrow, »Greedy genetics,« u J.
J. Grefenstette, editor, Proceedings of
the Second International Conference
on Genetic Algorithms, pages 90-99,
Lawrence Erlbaum Associates, 1987.
[16.] T. H. Cormen, C. E. Leiserson, R.
L. Rivest i C. Stein, Introduction to
Algorithms, The MIT Press, 2009.
[17.] L. Davis, »Applying adaptive algorithms
to epistatic domains,« u 9th Int. Joint Conf.
on AI, pages 162-164, 1985.
[18.] K. Juli, »Using a multi chromosome
genetic algorithm to pack a truck,«
Technical Report RMIT CS TR 92-2, Royal
Melbourne Institute of Technology, 1992.
[19.] M. P. Fourman, »Compaction of symbolic
layout using genetic algorithms,« u J. J.
Grefenstette, editor, Proceedings of the
First International Conference on Genetic
Algorithms, pages 141-153. Lawrence
Erlbaum Associates, 1985.
[20.] S. Bagchi, S. Uckun, Y. Miyabe i K.
Kawamura, »Exploring problem specic
recombination operators for job shop
scheduling,« u R. K. Belew and L. B.
Booker, editors, Proceedings of the
Fourth International Conference on
Genetic Algorithms, pages 10-17. Morgan
Kaufman, 1991.
[21.] L. Davis, »Job shop scheduling with
genetic algorithms,« u J. J. Grefenstette,
editor, Proceedings of the First
International Conference on Genetic
Algorithms, pages 136-140. Lawrence
Erlbaum Associates, 1985.
[22.] G. Syswerda, »Schedule optimization
using genetic algorithms,« u Handbook
of Genetic Algorithms, Van Nostrand
Reinhold, 1991, pp. 332-349.
[23.] D. Whitley, T. Starkweather i D. Fuquay,
»Scheduling problems and travelling
salesmen: The genetic edge recombination
operator,« u J. D. Schaer, editor,
Proceedings of the Third International
Conference on Genetic Algorithms, pages
133-140. Morgan Kaufmann, 1989.
[24.] J. R. Koza, Genetic Programming: On the
Programming of Computers by Means of
Natural Selection, MIT Press, 1992.
[25.] J. R. Koza, Genetic Programming
II: Automatic Discovery of Reusable
Programs, MIT Press, 1994.
[26.] C. De la Higuera, Grammatical Inference:
Learning Automata and Grammars,
Cambridge: Cambridge University Press,
2010.
294
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
POLYTECHNIC & DESIGN Vol. 9, No. 4, 2021.
PD.TVZ.HR PD.TVZ.HR
[27.] C. De la Higuera, »A bibliographical
study of grammatical inference,« Pattern
Recognition, svez. 38, pp. 1332-1348,
2005.
[28.] Ž. Kovačević, M. Mernik, M. Ravber i
M. Črepinšek, »From Grammar Inference
to Semantic Inference—An Evolutionary
Approach,« Mathematics, svez. 8, br. 5,
2020.
[29.] M. Ravber, Ž. Kovačević, M. Črepinšek
i M. Mernik, »Inferring Absolutely
Non-Circular Attribute Grammars with
a Memetic Algorithm,« Applied Soft
Computing Journal, svez. 100, 2021.
[30.] D. E. Knuth, »Semantics of context-free
languages,« Mathematical systems theory,
svez. 2, pp. 127-145, 1968.
[31.] P. Moscato i C. Cotta, »A modern
introduction to memetic algorithms,« u M.
Gendreau, J.-Y. Potvin (Eds.), Handbook of
Metaheuristics, Springer US, Boston, MA,
pp. 141-183, 2010.
AUTORI AUTHORS
Vedran Mihelj
Student je preddiplomskog
stručnog studija računarstva
na Tehničkom veleučilištu u
Zagrebu. Slobodno vrijeme
posvećuje istraživanju i
nadopuni znanja iz područja
strojnog učenja i sigurnosti računalnih sustava.
● Aleksandar Stojanović
Predavač je na Tehničkom
veleučilištu u Zagrebu i
izvodi nastavu na predmetima
iz područja programskog
inženjerstva, objektno-
orijentiranog programiranja
i naprednog programiranja. Godine 1996.
diplomirao je informacijske i komunikacijske
znanosti na Filozofskom fakultetu sveučilišta
u Zagrebu, a 1999. godine magistrirao
računarstvo u SAD-u na sveučilištu Midwestern
State University te je radio kao programski
inženjer u području telekomunikacija, nancija
i energetike. Godine 2019. doktorirao je na
Filozofskom fakultetu sveučilišta u Zagrebu s
disertacijom pod naslovom "Metoda automatske
detekcije naglašenih riječi u zvučnom zapisu".
Područja interesa su mu principi i metodologija
programiranja te primjena evolucijskog
računalstva u rješavanju problema. Autor je knjige
“Elementi računalnih programa s primjerima u
Pythonu i Scali”.
Korespondencija ‧ Correspondence
aleksandar.stojanovic@tvz.hr
ResearchGate has not been able to resolve any citations for this publication.
Chapter
Full-text available
Memetic algorithms are optimization techniques based on the synergistic combination of ideas taken from different algorithmic solvers, such as population-based search (as in evolutionary techniques) and local search (as in gradient-ascent techniques). After providing some historical notes on the origins of memetic algorithms, this work shows the general structure of these techniques, including some guidelines for their design. Some advanced topics such as multiobjective optimization, self-adaptation, and hybridization with complete techniques (e.g., branch-and-bound) are subsequently addressed. This chapter finishes with an overview of the numerous applications of these techniques and a sketch of the current development trends in this area.
Article
When valid syntactical structures are additionally constrained with context-sensitive information the Grammar Inference needs to be extended to the Semantic Inference. In this paper, it is shown that a complete compiler/interpreter for small Domain-Specific Languages (DSLs) can be generated automatically solely from given programs and their associated meanings using Semantic Inference. In this work a wider class of Attribute Grammars has been learned, while only S-attributed and L-attributed Grammars have previously been inferred successfully. Inferring Absolutely Non-Circular Attribute Grammars (ANC-AG) with complex dependencies among attributes has been achieved by integrating a Memetic Algorithm (MA) into the LISA.SI tool. The results show that the proposed Memetic Algorithm is at least four times faster on the selected benchmark than the previous method.
Article
Meaning may be assigned to a string in a context-free language by defining attributes of the symbols in a derivation tree for that string. The attributes can be defined by functions associated with each production in the grammar. This paper examines the implications of this process when some of the attributes are synthesized, i.e., defined solely in terms of attributes of thedescendants of the corresponding nonterminal symbol, while other attributes are inherited, i.e., defined in terms of attributes of theancestors of the nonterminal symbol. An algorithm is given which detects when such semantic rules could possibly lead to circular definition of some attributes. An example is given of a simple programming language defined with both inherited and synthesized attributes, and the method of definition is compared to other techniques for formal specification of semantics which have appeared in the literature.
Article
The field of grammatical inference (also known as grammar induction) is transversal to a number of research areas including machine learning, formal language theory, syntactic and structural pattern recognition, computational linguistics, computational biology and speech recognition. There is no uniform literature on the subject and one can find many papers with original definitions or points of view. This makes research in this subject very hard, mainly for a beginner or someone who does not wish to become a specialist but just to find the most suitable ideas for his own research activity. The goal of this paper is to introduce a certain number of papers related with grammatical inference. Some of these papers are essential and should constitute a common background to research in the area, whereas others are specialized on particular problems or techniques, but can be of great help on specific tasks.