terminiranje delovnih nalogov s pomoČjo genetskih … · aproksimacijski algoritmi kot npr....

56
UNIVERZA V MARIBORU FAKULTETA ZA STROJNIŠTVO Zoran LESTAN TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH ALGORITMOV Diplomsko delo univerzitetnega študijskega programa Strojništvo Maribor, april 2009

Upload: others

Post on 27-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

UNIVERZA V MARIBORU

FAKULTETA ZA STROJNIŠTVO

Zoran LESTAN TERMINIRANJE DELOVNIH NALOGOV S POMOČJO

GENETSKIH ALGORITMOV

Diplomsko delo univerzitetnega študijskega programa Strojništvo

Maribor, april 2009

Page 2: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

TERMINIRANJE DELOVNIH NALOGOV S POMOČJO

GENETSKIH ALGORITMOV Diplomsko delo

Študent: Zoran Lestan

Študijski program: Univerzitetni program Strojništvo

Smer: Proizvodno strojništvo

Mentor: izr. prof. dr. Miran BREZOČNIK

Somentor: izr. prof. dr. Borut BUCHMEISTER

Maribor, april 2009

Page 3: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

-I-

SKLEP

Page 4: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

-II-

I Z J A V A Podpisani Zoran LESTAN izjavljam, da:

• je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom izr. prof.

dr. Mirana BREZOČNIKA in somentorstvom izr. prof. dr. Boruta BUCHMEISTRA;

• predloženo diplomsko delo v celoti ali v delih ni bilo predloženo za pridobitev

kakršnekoli izobrazbe na drugi fakulteti ali univerzi;

• soglašam z javno dostopnostjo diplomskega dela v Knjižnici tehniških fakultet

Univerze v Mariboru.

Maribor, 14. 04. 2009 Podpis: ___________________________

Page 5: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

-III-

ZAHVALA

Zahvaljujem se mentorju izr. prof. dr. Miranu

BREZOČNIKU in somentorju izr. prof. dr. Borutu

BUCHMEISTRU za pomoč in vodenje pri opravljanju

diplomskega dela.

Posebna zahvala velja staršema, ki sta mi omogočila

študij.

Page 6: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

-IV-

TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH ALGORITMOV

Ključne besede: proizvodnja, terminiranje delovnih nalogov, evolucijsko računanje, genetski

algoritmi.

UDK: 658.5:331.103.22(043.2)

POVZETEK

Pod pojmom terminiranje v proizvodnji razumemo časovno razporejanje procesov in virov

oziroma sredstev. Pravilno terminiranje je za podjetje velikega pomena, lahko pa predstavlja

tudi težavo, saj je na voljo ogromen prostor potencialnih rešitev. Zaradi velikega pritiska

konkurenčnih podjetij pa postaja čas zelo velik dejavnik poslovnega uspeha.

Diplomsko delo obravnava problem terminiranja proizvodnih procesov in metode, ki se

uporabljajo za razvrščanje delovnih nalogov. Poudarek je na metodah, ki so trenutno najbolj

aktualne. Glavna tema dela je izdelava programa za terminiranje, ki temelji na metodi

genetskih algoritmov. Učinkovitost tega programa pa je prikazana z reševanjem praktičnih

primerov.

Page 7: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

-V-

Work order scheduling by genetic algorithms

Key words: manufacturing, work order scheduling, evolutionary computation, genetic

algorithms.

UDK: 658.5:331.103.22(043.2)

ABSTRACT

The job shop scheduling is concerned with arranging processes and resources. Proper

schedules are very important for the manufacturers, but can cause serious problems because

of the enormous solution space. Pressure from the competitive enterprises is the main reason

why time is becoming one of the most important success factors.

This diploma presents the job shop problem and methods for sequencing jobs on machines.

The accentuation is on up-to-date methods. The main theme in this work is the development of

a computer program for the job shop scheduling, which is based on genetic algorithms. The

effectiveness of the program is demonstrated by solving practical problems.

Page 8: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

-VI-

KAZALO 1 Uvod ............................................................................................................... 1 2 Terminiranje proizvodnih procesov........................................................... 3

2.1 Način označevanja problemov terminiranja ...............................................................4 2.2 Analitične metode.......................................................................................................5

2.2.1 Razvejaj in omeji ................................................................................................5 2.2.2 Dinamično programiranje...................................................................................5 2.2.3 Linearno programiranje ......................................................................................6 2.2.4 Celoštevilčno programiranje ..............................................................................6

2.3 Hevristične metode .....................................................................................................6 2.3.1 Prednostna pravila ..............................................................................................7 2.3.2 Prestavljanje ozkega grla ....................................................................................9 2.3.3 Kolonija mravelj .................................................................................................9 2.3.4 Lokalno iskanje ................................................................................................10 2.3.5 Simulirano ohlajanje.........................................................................................10 2.3.6 Tabu iskanje......................................................................................................10 2.3.7 Genetski algoritmi ............................................................................................11 2.3.8 Hibridne metode ...............................................................................................11

3 Evolucijsko računanje................................................................................ 12 3.1 Metode evolucijskega računanja ..............................................................................13 3.2 Genetski algoritmi ....................................................................................................14

3.2.1 Kodiranje organizmov ......................................................................................15 3.2.2 Selekcija ...........................................................................................................16 3.2.3 Križanje ............................................................................................................18 3.2.4 Mutacija ............................................................................................................19

3.3 Genetsko programiranje ...........................................................................................20 3.3.1 Priprava.............................................................................................................22 3.3.2 Začetna struktura ..............................................................................................22 3.3.3 Ovrednotenje populacije...................................................................................23 3.3.4 Genetske operacije............................................................................................23 3.3.5 Evolucija populacij ...........................................................................................24

3.4 Evolucijske strategije................................................................................................25 3.5 Evolucijsko programiranje .......................................................................................25 3.6 Uporaba evolucijskega računanja.............................................................................26

4 Terminiranje delovnih nalogov z genetskimi algoritmi.......................... 28 4.1 Kodiranje organizmov pri terminiranju....................................................................29

4.1.1 Kodiranje na osnovi operacij............................................................................30 4.1.2 Kodiranje s prednostnim seznamom ................................................................31

4.2 Ovrednotenje organizmov ........................................................................................33 4.3 Genetske operacije....................................................................................................35 4.4 Evolucijski parametri................................................................................................37 4.5 Rezultati....................................................................................................................38

4.5.1 Primer 1 ............................................................................................................39 4.5.2 Primer 2 ............................................................................................................40 4.5.3 Primer 3 ............................................................................................................41

5 Sklep............................................................................................................. 43 6 Dodatek........................................................................................................ 44 7 Literatura in pripomočki........................................................................... 46

Page 9: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

-VII-

Kazalo slik Slika 1.1 Gantogram za 5 nalogov 4

Slika 3.2 Cikel evolucijskega algoritma 13

Slika 3.2 Organizmi v binarnem kodiranju 15

Slika 3.3 Kodirni prostor in prostor rešitev 16

Slika 3.4 Proces selekcije 17

Slika 3.5 Enomestno križanje 18

Slika 3.6 Dvomestno križanje 19

Slika 3.7 Mutacija tretjega in šestega gena organizma 20

Slika 3.8 Funkcija v obliki drevesne strukture 21

Slika 3.9 Operacija križanja 24

Slika 4.1 Določevanje vrstnega reda strojev 30

Slika 4.2 Seznam strojev 31

Slika 4.3 Prikaz nalogov na gantogramu 31

Slika 4.4 Gantogram za naključno izdelan organizem 34

Slika 4.5 Križanje organizmov 35

Slika 4.6 Prilagojenost najboljše civilizacije 42

Kazalo tabel Tabela 4.1 Primer treh nalogov in treh strojev 30

Tabela 4.2 Uspešnost algoritmov 39

Tabela 4.3 Problem 7 x 7 39

Tabela 4.4 Problem 10 x 10 40

Tabela 4.5 Problem 20 x 5 41

Page 10: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-1-

1 Uvod Proizvodni procesi so sestavljeni iz velikega števila delovnih operacij, ki si sledijo v

različnem zaporedju in se izvajajo na velikem številu različnih delovnih mest, katerih

zmogljivosti pogosto niso usklajene. Tipični proizvodni obrat sestavljajo skupine strojev,

razmeščenih po tehnološki podobnosti. Pri tem načinu se vedno pojavlja neusklajenost med

tehnološkimi in transportnimi tokovi ter zmogljivostmi posameznih tehnologij. Bolj kot so

kapacitete strojev izkoriščene, težje je izdelati dober načrt zasedenosti strojev oziroma

optimirati vrstni red naročil.

Terminiranje zajema razvrščanje (n) delovnih nalogov na (m) obdelovalnih strojih. Vsak

nalog je sestavljen iz (m) operacij, ki se morajo izvršiti na posameznih strojih. Dostikrat je cilj

terminiranja zmanjšanje skupnega časa (Cmax), ki je potreben za procesiranje vseh nalogov.

Razvrščanje delovnih nalogov oziroma terminiranje (razen nekaterih enostavnih primerov)

spada v razred NP (nedeterminističen polinomski čas) problemov, kar pomeni, da je časovna

zahtevnost algoritma funkcija dolžine vhodnih podatkov in raste eksponentno, hitreje kot vsak

polinom. Dejstvo je, da število različnih terminskih planov (razvrstitev nalogov) eksponentno

narašča z večanjem števila razporejenih nalogov (n) in njihovih operacij (m): (n!)m.

Da je terminiranje delovnih nalogov zelo trd oreh, potrdi naslednje dejstvo. Leta 1964

sta Fisher in Thompson [9] predložila znameniti problem terminiranja, ki je bil sestavljen iz

desetih strojev in desetih nalogov. Ta primer je ostal nerešen za več kot četrt stoletja, do danes

pa ni bil optimalno rešen noben primer z dvajsetimi stroji in dvajsetimi nalogi [13] .

V zadnjih treh desetletjih je terminiranje delovnih nalogov vzbudilo veliko zanimanja

med raziskovalci. Predlaganih je bilo veliko algoritmov za reševanje tega problema.

Optimizacijski algoritmi, ki temeljijo na metodi Razvejaj in omeji (ang. Branch-and-Bound),

so uspešni samo pri reševanju manjših primerov. Niso pa sposobni podati optimalnih rešitev v

sprejemljivem času za primere z več kot 250–imi operacijami. Na drugi strani pa so

aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija

mravelj, simulirano ohlajanje ali tabu iskanje zelo privlačne alternative za reševanje

obsežnejših primerov.

Problem terminiranja pa lahko rešujemo tudi z metodami evolucijskega računanja, npr. z

genetskimi algoritmi. Pod pojmom evolucija razumemo proces, pri katerem postajajo

organizmi (sistemi) čedalje bolj prilagojeni na okolje, v katerem bivajo. Ta proces so

znanstveniki začeli s pridom izkoriščati tudi v tehniških in drugih sistemih. Do sredine

Page 11: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-2-

sedemdesetih let so se namreč za proučevanje in načrtovanje sistemov uporabljale predvsem

deterministične metode, katerih glavna slabost je v tem, da dajo pri enakih vhodnih podatkih

vedno tudi enake rezultate. To pomeni, da so koraki, ki vodijo do rešitve, natančno določeni.

Pri evolucijskih metodah pa pot do rešitve ni določena, kajti sistem si jo more najti sam. Pri

tej metodi nastaja cel kup možnih rešitev, evolucija pa poskrbi, da pridejo naprej samo

najboljše.

Koncept genetskih algoritmov (GA) je abstrakcija prenosa informacij oz. podatkov v

naravnih organizmih. V naravi se informacije o organizmu skrivajo v njegovih kromosomih.

Da organizem lahko preživi v svojem okolju, mora imeti boljše lastnosti kot tekmovalni

organizmi, kar pomeni, da preživijo samo najboljši. Ti organizmi imajo nato možnost, da svoj

genetski material posredujejo na potomce. Potomci torej vsebujejo neko poljubno genetsko

kombinacijo, ki so jo podedovali od svojih staršev. Ta proces preživetja in reprodukcije pa je

uporaben za reševanje zahtevnih kombinatoričnih problemov kot je terminiranje. Poleg

genetskih algoritmov pa poznamo še druge metode evolucijskega računanja. Najbolj poznane

so še genetsko programiranje, evolucijske strategije ter evolucijsko programiranje.

Pred kratkim pa je večina študij pokazala, da je možno dobre rezultate dobiti s

kombinacijo več metod. Dosti dela je bilo vloženega za izdelavo hibridnih metod, ki

kombinirajo zgoraj naštete algoritme. S pomočjo hibridnih metod je tako možno priti do

boljših rešitev v sprejemljivem času.

Ena zelo uspešnih metod za terminiranje je hibridna metoda na podlagi tabu iskanja in

simuliranega ohlajanja [13]. Prednost tabu iskanja je v uporabi spominske funkcije, ki

prepreči, da bi se reševanje končalo v lokalnem optimumu. Vendar je končna rešitev odvisna

tudi od začetne rešitve. Če to metodo kombiniramo z metodo, ki je analogna fizikalnemu

ohlajanju in ni odvisna od začetne rešitve, dobimo efektiven algoritem za terminiranje.

