bab ii tinjauan pustaka -...
TRANSCRIPT
7
BAB II TINJAUAN PUSTAKA
2.1. Timetable Scheduling
Timetablemenurut Wren (1996) adalah kejadian tertentu yang
membutuhkan tempat yang tidak secara langsung mengutarakan alokasi dari
sumber, contohnya adalah timetable bus atau kereta api yang menunjukkan kapan
kereta api atau bus berangkat dan rute perjalanan kereta api atau bus tersebut,
tetapi tidak menunjukkan alokasi kendaraan maupun supir. Proses pengalokasian
inilah yang dinamakan scheduling atau timetable scheduling.
Timetable schedulingatau penjadwalan tersebut kemudian didefinisikan
oleh Chu dan Fang (1999) sebagai perencanaan berbasis waktu dan combinational
optimization yang diselesaikan dengan kerjasama antara pencarian dan heuristik,
yang biasanya mengarah pada solusi yang memuaskan tetapi suboptimal.Terdapat
banyak jenis problem penjadwalan dalam kehidupan sehari-hari, seperti ujian,
perkuliahan, dan jadwal transportasi.
Kemudian timetablescheduling didefinisikan kembali oleh Qarouni-Fard et
al. (2007) sebagai pengalokasian satu set event ke dalam sejumlah ruangan dan
timeslot dimana sejumlah batasan (constraints) harus dipenuhi. Banyak jenis
problem penjadwalan yang ada dalam kehidupan sehari-hari, contohnya adalah
penjadwalan matakuliah, ujian dan transportasi.Problem penjadwalan yang paling
umum adalah University Course Timetabling Problem (UCTP) dan Exam
Timetabling Problem (ETP).
8
Menurut Ho et al. (2008), problem penjadwalan biasanya berhadapan
dengan bagaimana mendistribusikan resourcesecara efektif. Resourceini biasanya
bersifat terbatas dan tidak ada dua pekerjaan (tasks) yang menggunakan resource
yang sama dalam waktu yang sama.
Dalam timetable scheduling,events harus diatur ke dalam waktu tertentu
(timeslot) untuk memenuhi constraints yang ada.Burke et al. (1997) membagi
constraint yang menjadi pertimbangan menjadi dua jenis, yaitu Hard Constraints
yaitu batasan yang harus dipenuhi dalam timetable agar dapat digunakan (layak)
dan Soft Constraints yaitubatasan yang diinginkan tapi tidak benar-benar
diperlukan.
2.2. Sejarah Timetable Scheduling
Timetableschedulingyang sebelumnya masih dilakukan secara manual,
yaitu dengan menggunakan tenaga dan pikiran manusia, mulai berubah kearah
penggunaan komputer.Perubahan ini dimulai ketika D. de Werra pada tahun
1985mulai memperkenalkan tentang timetabling, dalam penelitiannya tersebut de
Werra masih menggunakan teknik graph dan networks.Walaupun pada akhirnya
penelitian tersebut dapat menyelesaikan permasalahan examtimetabling problem
maupun course timetabling problem dalam transaksi dengan skala kecil namun
memiliki permasalahan dalam transaksi skala besar (Lai et al., 2006).
Karena perkembangan transaksi timetablingyang terus meningkat menjadi
skala yang besar, penelitian-penelitianpada timetablingini
jugaterusmeningkat.Penelitian timetabling tersebut sudah dikembangkan mulai
9
dengan menggunakan interaksi manusia dan komputer sampai ke metode
ArtificialIntelligencedan Computational Intelligence.
Bhaduri (2009), mencatat beberapa penelitian yang telah dilakukan dalam
bidang timetabling dengan menggunakan metode dalam bidang
OperationResearch, ArtificialIntelligence dan ComputationalIntelligencedan
metode-metode tersebut dapat dibagi menjadi empat kategori yaitu:
1. Sequential Methods
Sequential Methods memperlakukan timetabling problem sebagai
graph problem.Para peneliti mengatur events dengan menggunakan
domain-spesific heuristics dan memasukkan events secara berurutan
dalam slot waktu yang valid sedemikian rupa, sehingga tidak ada
contraints yang dilanggar pada setiap slot waktu.
Lai et al. (2006) mencatat bahwa de Werra pada tahun 1992 dan 1997
menunjukkan bagaimana mengurangi course timetabling problem ke
dalam graphcoloringproblem.
Dengan menerapkan coloring technology, problem tersebut dapat
dirumuskan sebagai jaringan arcs dan node, kemudian solusi dapat
diperoleh dengan menemukan satu set warna di mana tidak ada dua
node yang berdekatan atau edges memiliki warna yang sama.
2. Cluster Methods
Problem dibagi menjadi beberapa set events. Setiap set didefinisikan
sehingga memenuhi segala hard constraints. Kemudian set tersebut
diatur ke dalam timeslot nyata untuk memenuhi soft constraints.
10
Lai et al. (2006) juga mencatat beberapa penelitian yang menggunakan
Cluster Methods dilakukan oleh Ferland& Roy pada tahun 1985 yang
memformulasikan timetabling problem sebagai assignment problem
dan menyelesaikan problem tersebut melalui pengurangan quadratic
assignment problem.
Kemudian penelitian dengan menggunakan cluster methods tersebut
dilanjutkan kembali oleh Tripathy pada tahun1992 dengan
menggunakan metode Lagrangian Relaxation, dalam pendekatan ini,
sejumlah variable dikurangi dengan menggunakan grouping. Sejumlah
constraints dikurangi dengan menggantinya dengan sejumlah relaxed
contraints, kemudian solusi yang layak didapatkan dengan
menggunakan metode heuristic.
3. Constraint Based Methods
Timetabling problem dimodelkan sebagai satu set variabel (events)
yang resource (lecturer atau rooms) harus ditugaskan dalam rangka
memenuhi sejumlah constraints.
Lai et al. (2006) mencatat bahwa Monfroglio et al. pada tahun 1988
menggunakan sistem yang berbasiskan prolog yang menggunakan
backtracking untuk menemukan timetable yang layak dengan cara
men-decomposes dan mengklasifikasi constraints sehubungan dengan
message passing dan constraints ordering untuk meminimalkan
backtracking dan memaksimalkan parallelism.
Kemudian Deris et al. pada tahun 2000 mengusulkan Constraint-based
Reasoning Algorithm dan diimplementasikan dengan pendekatan
11
Object-Oriented, lalu pada tahun 2003 Valouxis dan Housos
mengusulkan penggunaan Operation Research models dan metode
Local Search untuk membantu constraint programming dengan
meminimalkan wilayah pencarian solusi.
4. Metaheuristic Methods
Metaheuristic Methods diimplementasikan dalam timetabling problem
dengan memulai beberapa solusi awal, kemudian menggunakan
metode pencarian untuk menghindari local optima.Metaheuristic ini
juga mencakup beberapa pendekatan heuristic yang diinspirasikan dari
alam, dan mengaplikasikan proses nature-like untuk mendapatkan
solusi atau populasi dari solusi.
Lai et al. (2006) mencatat beberapa jenis Metaheuristic Methods yang
pernah digunakan dalam penelitian timetabling adalah Genetic
Algorithm yang dilakukan oleh Colorni dan Maniezzo pada tahun
1990.
Kemudian pada tahun 1992, Moscato dan Norman menggunakan
Memetic Algorithm yang digunakan untuk meningkatkan kemampuan
Genetic Algorithm dengan menggabungkan local neighborhood
search, yang digunakan untuk mengeksplorasi neighborhood solusi
yang didapatkan dari Genetic Algorithm dan menavigasi pencarian
menuju local optima untuk setiap solusi.
Beberapa penelitian yang menggunakan pendekatan heuristic yang
nature-like dalam timetable scheduling adalah metode Tabu Search
juga kemudian digunakan oleh Hertz pada tahun 1991 yang
12
menggunakan grouping untuk problem optimization dan pada tahun
1992, Hertz menggunakan metode ini untuk masalah lectures yang
lebih kompleks (Lai et al. 2006).
Penelitian yang lain adalah penggunaan Particle Swarm Optimization
yang dilakukan oleh Chu et al. pada tahun 2006 yang digunakan untuk
membuat schedule exam timetables, penelitian ini mengukur kualitas
dari examination timetable dan waktu yang dibutuhkan untuk
menghasilkan timetable tersebut.Selain Particle Swarm Optimization,
penelitian lain yang menggunakan nature-like algorithm adalah
penggunaan Harmony Search yang dilakukan oleh Al-betar et al. pada
tahun 2008 dan 2009.
Harmony Search yang diperkenalkan oleh Geem et al. pada 2001 yang
diinspirasikan dari fenomena natural dari perilaku pemusik ketika
mereka memainkan alat music bersama-sama untuk mendapatkan
fantastic harmony.Pada penelitian tersebut, Harmony Search untuk
university course timetabling dan berhasil menemukan near optimal
solution.
2.3. Metode Timetable Scheduling
Banyak metode yang sudah digunakan untuk menyelesaikan permasalahan
timetable scheduling dan beberapa di antaranya terdapat pada kelompok
metaheuristic algorithm. Metaheuristic algorithm adalah suatu metode komputasi
yang mengoptimalkan suatu problem dengan cara meningkatkan kandidat solusi
secara interaktif dengan ukuran kualitas tertentu.
o
s
t
d
M
a
a
Biasa
optimization
space.Tetap
timetable sc
dikembangk
Metaheuristi
Gambar
Dari
algoritma y
adalah:
anya Meta
n di mana
i sesuai den
cheduling y
kan untuk m
ics dapat dil
2.1. Klasif
sekian ban
yang sering
aheuristics
solusi opti
ngan perkem
yang semaki
mengatasi tim
lihat pada ga
fikasi Metah
nyak algorit
digunakan
algorithm d
imal dicari
mbangan tek
in pesat, M
metabling p
ambar beriku
heuristics Alg
tma yang te
untuk me
digunakan
dalam seb
knologi info
Metaheuristic
problem.Klas
ut ini:
gorithm (Dr
ermasuk da
nyelesaikan
untuk com
buah discre
ormasi dan
Algorithm
sifikasi dari
éo &Candan
ari jenis ini
timetabling
13
mbinational
ete search-
kebutuhan
ini mulai
i algoritma
n, 2011)
, beberapa
g problem
14
2.3.1. Genetic Algorithm (GA)
Dalam penelitiannya,Fang (1992) mendefinisikan Genetic Algorithm
sebagai kelompok methods yang menyelesaikan problems menggunakan
algoritma yang diinspirasikan oleh proses evolusi Darwinian.
Dalam GA, kemampuan dari satu set kandidat solusi sebuah problem
(chromosomes) dievaluasi dan diurutkan, kemudian kandidat solusi baru
diciptakan dengan menggunakan kandidat terbaik sebagai “parents” dan
mengaplikasikan mutasi dan crossover (mengkombinasikan bits dari dua parents
untuk menghasilkan satu atau lebih child)operators. Set dari kandidat baru ini
kemudian dievaluasi, dan cycle ini terus berlanjut sampai solusi yang memadai
ditemukan.
Menurut Fang (1992), Outline dari tradisional Genetic Algorithm, adalah
sebagai berikut:
1. Inisialisasi dan Encode sebuah random populasi dari chromosomes.
2. Decode dan evaluasi setiap chromosomefitness dalam sebuah populasi.
3. Reproduce sebuah generasi baru dengan memilih chromosome sebagai
parents sesuai dengan fitness value untuk menghasilkan children
(chromosome) baru.
4. Melakukan crossover, inversion dan mutation untuk chromosome baru
agar menghasilkan chromosome baru yang berbeda.
5. Ulangi langkah 2-4 sampai ditemukan fitness value atau fitness
function yang paling optimal.
Penjelasan mengenai crossover, inversion dan mutation menurut Fang
(1992), adalah sebagai berikut:
15
1. Crossover
Proses crossover adalah proses menghasilkan rekombinasi string bit
(gene) melalui pertukaran sebagian gene antara 2 chromosomeparents.
a. One-point Crossover
Crossover yang dilakukan dengan membagi chromosome menjadi
2 bagian, dimana bagian sebelum crossover point (letak pembagian
chromosome yang dilakukan secara random) dibiarkan tidak
berubah, dan bagian setelah crossover point ditukar antara 2
parents.
b. Two-point Crossover
Crossover jenis ini sama dengan one-point crossover tetapi dalam
two-point crossoverdipilih 2 buah crossover point dan yang ditukar
adalah gene yang ada di antara 2 buah crossover point tersebut.
Proses ini dapat menghasilkan performance yang baik karena
kadang kala bagian head dan tail dari chromosome tetap
dibutuhkan.
c. N-point Crossover
Proses crossover yang dilakukan sama dengan yang dilakukan
pada one-point dan two point crossover tetapi dalam N-point
crossover dipilih beberapa crossover point yang dipilih untuk
menentukan tempat untuk dilakukan crossover dan bit antara
crossover point ganjil dan genap yang dilakukan
crossoversedangkan bit antara crossover point genap dan ganjil
tidak berubah.
16
d. Uniform Crossover
Untuk uniform crossover dilakukan proses sebagai berikut:
a) Random nomor untuk mengetahui berapa posisi yang harus
dilakukan crossover (menentukan berapa banyak crossover
point).
b) Random nomor untuk menentukan crossover point mana yang
akan di jadikan patokan untuk melakukan crossover contoh
P1,P2, P3 … Pn.
c) Untuk setiap Pi, lakukan crossover untuk Pith dari parent
dengan Pith parent yang lain, dan hasilkan 2 children baru.
2. Inversion
Invesion adalah suatu proses penukaran gene seperti melakukan
reordering. Inversion ini membutuhkan sebuah chromosome dan dua
buah inversion point yang menentukan bagian dari chromosome (gene)
manakah yang akan dilakukan reordering. Bagian antara 2 inversion
point ini akan dilakukan perputaran gene. Dari beberapa penelitian,
dibuktikan bahwa inversion ini tidak menghasilkan hasil yang baik
dalam percobaan Genetic Algorithm.
3. Mutation
Mutation adalah suatu proses untuk mengubah satu atau beberapa gene
dalam sebuah chromosome menjadi sebuah gene baru berdasarkan
encoding yang dilakukan sebelumnya. Proses mutation ini digunakan
untuk menghasilkan suatu gene baru yang diharapkan menghasilkan
suatu gene yang tidak terjangkau sebelumnya. Misalnya saja, pada
17
gene chromosome induk tidak ditemukan angka 15, maka ketika proses
mutation ini selesai diharapkan gene yang dihasilkan adalah angka 15.
2.3.2. Simulated Annealing (SA)
Simulated Annealing adalah sebuah algoritma generic probabilistic
metaheuristic untuk mengatasi permasalahan global optimization dalam
menempatkan sebuah perkiraan yang baik untuk global optimum dari fungsi yang
diberikan dalam search space yang besar.Biasanya algoritma ini digunakan ketika
search space yang digunakan adalah discrete, misalnya Traveling Salesman
Problem. Algoritma ini diinspirasikan dari kata annealing dari metallurgy
(pengetahuan mengenai logam), sebuah teknik yang meliputi penggunaan heating
(pemanasan) dan pengaturan cooling (pendinginan) dari sebuah material untuk
meningkatkan size kristal dari material tersebut dan mengurangi cacatnya.
Menurut Moscato (1989), Simulated Annealing adalah sebuah teknik
untuk global optimization yang diambil dari Statistical Mechanics. Metode ini
telah dibuktikan cocok untuk banyak jenis permasalahan contohnya min cut
partitioning problem, global wiring, least square fitting of many unknows, image
analysis, dan banyak lagi.
Simulated Annealing menurut Duong et al. (2004) adalah teknik global
stochastic optimization yang banyak digunakan untuk menyelesaikan banyak tipe
dari permasalahan optimisasi combinatorial.Simulated Annealing adalah sebuah
variant dari local search yang memperbolehkan langkah uphill untuk diterima
dalam sebuah kejadian yang dikendalikan.
18
Algoritma SA yang tipikal menerima solusi baru jika cost solusi baru
tersebut lebih rendah dari cost solusi sekarang, tetapi kadang-kadang terdapat
kemungkinan solusi baru ini dapat diterima walaupun costnya lebih besar. Dengan
kriteria tersebut ini memungkinkan untuk mendaki keluar dari local optima.
Basic pseudocode dari Simulated Annealing yang terdapat pada penelitian
Duong et al. (2004) untuk menyelesaikan permasalahan university exam
timetabling adalah sebagai berikut:
Pilih sebuah solusi awal S0
Pilih sebuah temperatur awal t0> 0
Pilih temperature reduction function α
Repeat
Repeat
Secara acak pilih s ∈N(s0) /* merupakan neighbor solution dari S0
d = f(s) – f(s0); /* hitung perubahan dalam cost function*/
ifd < 0 then s0 = s
else
generate random x ∈[0,1]; /* x adalah angka acak
number in range 0 to 1 */
ifx < exp(-d/t) then s0 = s
endif
endif
untiliteration_count = nrep;
t = α(t)
untilstopping condition = true./* s0adalah perkiraan dari solusi optimal */
19
Dalam mendisain sebuah algoritma simulated annealing yang bagus
diperlukan beberapa komponen yaitu:
1. Neighborhood Structure
Dalam mengaplikasikan SA, diperlukan neighborhood structure yang
menunjukkan bahwa untuk setiap solusi diperlukan sebuah set
neighborhood solution. Ini adalah komponen kunci dari metode simulated
annealing untuk kasus apapun.
Dalam penelitian Duong et al. (2004) neighborhood yang digunakan
adalah salah satu variant dari Kempe chains neighborhood yang
dikonstuksikan dengan menggunakan prosedur perulangan yang
simpel.Kemudiancurrent solution dicek dan diperbaiki sedangkan
neighbor dari current solution dipilih secara acak.
2. Cost Function
Cost function ini dibuat untuk menghitung besarnya cost dari current
solution, solusi baru dan neighborhood solution, agar terjadi perubahan
antara current solution, solusi baru dan neighborhood solution.
Cost function ini dibuat berbeda-beda tergantung permasalahan yang
dihadapi.Untuk kasus permasalahan exam timetabling, cost function
dibuat untuk mencerminkan pengaruh dari soft constarints, perbedaan time
distance antara dua exam untuk siswa yang sama juga menjadi salah satu
factor penting.
Semakin dekat waktunya maka semakin besar penalty yang diberikan,
penalty diberikan dengan menggunakan metode yang diajukan oleh Burke
et al.
20
Dalam penelitian Duong et al. (2004), dalam menghitung delta evaluation
menggunakan delta evaluationdimana perbedaan cost antara current
solution dan neighborhood solutiondievaluasi.
Selama neighbor solution adalah sebuah timetable yang dihasilkan dari
pertukaran antara dua exam sessions dalam current timetable, maka
perbedaan cost antara current timetable dan neighbor timetable dapat
dihitung secara cepat.
3. Cooling Schedule
Cooling schedule adalah suatu perlakuan dalam mengontrol parameter,
temperatur awal dan proses pengaturan temperatur dalam proses
pendinginan. Dalam proses cooling schedule, dilakukan beberapa kali
perulangan (nrep) untuk mengubah temperatur (t) berdasarkan perkalian
dengan reduction function (α).
2.3.3. Tabu Search (TS)
Menurut Glover (1989), Tabu Search adalah sebuah strategi untuk
menyelesaikan combinatorial optimization problems yang aplikasinya mulai dari
graph theory dan matroid settings ke general pure dan mixed integer
programming problems. Tabu Search ini adalah sebuah prosedue adaptive dengan
kemampuan untuk mempergunakan metode lain seperti linear programming
algorithms untuk langsung mengatasi permasalahan dari keterbatasan dalam local
optimality.
Kemudian dalam penelitiannya, Chu dan Fang (1999) menyimpulkan
bahwa Tabu Search sebagai suatu heuristic search method yang memiliki
21
keuntungan karena memiliki internal memory.Keuntungan ini memungkinkan
Tabu Search untuk mencegah pencarian ke area yang sudah di kunjungi
sebelumnya.
Pendekatan ini memiliki dua mekaniskme dasar, yaitu tabu restrictions
dan aspiration criteria.Selain itu, lebih mudah juga untuk keluar dari local
optimum dan mendapatkan global optimum atau near global optimum dalam
waktu yang singkat.
Langkah-langkah simple tabu search adalah
1. Pilih x awal dimana dan biarkan x* := x. Atur counteriterasi k = 0,
dan mulai dengan T yang kosong.
2. Jika S(x) – T adalah kosong, lanjutkan ke Langkah 4. Selain itu, set k := k
+ 1 dan pilih , jika :
.
3. Biarkan x := sk(x). Jika , dimana x* denotes adalah solusi
terbaik yang sudah ditemukan, biarkan x* := x.
4. Jika angka yang dipilih untuk iterasi melampaui baik dalam total atau
ketika x* terakhir ditingkatkan, atau jika s(x) – T = Ø atau sampai pada
langkah ini melalui langkah 2, maka hentikan proses.
Selain itu, update T (seperti yang sudah diberikan sebelumnya) dan
kembali ke langkah 2.
22
2.3.4. Memetic Algorithm (MA)
Memetic Algorithm pertama kali diperkenalkan oleh Moscato (1989),
dimana Moscato memperkenalkan algoritma ini mirip dengan Genetic Algorithm
yang digabungkan dengan prosedur individual learning yang dapat menghasilkan
perbaikan local.
Memetic algorithm menangkap beberapa bagian teori seperti Darwinian
evolution dan antara memes dan domain spesifik tertentu (local search) heuristic
dan kemudian dirender kedalam sebuah metodologi yang menyeimbangkan antara
permasalahan secara general maupun secara spesifik. Memetic algorithm sekarang
ini banyak dikenal dengan berbagai sebutan nama yaitu Hybrid Evolutionary
Algorithms, Baldwinian Evolutionary Algorithms, Lamarckian Evolutionary
Algorithms, Cultural Algorithms atau Genetic Local Search.
Kemudian menurut Hung et al. (2005), Memetic Algorithm yang
diperkenalkan oleh Moscato dan Norman pada tahun 1992 adalah sebuah variant
yang dikembangkan dari Genetic Algortihm. Memetic Algorithm mengambil
konsep evolusi sama seperti pada Genetic Algortihm, tetapi Genetic Algortihm
menggunakan konsep biological evolution sedangkan memetic algorithm
menggunakan konsep cultural evolution atau idea evolution.
Dalam evolusi ide, sebuah ide dapat berkembang tidak hanya berdasarkan
rekombinasi dari yang lainnya, tetapi berdasarkan adaptasi dari dirinya
sendiri.Meme, sebuah unit informasi dalam memetic algorithm dapat
dikembangkan oleh individual yang memegang informasi tersebut sebelum
didistribusikan.
23
Meme berbeda dengan gene, karena gene diturunkan antara individual,
sedangkan meme didapatkan berdasarkan adaptasi setiap individual dimana gene
yang diturunkan tidak berubah.Jadi basic Memetic Algorithm ini adalah sebuah
Evolution Algorithm yang digabungkan dengan beberapa teknik local search.
Dalam penelitiannya, Hung et al. (2005), menyelesaikan permasalahan
examination timetabling dengan menggunakan teknik local search hill-climbing
dan hanya menggunakan mutation sebagai evolutionary operators dalam Genetic
Algorithm. Outline dari Memetic Algorithm yang disimpulkan oleh Hung et al.
adalah sebagai berikut:
Repeat
Ambil setiap individual setiap perulangan:
Pilih mutation method (Light atau Heavy Mutation)
Aplikasikan mutation method untuk individual yang dipilih
Aplikasikan hill-climbing pada individual baru
Masukkan individual tersebut ke dalam populasi
Pilih setengah dari populasi, untuk mengurangi populasi menjadi
ukuran awal
Untilkondisi berhenti terpenuhi
2.3.5. Ant Colony Optimization (ACO)
Menurut Engelbrecht (2007, p360), Ant Colony Optimization adalah
sebuah algoritma yang dikembangkan oleh Marco Dorigo pada tahun 1992 yang
digunakan untuk mencari optimal path dalam sebuah graph, dengan menggunakan
tingkah laku dari semut mencari path antara colony-nya dengan sumber makanan.
Di kehidupan alam, semut berkeliling secara acak untuk mencari makanan,
ketika menemukan makanan, semut mengeluarkan pheromone untuk membantu
24
semut yang lain mengikuti path yang ditemukan, pencarian kemudian dilakukan
tidak secara acak, tetapi menggunakan path tersebut. Denganmengeluarkan
pheromone, semut yang mengikuti jalur tersebut memperkuat jalur, jika
menemukan makanan.
Tetapi jalur pheromone tidak dapat berlangsung lama, dan kehilangan
kemampuan untuk menarik perhatian seiring dengan waktu ketika semut
mengikuti path dan kembali ke koloni.Oleh karena itu, semut mencari path yang
lebih pendek, agar kepekatan pheromone semakin tinggi dan membentuk path
baru yang lebih baik.Pembentukan path baru yang lebih baik tersebut dapat dilihat
pada contoh dalam gambar di bawah ini:
Gambar 2.2. Pemilihan Shortest Path (Engelbercht, 2007)
Pemudaran pheromone ini juga membantu semut untuk menghindari
konvergensi pada local optima, jika tidak ada pemudaran, maka path yang dipilih
oleh semut pertama akan terus digunakan dan akan membatasi pencarian solusi
terbaik. Dengan menggunakan tingkah laku ini, ant colony optimization
menggunakannya untuk membuat “simulated ants” untuk bergerak di dalam graph
25
untuk merepresentasikan penyelesaian masalah dan menemukan shortest path
yang digunakan menjadi solusi penyelesaian.
Dalam perkembangannya, ACO banyak digunakan untuk menyelesaikan
permasalahan scheduling. Misalnya pada tahun 2005, Ghoseiri & Morshedsolouk
menggunakan Ant Colony System (ACS) untuk menyelesaikan permasalahan
trainscheduling dengan menyelesaikan permasalahan tersebut sebagai
permasalahan Traveling Salesman Problem (TSP) dimana kota dalam TSP
merepresentasikan kereta dan menghasilkan suatu algoritma baru yang dinamakan
ACS-TS, sebuah model matematika untuk menyelesaikan permasalahan train
scheduling.
Kemudian pada tahun 2007, Nothegger et. al. menyelesaikan
permasalahan Post Enrolment Course Timetabling untuk International
Timetabling Competition dengan menggunakan ACO. Antsdigunakan untuk
mengalokasikan events ke dalam ruangan dan timeslot berdasarkan dua jenis
pheromone yang merepresentasikan probabilitas untuk
mengalokasikan event i ke dalam slot j dan ruang k berurutan.
Algoritma Ant Colony Optimization yang digunakan sekarang ini, adalah
sebagai berikut:
Inisialisasiτij(0) dengan angka random; Inisialisasit = 0; Simpannk antspada node awal; repeat
foreach ant k = 1, . . . , nk do //Buat path xk(t); xk(t) = ; repeat
Pilih node selanjutnya dengan probability:
26
Add link (i, j) ke path xk(t);
Untilnode akhir tercapai; Remove all loops darixk(t); Hitung panjang dari pathf(xk(t));
end foreach link (i, j) of the graph do //pemudaran pheromone; Reduce pheromone, τij(t), dengan perhitungan:
end foreach ant k = 1, . . . , nk do foreach link (i, j) of xk(t) do Δτk = 1 f(xk(t)) ; Update τij dengan perhitungan:
end end t = t + 1; untilkondisi berhenti terpenuhi; Return path xk(t) dengan nilaif(xk(t)) terkecilsebagai solusi;
2.3.6. Particle Swarm Optimization (PSO)
Menurut Engelbrecht (2007,p289) algoritma Particle Swarm Optimization
(PSO) adalah algoritma yang berdasarkan interaksi sosial dari sekumpulan
burung.Konsep awal dari algoritma ini adalah untuk mensimulasikan pergerakan
yang tidak terprediksi dari sekumpulan burung dan bertujuan untuk mengetahui
pola pergerakan burung yang dapat berubah secara tiba – tiba dan membuat
formasi yang optimal.
27
Menurut Chu et al. (2006), PSO yang pertama kali diperkenalkan oleh Dr.
Eberhart dan Dr. Kennedy pada tahun 1995 adalah sebuah teknik population-
based evolutionary computation alternatif yang diinspirasikan dari perilaku sosial
dari kelompok burung dan ikan. PSO sebenarnya memiliki kesamaan dengan
evolutionary computation teknik seperti GA, tetapi tidak seperti GA, PSO tidak
punya evolutionoperatorsseperti crossover dan mutasi. PSO mencoba untuk
mensimulasikan perilaku sosial dengan membuat populasi dari solusi yang
potensial (particles)sama seperti burung dalam kawanannya.
PSO diinisialisasikan menjadi sekelompok random particles kemudian
optima dicari dengan meng-update generasi.Semua particles mempunya fitness
value yang dievaluasi oleh fitness function untuk dioptimasikan, setiap particle
mempunyai velocities yang mengatur arah dari setiap particle.Setiap particle di-
update dengan dua value terbaik dalam setiap iterasi.Value pertama adalah posisi
terbaik sebelumnya dari particle ke-k pada iterasi ke-i . Sedangkan value yang
lain dilacak dengan Particle Swarm Optimizer yang didapatkan oleh setiap
particle dalam sebuah populasi.
Populasi terbaik ini adalah global best dari semua particle Gi dari iterasi
pertama sampai dengan iterasi ke-i.Setiap particle ini equivalent dengan kandidat
solusi dalam sebuah problem.Particle akan bergerak sesuai dengan velocity yang
diatur, berdasarkan dengan pengalaman dari particle tersebut dan oleh
companion. Dan sebagai hasilnya, PSO biasanya mendapatkan nearly best
solution dalam evolusi yang lebih sedikit dibandingkan dengan metode yang lain.
Langkah-langkah original dari PSO yang digambarkan oleh Chu et al.
(2006) adalah sebagai berikut:
28
1. Banyak particle yang akan digunakan untuk menyelesaikan problem
ditentukan. Setiap particle mempunyai posisi, velocity dan solusi
terbaik.
2. Proses dari pengubahan velocity dapat dilihat berdasarkan perhitungan:
. . .
3. Pergerakan particle dapat dilihat berdasarkan perhitungan:
, 0,1, … , 1,
Dimana:
M adalah particle size
(Vmax adalah maximum velocity)
Sedangkan r1 dan r2 adalah random variable contohnya
0 , 1
4. Jika solusi yang didapatkan lebih baik dari Gi, maka Giakan diganti
dengan solusi tersebut untuk menciptakan Gi+1.
Jika tidak lebih baik, maka tidak ada perubahan untuk solusi global
best.
5. Ulangi langkah 1 sampai 4, sampai kondisi berhenti terpenuhi.
Menurut Engelbrecht (2007,p298) ada 2 aspek penting dalam memilih
kondisi berhenti yaitu :
• Kondisi berhenti tidak menyebabkan PSO konvergen premature
dimana solusi tidak optimal yang akan didapat
29
• Kondisi berhenti harus melindungi dari kondisi oversampling pada
nilainya. Jika kondisi berhenti memerlukan perhitungan yang terus
menerus maka kerumitan dari proses pencarian akan meningkat
Beberapa kondisi berhenti yang dapat dipakai dalam Particle Swarm
Optimization menurut Engelbrecht (2007,p298) adalah:
• Berhenti ketika jumlah iterasi telah mencapai jumlah iterasi
maksimum yang diperbolehkan
• Berhenti ketika solusi yang dapat diterima telah ditemukan
• Berhenti ketika tidak ada perkembangan setelah beberapa iterasi
2.3.7. Harmony Search (HS)
Harmony Search adalahsebuah metaheuristic algorithm yang dikemukakan
oleh Geem et al. (2001), algoritma ini dikonseptualisasikan menggunakan proses
musical untuk mencari perfect state of harmony. Para pemusik mencari harmony
yang tepat yang ditentukan berdasarkan aesthetic standard, sama seperti proses
optimasi yang mencari global solution seperti yang ditentukan berdasarkan
objective function.
Pitch dari setiap instrument music menentukan aesthetic quality dari
masing-masing instrument, sama seperti objective functionvalue ditentukan
melalui suatu set value yang diatur ke dalam decision variable masing-masing.
Algoritma Harmony Search ini diturunkan berdasarkan kinerja proses alami yang
terjadi ketika seorang musisi mencari harmony yang lebih baik, seperti ketika
improvisasi music Jazz.
30
Dalam improvisasi musik, masing-masing musisi membunyikan sebuah
nada dalam tingkat nada yang mungkin dihasilkan, nada-nada tersebut membuat
sebuah vektor harmoni. Jika semua nada menghasilkan harmoni yang bagus, maka
pengalaman membuat harmoni tersebut akan tersimpan di ingatan para musisi,
sehingga kemungkinan untuk membuat harmoni bagus lainnya akan meningkat.
Hal ini diadaptasi dalam teknik optimalisasi, dengan masing-masing variabel
keputusan memilih nilai awal (initial value) dalam batasan yang mungkin
membentuk sebuah vektor solusi. Jika masing-masing variabel keputusan
membentuk harmoni yang baik, pengalaman tersebut akan disimpan dalam
variabel memori, yang nantinya akan memperbesar kemungkinan untuk
mendapatkan vektor solusi yang lebih baik (Geem et al., 2005).
Ada beberapa strategi yang bisa digunakan untuk mendapatkan
harmonisasi yang baik. Pada pertunjukan musik yang dilakukan oleh para musisi
jazz, biasanya mereka memiliki tiga pilihan untuk melakukan improvisasi:
1. Memainkan nada yang sering dimainkan, yang merupakan
karakteristik dari bagian musik tersebut. Dalam musik, nada ini
dikenal dengan sebutan nada dasar. Pada dasarnya semua musisi
mengerti nada dasar tersebut dan dapat memainkan nada tersebut
dengan sendirinya, dengan kata lain nada-nada dasar ini sudah
tersimpan dalam memori mereka.
2. Memainkan nada yang serupa dengan nada dasar. Biasanya musisi
memperkaya musik dengan menaikkan atau menurunkan nada dasar
sesuai dengan eksplorasi mereka. Hal ini akan menyebabkan
permainan musik serupa dengan variasi nada yang berbeda.
31
3. Memainkan nada sembarang, yang memberikan musisi kebebasan
untuk berimprovisasi. Dengan cara seperti ini, ada kemungkinan not
yang dihasilkan sedikit atau tidak memiliki hubungan dengan lagu
yang ditampilkan. Hal ini membutuhkan bakat dan imajinasi dari
musisi, yang membuatnya menjelajahi dunia musik dan memberikan
nuansa baru pada musik dengan tema-tema segar dan baru.
Dari tiga pilihan berimprovisasi di atas, memberikan para peneliti strategi
untuk mendapatkan harmonisasi yang baik. Hal ini diadaptasi, sehingga setiap
variabel keputusan dalam mengambil sebuah nilai dalam algoritma harmony
search harus berpedoman pada tiga aturan ini (Geem et al., 2005):
1. Mengambil nilai yang sudah terdapat pada memori harmoni, biasanya
didefinisikan sebagai memory considerations.
2. Mengambil nilai yang berdekatan dari satu nilai pada memori harmoni,
biasanya didefinisikan sebagai pitch adjustments.
3. Mengambil nilai acak dari rentang nilai yang mungkin, biasanya
didefinisikan sebagai randomization.
Tiga aturan ini nantinya akan dibutuhkan dalam menyusun algoritma
harmony search yang diwakilkan oleh beberapa parameter.Secara umum
parameter-parameter ini akan sangat mempengaruhi kinerja dari harmony
searchdalam mendapatkan solusi yang optimal.
Berikut adalah parameter yang digunakan secara umum dalam harmony
search(Geem et al., 2005):
1. HMS (Harmony Memory Size), adalah jumlah dari kumpulan harmoni
memori, bisa disebut sebagai jumlah populasi.
32
2. HMCR (Harmony Memory Consideration Rate), adalah probabilitas
dari harmoni memori untuk digunakan kembali sebagai hasil dari
vektor solusi. Parameter ini memiliki rentang nilai dari 0 sampai
dengan 0,99. Parameter ini tidak menggunakan nilai 1, untuk
mencegah terjadinya stagnansi nilai (range nilai tidak berubah dan
perbaikan minimal).
3. PAR (Pitch Adjustment Rate), adalah parameter yang mempunyai
peran signifikan dalam menentukan jumlah nilai yang harus diubah,
disesuaikan, atau ditukar dengan nilai yang lain. Parameter ini
memiliki rentang nilai dari nol sampai dengan satu.
4. NI (Number of Improvisations), adalah parameter yang digunakan
sebagai kriteria pemberhenti perulangan, biasanya berupa jumlah
iterasi untuk mendapatkan nilai yang optimal.
Langkah-langkah yang digunakan dalam melakukan algoritma harmony
searchadalah (Geem et al., 2005):
1. Inisialisasi Harmony Search Algorithm (HSA) dan parameter-
parameter permasalahan optimasi.
2. Inisialisasi Harmony Memory (HM).
3. Improvisasi sebuah harmoni baru.
4. Memperbarui Harmony Memory (HM).
5. Melakukan pengecekan kondisi berhenti.
Dalam langkah (1), perlu diperhatikan fungsi objektif yang akan
digunakan untuk menghitung nilai perbaikan dari HM. Fungsi objektif bisa
dispesifikasikan sebagai berikut:
33
| atau |
Keterangan:
a. , fungsi objektif.
b. , himpunan dari setiap variabel keputusan untuk 1 … .
c. , himpunan dari rentang nilai yang mungkin untuk setiap variabel
keputusan, dengan, 1 , 2 , … , .
d. adalah jumlah variabel keputusan.
e. adalah jumlah rentang nilai yang mungkin untuk setiap variabel
keputusan.
Dalam langkah (2), HM adalah vektor solusi dengan banyak sejumlah
HMS.Pada langkah ini solusi-solusi yang dibentuk merupakan nilai random.
Bentuk HM bila digambarkan dalam Matriks bisa berbentuk seperti:
. . . .
Untuk setiap dengan 1 … , perlu ditentukan nilai fungsi
objektifnya , agar bisa diketahui mana himpunan yang memiliki nilai terbaik
dan nilai terburuk. Dalam prosesnya, himpunan dengan nilai terbaik akan menjadi
solusi yang dipakai, sedangkan himpunan dengan nilai terburuk akan tereliminasi
dan digantikan dengan yang himpunan dengan nilai yang lebih baik selama
perulangan berlangsung.
Dalam langkah (3), HSA akan secara otomatis membuat vektor solusi
yang baru, , , , … , , berdasarkan pada tiga
34
operator: (a) memory consideration, (b) random consideration, dan (c) pitch
adjustment.
a. Memory Consideration
Pada operator ini, pencarian variabel keputusan akan berdasarkan pada
memori yang tersimpan sebelumnya di posisi yang sama dengan
kemungkinan pemilihan operator ini sebesar parameter HMCR, dengan
kemungkinan 0 1 .
Bila operator ini dilaksanakan, maka untuk mendapatkan variabel
keputusan yang baru akan dipilih dari himpunan
, , , … , yang disimpan dalam HM. Untuk mendapatkan
variabel keputusan selanjutnya maka akan dipilih dari
himpunan , , , … , yang disimpan dalam HM. Hal ini
berlaku juga untuk variabel-variabel keputusan yang lain
, , … .
b. Random Consideration
Operator ini akan terlaksanakan dengan kemungkinan 1 ,
yang merupakan alternatif apabila operator memory consideration tidak
digunakan dalam mencari vektor solusi.
Bila operator ini dilaksanakan, maka untuk mendapatkan variabel
keputusan yang baru adalah nilai yang termasuk dalam . Jadi
operator ini akan mengambil calon vektor solusi dari semua variabel
keputusan yang terdapat pada HM.
c. Pitch Adjustment
35
Operator ini akan terlaksana dengan sebuah prasyarat, terlaksananya
operator memory consideration. Operator ini akan melakukan
improvisasi nilai dari variabel keputusan secara lokal. Operator ini
memiliki kemungkinan terjadi .
Bila operator ini dilaksanakan, dengan varibel keputusan
dengan adalah posisi elemen / nilai pada , maka
, dengan adalah neighborhood index,
… , 2, 1, 0, 1, 2, … . Operator ini akan mengambil calon vektor
solusi dari vektor neighborhood yang mungkin.
Dalam langkah (4), jika hasil vektor harmoni
, , , … , , memiliki nilai fungsi objektif yang lebih
baik dari vektor harmoni dengan nilai fungsi objektif terburuk di HM, maka
vektor harmoni yang baru akan dimasukkan ke dalam HM, sedangkan vektor
harmoni dengan nilai fungsi objektif terburuk di HM akan dike luarkan.
Dalam langkah (5), akan dilakukan pengecekan sampai kondisi berhenti
dari algoritma harmony searchterpenuhi. Biasanya kondisi berhenti dari algoritma
adalah nilai dari parameter NI (jumlah maksimal dari perbaikan harmoni).Bila
kondisi berhenti salah, maka ulangi langkah (3) dan langkah (4).