rješavanje problema rezanja uporabom genetskog programiranja · grafički prikaz ovih odnosa se...

44
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 3311 Rješavanje problema rezanja uporabom genetskog programiranja Edi Smoljan Zagreb, lipanj 2013.

Upload: others

Post on 06-Sep-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD br. 3311

Rješavanje problema rezanja uporabom genetskog programiranja

Edi Smoljan

Zagreb, lipanj 2013.

Page 2: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

Sadržaj

1. Uvod..................................................................................................................... 1

1.1 Općeniti opis problema ................................................................................. 1

1.2 Prijašnji rad ................................................................................................... 1

2. Osnovna ideja ...................................................................................................... 3

2.1 Različiti pristupi prikaza i rješavanja problema ............................................. 3

2.2 Smještanje navođenjem odnosa ................................................................... 5

2.3 Prikaz zapisa u računalu ............................................................................... 9

3. Definiranje genotipa ........................................................................................... 11

3.1 Razmatranje uporabe postojećih genotipa iz ECF-a ................................... 11

3.2 Stvaranje nove vrste genotipa .................................................................... 11

4. Poboljšavanje rješenja smještaja navođenjem odnosa ...................................... 19

4.1 Mane smještaja navođenjem odnosa.......................................................... 19

4.2 Postupci približavanja ................................................................................. 20

4.3 Postupci rotacije ......................................................................................... 24

5. Razmatranje prethodno razvijenog rješenja ....................................................... 29

5.1 Opis rješenja ............................................................................................... 29

5.2 Usporedba sa postupkom razvijenim u ovom radu ..................................... 30

6. Dodatna razmatranja ......................................................................................... 33

6.1 Utjecaj promjene vjerojatnosti mutacije na rješenja .................................... 33

6.2 Drugi način izračuna dobrote ...................................................................... 33

7. Prikaz različitih rješenja...................................................................................... 35

8. Zaključak ............................................................................................................ 39

9. Literatura ............................................................................................................ 40

Page 3: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

1

1. Uvod

1.1 Općeniti opis problema

Problem automatskog rezanja (engl. automatic nesting [1], cutting stock [2])

predstavlja proces izrade različitih dijelova iz ravne površine nekog materijala.

Problem je veoma bitan u automatiziranju proizvodnje različitih grana industrije

poput brodogradnje (izrada oplate broda), izrade namještaja, izradi ambalaža,

tekstilnoj industriji itd. Kako se od svakog industrijskog procesa zahtijeva da bude

što učinkovitiji, to se zahtijeva i od programskog rješenja automatskog rezanja u

vidu smanjenja troškova procesa poput smanjenja neiskorištenog materijala koji

ostaje nakon završetka rezanja, optimiranja putanje rezača prilikom rezanja ili

smanjenja ukupne energije utrošene u procesu rezanja.

Sam problem spada pod NP-teške probleme i iako postoje deterministički algoritmi

koji ovaj problem rješavaju na optimalan način njihovo izvođenje traje jako dugo. U

ovom radu će dijelovi koje treba izrezati biti predstavljeni konveksnim i konkavnim

poligonima kod kojih nema presijecanja stranica, a površina koju treba izrezati

pozitivnim dijelom koordinatnog sustava ograničenog zadanom širinom površine.

Pri tome se postavljeni dijelovi naravno ne smiju preklapati i iz opisa problema se

da naslutiti kako bi bilo poželjno da su što bolje slijepljeni. Neće se razmatrati

slučajevi sa dijelovima koji u sebi imaju rupe u koje se mogu postavljati drugi

dijelovi.

1.2 Prijašnji rad

Ovaj se rad nastavlja na projekt Deaka, Feliksa, Kostelca i Smoljana (2012.) koji je

za cilj imao razviti programsku okolinu za ispitivanje rješenja problema

automatskog rezanja dobivenih primjenom evolucijskih algoritama. Rad se temeljio

na radovima poput [3] i [4].

U okviru tog rada razvijeno je grafičko sučelje, te su implementirane komponente

poput izrade nasumičnih poligona te je implementirano rješenje koje smješta

dijelove na površinu evolucijom redoslijeda likova.

Page 4: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

2

Sam algoritam razmještavanja poligona po zadanoj površini u ovom rješenju

uzima evoluirani permutacijski genotip (redoslijed) pa dijelove koji imaju fiksirane

indekse razmješta uz pomoć implementacije determinističkog Bottom-Left

algoritma evoluiranim redoslijedom s obzirom na njihove omeđujuće pravokutnike.

Implementirano je i rješenje koji tako smještene dijelove nastoji zbližiti čim više

uporabom lokalnog pretraživanja algoritma Hooke-Jeevesa [6]. Evolucija

permutacijskog genotipa je postignuta uporabom ECF-a [5], odnosno njegove

implementacije u Javi.

U ovom se radu koriste razvijene komponente grafičkog sučelja uz sitne izmjene,

generiranja nasumičnih poligona i ECF, a rezultati dobiveni postupkom prikazanim

u ovom radu usporediti će se s rezultatima rješenja navedenog projekta.

Page 5: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

3

2. Osnovna ideja

2.1 Različiti pristupi prikaza i rješavanja problema

Problem razmještaja više oblika na istu površinu se može prikazati na više načina

te će direktno o tome ovisiti i rješenje problema. Glavni zahtjev je da se izabrani

način razmještaja može prikazati u obliku koji će evoluirati ili koji će omogućiti

evoluciju evolucijskim algoritmima. Jedno od pitanja koja se mogu postaviti

prilikom razmještanja oblika na površinu jest kako započeti razmještanje. Jedan od

odgovora jest da razmještanje započinjemo od neke referentne točke pa

uobičajeno referentnu početnu točku za smještanje oblika uzimamo ishodište

sustava kojeg čini površina na koju smještamo oblike.

Nakon što je izabrana referentna točka oblike možemo smještati navođenjem

odnosa između skupina oblika, smještanjem s obzirom na pravokutnu konturu već

smještenih oblika ili smještanjem s obzirom na poligonsku konturu već smještenih

oblika. Slijedi kratki opis navedenih načina, a kako je u ovom radu izabran prvi

način njemu je dodatno posvećeno posebno poglavlje.

2.1.1 Navođenje odnosa između skupina oblika

Glavna zamisao ovog načina razmještanja oblika jest da se navede odnos između

dvije skupine oblika, gdje se skupina može sastojati od minimalno jednog oblika.

Navođenjem odnosa između dvije skupine nastaje nova skupina koja sadrži sve

oblike iz te dvije skupine u navedenom međusobnom odnosu. Na kraju postupka

ostaje skupina u kojoj se nalaze svi oblici pa se kao takva smješta na referentnu

točku površine. Slika 2.1 prikazuje naveden postupak.

Page 6: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

4

Slika 2.1 prikaz odnosa

Gornja se slika može opisati ovako: oblik 2 je iznad oblika 1 i ta skupina (omeđena

plavim pravokutnikom) je desno od oblika 0, a iznad te skupine (zeleni

pravokutnik) je smješten oblik 3, a iznad te skupine (žuti pravokutnik) je smješten

oblik 4 i to čini krajnju skupinu (crveni pravokutnik).