V drugem poglavju diplomske naloge je podrobneje predstavljen problem terminiranja

in metode za reševanje tega problema. V tretjem poglavju je opisano evolucijsko računanje in

najpogostejše evolucijske metode. Četrto poglavje pa prikazuje uporabo genetskih algoritmov

za terminiranje delovnih nalogov. Glede na to temo je bil razvit tudi lasten algoritem in

program, s katerim je možno razvrščati delovne naloge. Učinkovitost tega algoritma je bila

testirana na treh praktičnih primerih.

Page 12: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-3-

2 Terminiranje proizvodnih procesov Trg postaja čedalje bolj zahteven, saj ga oblikujejo včasih zelo zahtevne želje kupcev, in

močna konkurenca. Vedno več je takih podjetij, ki proizvajajo pretežno po naročilu za vnaprej

poznanega kupca. O uspehu podjetja tako vse bolj odloča čas, kar je še posebej opazno v

proizvodnji po naročilu. V takšni proizvodnji so procesi sestavljeni iz velikega števila

delovnih operacij, ki si sledijo v različnem zaporedju. Operacije potekajo na različnih

delovnih mestih, katera pa velikokrat nimajo usklajenih zmogljivosti. Stroji, ki sestavljajo

tipični proizvodni obrat so razmeščeni po tehnološki podobnosti. Le z dobro organizacijo

transportnih in tehnoloških tokov lahko dosežemo ustrezno konkurenčnost.

Zaradi neusklajenosti se pogosto pred posameznimi delovnimi mesti oblikujejo čakalne

vrste operacij na delovnih nalogih, ki čakajo, da se delovno mesto sprosti. Na razporejanje

nalogov na stroje ima bistveni vpliv njihova prioriteta (prednost). Poznamo dve vrsti prioritet,

notranjo in zunanjo. Notranja prioriteta se določa med samim procesom terminiranja, zunanjo

pa podaja naročnik oz. izhaja iz časovnega načrta izdelave. Pri terminiranju pa ločimo dva

pristopa: terminiranje naprej in terminiranje nazaj. Pri terminiranju naprej je cilj, da se vsak

nalog zaključi v najmanjšem možnem času. Takšno terminiranje enakomerno zaseda

zmogljivosti, a povzroča vmesne zaloge obdelovancev. Pri terminiranju nazaj mora vsak

delovni nalog imeti predpisan rok dokončanja. Pri tem načinu terminiranja so zmogljivosti

manj ugodno zasedene, vendar pa so vmesne zaloge manjše. Pogosto uporabljamo kar oba

pristopa skupaj. Tako je namreč možno izračunati katere operacije so terminsko kritične in

potrebujejo poseben nadzor.

Glavni problem pri vodenju proizvodnje predstavlja načrtovanje zasedenosti kapacitet.

Potrebno je točno določiti katero naročilo se bo na določenem delovnem mestu obdelovalo.

Več kot je naročil in bolj kot so kapacitete zasedene, težje je izdelati dober terminski načrt.

Ročno vodenje proizvodnje pri kompleksnejših primerih ne more garantirati optimalnih

rešitev terminiranja. V ta namen znanstveniki že dolga leta proučujejo avtomatske sisteme, ki

so sposobni voditi proizvodnjo. Razvitih je bilo že več metod, katere delimo na analitične in

hevristične.

Za načrtovanje projektov in prikaz rezultatov pogosto uporabljamo Ganttove diagrame

ali gantograme. Pri gantogramu abscisa predstavlja čas, na ordinati pa so vnesene posamezne

operacije. Slika 2.1 prikazuje enostaven gantogram za 5 nalogov. Vendar imajo ti diagrami

Page 13: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-4-

eno pomanjkljivost. So zelo enostavni in praktični pri manjših projektih, toda pri večjih so

slabo pregledni. Zato uporabljamo pri primerih z večjim številom operacij tehnike mrežnega

načrtovanja kot so metoda CPM (ang. Critical Path Method) ali metoda PERT (ang Program

Evaluation and Review Technique). Osnovni elementi obeh metod obsegajo definicijo

projekta, aktivnosti in njihovo trajanje ter medsebojne odvisnosti, izračun začetkov in koncev

izvajanja aktivnosti ter določitev kritične poti.

E2

A3

C2stroj II

stroj III

B3

B1

stroj I

B1 C3

E5

C5

A2

A7

D4

D5E3

D1

Slika 2.1 Gantogram za 5 nalogov

2.1 Način označevanja problemov terminiranja Vsak problem terminiranja je možno opisati s tremi parametri [13]: α | β | γ. V prvem polju, to

je polje α se opisujejo stroji. To polje vsebuje samo en zapis. Naslednje polje je polje β, ki

podaja podrobnosti o lastnostih procesov in omejitvah. To polje lahko vsebuje enega ali več

zapisov, lahko pa je tudi prazno. V polju γ je zapisan cilj optimizacije (funkcija, katero

optimiramo) in ponavadi vsebuje en zapis.

Možni zapisi v polju α (uporabljene so tuje, originalne oz. uveljavljene oznake iz literature):

1 – en stroj,

Pm – m enakih vzporednih strojev,

Qm – m različnih vzporednih strojev,

Fm – m linijsko postavljenih strojev,

Jm – m različnih strojev (vsak nalog ima svoje zaporedje operacij) itd.

Page 14: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-5-

Nekaj možnih zapisov v polju β:

rj – čas prihoda naloga (sprostitev, lansiranje),

sjk – od zaporedja nalogov odvisni pripravljalno-zaključni časi,

prec – omejitev glede predhodno izvedenih operacij (strogo zaporedje),

prmu – omejitev glede enakega vrstnega reda nalogov po strojih (ni prehitevanja),

block – blokade v sistemu (npr. zaradi polnih zalogovnikov),

brkdwn – izpadi (nedelovanje) strojev itd.

Nekaj možnih zapisov v polju γ:

Cmax – skupni časi realizacije vseh nalogov,

Lmax – maksimalno odstopanje roka dobave,

∑Uj – skupno število zakasnelih nalogov,

∑wjTj – skupna utežena kasnitev nalogov itd.

2.2 Analitične metode Z uporabo analitičnih metod vedno pridemo do optimalnega rezultata, vendar so praktično

uporabne na samo nekaterih enostavnih primerih (idealizirani pogoji z majhnim številom

delovnih nalogov in delovnih mest). Pri NP – težkih problemih pa analitične metode niso

uporabne, saj zahtevajo preveč časa za reševanje.

2.2.1 Razvejaj in omeji Metoda Razvejaj in omeji (ang. Branch-and-Bound) je verjetno ena najbolj poznanih in

uporabljenih analitičnih metod. Ta metoda se izvaja nad drevesom potencialnih rešitev z

algoritmom razvejanja in omejevanja. Razvejanje se nanaša na delitev prostora rešitev, kjer se

vsak del tega prostora obravnava ločeno. Omejevanje pa pomeni, da če se v določenem

prostoru najde rešitev, ki je slabša od rešitve v nekem drugem prostoru, se slabša rešitev ne

upošteva več.

2.2.2 Dinamično programiranje Ta metoda poskuša s pristopom razdeli in osvoji zmanjšati količino podatkov za potrebno

preračunavanje. Ukvarja se z iskanjem optimalnih rešitev za podprobleme, dokler ne najde

Page 15: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-6-

rešitev za osnovni problem. Pri vsaki iteraciji določi optimalno rešitev za določen

podproblem, ki je večji kot vsi prejšnji rešeni podproblemi. Rešitev podproblema najde z

uporabo informacij o rešitvah vseh prejšnjih podproblemov.

2.2.3 Linearno programiranje Linearno programiranje obravnava probleme vezanih ekstremov, pri katerih je namenska

(ciljna) funkcija linearna, diskretne spremenljivke pa zadoščajo pogojem nenegativnosti in

linearnim enačbam in neenačbam. Postopek reševanja se začne z neko možno bazno rešitvijo,

ki jo postopoma izboljšujemo.

2.2.4 Celoštevilčno programiranje Pri takšnem načinu reševanja morajo biti spremenljivke cela pozitivna števila. Tovrstni

problemi se prevedejo na probleme linearnega in nelinearnega programiranja.

Največjo težavo nam pri reševanju kombinatoričnih problemov predstavlja kombinatorična

eksplozija, kar pomeni ogromen prostor potencialnih rešitev. Ker je število možnih rešitev pri

terminiranju ogromno in je nesmiselno preverjati vsako rešitev posebej, je smotrna uporaba

hevrističnih metod, ki v kratkem času poiščejo zadovoljive rešitve.

2.3 Hevristične metode Hevristične metode lahko delimo na dva tipa:

• konstruktivne metode in

• adaptivne metode.

Konstruktivne metode iščejo optimalno rešitev iz nič. Rešitev se pridobi s postopnim

dodajanjem komponent v trenutno delno rešitev z uporabo določenih pravil oziroma postopka.

Pri adaptivnih metodah, imenovanih tudi metode lokalnega iskanja, pa se optimalna rešitev

išče s spreminjanjem predhodnih rešitev. To pomeni, da z adaptivnimi metodami iščemo

"sosede", ki bi lahko imeli boljšo rešitev.

Page 16: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-7-

2.3.1 Prednostna pravila To so najbolj razširjen postopek terminiranja med hevrističnimi metodami in so

konstruktivnega tipa. S prednostnimi pravili priredimo vsem nalogom, ki se nahajajo v

čakalni vrsti pred določenim delovnim mestom, skalarno vrednost. Glede na vrednosti se nato

nalogi postavijo v vrsto, nalogi z višjo prioriteto se začnejo obdelovati prej kot tisti z manjšo.

Prednostna pravila so lahko statična ali dinamična. Pri statičnih pravilih se vrstni red izvajanja

nalogov določi pred procesiranjem operacij in se med izvajanjem ne spreminja. Pri

dinamičnem postopku pa nalogi prihajajo v proizvodnjo med obdelavo drugih nalogov.

Prioriteta se nalogom dodeljuje časovno odvisno, v odvisnosti od izvajanja naročil. Med

prednostnimi pravili so najbolj razširjena naslednja tri pravila:

• EDD (ang. Earlies Due Date)

Pri tem pravilu ima prednost naročilo z najzgodnejšim dobavnim rokom, torej

skrajšuje kasnitev dobavnih rokov. Slabost tega pravila pa je, da lahko v

proizvodnji pride do dolgih čakalnih časov, visokih zalog in nedokončanih

nalogov.

• SPT (ang. Shortest Processing Time)

Pri uporabi tega pravila dobi najvišjo prioriteto nalog, ki ima najmanjši skupni

čas vseh operacij. Primerno je za proizvodnjo, kjer dobavni roki ne

predstavljajo pomembnega dejavnika. To pa zato, ker lahko pride pri uporabi

tega pravila do velikih zamud pri obsežnejših nalogih. Za pravilo SPT so

značilni kratki pretočni časi in majhne zaloge nedokončane proizvodnje ter

povečana zasedenost kapacitet.

• FCFS (ang. First Come, First Served)

Tisti nalog, ki je najdlje v čakalni vrsti za aktualno operacijo ima prednost. To

pravilo daje dobre rezultate samo če imamo opravka s kratkimi čakalnimi

vrstami. Ker ne upošteva nobenih pomembnih podatkov kot so skupni časi

operacij, dobavni roki, ipd. lahko naročila z dolgim trajanjem operacij

zadržujejo ostala naročila. Pravilo se največkrat uporablja tam, kjer je kupec

neposredno vključen v dogajanje, kajti zanj velja pregovor: "Prvi pride, prvi

melje."

Page 17: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-8-

Poleg zgornjih treh pravil pa poznamo še veliko drugih. Spodaj so našteta samo nekatera najbolj pogosto uporabljena pravila:

• LPT (ang. Longest Procesing Time) Najvišjo prioriteto ima naročilo z največjim skupnim časom vseh operacij.

• SMOT (ang. Shortest Medium Operation Time)

Najvišjo prioriteto ima naročilo z najkrajšim povprečnim trajanjem operacij.

• LMOT (ang. Longest Medium Operation Time) Najvišjo prioriteto ima naročilo z najdaljšim povprečnim trajanjem operacij.

• SO (ang. Shortest Operation)

Najvišjo prioriteto ima naročilo z najkrajšim skupnim časom aktualne operacije.

• LO (ang. Longest Operation) Najvišjo prioriteto ima naročilo z najdaljšim skupnim časom aktualne operacije.

• SDT (ang. Smallest Divided Time)

Najvišjo prioriteto ima naročilo, pri katerem predstavlja aktualna operacija časovno najmanjši delež.

• LDT (ang. Largest Divided TIme)

Najvišjo prioriteto ima naročilo, pri katerem predstavlja aktualna operacija časovno največji delež.

• SRPT (ang. Shortest Remaining Processing Time)

Najvišjo prioriteto ima naročilo z najmanjšim skupnim časom preostalih operacij.

• LSS (ang. Least Static Slack)

Najvišjo prioriteto ima naročilo z najmanjšo časovno rezervo. Pri tem se upoštevajo dobavni rok, čas prihoda naročila in skupni čas vseh operacij.

