rješavanje problema rezanja uporabom genetskog programiranja · grafički prikaz ovih odnosa se...
TRANSCRIPT
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.
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
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.
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.
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.
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
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.
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
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.
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 ( ).
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
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.
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.
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.
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
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.
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.
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.
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.
18
Slika 3.6 Prikaz izvođenja stabla
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
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.
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
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.
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.
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
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
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.
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
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.
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
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.
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.
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.
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
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.
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 .
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
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 .
38
Slika 7.6 rezultat smještanja kvadrata
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.
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.
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
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