Iz slike se može vidjeti glavni nedostatak ove metode - ostavlja puno

neiskorištenog prostora, no taj se nedostatak može umanjiti približavanjem

poligona. Glavne vrline ovog načina jesu razumljivost i jednostavnost.

2.1.2 Približavanje s obzirom na pravokutnu konturu

U ovom postupku se oblici dodaju slijedno na površinu uzimajući u obzir

pravokutnu konturu skupine već dodanih oblika na istu površinu. Pritom treba

izračunati na koju je točku te konture najbolje smjestiti omeđujući pravokutnik

oblika koji se dodaje, nakon toga približiti oblik prema skupini i ponovo preračunati

pravokutnu konturu za nadolazeći oblik. Slika 2.2 prikazuje pravokutnu konturu

skupine oblika i točke potencijalnog smještanja nadolazećeg oblika.

Slika 2.2 Pravokutna kontura

Page 7: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

5

U načelu bi ovaj način trebao biti sporiji jer se uz redoslijed dolaska poligona na

površinu dodatno treba odrediti i funkcija koja će procjenjivati na koju točku treba

postaviti pristigli poligon.

2.1.3 Približavanje s obzirom na poligonsku konturu

Ovaj način je sličan približavanju s obzirom na pravokutnu konturu, samo što ovdje

konturu čine stranice smještenih oblika, a ne stranice njihovih omeđujućih

pravokutnika. Dodatno možemo razmatrati koji točno vrh nadolazećeg oblika treba

staviti na određeni vrh, pa uz samo približavanje potrebno je i rotirati nadolazeći

poligon. Slika 2.3 prikazuje poligonsku konturu skupine oblika i točke potencijalnog

smještanja nadolazećeg oblika (obojane crveno).

Slika 2.3 Poligonska kontura

Iz slike vidimo da konture mogu imati kutove zanemarivih veličina i nebitne sitne

dijelove koji samo kompliciraju izbor odgovarajućeg vrha pa se pokazuje potreba

za preuređivanjem konture uklanjanjem takvih dijelova. Sam postupak dodatno

opterećuje ionako već zahtjevan način raspoređivanja pa bi ovaj način bio

najzahtjevniji, ali i potencijalno najbolji način za smještanje oblika.

2.2 Smještanje navođenjem odnosa

2.2.1 Definiranje pokaznog skupa oblika

Prije no što se krene u dodatno objašnjavanje kako smještanje oblika na ovaj

način radi, bilo bi dobro definirati skup oblika koji će se provlačiti po svim

primjerima u ovom radu. Skup poligona zajedno sa pripadajućim indeksima i

omeđujućim pravokutnicima prikazan je na slici Slika 2.4.

Page 8: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

6

Slika 2.4 Pokazni skup oblika

2.2.2 Objašnjenje postupka smještanja

Iako je način smještanja ukratko objašnjen prije, nije loše ideju i motivaciju ponoviti

na opširniji način zajedno sa grafičkim prikazom objašnjenja korak po korak.

Osnovni cilj ovog načina jest doći do takvog zapisa smještaja oblika u kojemu će

se smještaj oblika na površini u potpunosti moći odrediti na temelju međusobnih

odnosa oblika. Takav zapis bi trebao biti lišen svih vrijednosti koje predstavljaju

konkretnu lokaciju oblika na površini.

Promotrimo najprije slučaj kad imamo dva oblika: neka to budu oblici iz

pokaznog skupa. Ako fiksiramo oblik , tada oblik u odnosu na njega može biti

iznad, ispod, lijevo, desno. U ovom radu od navedenih smjerova uzeti su smjerovi

iznad i desno jer to omogućava jednaku ekspresivnost kao i da su uzeta sva četiri

navedena smjera (npr. reći da je lijevo od isto je kao reći da je desno od ).

No, još uvijek nije definirano što znači da je jedan oblik desno od drugog. U ovom

radu je uvedena sljedeća konvencija:

Neka su A i B oblici i neka su Ar i Br njihovi omeđujući pravokutnici. Kažemo da je

B desno od A akko se donja lijeva točka od Br podudara sa donjom desnom

točkom od Ar. Isto tako kažemo da je B iznad A akko se donja lijeva točka od Br

podudara sa gornjom lijevom točkom od Ar. Prikaz odnosa je na slici Slika 2.5.

Slika 2.5 Osnovni odnosi oblika

Page 9: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

7

Iz priložene slike se vidi kako je podjela smjerova na samo desno i gore previše

gruba u nekim slučajevima pa su zbog toga uvedeni i smjerovi desno-iznad te

iznad-desno. Definicija smjerova glasi:

Neka su A i B oblici i neka su Ar i Br njihovi omeđujući pravokutnici. Kažemo da je

B desno-iznad od A akko se donja lijeva točka od Br podudara sa točkom koja je

na sredini dužine određene sa donjom desnom i gornjom desnom točkom od Ar.

Isto tako kažemo da je B iznad-desno A akko se donja lijeva točka od Br podudara

sa točkom koja je na sredini dužine određene sa gornjom lijevom i gornjom

desnom točkom od Ar. Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6.

Slika 2.6 Dodatni odnosi oblika

U slučaju da imamo tri ili više oblika za smjestiti onda se navedeni odnosi gledaju

između dvije skupine oblika, pa vrijedi:

Neka je A skupina sa n razmještenih oblika i B skupina sa m razmještenih oblika;

onda je Ar omeđujući pravokutnik svih oblika unutar skupine A i Br omeđujući

pravokutnik svih oblika unutar skupine B. Smještanje skupina oblika se izvršava u

prethodno definiranim smjerovima za smještanje oblika samo što su u ovom

slučaju Ar i Br omeđujući pravokutnici skupine oblika, a ne samo jednog oblika.

Tako na primjer ako skupinu B smjestimo desno od skupine A, onda su svi oblici iz

skupine B desno od svih oblika iz skupine A, a poredak oblika unutar skupina A i B

isti je kao i prije smještanja. Važna napomena je da se oblik kao takav može

gledati kao skupina od jednog člana. Primjer na slici Slika 2.7 se sastoji od oblika

iz pokaznog skupa oblika.

Page 10: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

8

Slika 2.7 Raspored struktura

Iz slike vidimo da prvu strukturu (plavi pravokutnik) čine oblici i i u njoj su

smješteni tako da je desno od . Sljedeću strukturu (žuti pravokutnik) čini plava

struktura iznad oblika . Završnu strukturu (zeleni pravokutnik) čine oblik desno

od žute strukture.

Na slici Slika 2.8 slijedi primjer sa svih poligona i nakon toga kratak opis.

Slika 2.8 Složenija struktura

Iz slike trivijalno vidimo da ovu strukturu možemo podijeliti na gornju i donju. Opis

gornje je jednostavan: sastoji se od oblika sa indeksima ulančanih u

desno. Opisom gornje skupine pomoću skupina rekli bismo da oblici čine

skupinu u kojoj je desno od i prethodna skupina( ) čine skupinu u kojoj je

desno od prethodne skupine, i prethodna skupina ( ) čine skupinu u kojoj

je desno od prethodne skupine. Opis donje skupine pomoću skupina je sličan:

oblici čine skupinu u kojoj je desno od čine skupinu u kojoj je

desno od , skupina ( i ) i skupina ( ) čine skupinu u kojoj je skupina ( )

desno od skupine ( ), i prethodna skupina ( ) čine skupinu u kojoj je

desno od prethodne skupine. Na kraju skupina ( ) i skupina ( )

čine krajnju skupinu u kojoj je skupina ( ) iznad skupine ( ).

Page 11: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

9

Primijetimo kako se u slučaju donje i gornje skupine ista skupina može prikazati na

različite načine različitim odabirom grupiranja.

2.3 Prikaz zapisa u računalu

Iz prethodnog primjera zapisa skupina mogu se izvući dvije važne činjenice:

operacije grupiranja u strukturu izvode se hijerarhijski te je svako grupiranje bilo

provedeno nad dvije skupine. Ove dvije činjenice jednostavno nas navode na

strukturu podataka binarno stablo kojemu su listovi oblici, a čvorovi pozicije

smještaja. Unutarnji čvorovi u ovom slučaju također predstavljaju skupinu, rezultat

operacije smještaja dviju skupina. Na slici Slika 2.9 prikazano je binarno stablo

koje predstavlja primjer sa slike Slika 2.8.

Slika 2.9 Prikaz rješenja kao binarno stablo

Pošto je određena struktura binarnog stabla, može se razmotriti njena

implementacija u računalu: hoće li se binarno stablo implementirati pomoću polja

(memorijski neučinkovito ali brzo) ili putem čvorova koji sadrže reference na

čvorove (memorijski učinkovito, nešto sporije). Razmotrimo najgori slučaj: binarno

stablo ima listova i dubinu . To znači da je stablo od korijena raslo isključivo

u dubinu. Takav je slučaj moguć u raspoređivanju oblika kad se na primjer svaki

oblik nalazi iznad prethodno određene skupine. U slučaju najjednostavnijeg

prikaza binarnog stabla uz pomoć polja samo polje čvorova će biti u velikoj mjeri

ispunjeno prazninama koje imaju svoju memorijsku cijenu. Uklanjanje tih praznina

Page 12: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

10

može se postići pamćenjem dodatnih svojstava stabla u pojedinom čvoru poput

dubine čvora u stablu i veličine podstabla čiji je taj čvor korijen. Neke operacije

nakon izvođenja nad takvom strukturom zahtijevaju ponovo izračunavanje

svojstava nekih od čvorova i moguće pomicanje čvorova unutar polja. U ovom

radu je binarno stablo implementirano pomoću čvorova koji sadrže reference na

čvorove djecu zbog jednostavnijeg baratanja takvom strukturom podataka i

približno jednakog memorijskog troška za svaki mogući slučaj.

Nadalje, razmotrimo veličinu prostora rješenja za zadani broj oblika i zadani broj

smjerova smještanja . Točnije, zanima nas koliko različitih stabala možemo

generirati za zadane i . Rješenje ovog problema se može naći tako da se

izdvoji listove od ostale strukture stabla pa u stablu preostaje čvorova.

Koristeći čvorova može se generirati (2.1) struktura binarnog stabla po [7].

Odnosno sa ponuđenih smjerova i unutarnjih čvorova i sa permutacija

listova ukupni broj različitih stabala koji se mogu generirati ispada (2.2).

(2.1)

(2.2)

Vidi se kako dolazi do kombinatorne eksplozije i za male primjere. Tako za

dobije se rezultat od različitih stabala, dok se za

broj različitih stabala se penje preko . Toliko stabala je

jednostavno nemoguće ispitati u razumnom vremenu što znači da svakako treba

upotrijebiti nekakav heuristički algoritam.

U ovom radu se naravno razmatraju evolucijski algoritmi koji su inače prilagođeni

za evoluciju strukture stabla kao genotipa, no stablo kojim se prikazuje rješenje u

ovom radu ima neka posebna ograničenja koja će se razmotriti u idućem

poglavlju.

Page 13: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

11

3. Definiranje genotipa

3.1 Razmatranje uporabe postojećih genotipa iz ECF-a

U prethodnom smo poglavlju zaključili kako je za zapis rješenja pomoću

navođenja odnosa između oblika najpogodnija struktura binarnog stabla. ECF kao

genotip za evoluiranje nudi strukturu stabla koja se najčešće koristi prilikom

genetskog programiranja. No takav tip genotipa nije pogodan za ovaj problem

zbog toga što se broj listova ne može ograničiti na trivijalan način, a svaki pokušaj

evolucije rješenja sa točno n listova dodatno bi opteretio proces evolucije.

Jedno od takvih nepodobnih rješenja bi bilo da genotipu stablu navedemo n

različitih varijabli listova (gdje je n broj oblika) te pri evaluaciji stabla kaznimo one

kod kojih se jedna varijabla pojavila više puta ili se nije pojavila niti jednom. Vidimo

da se pri takvoj evoluciji fokus sa što učinkovitijeg rješavanja problema

raspoređivanja oblika prebacuje na pronalazak strukture koja je uopće zadovoljava

pretpostavke rješenja.

Upravo zbog navedenih razloga potrebno je stvoriti novi tip genotipa za proces

evolucije.

3.2 Stvaranje nove vrste genotipa

3.2.1 Razmatranje strukture

Promatranjem strukture stabla sa slike Slika 2.9 možemo primijetiti jedno bitno

svojstvo: listove možemo izdvojiti iz stabla u zaseban slijed a ostatak stabla može

postojati bez tih listova. Dodatno, u stablu nastalom izdvajanjem na mjesto listova

možemo postaviti indekse koji pokazuju na list u slijedu listova što može olakšati

evaluaciju jedinke u procesu evolucije. Tako razdvojene strukture su ekvivalentne

stablu zato jer iz njih trivijalno možemo izgraditi stablo. Razdvajanje je prikazano

na slici Slika 3.1.

Page 14: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

12

Slika 3.1 Prikaz izdvajanja permutacije i stabla

Slijed listova sadrži ispremiješane (permutirane) indekse oblika iz liste zadanih

oblika, a listovi u stablu sadrže indekse listova u slijedu listova. Slijed listova kao

se da prikazati jednim već postojećim genotipom u evolucijskim algoritmima:

genotipom permutacije. Može se onda kazati kako se novi genotip kojeg stvaramo

sastoji od permutacije i stabla koji opisuje odnose među elementima te

permutacije, odnosno može se prikazati kao nadogradnja permutacijskog

genotipa. Unutrašnje čvorove genotipa u pravilu čine objekti pomoću kojih se

izračunava rezultat smještanja oblika, te će krajnji rezultat u pravilu biti izračunat

putem korijenskog čvora stabla. Svaki čvor osim reference na čvorove djecu ima i

referencu na čvor roditelja. Nakon što smo definirali strukturu genotipa potrebno

je opisati operacije inicijalizacije (izgradnje), križanja i mutacije.

3.2.2 Inicijalizacija genotipa

Prije samog izvršavanja procesa inicijalizacije potrebno je genotipu predati broj

oblika koji se smještaju i u mapu čvorova postaviti objekte koji će obavljati

izračunavanje rezultata u unutrašnjim čvorovima.