• LS/RO (ang. Least Slack over Remaining Operations)

Najvišjo prioriteto ima naročilo z najmanjšo časovno rezervo glede na preostale operacije.

• SCR (ang. Smallest Critical Ratio)

Najvišjo prioriteto ima naročilo z najmanjšim razmerjem med preostalim časom do dobavnega roka in predvidenim časom za realizacijo preostalih operacij.

• RND (ang. RaNDom)

Najvišjo prioriteto ima naključno izbrano naročilo.

Page 18: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-9-

• HPC/U (ang. Highest Penalty Cost per Unit) Najvišjo prioriteto ima naročilo z najvišjimi stroški penalov na enoto izdelka.

• FRO (ang. Fewest Remaining Operations)

Najvišjo prioriteto ima naročilo z najmanjšim številom preostalih operacij.

• MRO (ang. Most Remaining Operations) Najvišjo prioriteto ima naročilo z največjim številom ostalih operacij.

• LSRO (ang. Largest Share of Remaining Operations)

Najvišjo prioriteto ima naročilo z največjim deležem preostalih operacij. Zgoraj našteta prednostna pravila se uporabljajo takrat, kadar je potrebno izdelati terminski

načrt za določen kriterij. V realnosti je takih primerov bolj malo. Ponavadi je potrebno

delovne naloge razporediti glede na več zahtev. Da bi se lahko ta pogoj čim bolje izpolnil, se

terminski načrt izdela s kombiniranjem zgoraj naštetih prednostnih pravil. Tako je možno

izdelati terminski načrt, ki bo izpolnjeval več pogojev hkrati.

2.3.2 Prestavljanje ozkega grla Ta hevristična metoda je ena izmed najbolj uspešnih metod za terminiranje in se je že dobro

uveljavila v praksi. Pri tej metodi se terminiranje izvaja za vsak stroj posebej. Ker nalogi med

seboj "tekmujejo" za razpoložljive vire (stroje), se med procesiranjem vedno pojavi eno ali

več ozkih grl, ki zavirajo procese na drugih strojih. Ta metoda poskuša s pravilnim

razvrščanjem delovnih nalogov čimbolj zmanjšati učinek ozkega grla. Postopek poteka tako,

da se pri vsaki iteraciji na podlagi največjih zakasnitev nalogov določi stroj, ki predstavlja

ozko grlo. Za ta stroj se nato določi trenutni optimalni vrstni red izvajanja operacij. Ker ta

sprememba vpliva tudi na druge stroje, je potrebno v skladu z zahtevami in omejitvami

prirediti vrstni red tudi na teh. Iteracija se ponavlja dokler končnega rezultata ni možno več

izboljšati.

2.3.3 Kolonija mravelj Optimizacijske metode, ki temeljijo na koloniji mravelj, oponašajo vedenje mravelj, ki iščejo

najkrajšo pot med svojim mravljiščem in izvorom hrane. Za orientacijo oz. označevanje poti

uporabljajo feromone, ki sčasoma zgubljajo na jakosti. Ko mravlja najde izvor hrane, se vrne

bolj ali manj direktno v mravljišče. Feromoni, ki jih pri tem pušča za sabo, privabijo bližnje

mravlje, ki bolj ali manj natančno sledijo poti prve mravlje. Če od hrane do mravljišča vodi

Page 19: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-10-

več poti, bo največkrat uporabljena najkrajša pot, saj je za to pot potrebno najmanj časa. Ta

pot se bo s časom čedalje bolj utrjevala s feromoni, medtem ko bodo daljše poti počasi

izginjale.

Ta princip iskanja optimuma je možno uporabiti tudi pri terminiranju delovnih nalogov.

Dobra lastnost te metode je izvrstna prilagodljivost na nova okolja.

2.3.4 Lokalno iskanje Te metode poskušajo najti boljšo rešitev od poznane s preiskovanjem "sosednjih rešitev". Dve

rešitvi sta sosednji, če eno dobimo z določeno modifikacijo druge. Pri vsaki iteraciji se s

postopkom lokalnega iskanja preiskuje soseska in ovrednotijo različne potencialne rešitve.

Glede na določene kriterije se nato potencialna rešitev sprejme ali zavrne. Če je določena

sosedna rešitev sprejeta, se iteracija lokalnega iskanja ponovi za to sprejeto rešitev. Postopek

se nato ponavlja toliko časa, dokler ni izpolnjeno zaustavitveno pravilo.

2.3.5 Simulirano ohlajanje Simulirano ohlajenje je metoda lokalnega iskanja, ki se zgleduje po fizikalnem principu

ohlajanja snovi. Pri ohlajanju taline molekule z višjo temperaturo lažje preidejo v druga

stanja. Hladnejša ko postaja talina, težji postajajo ti prehodi in čedalje manjšemu številu

molekul ta prehod uspe. Ta princip je uporabljen tudi pri iskanju optimalnih rešitev pri

terminiranju. Na začetku iskanja se torej dovolijo tudi prehodi na slabše rešitve, vendar pa

slabše rešitve tekom iteracije dobivajo čedalje manj možnosti da bodo izbrane. To lahko

prepreči, da bi se iskanje končalo v lokalnem optimumu. Iskanje se konča, ko je izpolnjen

zaustavitveni kriterij. To pa je lahko maksimalno število iteracij, ali pa dejstvo, da se rešitev

po določenem številu iteracij ni izboljšala. Uspešnost te metode je odvisna od izbire sosednjih

rešitev in od premikanja iskanja skozi to sosesko. Če je iskanje usmerjeno tako, da se odmika

stran od lokalnega optimuma, potem bo postopek dosegel dober rezultat. Iskanje se lahko

izvaja naključno, ali pa organizirano.

2.3.6 Tabu iskanje Tabu iskanje je metoda lokalnega iskanja, ki je podobna simuliranemu ohlajanju. Tudi pri tej

metodi so dovoljeni preskoki na slabše rešitve. Za vsak izbran terminski načrt se tudi pri tej

Page 20: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-11-

metodi poiščejo sosednje rešitve. Kako sosednjo rešitev poiskati in katero izbrati, to

predstavlja pri vseh metodah lokalnega iskanja glavni problem. Pri simuliranem ohlajanju se

sosednje rešitve iščejo naključno ali organizirano. Pri tabu iskanju pa je iskanje

deterministične narave. Proces iskanja je namreč vezan na t.i. tabu seznam. Ta seznam

vsebuje mutacije, ki jih postopek pri iskanju sosednjih rešitev ne sme uporabiti. Seznam

vsebuje določeno število mutacij, ki se tekom iskanja menjujejo. Pri vsaki iteraciji (preskok

na novo rešitev) se uporabljena mutacija doda na vrh seznama, zadnja pa se izbriše. S takšnim

načinom reševanja se prepreči vračanje rešitev v lokalni optimum, vendar pa je končna rešitev

močno odvisna od naključno izdelave rešitve, ki je bila uporabljena na samem začetku

iskanja.

2.3.7 Genetski algoritmi Reševanje problemov z genetskimi algoritmi spominja na biološko evolucijo. Pri tej metodi je

potrebno na začetku generirati naključno populacijo terminskih načrtov, katere se nato

spreminja iz generacije v generacijo. Spremembe se izvajajo z genetskimi operacijami kot so

selekcija, mutacija in križanje. Pri teh operacijah lahko sodelujejo samo najboljše rešitve v

posamezni generaciji. S tem je doseženo prehajanje na čedalje boljše rešitve.

2.3.8 Hibridne metode To so metode, ki združujejo dve ali več posameznih metod. S tem je doseženo združevanje

dobrih lastnosti posameznih metod in doseganje še boljših rezultatov. Poznane kombinacije

so: genetski algoritmi in lokalno iskanje, genetski algoritmi in tabu iskanje, itd. Za posebno

dobro kombinacijo se je izkazala kombinacija metode simuliranega ohlajanja in tabu iskanja.

Pri simuliranem ohlajanju rešitev ni odvisna od začetne rešitve, tabu iskanje pa prepreči, da bi

se iskanje končalo v lokalnem optimumu. Poznane so tudi druge kombinacije in še veliko jih

je v fazi razvijanja.

Page 21: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-12-

3 Evolucijsko računanje Evolucija predstavlja razvoj živih bitji od najpreprostejših organizmov ter vse do

kompleksnejših oblik, kot je npr. človek. V teoriji imajo vsa živa bitja istega prednika,

evolucija pa je poskrbela, da se je iz tega skupnega prednika skozi milijarde let razvilo mnogo

povsem različnih vrst organizmov. Še v 19. stoletju je prevladovalo mnenje, da je za nastanek

vseh živih vrst odgovoren Bog. Eden od prvih znanstvenikov, ki je začel širiti teorijo o

evoluciji je bil Carel Linné, ki je leta 1735 postavil temelje moderne taksonomije. Njegovo

klasifikacijo rastlin in živali se v veliki meri uporablja še danes. Pravi pionir na področju

evolucije je nedvoumno francoski znanstvenik Charles Darwin. Darwinova teorija kot

merodajne dejavnike za evolucijo postavlja križanje in mutacijo. V svoji knjigi je leta 1859

opisal evolucijo kot borbo živih bitij za obstoj v svojem okolju. Posamezniki v določeni

populaciji imajo različne lastnosti v boju za preživetje in razmnoževanje. Naravna selekcija pa

omogoča, da svoje karakteristike na potomce prenesejo samo najbolj prilagojeni posamezniki.

Število sposobnejših organizmov se tako iz generacije v generacijo veča, medtem ko slabši

počasi izumirajo. Vendar je imel Darwin težave pri razlagi mehanizma prenašanja lastnosti na

potomce. Pri tem je bil uspešen avstrijski menih Gregor Mendel, ki je eksperimentiral z vzrejo

vrtnega graha in pri tem opazoval prenos karakteristik na naslednje generacije. Mendel je

ugotovil, da se karakteristike delijo na prevladujoče (dominantne) in prikrite (recesivne), ter

kako se te karakteristike kombinirajo.

Vsi zgoraj našteti znanstveniki, še posebej Charles Darwin, so imeli velik vpliv na

bodoče biološke raziskave. Znanstvenikom je uspelo na podlagi njihovih dejstev razvozlati

zapletene kemijske procese v celicah, strukturo genov in prenos karakteristik iz generacije v

generacijo. Leta 1953 je znanstvenikom uspelo razvozlati obliko molekule DNK, leta 2000 pa

že celotno genetsko strukturo človeka.

Bistvo evolucije je prenašanje lastnosti oz. karakteristik organizma v naslednjo

generacijo. Te lastnosti so odvisne od biokemijskih insktrukcij, ki jim pravimo geni. Gen

predstavlja delček DNK molekule in sodeluje pri izdelavi beljakovin, ki je osnova življenja.

Beljakovine so osnovna struktura celic in krmilijo kemijske procese v celicah. Poleg tega

opravljajo še številne naloge, ki so izvirnega pomena za življenje: sprejemajo hranilne snovi,

ki jih nato spremenijo v beljakovine, pretvarjajo energijo, oddajajo toploto, itd. Človeško telo

je zgrajeno iz približno 200 različnih vrst celic. Čeprav se celice med seboj razlikujejo, so si v

Page 22: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-13-

marsičem podobne. Skupno jim je, da vsaka celica deluje po svojem delovnem načrtu, ki je

usklajen z drugimi celicami. Kot že omenjeno, je glavna naloga celic izdelava beljakovin. Za

vsako beljakovino ima celica recept, po katerem jo izdela. Ta recept pa se imenuje gen in je

osnovna struktura tudi v genetskih algoritmih.

3.1 Metode evolucijskega računanja Pri evolucijskem računanju se uporabljajo mehanizmi kot pri biološki evoluciji: mutacija,

selekcija, križanje, reprodukcija,… Ker smo pri reševanju problemov s pomočjo evolucijskih

metod zvesti tem mehanizmom, ni nobene garancije, da vsaka evolucija pripelje do

zadovoljivega izida. Reševanje problema pričnemo z naključno ustvarjeno populacijo rešitev

(organizmi). Vsak organizem predstavlja bolj ali manj natančno rešitev problema. Organizme

celotne populacije ovrednotimo in tistim, ki so bližje rešitvi, damo možnost, da sodelujejo pri

genetskih operacijah. Boljše organizme torej s selekcijo izločimo od slabših in jih nato

spreminjamo (mutacija, križanje,…). Dobimo potomce, ki so lahko boljši ali pa tudi slabši kot

njihovi predniki. Ti potomci nato tvorijo novo generacijo, ki jo spet ovrednotimo. Ta

postopek se ponavlja toliko časa, dokler ni izpolnjeno ustavitveno merilo. To je lahko

največje predpisano število generacij, ali pa dovolj kakovostna rešitev problema. Cikel

evolucijskega algoritma prikazuje slika 3.1.

Evolucijski algoritem

t: = 0

ustvari začetno naključno populacijo organizmov P(t)

ovrednoti P(t)

ponavljaj

spreminjaj P(t) → P(t + 1)

ovrednoti P(t + 1)

t: = t + 1

dokler ni izpolnjeno ustavitveno merilo

Slika 3.1 Cikel evolucijskega algoritma – prirejeno po viru [8]

Page 23: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-14-

Obstaja več različnih metod evolucijskega računanja, najbolj znane pa so naslednje štiri:

• genetski algoritmi

• genetsko programiranje

• evolucijske strategije

• evolucijsko programiranje Naštete metode se razlikujejo predvsem po vrsti struktur, ki so podvržene adaptaciji, in po načinu tvorjenja rešitev.

3.2 Genetski algoritmi Genetski algoritmi so tehnike za iskanje natančne ali približne rešitve danega problema in se

velikokrat uporabljajo tudi za optimizacijo. Pri genetskih algoritmih so rešitve (organizmi)

predstavljene na zelo enostaven način. Ponavadi je to niz v binarnem sistemu (slika 3.2),

možna pa so tudi druga kodiranja. Organizmi so torej sestavljeni iz posameznih genov (0 ali 1

v binarnem sistemu) in imajo neko določeno vrednost, ki ji pravimo fenotip.

Reševanje problema začnemo z ustvaritvijo naključne populacije organizmov. Velikost

populacije in kompleksnost organizmov je seveda odvisna od zadanega problema. Za

ovrednotenje posameznih organizmov potrebujemo fitnes funkcijo, s katero lahko določimo

kako kvalitetno rešitev ponuja posamezni organizem. S to funkcijo iz populacije pobiramo

boljše organizme in jim damo možnost, da sodelujejo pri genetskih operacijah. Slabši

organizmi tako počasi odmirajo iz populacije. Sposobnejši organizmi na ta način prenašajo

svoj genski material v naslednje generacije s pomočjo križanja, selekcije in mutacije.

Postopek ovrednotenja in spreminjanja izvajamo po sliki 3.1 toliko časa, dokler ne

dobimo zadovoljivih rezultatov oz. so izpolnjeni zaustavitveni pogoji. Iz generacije v

generacijo tako dobivamo boljše organizme, lahko pa se zgodi tudi to, da rešitev zaide v

lokalni optimum. V tem primeru pač evoluciji podvržemo več civilizacij, ali poskušamo

izboljšati mehanizem iskanja rešitev.

Page 24: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-15-

7091FENOTIP

POPULACIJA

1ORGANIZEM 1 0 1

GEN

10 1 01 0 10 1 0

27

0 0 1 01 1 1

Slika 3.2 Organizmi v binarnem kodiranju

3.2.1 Kodiranje organizmov Kako zakodirati rešitev v organizem je ključnega pomena pri genetskih algoritmih. Ker je bilo

probleme iz inženirstva pogosto zelo težko kodirati v binarnem sistemu, so bile razvite še

ostale kodirne tehnike. Tako poznamo danes veliko kodirnih tehnik, ki temeljijo na realnih in

celih številih in tudi simbolih. Poglejmo si, kako bi lahko zakodirali besedo evolucija. Če

uporabimo kodo ASCII (American Standard Code for Information Interchange), kjer so črke

predstavljene s številkami od 97 do 122, bi kodiranje bilo takšno:

evolucija → [ 101 118 103 108 117 99 105 106 97 ]

Pred aplikacijo genetskih algoritmov je potrebno izvesti podrobno analizo, da zagotovimo

primerno kodiranje rešitev v organizme. Značilnost genetskih algoritmov je tudi, da

izmenično delujejo v kodirnem prostoru in prostoru rešitev. Genetske operacije izvajamo v

kodirnem prostoru, medtem ko ovrednotenje in selekcija potekata v prostoru rešitev. Pri

kodiranjih, ki niso binarna, pa lahko prehod med tema dvema prostoroma povzroča težave.

Pri binarnem kodiranju so organizmi relativno enostavni. Njihova celotna struktura je

namreč sestavljena iz samo dveh različnih simbolov. Kodiranje je ponavadi izvedeno tako, da

lahko te simbole v organizmu poljubno spreminjamo iz ene vrednosti v drugo, organizem pa

bo še vedno predstavljal možno rešitev problema.

Pri ostalih kodiranjih organizma ne moremo poljubno spreminjati, saj je oblika

organizma povezana z določenimi pravili. To pomeni, da moramo pri konstruiranju

organizma upoštevati določena pravila o obliki, vrstnem redu genov, dovoljenih vrednostih

posameznih genov, itd. Ta pravila so bolj ali manj neposredno povezana s problemom, ki ga

želimo rešiti z genetskimi algoritmi. Kaj se lahko zgodi če teh pravil ne upoštevamo prikazuje

slika 3.3.

Page 25: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-16-

kodirni prostor

uporaben organizem

neveljaven organizemneuporaben organizem prostor rešitev

možne rešitve

Slika 3.3 Kodirni prostor in prostor rešitev

V najslabšem primeru nepravilno spreminjanje organizma povzroči, da ta postane

neuporaben. To pomeni, da rešitev, ki jo predstavlja organizem ni povezana z reševanjem

obravnavanega problema, ali pa organizma sploh ni možno ovrednotiti.

Neveljavni organizmi sicer predstavljajo rešitev za obravnavan problem, ampak je

rešitev pridobljena brez upoštevanja internih zahtev, ki so podane za obravnavan problem. To

pomeni, da smo do rešitve prišli z "goljufanjem".

3.2.2 Selekcija Operacija reprodukcije ali selekcije je namenjena temu, da organizme, ki imajo boljšo

vrednost fenotipa, nespremenjene prenese v naslednjo generacijo. Poznamo različne tipe

selekcije: proporcionalno selekcijo, selekcijo z rangiranjem in turnirsko selekcijo. Na sliki 3.4

je prikazana selekcija pri kateri je izbran boljši organizem – tisti, ki ima večjo vrednost

fenotipa.

Page 26: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-17-

1

70

01

91

11 0

SELEKCIJA

FENOTIP

ORGANIZEM 1 0110

91

0111

1

100 1 0

Slika 3.4 Proces selekcije

Najpreprostejša je proporcionalna selekcija. Pri tej selekciji je uspešnost preživetja

organizmov sorazmerna z njihovo uspešnostjo. Tem večjo uspešnost ima organizem, večja je

njegova možnost preživetja. Za njeno implementacijo običajno izberemo pravilo rulete, kjer je

velikost polja rulete vsakega organizma sorazmerna z njegovo uspešnostjo. Slabost

proporcionalne selekcije je možnost prehitre konvergence k lokalnemu optimumu. To se

zgodi v primeru, ko imamo v populaciji zelo uspešen organizem, ki pa ne vodi do globalnega

optimuma.

Pri selekciji z rangiranjem se verjetnost preživetja organizma določi glede na njegov

rang. Populacijo uredimo po kriteriju uspešnosti. Organizme torej ne izbiramo glede na

njihovo uspešnost, ampak jih glede na to samo rangiramo. Obstaja več možnih selekcij, ki

temeljijo na rangiranju, npr. Bakerjeva selekcija, selekcija z linearnim in nelinearnim

rangiranjem, itd.

Pri turnirski selekciji se učinkovito izrablja princip rangiranja. Pri tej metodi selekcije se

naključno izbere nekaj organizmov iz populacije. Med vsemi izbranimi se samo najboljši

uvrsti v naslednjo generacijo. Ta postopek nato ponovimo tolikokrat, kolikor je potrebno.

Jasno pa je, da več organizmov kot jih izberemo za en turnir, večji bo selekcijski pritisk. To

pomeni, da v naslednjo generacijo pridejo samo najboljši organizmi, kar lahko vodi do

lokalnega optimuma.

Page 27: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-18-

3.2.3 Križanje Križanje je ena od genetskih operacij, ki omogoča križanje (rekombinacijo) genetskega

materiala v populaciji. V populacijo vnaša raznolikost in s tem pripomore do hitrejšega

iskanja rešitev. Križanje je lahko:

• enomestno,

• dvomestno,

• večmestno,

• uniformno.

Na sliki 3.5 je prikazan proces enomestnega križanja dveh organizmov. Starševska organizma

morata najprej biti uspešna pri ovrednotenju, da imata sploh možnost pri genetskih operacijah.

Starša ponavadi izberemo kar s pomočjo selekcijske funkcije. Pri obeh starševskih organizmih

je potrebno določiti naključno točko križanja, nato pa zamenjamo repa obeh staršev in dobimo

uporabna potomca.

1

potomec 2

potomec 1

1

10 0

10 0

KRIŽANJE

0 1 1

1 0 1

oče

1 0 1

točka križanja

1 0 1 1

11 0

11 0

0

1

točka križanjamati

1 0 0 0 1 1 0

Slika 3.5 Enomestno križanje

Page 28: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-19-

Pri dvomestnem križanju, ki je prikazano na sliki 3.6, pa je potrebno določiti dve križni mesti.

Dvomestno križanje je razširitev enomestnega, kjer si organizma izmenjata en odsek. Pri

večmestnem križanju pa je teh odsekov lahko tudi več. Pri uniformnem križanju pa se geni

lahko izmenjujejo ne glede na odseke, kar je včasih lahko prednost.

2. točka križanja

KRIŽANJE

01 0

potomec 2

1 10

potomec 1

0

1

oče

1 0

1. točka križanja

1 0

1

11

1110

101 0

10

1. točka križanja

0

mati

01

1 0 0

2. točka križanja

1 1 0

Slika 3.6 Dvomestno križanje

3.2.4 Mutacija Pri mutaciji gre za naključno spreminjanje genetskega materiala organizma. Obseg mutacije

na organizmu je lahko različen. Lahko mutiramo en ali več genov. Slika 3.7 prikazuje

mutacijo tretjega in šestega gena. Pod pojmom permutacija pa razumemo menjavo dveh ali

več genov med sabo znotraj enega organizma.

Page 29: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-20-

1

MUTACIJA

1 0

potomec

0 1 0 0

starševski organizem

01 011 11

Slika 3.7 Mutacija tretjega in šestega gena organizma

3.3 Genetsko programiranje Strokovnjaki se že vrsto let ukvarjajo z idejo o strojnem učenju in o izdelavi stroja, ki bi bil

sposoben samostojnega učenja. Že proti koncu petdesetih let se je umetna inteligenca razdelila

na dve veji:

• strojno učenje in

• ekspertni sistemi.

Prve ideje strojnega učenja, kjer računalnik programira samega sebe so se pojavile že leta

1959, ko je Friedberg naključno generiral programe in jih tudi mutiral. Genetsko

programiranje (GP) pa je vpeljal J.R. Koza in je zaenkrat najbolj pogosta metoda uporabe

evolucijskega računanja. Temelji na genetskih algoritmih, vendar pa tukaj vsak organizem

predstavlja računalniški program. Namen genetskega programiranja je optimizacija populacije

računalniških programov v skladu s fitnes funkcijo. Tako kot pri genetskih algoritmih, se tudi

pri genetskem programiranju ustvari naključna populacija organizmov – računalniških

programov. Tem programom se zaradi genetskih operacij spreminja tako oblika kot tudi

velikost. Tako dobivamo čedalje boljše programe v skladu z dano nalogo.

Posamezni programi so ponavadi predstavljeni v drevesni strukturi. Na sliki 3.8 je

primer funkcije v obliki abstraktnega sintaktičnega drevesa (S – izraz). Drevesne strukture so

Page 30: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-21-

sestavljene iz posameznih funkcij, ki se nahajajo v vozliščih, ter argumentov. Primeri funkcij

so lahko:

• aritmetične operacije (+ - * /),

• matematične funkcije (sin, cos, log, exp),

• logični operatorji (AND, NOT, OR),

• krmilni operatorji (IF – THEN – ELSE, DO – UNTIL, PROGN),

• relacijske funkcije (=, >, <),

• funkcije za rekurzijo,

• funkcije za iteracijo.

Tako strukturo je mogoče enostavno ovrednotiti in razvijati. Za namene genetskega

programiranja je torej smiselno uporabljati računalniške programe, ki delujejo na principu

drevesne strukture, kot npr. Lisp. Uporaba Lisp – a je smotrna iz naslednjih razlogov:

• programi in podatki so predstavljeni na enak način, z S – izrazom,

• abstraktno sintaktično drevo programa je enako S – izrazu,

• programe lahko ovrednotimo z vgrajeno funkcijo eval,

• avtomatsko čiščenje dinamičnih podatkovnih struktur.

Slika 3.8 Funkcija v obliki drevesne strukture Vir: http://en.wikipedia.org/wiki/File:Genetic_Program_Tree.png

Page 31: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-22-

3.3.1 Priprava Najprej je potrebno določiti nabor terminalov in primitivnih funkcij. Terminale izberemo

glede na vrsto zastavljenega problema, pri primitivnih funkcijah pa se odločimo za tiste od

katerih pričakujemo največji uspeh pri reševanju problema. Ta korak je odločilen pri

uspešnosti, saj nepravilna izbira vodi do slabih rezultatov.

Pri naključnem ustvarjanju računalniških programov pogosto pride do uporabe funkcij

nad nepravilnimi vrednostmi, ali pa pride do izidov, ki so ekstremni. Takšni primeri so

deljenje s številom 0, ekstremne vrednosti potenčnih in eksponentnih funkcij, koreni

negativnih števil, itd. Da preprečimo takšne nevšečnosti je smiselna uporaba zaščitnih funkcij.