Inicijalizacija kreće generiranjem slijeda brojeva od do uključivo gdje je

broj oblika. Takav se slijed permutira uzastopnim nasumičnim odabirom dva

elementa i njihovom zamjenom. Nakon što su se odabir i zamjena izvršili puta

inicijalizacija permutacije je gotova i započinje izgradnja stabla. Ovaj je dio

procesa prikazan na slici Slika 3.2.

Page 15: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

13

Na početku se generira slijed od listova koji u sebi sadrže indekse permutacije

tako da prvi list sadrži indeks , drugi itd. Nad slijedom se listova generira stablo

na način da se napravi novi čvor kojemu se pridružuje nasumični objekt,

nasumično odabere jedan element s indeksom od do uključivo, odabere

se i čvor (list) s indeksom , odabrani se čvorovi pridruže novonastalom čvoru

kao djeca, novonastali čvor zamijeni svoju djecu u slijedu čvorova (listova) i broj

elemenata u tom slijedu se smanji za . Proces se ponavlja dok se broj elemenata

u slijedu čvorova ne smanji na . Tada u slijedu čvorova ostaje samo korijenski

čvor stabla koji predstavlja isto. Izgradnja je prikazana na slici Slika 3.3.

Time završava inicijalizacija genotipa koja je prikazana na slikama Slika 3.2 i Slika

3.3 na primjeru veličine 5 i skupa čvorova koji se sastoji od iznad i desno.

Slika 3.2 Prikaz permutacije

Page 16: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

14

Slika 3.3 Izgradnja stabla

3.2.3 Operacija križanja

Križanje u načelu uzima dvije jedinke i na temelju njih stvara novu jedinku. U ovom

radu implementirana je jednostavna operacija križanja koja se oslanja na strukturu

genotipa. Pošto se struktura genotipa sastoji od odvojenih cjelina permutacije i

stabla, križanje jednostavno stvara novu jedinku tako da joj za permutaciju postavi

permutaciju prve jedinke, a za stablo postavi stablo druge jedinke. Operacija je

prikazana na slici Slika 3.4.

Page 17: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

15

Slika 3.4 Prikaz operacije križanja

3.2.4 Operacija mutacije

U ovom radu implementirana je operacija mutacije kojom se modificira izabrana

jedinka na sljedeći način: iz skupa čvorova kojeg čine svi unutrašnji čvorovi bez

korijenskog čvora i listova nasumično se odabire jedan čvor, spremi se referenca

na roditelja i kreće se s izmjenom podstabla kojeg određuje izabrani čvor. Izmjena

podstabla u prvom koraku određuje koji je dio permutacije pokriven tim genotipom

pa dodatno permutira taj dio permutacije. U drugom se koraku nad listovima tog

podstabla gradi novo stablo kako je već prikazano u prethodnom poglavlju. Nakon

što se izgradi novo podstablo korijen istog se pridruži spremljenu referencu čvora

roditelja. Postupak mutiranja jedinke permutacije i stabla prikazan je na slici Slika

3.5.

Page 18: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

16

Slika 3.5 Prikaz operacije mutacije

Nakon definiranja svih operacija potrebnih za proces evolucije potrebno je

definirati različite postupke ispravljanja mana izabranog postupka smještanja

oblika na površinu.

Page 19: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

17

3.2.5 Preslikavanje genotipa u rješenje

Bitna karakteristika genotipa stabla ujedno je i karakteristika ovog genotipa:

čvorovima stabla pridružuju se objekti čijim se pokretanjem izvršavaju operacije

opisane tim objektima. Samom strukturom stabla se pri pokretanju nastoji

oponašati ponašanje jednostavnog programa.

U ovom se slučaju pokretanjem korijenskog čvora genotipa nastoji simulirati

postupak smještanja prikazan u poglavlju 2. Rezultat izvođenja svakog čvora je

skupina oblika. Izvođenje je definirano rekurzivno: unutarnji čvor rezultate

pokretanja lijevog i desnog čvora nastoji smjestiti onako kako je čvor definiran (na

primjer, čvor desno će rezultat izvođenja desnog čvora smjestiti desno od rezultata

izvođenja lijevog čvora) i skupinu nastalu takvim smještanjem vraća kao rezultat.

Pri tom možemo razmatrati da je rezultat izvođenja lijevog čvora nepokretan

(statičan) u odnosu na rezultat izvođenja desnog čvora zato jer se rezultat

izvođenja desnog čvora smješta "oko" rezultata izvođenja lijevog čvora. Rezultat

izvođenja lista jest oblik na kojeg preko permutacije taj list pokazuje.

Na sljedećoj stranici na slici Slika 3.6 je prikazano izvođenje stabla uz pomoć

strelica koje označavaju tijek izvođenja i prikaz rezultata izvođenja čvora desno od

svakog čvora.

Page 20: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

18

Slika 3.6 Prikaz izvođenja stabla

Page 21: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

19

4. Poboljšavanje rješenja smještaja navođenjem odnosa

U ovom poglavlju se svi primjeri pokazuju nad jedinkom sa slike Slika 4.1 zajedno s

pokaznim skupom oblika definiranog na početku poglavlja 2.2.

Slika 4.1 Pokazna jedinka

4.1 Mane smještaja navođenjem odnosa

Mane se razmatraju nad rješenjem prikazanim na slici Slika 4.2.

Slika 4.2 Prikaz osnovnog rješenja

Page 22: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

20

Rezultat je takva skupina oblika čiji je omeđujući pravokutnik širine slikovna

elementa, a visine slikovnih elemenata (površine ). Prva mana koja

upada u oči jest da između oblika kojima se omeđujući pravokutnici dodiruju postoji

slobodnog prostora. Druga mana jest da su skupine oblika naizgled potpuno

odvojene. Za ispravljanje obje mane intuitivna zamisao jest ista: oblike treba približiti.

4.2 Postupci približavanja

Prije opisa načina približavanja potrebno je odrediti kada će se približavanje

provoditi. Uz način izvođenja definiran u poglavlju 3 približavanje bi bilo intuitivno

obavljati za svaki čvor nakon koraka smještaja. Tako se postiže približavanje koje

prvo djeluje nad listovima pri grupiranju u skupine, a kasnije kako se izvođenje

"penje" po višim razinama stabla približavanje djeluje nad skupinama.

Nadalje potrebno je definirati smjer približavanja, a za to će nam poslužiti informacija

koja se nalazi u čvoru koji smješta oblike: odnos između skupina oblika. Intuitivno,

smjer približavanja je suprotan od opisa odnosa skupina oblika. Tako na primjer ako

imamo skupino poligona B koje je desno od skupine poligona A onda je smjer

približavanja skupine B skupini A lijevo.

Matematički se smjer približavanja može odrediti vektorom od točke na koju se

smještanjem postavlja skupina koja je rezultat desnog čvora do točke na koju je

smještena donja lijeva točka omeđujućeg pravokutnika skupine rezultata izvođenja

lijevog čvora (u ovom radu je to uvijek točka ).

Sam položaj maksimalno približenog oblika se određuje binarnim pretraživanjem po

zadanom vektoru približavanja kako je to prikazano na slici Slika 4.3.

Page 23: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