V naslednjem koraku je potrebno določiti način za ovrednotenje populacije oz. izračunavanje

prilagojenosti. Nato je potrebno izbrati še velikost populacije ter največje število generacij.

Na koncu moramo podati še kriterije za zaustavitev evolucije. Tudi v tem primeru je to lahko

dovolj dobra rešitev, ali določeno število generacij.

3.3.2 Začetna struktura Tako kot pri genetskih algoritmih, je potrebno tudi pri genetskem programiranju ustvariti

začetno populacijo, ki jo sestavljajo naključni organizmi. V tem primeru so organizmi

računalniški programi, ki jih dobimo s sestavljanjem primitivnih funkcij in terminalov.

Ustvarjanje programov lahko izvedemo na več načinov in tako dobimo drevesne strukture

različnih oblik. Najbolj pogosto uporabljeni metodi sestavljanja sta:

• polna metoda in

• rastoča metoda.

Pri polni metodi imajo vsa drevesa točno določeno globino. To dosežemo tako, da pri

sestavljanju drevesne strukture, na globinah ki so manjše od dopustne globine, dovolimo

uporabo samo funkcij iz določenega nabora. Vozlišča, ki ležijo na največji dopustni ravnini pa

vsebujejo samo terminale. Pri rastoči metodi za začetno populacijo sestavljamo drevesne

strukture različnih oblik in velikosti. Globina strukture je v tem primeru odvisna tudi od

razmerja števil elementov v naboru funkcij in terminalov. Ker želimo, da so si organizmi v

začetni populaciji čim bolj različni, je smiselna kombinacija obeh metod.

Page 32: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-23-

3.3.3 Ovrednotenje populacije Populacijo ovrednotimo tako, da izračunamo prilagojenost vsakega organizma na okolje.

Določevanje prilagojenosti je vsekakor gonilna sila pri evoluciji in je vodilo za spreminjanje

struktur, ki so podvržene adaptaciji. Način izračuna je seveda odvisen od problema, ki ga

rešujemo. Velikokrat je prilagojenost posameznika določena kar z razliko med pravilno

vrednostjo in rezultatom, ki ga poda računalniški program. Manjša kot je razlika, večjo

prilagojenost ima program. V mnogih primerih je prilagojenost programa sestavljena iz več

dejavnikov kot so npr. varčnost, učinkovitost, pravilnost, itd. V osnovi ločimo dve vrsti

prilagojenosti. To sta :

• surova prilagojenost in

• standardizirana prilagojenost.

Surova prilagojenost izhaja iz problema, ki ga obravnavamo. V odvisnosti od primera imajo

lahko boljšo prilagojenost programi z manjšo številčno vrednostjo (v primeru ko ima

prilagojenost značaj napake, porabe, itd.), ali pa večje vrednosti (prilagojenost ima značaj

dobička).

Pri standardizirani prilagojenosti nižja številčna vrednost vedno pomeni boljši rezultat

kot višja. Dobimo jo s preureditvijo surove prilagojenosti.

3.3.4 Genetske operacije Za primarne genetske operacije pri genetskem programiranju uporabljamo reprodukcijo in

križanje. Reprodukcija je nespolna operacija, pri kateri se s pomočjo prilagojenosti iz

populacije izbere en organizem, nato pa se ta program nespremenjen prenese v naslednjo

generacijo.

Križanje predstavlja spolno operacijo, kjer sodelujeta dva starševska organizma. Ker

imamo pri tem opravka s kompleksnimi računalniškimi programi je potrebno še posebno

paziti, da imajo potomci po križanju še vedno sintaktično pravilnost. Primer operacije križanja

je prikazan na sliki 3.9.

Page 33: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-24-

(3 + (1/x)) * ((y * 2) - 5)

1 yx 2

(x + cos x) + (2/1)

x

(3 + cos x) * ((y * 2) - 5)

KRIŽANJEpotomec 1

3

-+

*/ 5

*

yx 2

potomec 2

+

x cos

/

2 1

+

(x + (1/x)) + (2/1)

x1

3 *cos

+

5

-

*

oče

x /

+

mati

2 1

/

+

Slika 3.9 Operacija križanja

Poleg primarnih genetskih operacij lahko uporabljamo še sekundarne. Te operacije so

mutacija, permutacija in poenostavljanje. Mutacija naključno spremeni del veje drevesa. Vejo,

ki je določena z mestom mutacije, zamenja naključno ustvarjena nova veja. Pri permutaciji se

najprej izbere naključno mesto drevesa, ki predstavlja funkcijo z argumenti. Nato še

naključno izberemo eno od možnih permutacij in jo izvedemo. Poenostavljanje pa je

operacija, ki tekom evolucijskega procesa krajša programe. Uporablja se največkrat pri

Boolovih izrazih. Poenostavljanje ne spremeni programa, ampak ga samo skrajša.

3.3.5 Evolucija populacij Postopek je zelo podoben kot pri genetskih algoritmih. Populacijo spreminjamo toliko časa,

dokler ni izpolnjeno zaustavitveno pravilo. Naloge, ki jih rešujemo z genetskim

programiranjem so običajno zahtevnejše kot pri genetskih algoritmih, zato vsaka civilizacija

Page 34: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-25-

ne pripelje do zadovoljive rešitve. Problem je torej potrebno obdelati z več neodvisnimi

civilizacijami. Koliko civilizacij je potrebnih, pa je odvisno od zahtevnosti zadanega

problema.

3.4 Evolucijske strategije Evolucijske strategije so optimizacijske metode, ki temeljijo na adaptaciji in evoluciji. Izumil

jih je Ingo Rechenberg s svojimi sodelavci sredi sedemdesetih let. Evolucijske strategije se

uporabljajo predvsem za optimizacijo realnih funkcij, zato so rešitve v oblikah vektorjev

realnih števil. Začetne evolucijske strategije so imele v populaciji samo en organizem in

uporabljena je bila samo ena genetska operacija – mutacija. Celoten postopek temelji na

dejstvu, da so manjše spremembe (mutacije) veliko pogostejše kot velike. Potomec, ki ga

dobimo zgolj z mutacijo starša, slednjega lahko nadomesti samo, če je od njega bolj kvaliteten

in če zadostuje danim pogojem. Kasnejše evolucijske strategije so imele več članov v

populaciji, za genetske operacije pa se je začelo uporabljati tudi križanje. Ti modeli so se zelo

dobro obnesli pri reševanju težav, kjer se optimalna rešitev spreminja s časom.

3.5 Evolucijsko programiranje Namen evolucijskega programiranja je razvoj inteligentnih sistemov oz. napovedovanje

sprememb v okolju s pomočjo simulirane evolucije. Avtor te metode je bil Lawrence J. Fogel.

Metoda izhaja iz avtomatskega načrtovanja končnih avtomatov in se danes uporablja kot

večnamenska optimizacijska metoda. Ta metoda se izvaja tako, da algoritem na osnovi

vhodnega zaporedja napove nov izhodni simbol. Točnost novega izhodnega simbola meri

stroškovna funkcija. Npr: Vhodno zaporedje označimo s simboli a1, a2, a3, …. Algoritem

mora napovedati naslednji (neznan) simbol an+1 na osnovi prejšnjih znanih simbolov a1, a2, a3,

…an. Namen evolucijskega programiranja je razviti tak algoritem. Podobno kot pri

evolucijskih strategijah, tudi pri tej metodi ustvarjamo potomce in jih ovrednotimo. Za

genetsko operacijo pa služi samo mutacija.

Page 35: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-26-

3.6 Uporaba evolucijskega računanja Uporaba evolucijskih metod v praksi skoraj ni omejena. Lahko se uporablja na vseh področjih

od akustike do astronomije. Velika prednost evolucijskih metod je v tem, da lahko raziskujejo

rešitve v vseh smereh v prostoru rešitev. Če se slučajno ena pot spremeni v slepo ulico, se te

poti z lahkoto znebimo in nadaljujemo iskanje v drugi smeri. To pomeni, da so evolucijske

metode predvsem uporabne pri problemih, kjer obstaja ogromno potencialnih rešitev. Še ena

dobra lastnost genetskih algoritmov je v tem, da se zelo dobro obnesejo v prostoru rešitev,

kjer obstaja veliko lokalnih optimumov. Drugi algoritmi se namreč zaustavijo na lokalnem

optimumu, pa čeprav obstaja nekje drugje boljša rešitev. Npr. genetski algoritem, ki sta ga

razvila General Electric in Rensselaer Polytechnic Institute je načrtoval motor na reaktivni

pogon, ki je bil za 50 % boljši od motorja, ki ga je razvil ekspertni sistem. Genetski algoritem

je pri tem uspešno navigiral skozi prostor s približno 10387 – imi rešitvami. Konvencionalne

metode za razvoj takšnih motorjev lahko trajajo tudi do pet let in stanejo 1 milijardo evrov.

Genetski algoritem pa je rešitev odkril po dveh dneh na zmogljivejšem osebnem računalniku.

Evolucijsko računanje s svojimi prednostmi postaja čedalje bolj razpoznavno. Evolucijske

metode se spopadajo s širokim spektrom problemom in jasno dokazujejo svojo moč in

potencial. Spodaj je naštetih samo nekaj primerov uporabe teh metod.

Akustika

Genetski algoritmi so bili uporabljeni za izgradnjo koncertne hale z optimalnimi akustičnimi

lastnostmi. Dosežena je bila zelo dobra kvaliteta zvoka za zborovodjo, občinstvo in

glasbenike na odru. Pri tej nalogi je bilo potrebno hkrati optimizirati večje število

spremenljivk. Končna oblika hale je imela oblike in mere sorazmerne z dunajsko Grosser

Musikvereinsaal, ki velja za eno najboljših, če že ne za najboljšo koncertno halo kar se tiče

akustičnih lastnosti.

Aeronavtika

Evolucijske metode so bile uporabljene za konstruiranje krila za nadzvočno letalo. Cilj je bil

znižati zračni upor pri nadzvočni in tudi pri nižji hitrosti letala.

Page 36: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-27-

Astronomija

S pomočjo genetskih algoritmov so si znanstveniki pomagali v področju astrofizike. Genetski

algoritmi se lahko namreč uporabljajo tudi za določanje rotacijskih krivulj galaksij glede na

rotacijske hitrosti njenih komponent.

Kemija

S pomočjo kratkih in zelo močnih laserskih sunkov je mogoče razcepiti velike molekule na

več manjših. Končni produkt take reakcije je možno kontrolirati z obliko laserskega žarka,

vendar pa je obliko na determinističen način skoraj nemogoče izračunati.

Tehnologije materialov

S pomočjo genetskih algoritmov so bili razviti polimeri na ogljikovi osnovi, ki lahko

prevajajo elektriko.

Geologija

Genetske algoritme je mogoče uporabiti za določanje epicentra potresa glede na seizmološke

podatke.

Matematika

Genetski algoritmi se v tem področju zelo dobro obnesejo pri reševanju nelinearnih parcialnih

diferencialnih enačb visokega reda.

Vojska

Genetski algoritmi lahko služijo tudi za razvoj taktičnih načrtov za vojaške spopade. To je

lahko zelo priročno, saj je potrebno pri vojskovanju ukrepati hitro in učinkovito, odločitve pa

se sprejemajo v zelo stresnem okolju.

Robotika

V zadnjem času so postala zelo popularna tekmovanja avtonomnih robotov v nogometu.

Programi, ki kontrolirajo ekipo robotov morajo taktično koordinirati vse robote in sprejemati

mnogo odločitev – tako kot pri pravem nogometu. S pomočjo genetskih algoritmov bo

mogoče naučiti robote, da reagirajo kot pravi nogometaši.

Page 37: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-28-

4 Terminiranje delovnih nalogov z genetskimi algoritmi V proizvodnem sistemu imamo različne obdelovalne stroje (stružnice, brusilne stroje, žage,

rezkalne stroje, itd), ki izvajajo operacije na delovnih nalogih (izdelkih). Terminiranje se

ukvarja s časovnim razporejanjem nalogov na stroje. Vsak nalog je sestavljen iz določenega

števila delovnih operacij, ki se izvajajo na posameznih strojih. Naloga terminiranja je

razporeditev operacij vseh nalogov na stroje tako, da je čim boljše izpolnjen kriterij

uspešnosti. Nekateri od teh kriterijev so:

• visoka izkoriščenost kapacitet,

• doseganje dobavnih rokov,

• kratki pretočni časi,

• nizke količine nedokončane proizvodnje,

• visok dobiček.

Tipičen proizvodni obrat sestavljajo skupine strojev, razmeščenih po tehnološki podobnosti.

Pri tem načinu se vedno pojavlja neusklajenost med tehnološkimi in transportnimi tokovi ter

zmogljivostmi posameznih tehnologij. Bolj kot so kapacitete strojev izkoriščene, težje je

izdelati dober načrt zasedenosti strojev oziroma optimirati vrstni red naročil. Razvrščanje

delovnih nalogov oziroma terminiranje (razen nekaterih enostavnih primerov) spada v razred

NP - problemov, kar pomeni, da je časovna zahtevnost algoritma funkcija dolžine vhodnih

podatkov in raste eksponentno, hitreje kot vsak polinom. To pomeni, da imamo pri (m) številu

strojev in (n) številu nalogov do (n!)m možnih rešitev.

Tipičen problem terminiranja obravnava m število strojev in n število nalogov, katere je

potrebno razvrstiti na stroje. Vsak nalog je sestavljen iz določenega števila operacij, ki se na

strojih izvajajo v določenem vrstnem redu. Vsaka operacija ima navedeno na katerem stroju

se izvaja in koliko časa bo procesiranje trajalo. Poleg tega imamo za naloge in stroje določene

zahteve in omejitve, ki jih je potrebno upoštevati:

• vrstni red operacij delovnega naloga se ne sme spreminjati,

• ni omejitev pri vrstnem redu operacij med različnimi nalogi,

• posamezen stroj lahko procesira samo en nalog naenkrat,

Page 38: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-29-

• nalog se ob vsakem trenutku lahko procesira samo na enem stroju,

• ko stroj začne procesirati operacijo, jo mora izvesti do konca in ne sme biti prekinjen,

• vsak nalog lahko določen stroj obišče samo enkrat,

• nalogi nimajo podanih časov prihoda v proizvodnjo niti dobavnih rokov.

Terminiranje, ki je opisano v tem poglavju se osredotoča samo na zmanjševanje skupnega

časa izvajanja vseh operacij. To je čas, ki preteče med začetkom procesiranja prve operacije,

do konca procesiranja zadnje operacije vseh nalogov. Nalogi bodo torej na stroje razvrščeni

tako, da bo ta čas čim krajši.

V tem poglavju je opisan potek reševanja problema terminiranja z uporabo genetskih

algoritmov. Ta problem je možno reševati na več možnih načinov, vendar pa je vsem načinom

skupna njihova osnova. Tekom raziskav so znanstveniki razvili različne možne načine

reševanja, ki so bili bolj ali manj uspešni.

V poglavju je predstavljena tudi metoda, ki je bila razvita s strani diplomanta, neodvisno

od ostalih že poznanih metod. Na podlagi te metode je bil v celoti izdelan tudi računalniški

program za obdelavo podatkov. Na koncu tega poglavja so opisani rezultati reševanja

praktičnih primerov s tem programom, v dodatku pa je napisano več o izdelavi in strukturi

programa.

4.1 Kodiranje organizmov pri terminiranju Kako kodirati rešitev problema v organizem predstavlja temeljni problem genetskih

algoritmov. Kodiranje je potrebno izvesti tako, da organizem po genetskih operacijah še

vedno lahko predstavlja potencialno rešitev problema. Več o tem je opisano v poglavju 3.2.

Znanstveniki uporabljajo različne pristope za kodiranje organizmov. Ti pristopi lahko

temeljijo na:

• operacijah,

• nalogih,

• prednostnem seznamu,

• metodi PERT,

• prednostnih pravilih, idr.

Page 39: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-30-

Obravnavana bosta dva pristopa. Kodiranje na osnovi operacij in kodiranje s prednostnim

seznamom, ki sta za boljše razumevanje prikazana na enostavnem primeru. Primer je

sestavljen iz treh strojev in treh nalogov, ki je predstavljen v tabeli 4.1.

Tabela 4.1 Primer treh nalogov in treh strojev

čas izvajanja operacij zaporedje izvajanja operacij operacije operacije nalogi

1 2 3 1 2 3 n1 29 78 9 stroj 1 stroj 2 stroj 3 n2 43 90 28 stroj 1 stroj 3 stroj 2 n3 91 85 74 stroj 2 stroj 1 stroj 3

Iz tabele je razvidno, da je npr. nalog n1 sestavljen iz treh operacij. Procesiranje tega naloga

se začne na stroju s1 in traja 43 časovnih enot. Druga operacija se izvaja na stroju s3 in traja

90 časovnih enot, zadnja operacija pa je izvedena na stroju s3 in bo končana po 28–ih

časovnih enotah. Podobno velja tudi za ostala dva naloga.

4.1.1 Kodiranje na osnovi operacij To kodiranje zakodira terminski načrt kot sekvenco operacij, kjer vsak gen predstavlja eno

operacijo. V organizmu so vse operacije istega naloga označene z enakim simbolom.

Organizem vsebuje število genov ki je enako številu nalogov, pomnoženo s številom strojev,

iz njega pa je možni razbrati samo vrstni red nalogov na posameznih strojih. Organizem ima

lahko obliko kot npr. (1 3 2 1 2 2 3 1 3), kjer 1 predstavlja nalog n1, 2 nalog n2 in 3 nalog n3.

Ker ima vsak nalog tri operacije, se v organizmu njegova številka pojavi točno trikrat.

Številke posameznega naloga predstavljajo njegove operacije na strojih.

Npr.: Prva dvojka naloga n2 predstavlja prvo operacijo naloga, ki se izvaja na stroju 1,

druga dvojka predstavlja drugo operacijo, ki se izvaja na stroju 3, zadnja operacija pa na

stroju 2 (slika 4.1).

1 3 2 stroji

( 1 3 2 1 2 2 3 1 3 )organizem

Slika 4.1 Določevanje vrstnega reda strojev

Page 40: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-31-

Če bi postopek ponovili še za ostala dva naloga, bi dobili seznam strojev, ki je prikazan na

sliki 4.2.

( 1 2 1 2 3 2 1 3 3 )

( 1 3 2 1 2 2 3 1 3 )

stroji

organizem

Slika 4.2 Seznam strojev

Iz seznama strojev na sliki 4.2 je razvidno kako bodo nalogi razvrščeni na strojih. Na stroju 1

bo vrstni red nalogov 1-2-3 (označeno s pravokotniki), na stroju 2 bo vrstni red 3-1-2, na

stroju 3 pa 2-1-3. Te podatke lahko prikažemo tudi na gantogramu, ki je prikazan na sliki 4.3.

Slika 4.3 Prikaz nalogov na gantogramu – izdelano s programom LEKIN

Prednost kodiranja po tej metodi je v relativno enostavnem organizmu. Nad organizmom je

tudi lažje izvajati genetske operacije, kot pri organizmih, ki so bili kodirani po drugih

metodah. Slaba lastnost tega kodiranja je, da organizem ne vsebuje vseh informacij o delovnih

nalogih in jih je potrebno pridobiti od drugje.

4.1.2 Kodiranje s prednostnim seznamom Pri kodiranju na osnovi prednostnega seznama so operacije v organizmu nanizane ena za

drugo v določenem vrstnem redu. Od tega vrstnega reda je odvisno, kako bodo operacije

procesirane na posameznih strojih. Pri tem kodiranju je potrebo paziti, da pri izdelavi

Page 41: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-32-

organizma ne kršimo prednostnih omejitev nalogov. To pomeni, da mora biti vrstni red

operacij posameznih nalogov v organizmu enak kot je v nalogu.

Ta princip kodiranja je bil uporabljen tudi pri izdelavi programa za terminiranje. Kako

poteka kodiranje organizma si poglejmo na primeru iz tabele 4.1.

1. Ker želimo, da bo neposredno iz organizma možno prebrati vse potrebne podatke,

zapišemo delovne naloge v naslednji obliki:

n1 (n1 s1 29) (n1 s2 78) (n1 s3 9)

n2 (n2 s1 43) (n2 s3 90) (n2 s2 28)

n3 (n3 s2 91) (n3 s1 85) (n3 s3 74)

2. Naredimo seznam prvih operacij vseh nalogov:

( (n1 s1 29) (n2 s1 43) (n3 s2 91) )

3. Iz seznama prvih operacij, naključno izberemo eno operacijo (npr. (n2 s1 43)) .

Ta operacija predstavlja prvi gen v organizmu. Izbrano operacijo vzamemo iz

delovnega naloga in jo postavimo na prvo mesto v organizmu.

n1 (n1 s1 29) (n1 s2 78) (n1 s3 9)

n2 (n2 s3 90) (n2 s2 28)

n3 (n3 s2 91) (n3 s1 85) (n3 s3 74)

organizem

( (n2 s1 43) )

4. Ponovno naredimo seznam prvih operacij vseh nalogov in iz njega izberemo

naključno operacijo (npr. (n1 s1 29)). Izbrano operacijo postavimo na drugo

mesto v organizmu in jo izbrišemo iz delovnega naloga.

n1 (n1 s2 78) (n1 s3 9)

n2 (n2 s3 90) (n2 s2 28)

n3 (n3 s2 91) (n3 s1 85) (n3 s3 74)

Page 42: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-33-

organizem

( (n2 s1 43) (n1 s1 29) )

5. Postopek ponavljamo toliko časa, dokler ne porabimo vseh operacij v delovnih

nalogih.

Če bi zgoraj opisan postopek nadaljevali do konca, bi prišli do končnega organizma, ki bi

lahko bil takšen:

organizem

( (n2 s1 43)(n1 s1 29)(n1 s2 78)(n3 s2 91)(n2 s3 90)(n3 s1 85)(n2 s2 28)(n1 s3 9)(n3 s3 74) ).

Iz organizma je razvidno, da nismo kršili prej omenjenega pravila. Operacije delovnih

nalogov imajo še vedno isti vrstni red, le da so med sabo pomešane. Zakaj je to tako

pomembno, je razloženo v naslednjem poglavju.

Ker je izdelava organizmov prepuščena naključju, lahko z zgoraj omenjenim načinom

izdelamo veliko število različnih organizmov, ki so potrebni za začetno populacijo.

4.2 Ovrednotenje organizmov Ovrednotimo lahko samo organizme, ki so veljavni. Za veljavne štejemo tiste organizme,

katerih struktura in zapis ustrezata zahtevanim pravilom. Ker v našem primeru želimo

časovno optimirati terminski načrt, nas zanima skupni čas izvajanja operacij. Čim manjši je ta

čas, tem boljši je terminski načrt oz. organizem. Poleg skupnega časa obdelovanja pa nas

zanima tudi vrstni red izvajanja operacij na strojih. Vrstni red izvajanja je v nekaterih

primerih razviden neposredno iz organizma, kar je odvisno od uporabljenega kodiranja.

Vendar načeloma iz organizmov ni možno razbrati časovnega poteka izvajanja operacij. Zato

se za prikazovanje rezultatov največkrat poslužujemo Ganttovih diagramov ali gantogramov.

V gantogramu abscisa predstavlja čas, na ordinato pa nanašamo operacije, ki jim je potrebno

določiti začetek, dolžino trajanja in konec. Iz gantograma je poleg poteka izvajanja operacij

razviden tudi skupni čas obdelave, ki je predmet optimiranja. Poleg gantogramov za

prikazovanje rezultatov pri obsežnejših projektih uporabljamo tudi tehnike mrežnega

načrtovanja (npr. CPM ali PERT).

Page 43: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-34-

Prikazovanje rezultatov z gantogrami je uporabljeno tudi v programu za terminiranje.

Izdelava gantograma poteka z dodajanjem posameznih operacij v gantogram. V našem

primeru se operacije dodajajo v gantogram neposredno iz organizma in sicer od leve proti

desni. Zato je tudi pomembno, da je vrstni red operacij v organizmu v skladu z zahtevami. V

nasprotnem primeru bi namreč dobili napačne vrednosti v gantogramih in organizem bi bil

nepravilno ovrednoten. Na sliki 4.4 je prikazan gantogram za naš naključno izdelani

organizem:

organizem

( (n2 s1 43)(n1 s1 29)(n1 s2 78)(n3 s2 91)(n2 s3 90)(n3 s1 85)(n2 s2 28)(n1 s3 9)(n3 s3 74) )

Slika 4.4 Gantogram za naključno izdelan organizem – izdelano s programom LEKIN

Iz gantograma je razvidno kateri nalogi imajo prednost pri procesiranju na določenih strojih.

Vrstni red procesiranja pa neposredno vpliva na skupni čas obdelave. Kot je razvidno iz

gantograma, znaša skupni čas obdelave za naš organizem 400 časovnih enot.

Ker bi bila pri programiranju uporaba grafičnih gantogramov težavna, so bili uporabljeni

gantogrami v številčni obliki. Gantogram v številčni obliki za naš organizem pa izgleda

takole:

s1 (0 N2 43) (43 N1 72) (241 N3 326)

s2 (72 N1 150) (150 N3 241) (241 N2 269)

s3 (43 N2 133) (150 N1 159) (326 N3 400)

Gantogram v številčni obliki ni tako pregleden kot grafični, vendar je iz njega mogoče

prebrati vse potrebne podatke.

Page 44: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-35-

4.3 Genetske operacije Genetske operacije so gonilna sila pri genetskih algoritmih. Katere operacije je smiselno

uporabiti pri določenem problemu, je zopet odvisno od načina kodiranja organizma. Edina

genetska operacija, ki ni odvisna od kodiranja je selekcija. Selekcija je najenostavnejša za

uporabo med vsemi operacijami. Namenjena je temu, da se boljši organizmi nespremenjeni

prenesejo v naslednjo generacijo. Pomembno je, katere organizme v ta namen izberemo. Več

o tem je napisano v poglavju 3.2. Ker se pri selekciji organizem ne spremeni, nimamo