21

Slika 4.3 Prikaz binarnog približavanja oblika

4.2.1 Jednostavno približavanje

Svojstvo jednostavnog približavanja je da se skupine oblika gledaju kao cjelina i da

se skupina dobivena izvršavanjem desnog čvora približava skupini dobivenoj

izvršavanjem lijevog čvora dok god nema nikakvog presjeka između oblika tih dviju

skupina. Kad bilo koji oblik druge skupine dodirne bilo koji oblik prve skupine

približavanje staje. Posljedica toga je da se svi oblici u skupini koja se približava

translatiraju za isti vektor. Prikaz približavanja nad zadanom jedinkom je prikazan na

slici Slika 4.4.

Slika 4.4 Jednostavno približavanje

Omeđujući pravokutnik ovakve skupine oblika je širine i visine , odnosno

površine , što je bolje od rješenja bez približavanja. Prednost ovog

postupka je što je najbrži i daje dosta dobre rezultate s obzirom na tehnike

Page 24: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

22

približavanja opisane dalje u tekstu, a mane su da se neki oblici iz skupa kojeg

približavamo mogu još dodatno približiti (primjerice oblik ) i nije previše fleksibilno.

4.2.2 Jednostavno približavanje s dodatnim pojedinačnim približavanjem

Ovaj postupak predstavlja modifikaciju prethodno pokazanog postupka jednostavnog

približavanja na takav način da se nakon završenog približavanja skupina dodatno

još jednom pokuša približiti sve oblike iz skupine oblika koju se približava u smjeru

određenog vektora onim redoslijedom kojim su navedeni u skupini. Rješenje

dobiveno ovim postupkom prikazano je na slici Slika 4.5

Slika 4.5 Dodatno pojedinačno približavanje

Dobivena skupina oblika ima omeđujući pravokutnik širine , visine , odnosno

površine , što je bolje od jednostavnog približavanja. Za ovaj primjer se

vidi iz slike kako je oblik nešto niže nego u rješenju s jednostavnim približavanjem,

a to vrijedi i za oblik . Prednost ovog postupka je da će oblici biti bolje približeni, a

mana je sporiji rad. Nadalje, pošto se pojedinačno približavanje izvodi nad oblicima

redoslijedom kojim su navedeni u skupini, može se dogoditi da će približavanje prvo

zapasti oblik koji se nalazi iza oblika koji još nije približen, a koji će to biti kasnije pa

se između njih stvara rupa pošto se pojedinačno približavanje izvrti samo jednom.

Ovaj postupak je malo fleksibilniji zato što omogućava implementaciju dodatnih

postupaka na više mjesta. Osim toga pojedinačno približavanje može uz sretni splet

okolnosti postaviti oblik u šupljinu skupine oblika koji se ne približavaju što proizlazi iz

činjenice kako se približavanje obavlja binarnim pretraživanjem.

Page 25: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

23

4.2.3 Jednostavno približavanje s višestrukim pojedinačnim približavanjem

Ovaj postupak je u načelu sličan prethodnom uz malu modifikaciju: pojedinačno

približavanje se izvede više puta (dok nema promjene) kako bi se uklonila mogućnost

nastanka rupa između oblika iz iste skupine. Rezultat postupka ovdje nije prikazan

pošto nema smisla za manje primjere.

Mana je naravno sporije izvođenje od svih dosad navedenih načina približavanja.

4.2.4 Ispitivanja različitih oblika približavanja

U ovom se poglavlju navode rezultati ispitivanja evolucije s navedenim postupcima

približavanja nad skupovima oblika. Uvjet po kojem se procjenjuju jedinke jest visina

dobivenog omeđujućeg pravokutnika. Generacije u procesu evolucije sastoje se od

jedinki, granica do koje evolucija napreduje je postavljena na generacija,

odnosno bez napretka uz vjerojatnost mutacije Svako ispitivanje je

pokrenuto pet puta, prikazane su minimalne i srednje vrijednosti dobrote, te srednje

vrijeme izvršavanja.

Ispitivanja napravljena nad skupom od oblika sa zadanom širinom spremnika

prikazana su u tablici Tablica 4.1.

Tablica 4.1 Prikaz rezultata nad skupom od 20 oblika

Prosječna dobrota Najmanja dobrota Vrijeme izvođenja

Jednostavno

Pojedinačno

Višestruko

Ispitivanja napravljena nad skupom od oblika sa zadanom širinom spremnika

prikazana su u tablici Tablica 4.2.

Page 26: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

24

Tablica 4.2 Prikaz rezultata nad skupom od 30 oblika

Prosječna dobrota Najmanja dobrota Vrijeme izvođenja

Jednostavno

Pojedinačno

Višestruko

Iz tablice Tablica 4.1 vidljivo je veliko poboljšanje ako se primjenjuju neke od tehnika

zbližavanja: iz ovih mjerenja dalo bi se iščitati kako je najisplativije izabrati dodatno

pojedinačno približavanje jer daje rezultate bliske višestrukom približavanju (

bolje od jednostavnog), a dvostruko je brže.

Iz tablice Tablica 4.2 možemo vidjeti kako pojedinačno približavanje nije dalo bolji

rezultat od jednostavnog, dok više struko jest i to bolji. No taj rezultat teško

može opravdati duže vrijeme izvođenja.

4.3 Postupci rotacije

Postupcima približavanja postignuto je da se oblici grupiraju u jednu konzistentnu

skupinu u kojoj se oblici međusobno dodiruju. No većina oblika ne dodiruje se na

takav način da bi ih smatrali slijepljenima jer imaju samo jedno diralište sa svim

ostalim oblicima na površini. Cilj je postignuti takav razmještaj oblika da jedan oblik

ima barem dva dirališta uzimajući u obzir ostale oblike i granice površine.

Upravo zbog toga prilikom postupka približavanja pamtimo točku dirališta oblika sa

ostalim oblicima kako da bi oblik koji je približen znali rotirati oko te točke dokle god

broj dirališta s tim oblikom prestaje biti jedan. Postupak je prikazan na slici Slika 4.6.

Slika 4.6 Prikaz koraka rotacije

Page 27: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

25

Pronalazak kuta za rotiranje oblika oko dirališta se temelji na modifikaciji algoritma

lokalne pretrage Hooke-Jeevesa [6]. Algoritam u svoj osnovnoj varijanti nastoji

pronaći lokalni minimum zadane funkcije. Kako funkcija koja bi točno opisala

optimalnu situaciju sljepljivanja oblika nije poznata, algoritmu se predaje jedna od

heurističkih funkcija. No heuristička funkcija svoj lokalni minimum uobičajeno ne

dostiže u situaciji sljepljivanja oblika pa je napravljena sljedeća modifikacija: rezultat

heurističke funkcije se koristi u prva dva uspješna pretraživanja prostora samo kako

bi se odredio smjer u kojem će se oblik rotirati, a nakon toga se maksimizira

apsolutna vrijednost kuta rotacije pa se algoritam tada ponaša kao obično binarno

pretraživanje.

Heurističke funkcije opisane su u nastavku.

4.3.1 Funkcija minimizacije visine omeđujućeg pravokutnika

Ova heuristička funkcija jednostavno kao vrijednost vraća visinu omeđujućeg