nobenih težav z ohranjevanjem veljavnosti organizma. Pri izvajanju vseh drugih operacij je

potrebno upoštevati podane zahteve, da se ohrani veljavnost organizma.

Smiselnost uporabe križanja je pri nekaterih primerih že vprašljiva. Križanje namreč

meša genetski material med izbranimi organizmi. To mešanje pa ima lahko za posledice več

nevšečnosti kot koristi. V primeru, da križamo organizme pri katerih je vrstni red genov

ključnega pomena, lahko dobimo potomce, ki so neveljavni. Seveda lahko vrstni red pri

potomcih popravimo, kar pa zahteva v nekaterih primerih veliko dela. Poleg tega se lahko

potomec pri tem popravljanju preveč spremeni. S tem pa je izničen rezultat, ki ga želimo

dobiti s križanjem. Kot primer si poglejmo dvomestno križanje pri organizmih, ki so kodirani

na osnovi operacij. Naključno izbrana organizma sta vzeta po tabeli 4.1.

potomec 2

( 1 3 2 1 2 2 3 1 3 )oče

1 2 2 3

KRIŽANJE

potomec 1

mati ( 2 2 3 1 3 1 1 3 2 )

1 3 1 1

( 1 3 2 1 3 1 1 1 3 ) ( 2 2 3 1 2 2 3 3 2 )

Slika 4.5 Križanje organizmov

Page 45: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-36-

S slike 4.5 je razvidno, da sta bila s križanjem pridobljena dva neveljavna potomca, saj bi

vsak potomec moral vsebovati po tri enake številke. Potomca je v tem primeru nesmiselno

popravljati, saj bi v primeru popravljanja dobili popolnoma naključna organizma.

Mutacija takih organizmov tudi ni smiselna. Če npr. želimo en gen v organizmu

zamenjati z naključnim genom, je potrebno spremeniti še tisti gen v organizmu, ki je enak

naključnemu genu. To ne pomeni nič drugega, kot da smo izvedli permutacijo z dvema

genoma. V takih primerih je torej najboljše kot mehanizem za spreminjanje organizmov

izbrati permutacijo. V zgornjem primeru kodiranja na osnovi operacij pridemo z uporabo

permutacije vedno do veljavnih potomcev. Pri nekaterih ostalih kodiranjih pa je potrebno

paziti, da s permutacijo organizma ne kršimo podanih zahtev.

Edina genetska operacija poleg selekcije, ki je bila uporabljena pri izdelavi programa za

terminiranje, je permutacija. Ta temelji na prestavljanju genov. Organizem ki bo sodeloval pri

permutaciji izberemo s pomočjo turnirske selekcije. Pri permutaciji organizma je potrebno

upoštevati pravilo, da mora ostati vrstni red operacij posameznih nalogov nespremenjen.

Postopek permutacije enega gena je prikazan na spodnjem organizmu in poteka takole:

organizem

( (n2 s1 43)(n1 s1 29)(n1 s2 78)(n3 s2 91)(n2 s3 90)(n3 s1 85)(n2 s2 28)(n1 s3 9)(n3 s3 74) )

1. Izberemo eno naključno operacijo, npr. (n2 s1 43).

2. Nato je potrebno določiti levo in desno mejo. Ker izbrana operacija pripada nalogu

n2, je potrebno levo in desno poiskati prvo operacijo, ki tudi pripada nalogu n2. Če

operacije ni, mejo predstavlja začetek oz. konec organizma. V tem primeru

predstavlja desno mejo operacija (n2 s3 90), levo mejo pa začetek organizma.

Prostor med levo in desno mejo predstavlja področje kamor lahko prestavimo

izbrano operacijo. V organizmu je ta prostor označen oglatima oklepajema.

organizem

([(n2 s1 43)(n1 s1 29)(n1 s2 78)(n3 s2 91)](n2 s3 90)(n3 s1 85)(n2 s2 28)(n1 s3 9)(n3 s3 74) )

Page 46: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-37-

3. S pomočjo generatorja naključnih števil se nato izbere mesto, kamor bo izbrana

operacija prestavljena, npr. pred operacijo (n1 s2 78).

organizem po permutaciji

( (n1 s1 29)(n2 s1 43)(n1 s2 78)(n3 s2 91)(n2 s3 90)(n3 s1 85)(n2 s2 28)(n1 s3 9)(n3 s3 74) )

S tem postopkom naključno spremenimo izbrani organizem in s tem tudi njegovo vrednost.

Ker je velikokrat potrebno prestaviti (permutirati) več kot eno operacijo, lahko zgoraj opisan

postopek v okviru ene permutacije ponovimo tudi večkrat. Tako znotraj enega organizma

izvedemo več naključnih premikov operacij. S tem dosežemo večjo spremembo organizma.

4.4 Evolucijski parametri Evolucijski parametri so tisti parametri, ki vplivajo na potek reševanja zadanega problema.

Imajo zelo velik vpliv na končni rezultat, zato jih je potrebno pametno izbrati, če želimo

dobiti dobre rezultate. Ti parametri so:

• selekcijski pritisk,

• velikost populacije,

• obseg spremembe pri genetskih operacijah,

• delež posameznih genetskih operacij v novi generaciji,

• število generacij (zaustavitveno pravilo) in

• število neodvisnih civilizacij.

Selekcijski pritisk nam pove, kakšne rešitve se bodo uporabljale pri genetskih operacijah. Če

je selekcijski pritisk velik, potem dobijo možnost samo boljše rešitve. Če je majhen za

sodelovanje pri genetskih operacijah dobijo možnost tudi slabše rešitve. Pri velikem

selekcijskem pritisku obstaja večja možnost, da rešitve zaidejo v lokalni optimum, pri

majhnem pritisku pa pregledujemo preveč nepomembnih rešitev in iskanje optimuma se

Page 47: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-38-

zavleče. Potrebno je najti kompromisno vrednost, ki zagotovi napredovanje iskanja.

Selekcijski pritisk lahko določimo za vsako genetsko operacijo posebej, ni pa nujno.

Ko nad organizmom izvajamo genetsko operacijo, je potrebno določiti, v kolikšnem

obsegu naj operacija spremeni organizem. Priporočljivo je, da ista genetska operacija izvaja

tako majhne kot tudi večje spremembe. Tako npr. nekajkrat izvedemo permutacijo, kjer se

zamenjata samo dva gena, nekajkrat naj permutirajo trije geni, itd. S tem si zagotovimo

raznolikost v populaciji.

Pri generiranju naslednje generacije je potrebno določiti kolikšen del populacije naj

izdela določena genetska operacija. Priporočen delež selekcije v naslednji generaciji je okoli

10 %, ostala mesta pa dobijo organizmi ostalih genetskih operacij. S tem si zagotovimo, da se

jedro dobrih rešitev prenaša iz generacije v generacijo.

Če pomnožimo število generacij z velikostjo populacije, dobimo število organizmov, ki

smo jih med potekom evolucije pregledali. Pri težjih problemih je potrebno veliko več

organizmov kot pri lažjih. Vprašanje pa je, ali naj poteka reševanje z majhno populacijo in

veliko iteracij (generacij), ali pa z veliko populacijo in manjšim številom iteracij. Katero

možnost uporabiti je odvisno od načina reševanja oz. uporabljene metode iskanja rešitev.

Najlažje je to določiti s pomočjo statističnih preizkusov.

Ker poteka reševanje z genetskimi algoritmi na podlagi naključja, ni nujno da pri

vsakem zagonu pridemo do zadovoljivih rezultatov. Največkrat nam iskanje ustavijo lokalni

optimumi, v katerih se iskanje konča. Zato je potrebno izvesti več neodvisnih civilizacij, kajti

vsaka lahko privede do drugačne (boljše) rešitve.

4.5 Rezultati Uspešnost izdelanega algoritma je bila testirana na treh primerih. Prvi primer je izmišljen,

zadnja dva pa sta že dolgo poznana. Gre se namreč za terminirna problema, ki sta ju v

šestdesetih letih zapisala Fisher in Thompson. Znanstveniki so ta dva primera pogosto

uporabljali za merjenje uspešnosti svojih algoritmov. Rezultati nekaterih avtorjev so prikazani

v tabeli 4.2.

Page 48: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-39-

Tabela 4.2 Uspešnost algoritmov [15] Avtorji 10x10 20x5 Optimalna vrednost 930 1165 Nakano in Yamada (1991) 965 1215 Yamada in Nakano (1995) 930 1184 Paredis (1992) 1006 - Gen in drugi (1994) 962 1175 Fang in drugi (1993) 949 1189 Dorndorf in Pesch (1995) 960 1249 Dorndorf in Pesch (1995) 938 1178 Croce in drugi (1995) 946 1178 Cheng in drugi (1995) 948 1196

4.5.1 Primer 1

Tabela 4.3 Problem 7 x 7

zaporedje operacij nalogi

1. 2. 3. 4. 5. 6. 7.

n1 s4 29 s2 78 s3 9 s1 36 s5 49 s6 11 s7 62 n2 s1 43 s3 50 s5 75 s4 69 s2 28 s7 46 s6 46 n3 s2 91 s1 51 s4 39 s3 74 s5 81 s6 10 s7 89 n4 s5 15 s3 45 s1 31 s2 35 s7 9 s6 52 s4 9 n5 s3 14 s1 6 s2 22 s6 61 s4 26 s5 69 s7 21 n6 s4 13 s2 20 s3 35 s5 48 s6 42 s1 47 s7 65 n7 s2 46 s1 37 s4 61 s3 13 s7 32 s6 5 s5 39

Za primer, ki je podan v tabeli 4.3 je potrebno določiti najmanjši skupni čas izvajanja vseh

operacij. Primer je sestavljen iz sedmih nalogov, ki se izvajajo na sedmih strojih. Vsak nalog

lahko obišče določen stroj samo enkrat. Vrstni red operacij posameznih nalogov se ne sme

spreminjati, med operacijami različnih nalogov pa ni prednostnih omejitev. Iskanje se je

izvajalo z naslednjimi evolucijskimi parametri:

• velikost populacije: 200 organizmov,

• zaustavitveno pravilo: 200 generacij,

• število neodvisnih civilizacij: 100.

Page 49: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-40-

Izračun1 je potekal 1 uro in 45 minut. Najmanjši skupni čas izvajanja operacij, ki je bil v

poskusu dosežen, je znašal 562 časovnih enot. To vrednost je doseglo osem civilizacij.

Obravnavan problem je bil rešen še s pomočjo profesionalnega programa za

terminiranje LEKIN verzija 2.4. Rešitev je znašala 555 časovnih enot. Program je pri iskanju

uporabljal metodo prestavljanja ozkega grla, iskanje je trajalo 3 sekunde. Za rezultat, ki je bil

pridobljen s tem programom lahko trdimo, da je optimalen.

Z rezultatom, ki smo ga dobili z našim algoritmom, smo lahko zadovoljni, saj se od

optimalne vrednosti razlikuje za samo 7 časovnih enot, kar pa je manj kot 2 %.

4.5.2 Primer 2

Tabela 4.4 Problem 10 x 10

zaporedje operacij nalogi

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

n1 s1 29 s2 78 s3 9 s4 36 s5 49 s6 11 s7 62 s8 56 s9 44 s10 21 n2 s1 43 s3 90 s5 75 s10 11 s4 69 s2 28 s7 46 s6 46 s8 72 s9 30 n3 s2 91 s1 85 s4 39 s3 74 s9 90 s6 10 s8 12 s7 89 s10 45 s5 33 n4 s2 81 s3 95 s1 71 s5 99 s7 9 s9 52 s8 85 s4 98 s10 22 s6 43 n5 s3 14 s1 6 s2 22 s6 61 s4 26 s5 69 s9 21 s8 49 s10 72 s7 53 n6 s3 84 s2 2 s6 52 s4 95 s9 48 s10 72 s1 47 s7 65 s5 6 s8 25 n7 s2 46 s1 37 s4 61 s3 13 s7 32 s6 21 s10 32 s9 89 s8 30 s5 55 n8 s3 31 s1 86 s2 46 s6 74 s5 32 s7 88 s9 19 s10 48 s8 36 s4 79 n9 s1 76 s2 69 s4 76 s6 51 s3 85 s10 11 s7 40 s8 89 s5 26 s9 74 n10 s2 85 s1 13 s3 61 s7 7 s9 64 s10 76 s6 47 s4 52 s5 90 s8 45

Primer, ki je prikazan v tabeli 4.4, je znamenit problem terminiranja, ki sta ga leta 1964

predstavila Fisher in Thompson. Sestavljen je iz desetih nalogov, ki se izvajajo na desetih

strojih. Optimalno rešitev, ki znaša 930 časovnih enot, so znanstveniki odkrili komaj čez

petindvajset let po predstavitvi problema.

1 Programsko okolje AutoCAD R14 na dvojedrnem intelovem procesorju 1,66 GHz.

Page 50: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-41-

Iskanje je potekalo z naslednjimi evolucijskimi parametri:

• velikost populacije: 200 organizmov,

• zaustavitveno pravilo: 500 generacij,

• število neodvisnih civilizacij: 100.

Izračun je potekal 11 ur in 30 minut. Najmanjši skupni čas izvajanja operacij, ki je bil v