pravokutnika koja se rotacijom u prvim koracima nastoji minimizirati. Rezultat je da će

se oblik rotirati u smjeru "prema dolje" što ne znači da će uvijek pratiti strukturu

skupine u odnosu na koju se rotira što znači da neće biti slijepljen na optimalan

način. Na slici Slika 4.7 se prikazuje primjenjivanje rotacije s ovom heuristikom nad

skupinom poligona dobivenom jednostrukim pojedinačnim približavanjem.

Slika 4.7 Prikaz rješenja s minimizacijom visine pravokutnika

Omeđujući pravokutnik ovakvog rješenja je širine i visine , odnosno površine

, što predstavlja poboljšanje od s obzirom na rješenje bez približavanja.

Vezano uz sliku: na prvi pogled se vidi kako oblik nije do kraja rotiran. To se naime

Page 28: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

26

događa zbog pogreške u određivanju dirališta oko kojeg će se oblici rotirati pošto

računalo ne raspoznaje jednu točku kao diralište, već njih tri. Kao točka dirališta se

onda uzima aritmetička sredina tih točaka, a oblik se nastoji udaljiti od tog dirališta za

neku malu udaljenost i tada on više ne dira ostale oblike. Tada se rotacija izvršava

oko izračunatog dirališta od kojeg je oblik udaljen za malu udaljenost dok se ponovo

oblici ne dodiruju često u nekoj drugoj točki, ali u ovom slučaju istoj točki. Osnovna

prednost ove funkcije je njezino brzo izvršavanje, a mana je moguća neoptimalnost

radi nepraćenja strukture s obzirom na koju se rotira što u stvarnosti ne predstavlja

velik problem.

4.3.2 Funkcija maksimizacije površine presjeka omeđujućih pravokutnika

Ova funkcija uzima u obzir zbroj površina presjeka omeđujućih pravokutnika svih

oblika na površini sa omeđujućim pravokutnikom oblika kojeg se rotira. Ovim se na

posredan način gleda odrediti koja će strana rotacije bolje odgovarati rotiranom

obliku, to jest za koju će se stranu rotirajući oblik bolje uklopiti u skupinu. Rješenje

dobiveno ovim postupkom je prikazano na slici Slika 4.8.

Slika 4.8 Prikaz rješenja površine presjeka pravokutnika

Omeđujući pravokutnik ovog smještaja je širine i širine , odnosno površine

što predstavlja minimalno poboljšanje u odnosu na prethodnu heurističku

funkciju uz povećanje visine što može biti glavni parametar evaluacije jedinke. Iz

slike vidimo kako su oblici nekako zbijeniji u strukturu konačne skupine. Prednost

funkcije je što je vjerojatan odabir optimalne strane za rotaciju, no vrijeme izvođenja

je nešto veće zbog izračunavanja presjeka sa svim oblicima na površini.

Page 29: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

27

4.3.3 Ispitivanja različitih načina rotacije

Za izvršavanje ispitivanja odabrano je jednostavno približavanje s dodatnim

pojedinačnim približavanjem jer je taj način dosta brži od približavanja sa dodatnim

višestrukim približavanjem, a i nudi više mogućnosti za primjenu rotacije od

jednostavnog približavanja bez dodatnog približavanja.

Generacije u procesu evolucije se sastoje od jedinki dok je granica do koje

evolucija napreduje postavljena na generacija, odnosno generacija bez

napretka. Vjerojatnost mutacije je . Uvjet po kojem se procjenjuju jedinke jest

visina dobivenog omeđujućeg pravokutnika. Svako ispitivanje je pokrenuto pet puta,

prikazane su minimalne i srednje vrijednosti dobrote, te srednje vrijeme izvršavanja

za svaku heurističku funkciju postupka rotacije.

Ispitivanja obavljena nad skupom od oblika uz zadanu širinu spremnika od

prikazana su na tablici Tablica 4.3.

Tablica 4.3 Prikaz rezultata nad skupom od 20 oblika

Prosječna dobrota Najmanja dobrota Vrijeme izvođenja

Minimizacija visine

Maksimizacija površine

Ispitivanja obavljena nad skupom od oblika uz zadanu širinu spremnika od

prikazana su na tablici Tablica 4.4.

Tablica 4.4 Prikaz rezultata nad skupom od 30 oblika

Prosječna dobrota Najmanja dobrota Vrijeme izvođenja

Minimizacija visine

Maksimizacija površine

Page 30: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

28

Usporedbom tablica Tablica 4.1 i Tablica 4.3 vidimo da se u slučaju pojedinačnog

približavanja prosječna dobrota poboljšala u najboljem slučaju, a vrijeme

izvođenja uvećalo . Usporedbom tablica Tablica 4.2 i Tablica 4.4 vidimo kako se

prosječna dobrota u najboljem slučaju poboljšala , a vrijeme izvođenja uvećalo

. Također valja primijetiti kako predloženi načini rotacije imaju međusobno

usporediva vremena koja su u jednom slučaju gotovo identična, a u drugom bliska

što znači kako je udarac na performanse oba načina podjednak.

Page 31: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

29

5. Razmatranje prethodno razvijenog rješenja

5.1 Opis rješenja

Rješenje razvijeno na projektu, na koji se ovaj završni rad nastavlja, ima iste

pretpostavke: odabire se referentna točka površine (u koordinatnom sustavu je to

najčešće (0,0)) te se nakon toga oblici smještaju desno i iznad te točke uz

ograničenje zadane širine površine. Osnovno smještanje oblika se izvodi uz pomoć

implementacije Bottom-left algoritma kojom se oblik s obzirom na njegov omeđujući

pravokutnik smješta najviše moguće dolje i najviše moguće lijevo na površinu. U

implementaciji tog algoritma za svaki se oblik računa njegov omeđujući pravokutnik,

smješta se iznad svih omeđujućih pravokutnika već dodanih oblika time stvarajući

moguće rješenje smještaja te se za svako takvo moguće rješenje određuje najviše

moguće lijeva pozicija. Kako je algoritam deterministički konačno rješenje se nastoji

poboljšati izmjenom redoslijeda postavljanja oblika na površinu, a kako za n oblika

postoji ukupno n! različitih redoslijeda dovoljno se dobar redoslijed pronalazi

uporabom evolucijskih algoritama. Na slici Slika 5.1 je prikazan rezultat smještaja za

permutaciju koja se dobije izdvajanjem iz pokazne jedinke prošlog poglavlja uz

zadanu širinu 400.

Slika 5.1 Prikaz rješenja dobivenog BL algoritmom

Page 32: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

30

Omeđujući pravokutnik takvog rješenja je širine 399 i visine 270, odnosno površine

107730. Kako bi se rješenje dodatno poboljšalo uvodi se postupak približavanja koji

se temelji na algoritmu lokalne pretrage Hooke-Jeevesa. Postupak se provodi nakon

prethodno opisanog određivanja točke. Pokušava se pronaći povoljnija točka za

translaciju oblika maksimizirajući površinu presjeka omeđujućih pravokutnika oblika

koji se približava i već postavljenih oblika te smanjivanjem na koju se oblik postavlja.

Rezultati dobiveni takvim približavanjem prikazani su na slici Slika 5.2.

Slika 5.2 Prikaz rješenja BL algoritma uz približavanje

Širina omeđujućeg pravokutnika ove skupine je 368, visina 248 i ukupna površina je

stoga 91264.

5.2 Usporedba sa postupkom razvijenim u ovom radu

Kako bi se usporedila dva postupka približavanja, postupak približavanja razvijen u

prijašnjem radu, Bottom-left heuristika u kombinaciji sa približavanjem temeljenom na

algoritmu Hooke-Jeevesa uz maksimizaciju površine presjeka omeđujućih

pravokutnika, je podvrgnut istim ispitivanjima sa istim uvjetima kao što je napravljeno

s postupkom razvijenom u ovom radu. Rezultati su prikazani usporedno.

Rezultati ispitivanja nad skupom od oblika prikazani su u tablici Tablica 5.1. Kao

mjera dobrote korištena je visina omeđujućeg pravokutnika završnog rješenja.

Page 33: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

31

Tablica 5.1 Usporedba nad skupom od 20 oblika

Postupak Srednja dobrota Najmanja dobrota

Bottom-left HJ

Višestruko približavanje

Rezultati ispitivanja nad skupom od oblika prikazani su u tablici Tablica 5.2. Kao

mjera dobrote korištena je visina omeđujućeg pravokutnika završnog rješenja.

Tablica 5.2 usporedba nad skupom od 30 oblika

Postupak Srednja dobrota Najmanja dobrota

Bottom-left HJ

Višestruko približavanje

Rezultati pokazuju kako je prethodno razvijeni postupak bolji u smještaju oblika na

površinu. Jedna prednost načina približavanja razvijenog u ovom radu nad onim

razvijenom u prošlom jest da evaluacija jedinke ili generacije traje kraće, no i ta se

prednost poništava kad se uzme u obzir kako prijašnji postupak do završnog rješenja

postupka evolucije dolazi u mnogo ranijoj fazi procesa evolucije.

Zanimljivo je i ispitati kako to postupak razvijen u prethodnom radu razmješta oblike

na temelju permutacija razvijenih načinom razmještanja prikazanom u ovom radu. To

je moguće napraviti zato što se iz razvijenog genotipa permutacija može lako odvojiti

u zasebnu cjelinu. Rezultati su prikazani u tablici Tablica 5.3.

Page 34: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

32

Tablica 5.3 rezultati smještanja oblika permutacijom rezultatom evolucije novog genotipa

Broj oblika Srednja dobrota Najmanja dobrota

20 449.0 401

30 511.4 469

Iz prikazanih rezultata se može zaključiti kako smještanje rješenja razvijenog

evolucijom genotipa razvijenog za potrebe ovog rada Bottom-left heuristikom uz

dodatno približavanje algoritmom lokalne pretrage Hookea-Jeevesa ne daje

zadovoljavajuće rezultate pošto su rezultati lošiji i od rezultata dobivenih primjenom

postupka jednostavnog približavanja nad rješenjem dobivenim evolucijom razvijenog

genotipa.

Page 35: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

33

6. Dodatna razmatranja

6.1 Utjecaj promjene vjerojatnosti mutacije na rješenja

Jedna od parametara evolucijskog procesa koje je posebno vrijedilo razmotriti jest

vjerojatnost primjene mutacije nad jednom generacijom. Za određivanje tog

parametra koji se dalje koristio u ispitivanjima napravljeno je pet ispitivanja sa

različitim vrijednostima istog nad skupom od oblika sa višestrukim pojedinačnim

približavanjem. Rezultati ispitivanja su prikazani u tablici Tablica 6.1.

Tablica 6.1 utjecaj vjerojatnosti mutacije na rješenje

Vjerojatnost

mutacije Srednja dobrota Najmanja dobrota

Iz tablice se može zaključiti kako se mutacija najbolje djeluje uz vjerojatnost , dok

za manje ili veće vrijednosti srednja i najmanja dobrota rastu, odnosno rješenje se

pogoršava.

6.2 Drugi način izračuna dobrote

U radu su do sada sva prikazana rješenja i rezultati kao dobrotu uzimali visinu

omeđujućeg pravokutnika rezultata. Takva rješenja su gledala kako minimizirati

utrošak površine sa zadanom širinom. Ako bi se gledala površina ostatka (škart)

isključivo između oblika kojih smještamo tada bi bolja ocjena rješenja bila razlika

Page 36: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

34

površine omeđujućeg pravokutnika i zbroja površine svih oblika. Kako je zbroj

površine svih oblika konstantan zato što razvijamo rješenje za zadan skup oblika,

parametar kojeg će proces evolucije nastojati minimizirati jest samo površina

omeđujućeg pravokutnika.

Usporedba rezultata dobivenog minimizacijom visine i minimizacijom površine uz

jednostavno približavanje s dodatnim višestrukim pojedinačnim približavanjem se

nalazi na slici Slika 6.1.

Slika 6.1 usporedba različitih načina računanja dobrote

Razmještaj s lijeve strane je dobiven minimizacijom visine i njegov je omeđujući

pravokutnik dimenzija , odnosno površine . Razmještaj s desne

strane je pak dobiven minimizacijom površine i njegove dimenzije glase ,

odnosno ima površinu od . Iz slike vidimo da su oblici ipak malo zbijeniji na

slici lijevo što rezultira malom površinom. Takav način izračuna dobrote može biti

koristan kad dimenzije površine na koju trebamo smjestiti oblike nisu unaprijed

zadane jer se onda površina može prilagoditi oblicima za što manju količinu otpada.

Page 37: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

35

7. Prikaz različitih rješenja

U ovom poglavlju će biti prikazana najbolja rješenja dobivena u postupku pisanja

rada uporabom razvijenih postupaka razmještanja i približavanja.

Na slici Slika 7.1 se vidi najbolje rješenje dobiveno nad skupom od oblika koristeći

postupak jednostavnog približavanja uz dodatno višestruko približavanje i dobrotu

izraženu visinom omeđujućeg pravokutnika. Širina spremnika je postavljena na .

Omeđujući pravokutnik rješenja je dimenzija , odnosno površina .

Slika 7.1 prikaz najboljeg rješenja dobivenog nad skupom od 20 oblika

Na slici Slika 7.2 se vidi najbolje rješenje dobiveno nad skupom od oblika koristeći

postupak jednostavnog približavanja uz dodatno jednostruko približavanje uz dodanu

rotaciju s heurističkom funkcijom maksimizacije površine i dobrotu izraženu visinom

omeđujućeg pravokutnika. Širina spremnika je postavljena na . Omeđujući

pravokutnik rješenja je dimenzija , odnosno površina .

Page 38: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

36

Slika 7.2 prikaz najboljeg rješenja dobivenog nad skupom od 20 oblika uz rotaciju

Slika 7.3 prikazuje najbolje rješenje dobiveno uporabom jednostavnog približavanja

uz dodatak višestrukog pojedinačnog približavanja nad skupom od oblika uz

dobrotu izraženu visinom omeđujućeg pravokutnika. Ograničenje širine spremnika je

postavljeno na . Omeđujući pravokutnik tog rješenja je dimenzija ,