poskusu dosežen, je znašal 941 časovnih enot. Ta vrednost je dosegla ena civilizacija.

Rezultat, ki smoga dobili z našim algoritmom, od optimalne vrednosti odstopa za 11 časovnih

enot oz. 1,2 %. Če ta rezultat primerjamo z rezultati v tabeli 4.2, vidimo, da je naš algoritem

konkurenčen algoritmom ostalih avtorjev.

Iskanje je bilo izvedeno tudi s programom LEKIN. Program je z metodo prestavljanja

ozkega grla optimalno rešitev našel v sedmih sekundah.

4.5.3 Primer 3

Tabela 4.5 Problem 20 x 5

zaporedje operacij nalogi 1. 2. 3. 4. 5. n1 s1 29 s2 9 s3 49 s4 62 s5 44 n2 s1 43 s2 75 s4 69 s3 46 s5 72 n3 s2 91 s1 39 s3 90 s5 12 s4 45 n4 s2 81 s1 71 s5 9 s3 85 s4 22 n5 s3 14 s2 22 s1 26 s4 21 s5 72 n6 s3 84 s2 52 s5 48 s1 47 s4 6 n7 s2 46 s1 61 s3 32 s4 32 s5 30 n8 s3 31 s2 46 s1 32 s4 19 s5 36 n9 s1 76 s4 76 s3 85 s2 40 s5 26 n10 s2 85 s3 61 s1 64 s4 47 s5 90 n11 s2 78 s4 36 s1 11 s5 56 s3 21 n12 s3 90 s1 11 s2 28 s4 46 s5 30 n13 s1 85 s3 74 s2 10 s4 89 s5 33 n14 s3 95 s1 99 s2 52 s4 98 s5 43 n15 s1 6 s2 61 s5 69 s3 49 s4 53 n16 s2 2 s1 95 s4 72 s5 65 s3 25 n17 s1 37 s3 13 s2 21 s4 89 s5 55 n18 s1 86 s2 74 s5 88 s3 48 s4 79 n19 s2 69 s3 51 s1 11 s4 89 s5 74 n20 s1 13 s2 7 s3 76 s4 52 s5 45

Page 51: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-42-

Primer v tabeli 4.5 predstavlja problem razvrščanja dvajsetih nalogov na pet strojev. Čeprav je

število vseh operacij (100) enako kot v primeru 2, je ta problem kombinatorično zahtevnejši.

Iskanje je potekalo z naslednjimi evolucijskimi parametri:

• velikost populacije: 200 organizmov,

• zaustavitveno pravilo: 500 generacij,

• število neodvisnih civilizacij: 100.

Izračun je potekal 13 ur in 47 minut. Najmanjši skupni čas izvajanja operacij, ki je bil v

poskusu dosežen, je znašal 1211 časovnih enot. Ta vrednost je dosegla ena civilizacija. Na

sliki 4.6 je prikazana prilagojenost te najboljše civilizacije v odvisnosti od posameznih

generacij.

10001100120013001400150016001700180019002000

1 29 57 85 113 141 169 197 225 253 281 309 337 365 393 421 449 477

Generacije

Povp

rečn

i sku

pni č

as iz

vaja

nja

oper

acij

celo

tne

popu

laci

je

Slika 4.6 Prilagojenost najboljše civilizacije

Rezultat od optimalne vrednosti odstopa za 46 časovnih enot oz. 4%. Glede na vrednosti iz

tabele 4.2 se je algoritem izkazal slabše kot pri primeru 10 x 10. Pri večjem številu generacij

in večji populaciji bi verjetno dobili boljše rezultate. Program LEKIN je za pridobitev

optimalne rešitve porabil samo 12 sekund.

Page 52: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-43-

5 Sklep Jasno je, da ima terminiranje proizvodnih procesov v sodobni industriji zelo velik pomen.

Razgiban in negotov trg, zahtevne želje kupce in čedalje večja konkurenca silijo proizvajalce

da izvajajo hitre spremembe v proizvodnem prostoru. Prilagodljivost je postala ključnega

pomena pri obstoju podjetja. Zagotovimo jo lahko samo z dobrim in fleksibilnim delovnim

načrtom. Iz vsebine te diplomske naloge je razvidno, da predstavlja terminiranje težak

kombinatorični problem, ki ga ni lahko rešiti optimalno. Predstavljene so tudi metode, ki so se

pri reševanju tega problema dobro izkazale. Ena od teh metod so tudi genetski algoritmi.

Zavedati pa se moramo, da ni vsaka evolucija tudi dobra evolucija.

Uspešnost reševanja problema je odvisna od zasnove algoritma, kar pa je povezano z

znanjem in izkušnjami avtorja algoritma. V praksi se je izkazalo, da z uporabo genetskih

algoritmov pridemo do zadovoljivih rešitev, ampak ne v takšnem času kot bi si želeli. Tudi iz

rešenih primerov, ki so predstavljeni v tej nalogi, je razvidno, da iskanje ki temelji zgolj na

genetskih algoritmih ni kos sodobnemu terminirnemu programu. Pri vseh treh obravnavanih

primerih sicer pridemo do zadovoljivih rešitev, vendar pa iskanje zahteva preveč časa.

Mehanizem iskanja pogosto zaide v lokalni optimum in ne vodi do optimalne rešitve.

Algoritem, ki je bil izdelan za namen te diplomske naloge, je v razvojni fazi. Potrebno je

še veliko modifikacij na področju kodiranja in iskanja rešitev. Kombiniranje z drugimi

hevrističnimi metodami kot so lokalno iskanje, tabu iskanje in simulirano ohlajanje pa bi prav

gotovo vodilo do boljših rezultatov.

Page 53: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-44-

6 Dodatek Izdelava programa Za izdelavo programa je možno uporabiti katerikoli programski jezik. Zaradi nekaterih

prednosti, ki jih ima Autolisp, je celoten program izdelan v tem programskem jeziku. Lisp je

eden najstarejših programskih jezikov in je namenjen obdelavi seznamov. Osnovna in edina

struktura v lispu je seznam, ki je sestavljen iz členov. Členi predstavljajo najmanjše elemente

v lispu. Lahko so števila, funkcije, nizi, seznami ali kateri koli drugi dovoljeni podatkovni

tipi. Med programi in podatki v lispu ni sintaktične razlike, saj lisp kateri koli del lastne kode

razume kot podatke. Ker operatorjev v lispu ni, so vse osnovne računske operacije le funkcije

z ustreznimi argumenti (najprej je potrebno podati funkcijo, za njo pa argumente). V lispu

tudi ni potrebno navesti tipov spremenljivk in funkcij. Spremenljivkam z istim imenom lahko

celo med izvajanjem programa prirejamo podatke različnih tipov. Zaradi teh dejstev je

uporaba lispa pri genetskih algoritmih zelo priporočljiva, saj imamo pri programiranju veliko

opravka s seznami.

Zaradi enostavnosti programskega jezika lisp, je pisanje programa potekalo zgolj s

pomočjo priročnika [5], kjer so opisane posamezne funkcije programa in primeri uporabe.

Bralec lahko hitro dojame delovanje lispa in za programiranje ne potrebuje nobenega

predznanja.

Izdelava programa je potekala po modularnem sistemu. To pomeni, da je celoten

program za terminiranje sestavljen iz posameznih modulov (računalniških podprogramov), ki

so popolnoma neodvisni drug od drugega. Vsak modul je narejen za izvajanje točno določene

naloge, kar nam daje veliko prednost. Celoten program namreč nastaja po segmentih, katere je

mogoče posamično testirati. Module se v celoto povezujejo s povezovalnim programom. To

nam omogoča, da imamo med potekom pisanja programa pregled nad obdelavo podatkov.

Morebitne napake ali pomanjkljivosti modulov se tako hitro odkrijejo in odpravijo.

Eden izmed pomembnejših modulov programa je generator naključnih števil. Ker

evolucija temelji na naključnih in nenačrtovanih dogodkih, je potrebno ta proces prenesti tudi

v računalniški program. Uspešno generiranje naključnih števil posredno vpliva na uspešnost

evolucije. Naključna števila, ki jih dobimo z generatorji pa niso čisto naključna. Dobimo jih z

izvrševanjem določenih navodil, ki so točno določena. Generatorjev je več vrst. V našem

primeru je uporabljen generator, ki naključna števila pridobiva na podlagi sistemskega časa.

Page 54: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-45-

Kvaliteto generatorja lahko preizkusimo tudi z enostavnim testom. Eden od takih testov je

metanje kovanca. Vzemimo primer, da imamo kovanec, ki ima na eni strani število 1 na drugi

pa število 0. Če kovanec vržemo 100.000 – krat, bi v idealnem primeru morali dobiti 50.000 –

krat vrednost 1 in ravno toliko ničel. Naš generator je pri 10.000.000 poskusih pokazal

4.999.233 – krat vrednost 1 in 5000767 – krat vrednost 0. To pa pomeni za 0.0153 %

odstopanje od idealnih rezultatov.

Page 55: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-46-

7 Literatura in pripomočki [1] WinEdt verzija 5.5

[2] Programsko okolje AutoCAD 2000

[3] Programsko okolje AutoCAD R14

[4] LEKIN verzija 2.4

[5] M. Brezočnik: Priročnik za uporabo orodja autolisp v okolju AutoCAD, Fakulteta za

strojništvo, Univerza v Mariboru, 2005

[6] Pinedo, M. L.: Planning and scheduling in manufacturing and services, Springer

Science+Business Media, New York, 2005

[7] Polajnar, B. Buchmeister, M. Leber, K. Pandža, N. Vujica-Herzog, I. Palčič, T. Fulder:

Menedžment proizvodnih sistemov – sodobni pristopi, Fakulteta za strojništvo, Univerza

v Mariboru, 2004

[8] M. Brezočnik: Uporaba genetskega programiranja v inteligentnih proizvodnih sistemih,

Fakulteta za strojništvo, Univerza v Mariboru, 2000

[9] J. Blazewicz, K. H. Ecker, E. Pesch, G. Schmidt, J. Weglarz: Handbook on sheduling,

Springer-Verlag Berlin Heidelberg, 2007

[10] P. Brucker: Scheduling algorithms: Fifth edition, Springer-Verlag Berlin Heidelberg,

2007

[11] P. Brucker, S. Knust: Complex scheduling, Springer-Verlag Berlin Heidelberg, 2006

[12] M. Mernik, M. Črepinšek, V. Žumer: Evolucijski algoritmi, Fakulteta za elektrotehniko,

računalništvo in informatiko, Inštitut za računalništvo, Univerza v Mariboru, 2003

[13] ChaoYong Zhang, PeiGen Li,YunQing Rao, ZaiLin Guan: A very fast TS/SA algorithm

for the job shop scheduling problem, School of Mechanical Science & Engineering,

Huazhong University of Science & Technology, Wuhan, 2006. Dostopno na

www.sciencedirect.si, [03.06.2006]

[14] Buchmeister, I. Palčič, J. Pavlinjek, INOKS d.o.o., Murska Sobota, Univerza v Mariboru,

Fakulteta za strojništvo: Nekonvencionalne metode terminiranja proizvodnih procesov:

Orodjarstvo 2008. Organizacija kot gonilo poslovnih izboljšav : zbornik posvetovanja,

Portorož, 7. do 9. oktober 2008.

[15] Mitsuo Gen, Runwei Cheng: Genetic Algorithms and engineering design, John Wiley &

Sons, Inc, New York ,1997

Page 56: TERMINIRANJE DELOVNIH NALOGOV S POMOČJO GENETSKIH … · aproksimacijski algoritmi kot npr. prednostna pravila, prestavljanje ozkega grla, kolonija mravelj, simulirano ohlajanje

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

-47-

Življenjepis Rodil sem se 29. maja 1984 v Novem mestu. Osnovno šolo sem obiskoval v domačem kraju

Šentjanž vse do leta 1999. Po končani osnovni šoli sem se odločil, da bom šolanje nadaljeval

v Novem mestu. Leta 1999 sem se vpisal na Srednjo tehniško šolo v Novem mestu. Šolanje je

trajalo štiri leta, tako da sem leta 2003 pridobil naziv strojnega tehnika. Za nadaljnje šolanje

sem se odločil za Fakulteto za strojništvo v Mariboru. Po uspešno opravljeni poklicni maturi

in petem predmetu sem se tako vpisal na univerzitetni program strojništva. Moje začasno

prebivališče za čas študija je bil študentski dom Tomi na Iztokovi 22 v Mariboru. K sreči sem

bil prejemnik republiške štipendije, s katero sem si lahko pokril večino stroškov tekom

študija. Po treh letih šolanja je potrebno izbrati študijsko smer. S sošolcem sva bila edina, ki

sva se tisto leto odločila za proizvodno strojništvo. Študij je od takrat naprej potekal veliko

bolj individualno, kar mi je omogočilo, da sem se ukvarjal s tistim, kar me je zanimalo.

Počitniško delo in študijsko prakso sem opravljal v podjetju INKOS d.o.o. v Krmelju, poleg

tega pa sem preko študentskega servisa delal še v podjetju FEM Consulting d.o.o. iz

Maribora.

Zoran Lestan