odnosno površine .

Slika 7.3 prikaz najboljeg dobivenog rješenja nad skupom od 30 oblika

Slika 7.4 prikazuje najbolje rješenje dobiveno uporabom postupka jednostavnog

približavanja sa dodatnim jednostrukim pojedinačnim približavanjem uz dodanu

rotaciju sa heurističkom funkcijom maksimizacije površine nad skupom od oblika

Page 39: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

37

uz dobrotu izraženu visinom omeđujućeg pravokutnika. Ograničenje širine spremnika

je postavljeno na . Omeđujući pravokutnik je dimenzija , odnosno

površine .

Slika 7.4 prikaz najboljeg dobivenog rješenja nad skupom od 30 oblika uz rotaciju

Na slici Slika 7.5 prikazan je rezultat dobiven smještanjem skupa od pravilnih

poligona na površinu ograničenu širinom .

Slika 7.5 rezultat smještanja pravilnih poligona

Na slici Slika 7.6 prikazan je rezultat smještanja skupa od kvadrata različitih

veličina na površinu ograničenu širinom .

Page 40: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

38

Slika 7.6 rezultat smještanja kvadrata

Page 41: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

39

8. Zaključak

Razvijeni genotip i dodatni načini poboljšavanja rješenja su polučili prihvatljive

rezultate pri primjeni na različite skupove oblika. Glavni zaključak jest da osnovno

rješenje, iako čini solidnu bazu za uporabu postupaka poboljšavanja, bez ikakvih

postupaka poboljšavanja nikako nije prihvatljivo zbog prevelike odvojenosti oblika i

previše praznog prostora između njih što bi, u slučaju da se takvo rješenje uporabi u

praksi, stvorilo ogromne gubitke zbog velike količine škarta.

Već najosnovniji razvijen postupak približavanja osnovno rješenje značajno

poboljšava. Svaki napredniji postupak približavanja rješenje može poboljšati u nekoj

manjoj mjeri, no zato će vrijeme izvođenja uvećati u većoj mjeri. Tako se za

najnapredniji postupak približavanja (jednostavno približavanje s višestrukim

pojedinačnim približavanjem) može vidjeti kako je u svakom slučaju polučio najbolje

rješenje, no isto tako je u svakom slučaju izvođenje daleko najdulje potrajalo.

Uvođenje postupaka rotacije je rješenja dodatno poboljšalo u manjoj mjeri, a

primjenom tih postupaka izgleda kao da su oblici u rješenjima više zbijeni nego bez

primjene postupaka rotacije, što je na kraju i bio cilj. Nažalost, uvođenje metoda

rotacije je dodatno opteretilo izvođenje evolucije što rezultira puno sporijim

programom.

Daljnja poboljšanja u sklopu razvijenog programa bi se ponajprije fokusirala na

smanjenje vremena izvođenja i to uvođenjem raznih postupaka raspršivanja (engl.

hash) površine na koju se smještaju oblici kako se ne bi svi oblici trebali ispitivati pri

postupku približavanja odnosno rotacije. Nadalje, pošto je primijećeno da se dosta

jedinki kroz generacije ponavlja, pohranom prethodno izračunate generacije u tablicu

raspršivanja izbjeglo bi se računanje dobrote već evaluiranih jedinki. Ubrzavanjem

izvođenja bi se omogućila uporaba najnaprednijih tehnika približavanja uz dodavanje

postupaka rotacije i izvršavanje procesa s takvim postupcima u razumnom vremenu.

U usporedbi s načinom razmještanja razvijenom na projektu ovaj postupak daje lošija

rješenja, dok se način razvijen na projektu još sporije izvodi u pogledu evaluacije

jedne jedinke, no brže konvergira ka krajnjem rješenju što ga sve u svemu čini boljim

izborom.

Page 42: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

40

9. Literatura

[1] Nesting, http://en.wikipedia.org/wiki/Nesting_(process), 10.06.2013.

[2] Cutting stock problem, http://en.wikipedia.org/wiki/Cutting_stock_problem,

10.06.2013.

[3] Lidong Liang, Jiawei Ye: A Solution of Irregular Parts Nesting Problem Based on

Immune Genetic Algorithm; 2008.;

[4] Henry Lamousin, Warren N Waggenspack, Jr: Nesting of two dimensional

irregular parts using a shape reasoning heuristic; 1997.;

[5] Evolutionary Computation Framework, http://gp.zemris.fer.hr/ecf/, 10.06.2013

[6] Algoritam Hooke-Jeeves, http://www.fer.unizg.hr/_download/repository/hj.html,

10.06.2013.

[7] Kombinatorika binarnih stabala,

http://en.wikipedia.org/wiki/Binary_tree#Combinatorics, 10.06.2013.

Page 43: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

41

Rješavanje problema rezanja uporabom genetskog programiranja

U sklopu ovog rada je uspješno razvijen i pokazan genotip koji omogućava

rješavanje problema automatskog rezanja i dijela koji se tiče optimiranja razmještaja

oblika po površini zadane širine uz pomoć evolucijskih algoritama. Razvijene su i

različite tehnike poboljšavanja rješenja dobivenog evolucijom zadanog genotipa i za

svaku od njih su navedena karakteristična svojstva.

Razvijeno se rješenje temelji na smještaju oblika navođenjem međusobnog odnosa

između istih. Genotip pogodan za prikaz rješenja i evoluciju sastoji se od permutacije

i binarnog stabla kao nadgradnjom te permutacije. Uz to prikazan je način izvođenja

jedinke genotipa.

Kako osnovno rješenje smještanja nije dobro prikazani su različiti načini približavanja

i rotacije za koje vrijedi da što način približavanja daje bolji rezultat to je i vremenski

zahtjevniji. Na samom kraju prikazan je utjecaj mijenjanja vjerojatnosti mutacije na

rješenja, te je napravljena usporedba sa postupkom razvijenim na projektu.

Ključne riječi: evolucijski algoritam, genetski algoritam, genotip, problem

automatskog rezanja, smještanje oblika

Page 44: Rješavanje problema rezanja uporabom genetskog programiranja · Grafički prikaz ovih odnosa se nalazi na slici Slika 2.6. Slika 2.6 Dodatni odnosi oblika U slučaju da imamo tri

42

Automated cutting using genetic programming

As a part of this paper a genotype that enables solving the automatic nesting

problem and the optimisation of shape placing on a rectangular area of a defined

width with genetic algorithms is developed and introduced. Different techniques for

enhancing the result obtained through the process of evolution have been developed

and their characterisic properties have been stated.

The developed solution bases upon placing the shapes by stating relations between

them. The genotype suitable for the representation of the result and the process of

evolution consists of a permutation vector and a binary tree as a superstructure of

that permutation. The way in which one result executes is also presented in this

paper.

As the basic way of placing shapes is not good enough, different ways of bringing

shapes closer and shape rotation, where for each way the rule that the better the

result that way produces the more time consuming that way is applies, have been

introduced. In the very end the influence of mutation probability on the quality of

results has been considered and a comparison between this and the solution

developed as a part of previous work has been made.

Key words: evolutionary algorithm, genetic algorithm, genotype, automatic nesting

problem, shape placing