vii
Muhamad Jainal Abidin, 2012. Hybrid Algorithm Ant Colony Optimization dan
Genetic Algorithm untuk Menyelesaikan Quadratic Assignment Problem. Skripsi ini di bawah bimbingan Herry Suprajitno, S.Si, M.Si, dan Dr. Miswanto, M.Si,. Departemen Matematika. Fakultas Sains dan Teknologi. Universitas Airlangga.
ABSTRAK
Penulisan skripsi ini bertujuan untuk menyelesaikan masalah penugasan kuadratik dengan menggunakan Hybrid Ant Colony Optimization dan Genetic Algorithm. Tujuan dari permasalahan penugasan kuadratik adalah menempatkan fasilitas pada lokasi, sehingga dapat meminimalkan total jarak tempuh perpindahan bahan antar fasilitas. Ant Colony Optimization adalah suatu algoritma yang mengambil inspirasi dari perilaku semut nyata. Sedangkan Genetic Algorithm adalah sebuah algoritma yang diinspirasikan oleh proses evolusi yang sangat dipengaruhi oleh proses mutasi dan crossover. Pada skripsi ini digunakan
insertion mutation dan partial-mapped crossover. Program dibuat dalam bahasa pemrograman java untuk menerapkan Hybrid Ant Colony Optimization dan
Genetic Algorithm dalam pencarian solusinya. Berdasarkan hasil yang diperoleh ditunjukkan bahwa semakin besar nilai alpha dan Pc, semakin kecil nilai betha, rho dan koefisien Q, maka solusi yang didapatkan semakin mendekati solusi optimal.
Kata kunci : Hybrid, ant colony optimization, genetic algorithm, Masalah Penugasan Kuadratik.
Muhamad Jainal Abidin, 2012. Hybrid Algorithm Ant Colony Optimization dan
Genetic Algorithm untuk Menyelesaikan Quadratic Assignment Problem. This
Skripsi is supervised by Herry Suprajitno, S.Si, M.Si, and Dr. Miswanto, M.Si,. Mathematics Department, Faculty of Science and Technology, Airlangga University.
ABSTRACT
The purpose of this paper is to solve quadratic assignment problems using hybrid ant colony optimization and genetic algorithm. The purpose of the quadratic assignment problem is to place n facilities to n locations, in order to minimize the total distance of materials movement among facilities. Ant colony optimization is an algorithm inspired by the behavior of real ants. Whereas genetic algorithm is an algorithm inspired by evolutionary proces which is strongly influenced by the process of mutation and crossover. In this paper, we used insertion mutation and partial-mapped crossover methods. The program is made in java language program to implement the hybrid ant colony optimization and genetic algorithm in searching the solutions. Based on the results obtained, it showed that the larger value of alpha and Pc, and the smaller value of betha, rho and coefficient Q, then the solution approaches the optimal solution.
ix
DAFTAR ISI
HALAMAN JUDUL ... i
LEMBAR PERNYATAAN ... ii
LEMBAR PENGESAHAN ... iii
LEMBAR PEDOMAN PENGGUNAAN SKRIPSI ... iv
KATA PENGANTAR ... v
ABSTRAK ... vii
ABSTRACT ... viii
DAFTAR ISI ... ix
DAFTAR TABEL ... xi
DAFTAR GAMBAR ... xii
DAFTAR LAMPIRAN ... xiii
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 3
1.3 Tujuan ... 4
1.4 Manfaat ... 4
1.5 Batasan Masalah ... 5
BAB II TINJAUAN PUSTAKA ... 6
2.1 Graph ... 6
2.2 Permasalahan Penugasan ... 7
2.2.1 Penugasan Quadratik ... 8
2.3 Ant Colony Optimization (ACO) ... 10
2.4 Genetik Algoritma ... 15
2.5 Hybrid ACO dan GA ... 23
2.6 Pemrograman Java ... 23
BAB III METODE PENELITIAN... 26
BAB IV PEMBAHASAN ... 32
4.1 Masalah Penugasan Kuadratik ... 32
4.2 Prosedur Hybrid Algorithm Ant Colony Optimization dan Genetic Algorithm ... 32
4.2.1 Pengisian Parameter ... 34
4.2.2 Inisialisasi ... 35
4.2.3 Pengisian Tabu List ... 36
4.2.4 Menghitung Nilai Fungsi Tujuan ... 39
4.2.5 Menyimpan Solusi Terbaik ... 41
4.2.6 Memperbarui Matriks Pheromone ... 42
4.2.7 GeneratePop_size ... 43
4.2.8 Menghitung Nilai Fungsi Tujuan ... 44
4.2.9 Seleksi ... 44
4.2.10 Seleksi Crossover ... 46
4.2.10.1 Crossover ... 46
4.2.11 Seleksi Mutasi ... 48
4.2.11.1 Mutasi... ... 49
4.2.12 Evaluasi Anak ... 50
4.2.13 Populasi Baru ... 50
4.3 Data ... 51
4.4 Contoh Kasus Quadratic Assignment Problem dengan Menggunakan Data 4 Fasilitas dan 4 Lokasi yang Diselesaikan Secara Manual ... 51
4.4.1 Pengisian Parameter yang Dibutuhkan ... 52
4.4.2 Pengisian Tabu List ... 53
4.4.3 Menghitung Nilai Fungsi Tujuan ... 58
4.4.4 Menyimpan Solusi Terbaik ... 60
4.4.5 Memperbarui Matriks Pheromone ... 60
4.4.6 Cek Siklus ... 62
4.4.7 Men-generate Populasi Awal ... 62
4.4.8 Seleksi ... 63
4.4.9 Crossover ... 66
4.4.10 Mutasi ... 67
4.4.11 Evaluasi Anak ... 68
4.4.12 Populasi Baru ... 68
4.4.13 Cek Siklus ... 70
4.5 Implementasi program Pada Contoh Kasus Quadratic Assignment Problem ... 70
4.5.1 Menggunakan Data 4 fasilitas dan 4 Lokasi ... 70
4.5.2 Menggunakan Data 12 fasilitas dan 12 Lokasi ... 71
4.5.3 Menggunakan Data 20 fasilitas dan 20 Lokasi ... 73
4.6 Perbandingan Hasil Perhitungan dengan Parameter yang Berbeda pada Hybrid ACO dan GA untuk QAP ... 75
4.7 Perbandingan Hasil Perhitungan QAP dengan Menggunakan Hybrid ACO dan GA dengan Penelitian Hadley, S. W., (1992) .. 78
BAB V KESIMPULAN DAN SARAN ... 79
5.1 Kesimpulan ... 79
5.2 Saran ... 80
xi
DAFTAR TABEL
Tabel Judul Halaman
4.1 Probabilitas pada j = 0 54
4.2 Probabilitas komulatif semut ke-0 pada j = 0 55
4.3 Bilangan acak pada j = 0 55
4.4 Tabulist pada j = 0 55
4.5 Probabilitas pada j = 1 56
4.6 Bilangan acak pada j = 1 56
4.7 Tabu list pada j = 1 57
4.8 Probabilitas pada j = 2 57
4.9 Bilangan acak pada j = 2 57
4.10 Tabu list pada j = 2 58
4.11 Tabu list pada j = 3 58
4.12 Nilai fungsi tujuan 60
4.13 Individu populasi awal 62
4.14 Nilai fungsi tujuan individu 63
4.15 Probabilitas komulatif 65
4.16 Random untuk calon induk crossover 66
4.17 Random untuk calon induk mutasi 66
4.18 Nilai fungsi tujuan anak 68
4.19 Gabungan individu 69
4.20 Urutan individu 69
4.21 Populasi baru 69
4.22 Nilai fungsi tujuan dengan pembanding alpha 75 4.23 Nilai fungsi tujuan dengan pembanding betha 76 4.24 Nilai fungsi tujuan dengan pembanding rho 76 4.25 Nilai fungsi tujuan dengan pembanding koefisien
Q 77
4.26 Nilai fungsi tujuan dengan pembanding 77
4.27 Perbandingan nilai optimal 78
DAFTAR GAMBAR
Gambar Judul Halaman
2.1 Percobaan yang dilakukan Gass, dkk., 1989 11 3.1 Skema flowchart hybrid ACO dan GA 31
4.1 Prosedur Hybrid ACO dan GA 33
4.2 Prosedur pengisian parameter 34
4.3 Prosedur inisialisasi 35
4.4 Prosedur pengisian tabu list 36
4.5 Flowchart pengisian tabu list 37
4.6 Prosedur menghitungan probabilitas 38
4.7 Prosedur hitung penyebut 38
4.8 Prosedur cek node 39
4.9 Prosedur memilih fasilitas 39
4.10 Prosedur fungsi tujuan 40
4.11 Prosedur isi x 41
4.12 Prosedur penyimpanan solusi 41
4.13 Prosedur update pheremone 42
4.14 Prosedur menghitung delta 42
4.15 Prosedur generate pop_size 43
4.16 Prosedur men-generate individu dengan
menggunakan permutasi 44
4.17 Prosedur seleksi 45
4.18 Prosedur seleksi crossover 46
4.19 Prosedur crossover PMX 48
4.20 Prosedur seleksi mutasi 49
4.21 Prosedur insertion mutation 50
xiii
DAFTAR LAMPIRAN
No. Judul Lampiran
1. Data Quadratic Assignment Problem
2. Source Code Program
3. Hasil implementasi Program pada QAP
4. Output
BAB I
PENDAHULUAN
I.1 Latar Belakang
Era globalisasi menuntut semua persaingan disegala aspek, salah satunya adalah persaingan di pasar global. Perusahan-perusahan bersaing untuk memperoleh hasil optimal dalam pencapaian kesuksesan perusahan. Banyak cara untuk menggapai hal tersebut salah satunya adalah pengoptimalan dalam sisi penugasan, dimana perusahan ingin memperoleh hasil yang optimal dari penugasan yang diberikan dengan pengeluaran biaya yang sangat minimal.
Metode penugasan merupakan sebuah pelimpahan tugas atau pekerjaan pada sumber daya yang ada. Setiap sumber atau petugas (assignee) ditugasi secara khusus untuk suatu kegiatan atau tugas. Tujuan utamanya adalah meminimalisasi biaya total atau waktu yang diperlukan untuk melaksanakan tugas yang ada.
dianggap NP-hard problems. Masalah tersebut dianggap tidak dapat dicari solusinya dengan efisien (Prana, 2007).
QAP berukuran n terdiri dari pencarian alokasi terbaik dari n fasilitas ke n
lokasi, dengan diketahui arus dari fasilitas dan jarak antar lokasi, supaya jumlahan antara arus dan jarak minimal. Pertama kali, masalah ini dirumuskan dalam (Koopmans dan Beckman, 1957), dan berkembang pada berbagai aplikasi, contohnya: perencanaan pembangunan di kampus, pengaturan departemen pada rumah sakit, perencanaan tata letak (layout), dan lain sebagainya.
Pada umumnya permasalahan optimalisasi combinatorial merupakan masalah yang cukup sulit untuk diselesaikan. Beberapa algoritma yang telah dikembangkan untuk menyelesaikan masalah optimalisasi combinatorial antara lain: Genetic Algorithm, Simulated Anealing, Tabu Search dan Ant Colony Optimization. Pada skripsi (Kurniawan, 2008) telah dilakukan pengkajian ”Pendekatan Algoritma Semut untuk Persoalan Penugasan Kuadratik.”
Ant Colony Optimization (ACO) dikemukakan pada tahun 1991 oleh Marco Dorigo, merupakan suatu algoritma yang mengambil inspirasi dari riset atas perilaku semut riil yang di dalamnya terdapat sekumpulan semut buatan (ants), yang bekerja sama untuk mencari solusi terhadap suatu masalah optimalisasi berdasarkan pheromone (suatu zat yang ditinggalkan oleh semut yang berisi sejumlah informasi). Dengan perantara pheromone inilah terjadi komunikasi tidak langsung dan juga pertukaran informasi antar semut ketika membangun suatu solusi. Bentuk komunikasi tidak langsung yang diperlihatkan oleh semut ini disebut stigmergy.
Algoritma genetika (GA) merupakan algoritma yang diinspirasikan oleh proses evolusi. Algoritma genetika dapat disifatkan melalui populasi dan operator – operatornya, yaitu selection ( menentukan individu yang akan menjadi induk ),
crossover ( perkawinan antar induk untuk memperoleh individu baru ), dan
mutation ( perubahan sebagian sifat individu ). Algoritma genetik juga merupakan algoritma yang cukup open trial karena peneliti dapat mengeksplor algoritma genetik dasar untuk menambahkan beberapa kondisi.
Hybrid menurut bahasa berarti campuran atau gabungan, jadi hybrid algorithm merupakan suatu algoritma yang digunakan untuk menyelesaikan suatu permasalahan yang menggunakan dua algoritma berbeda atau lebih (Dechter, 2011).
Berdasarkan uraian diatas penulis tertarik untuk membahas bagaimana
hybrid antara algoritma Ant Colony Optimization dan algoritma genetik (Genetic Algorithm) untuk menyelesaikan Quadratic Assignment Problem. Diharapkan dengan Hybrid antara ACO dan GA untuk menyelesaikan QAP dapat mendapatkan hasil yang lebih baik dan tidak terjadi kehomogenan lebih cepat. Untuk itu penulis ingin menerapkan Hybrid Algorithm Ant Colony Optimization
dan Genetic Algorithm untuk menyelesaikan Quadratic Assignment Problem.
I.2 Rumusan Masalah
1. Bagaimana menerapkan hybrid Ant Colony Optimization dan Genetic Algorithm untuk QAP?
2. Bagaimana membuat program penggunaan hybrid Ant Colony Optimization dan Genetic Algorithm untuk QAP dengan menggunakan bahasa pemrograman java?
3. Bagaimana mengimplementasikan program pada contoh kasus QAP ?
I.3 Tujuan
Dalam penulisan proposal skripsi ini, penulis mempunyai tujuan sebagai berikut :
1. Menerapkan hybrid Ant Colony Optimization dan Genetic Algorithm untuk QAP.
2. Membuat program penggunaan hybrid Ant Colony Optimization dan
Genetic Algorithm untuk QAP dengan menggunakan bahas apemrograman java.
3. Mengimplementasikan program pada contoh kasus QAP.
I.4 Manfaat
Adapun manfaat yang nantinya akan didapatkan adalah sebagai berikut : 1. Dari hasil skripsi ini nantinya, diharapkan dapat menjadi referensi
alternatif metode penyelesaian yang dapat digunakan untuk menyelesaikan QAP dalam perencanaan tata letak (layout).
2. Diharapkan pula dapat menjadi bahan pertimbangan dan perbandingan untuk penerapan algoritma lainnya pada QAP yang dapat mendukung perkembangan ilmu pengetahuan dan teknologi pada masa mendatang.
I.5 Batasan Masalah
Mengacu pada rumusan masalah diatas, maka ruang lingkup penyelesaian QAP dengan hybrid Ant Colony Optimization dan Genetic Algorithm dalam penulisan proposal skripsi ini dibatasi pada penggunaan :
1. Jumlah fasilitas sama dengan jumlah lokasi pada QAP.
2. Pengkodean, solusi awal dari ACO direpresentasikan dengan pengkodean permutasi.
6 BAB II
TINJAUAN PUSTAKA
Dalam penulisan ini, dibutuhkan beberapa definisi atau informasi-informasi guna untuk memperdalam materi dan mempermudah dalam penulisan skripsi, diantaranya sebagai berikut :
2.1 Graph
Definisi 2.1
Graph G didefinisikan sebagai himpunan berhingga V(G) yang tidak kosong yang anggotanya disebut titik (vertice) dan himpunan E(G) yang mungkin kosong, yang anggotanya terdiri dari pasangan tidak terurut dua elemen yang berbeda dari V(G) dan disebut garis (edge). Elemen dari V(G) dinotasikan dengan
i
v dan elemen dari E(G) dinotasikan dengan vivj dan kadang dinotasikan dengan
i
e. Jika terdapat garis e yang menghubungkan titik vi dan vj maka vi dikatakan terhubung (adjacent) dengan vj dalam hal ini titik vi dan vj dikatakan insiden
dengan e.
Definisi 2.2 Digraph D adalah himpunan tak kosong yang berhingga )
(D
V dari titik dan himpunan E(D) (yang kemungkinan himpunan kosong) dari pasangan titik yang terurut. Arc (garis berarah) adalah elemen-elemen dari E(D).
Definisi 2.3 Perjalanan (walk) pada digraph D adalah urutan secara bergantian titik-titik elemen V(D) dan arc elemen E(D) yang terbentuk :
n n n e v v
v e v e v
W 0, 1, 1, 2, 2,..., 1, , , untuk n0
yang dimulai dan diakhiri dengan titik, sedemikian sehingga
) ,
( i 1 i
i v v
e untuk i = 1, 2, ..., n.
Definisi 2.4 cycle adalah walk v0, v1, v2, ..., vn-1, vn dengan n3, v0 vn dan titik-titik v0, v1, v2, ..., vn-1, vn yang berbeda satu dengan
yang lain. Dengan kata lain cycle adalah walk yang tertutup.
Definisi 2.5 path adalah walk dimana titiknya tidak boleh berulang.
(Chartrand dan Oellerman, 1993)
2.2 Permasalahan Penugasan
Model masalah penugasan adalah sebagai berikut:
z = biaya total yang diperlukan untuk menugaskan n tugas pada n petugas.
cij = biaya yang diperlukan untuk menugaskan petugas i pada tugas j.
xij = penugasan petugas i pada tugas j, dengan i,j = 0,1,…,n dan
Masalah penugasan kuadratik merupakan masalah penugasan yang fungsi tujuannya berbentuk kuadrat. Masalah penugasan kuadratik pada umumnya mempunyai konsep yang serupa dengan penugasan dari fasilitas pada suatu lokasi dengan tujuan untuk meminimalkan biaya pergerakan materi antar fasilitas. Fungsi tujuan dengan bentuk kuadratik melibatkan perkalian dua variable bebas.
jika petugas i ditugaskan pada tugas j lainnya
Bentuk kuadratik banyak digunakan pada fungsi obyektif untuk masalah layout
fasilitas.
(Gass dan Harris, 1996)
Secara umum model penugasan quadratik adalah sebagai berikut:
Minimumkan
z = biaya total yang diperlukan untuk menugaskan n fasilitas pada n lokasi.
ijkl
c = biaya yang berhubungan dengan penugasan fasilitas i pada lokasi j dan fasilitas k pada lokasi l.
ik
f = frekuansi perpindahan bahan dari fasilitas i ke fasilitas k.
jl
d = jarak antara lokasi j ke lokasi l.
ij
, 0
,1
ij
x
kl
x = penugasan fasilitas k pada lokasi l, dengan k,l = 0,1,…,n dan
, 0
, 1
kl
x
n = jumlah fasilitas.
(Gen dan Cheng, 1997)
2.3 Ant colony Optimization (ACO)
Algoritma merupakan suatu himpunan langkah-langkah atau intruksi yang telah dirumuskan dengan baik (well defined) untuk memperoleh suatu keluaran khusus (specific output) dari suatu masukan khusus (specific input) dalam langkah-langkah yang jumlahnya berhingga.
(Chartrand dan Oellermann, 1993)
Gass, dkk (1989) membuat percobaan dengan menggunakan spesies semut
Iridomyrmex humilis (semut Argentina). Percobaan itu untuk menunjukkan kemampuan kerjasama semut untuk mendapatkan jalan terpendek menuju sumber makanan. Percobaan tersebut seperti terlihat pada Gambar 2.1. Pada percobaan tersebut, diantara sumber makanan dan sarang semut diletakkan 2 jembatan dengan panjang yang tidak sama. Semut harus memilih diantara 2 jembatan tersebut dan ternyata didapatkan 2 hal yang menarik yaitu:
a. Setelah periode tertentu ternyata paling banyak semut memilih jembatan yang lebih pendek.
jika fasilitas i ditugaskan pada lokasi j lainnya
jika fasilitas k ditugaskan pada lokasi l lainnya
b. Probabilitas untuk memilih jalan yang lebih pendek sebanding dengan jarak antara 2 cabang.
Tingkah laku pemilihan jalan terpendek ini adalah hasil timbal balik positif (autokatalitis) dan perbedaan panjang jalan. Hal ini diperoleh melalui
stimergy, bentuk komunikasi tidak langsung seperti digambarkan berikut ini:
Stimergy didefinisikan sebagai perubahan lokal dari lingkungan. Perubahan ini disebabkan karena ketika semut pergi, semut-semut itu meninggalkan zat kimia yang disebut pheromone. Setiap pemilihan titik, semut membuat keputusan yang diwujutkan dalam bentuk banyak sedikitnya pheromone. Proses ini merupakan proses autokatalis karena dalam kenyataannya seekor semut yang memilih jalan dalam gilirannya akan menambah pheromone seperti yang dilakukan oleh semut lainnya pada saat kemudian.
Pada gambar 2.1, semut 1 dan semut 2 meninggalkan sarang pada waktu yang sama. Semut-semut tersebut sampai pada titik pilihan 1 bersama-sama dan membuat keputusan 0,5:0,5 untuk memilih cabang. Semut 1 memilih cabang yang lebih pendek dan mencapai sumber makanan lebuh dulu (melalui titik A), mengambil makanan dan kembali lagi ke sarangnya. Ketika kembali pada titik pilihan 2, semut tersebut mendeteksi pheromone pada cabang yang lebih pendek (pheromone yang ditaruh oleh semut 1 itu sendiri pada saat perjalanan menuju sumber makanan) dan dengan probabilitas yang tinggi untuk memilih cabang itu kembali. Pada cabang yang lebih jauh tidak mengandung pheromone di dekat titik percabangan, karena semut yang memilihnya (termasuk semut 2) belum sampai pada titik pilihan 2. Pada akhirnya kedua semut pada saat menuju dan dari sumber makanan akan mengambil jalan yang lebih pendek dengan probabilitas yang tinggi dan pheromone yang ada pada cabang yang lebih panjang tidak diberi penguatan lagi karena tidak ada semut yang menaruh pheromone disitu akan menguap dan semut akan berjalan pada jalan yang paling pendek.
Dari percobaan yang digambarkan pada Gambar 2.1 disusun sebuah algoritma untuk mencari solusi dari sebuah permasalahan optimalisasi
combinatorial yang dinamakan Ant colony Optimization (ACO). Dalam buku karya Gaertner (2004) ACO secara umum adalah terdapat sejumlah populasi semut buatan (ant) yang melakukan sebuah perjalanan untuk membentuk solusi dari sebuah permasalahan optimaliasi kombinatorik. Algoritma ini menyatakan permasalahan kombinatorik kedalam sebuah graph, ant melakukan perjalanan
pada setiap cabang dari node satu ke node yang lain sehingga membentuk suatu
path yang merupakan representasi dari solusi pada permasalahan tersebut.
Hal yang membedakan antara semut sebenarnya dengan semut pada algoritma semut ini yang didefinisikan Dorigo, dkk. (1996) adalah sebagai berikut:
a. Semut pada algoritma ini akan memiliki ingatan (memory) b. Semut pada algoritma ini tidak sepenuhnya buta
c. Semut pada algoritma ini hidup pada lingkungan dengan waktu yang diskrit. Pada Dorigo, dkk. (1996) Langkah–langkah ACO adalah sebagai berikut : 1. Inisialisasi parameter, yaitu :
Alpha (α) = Tetapan pengendali intensitas Pheromone (0). Betha (β) = Tetapan pengendali visibilitas ( 0).
) (t ij
= Nilai Pheromone antara node i dan node j disaat t.
t = Iterasi ke-w , dengan w = 1,2,3,...,max_iterasi.
= Koefisien penguapan intensitas pheromone dij = Jarak antara node i dan node j.
Q = Konstanta yang mempengaruhi update pheromone.
Jumlah Semut, Jumlah Node dan Max_iterasi. 2. Menempatkan sejumlah ant pada node awal
( )
( )
∑ ( ) (2.3) Tetapi untuk menentukan nilai probabilitas dari node awal ke node
yang akan dikunjungi untuk Quadratic Assigment Problem menggunakan persamaan :
( )
( )
∑ ( ) (2.4) keterangan :
( )
= probabilitas dari node i ke node j disaat t.
4. Menghitung panjang perjalanan.
Setelah semua semut menyelesaikan satu siklus selanjutnya dihitung panjang perjalanan. Indeks s menyatakan indeks urutan perjalanan, node asal dinyatakan tabuk (s) dan node – node lainnya dinyatakan sebagai {N-tabuk}. Menghitung panjang perjalanan dengan rumusan sebagai berikut :
( ) ( )
∑
( ) ( )
(2.5)
Tetapi pada Quadratic Assigment Problem menghitung pangjang perjalanan menggunakan persamaan :
(2.6)
dengan k = semut ke-k yang bertugas untuk fasilitas ke i ke lokasi j dan k = 0,1,2,...,n-1.
Keterangan :
d = jarak antar lokasi.
= biaya total fungsi tujuan semut ke-k.
5. Perbaruhi matrik pheromone
yang dihitung berdasarkan persamaan
6. Apabila siklus maksimum atau kondisi stagnan belum terpenuhi, maka kosongkan tabu list dan kembali ke langkah 2. Apabila siklus maksimum atau kondisi stagnan telah terpenuhi maka iterasi berakhir. Kondisi stagnan yaitu kondisi semua ant mendapatkan solusi yang sama.
2.4 Genetik Algoritma
Berikut akan diberikan definisi algoritma genetik :
Definisi 2.6 Algoritma genetika (GA) merupakan sebuah kelompok dari metode-metode untuk menyelesaikan permasalahan-permasalahan dengan menggunakan algoritma yang diinspirasi oleh proses evolusi.
(Obitko, 1998) untuk node dalam tabuk
Konsep GA secara sederhana dimulai dengan menentukan populasi awal. Beberapa definisi yang terkait akan disajikan sebagai berikut :
Definisi 2.7 Masing-masing individu yang terdapat dalam populasi yang merupakan suatu solusi suatu permasalahan disebut individu.
(Gen dan Cheng, 1997)
Definisi 2.8 Himpunan solusi (yang digambarkan dengan individu) disebut populasi.
(Gen dan Cheng, 1997)
Definisi 2.9 Individu terdiri dari sejumlah struktur tersendiri yang disebut gen.
(Obitko, 1998)
Definisi 2.10 Setiap gen mempunyai posisi pada individu yang disebut locus. (Obitko, 1998)
Definsi 2.11 Individu akan berkembang melalui iterasi yang berturut-turut yang disebut sebagai generasi.
(Gen dan Cheng, 1997)
Definisi 2.12 Jumlah individu yang membentuk sebuah populasi pada satu generasi disebut sebagai ukuran populasi (pop_size).
(Obitko, 1998)
Definisi 2.13 Pengkodean (encoding) merupakan suatu cara menyajikan suatu solusi dalam ruang pencarian.
(Obitko, 1998)
Ada beberapa cara untuk mengkode suatu individu diantaranya: 1. Pengkodean Biner
Dalam pengkodean biner, individu dikodekan sebagai barisan bit 0 atau 1. 2. Pengkodean Nilai
Dalam pengkodean nilai, setiap individu adalah barisan beberapa nilai. 3. Pengkodean Permutasi
Dalam pengkodean permutasi, setiap individu adalah barisan angka yang memperhatikan urutan dan posisi sehingga tidak terjadi adanya pengulangan angka.
4. Pengkodean random Keys (Nomor Acak)
Dalam random keys, setiap individu adalah barisan angka random yang berkisar antara 0 dan 1.
(Obitko, 1998)
Populasi yang telah dibangkitkan kemudian dievaluasi dengan menghitung nilai fitness masing – masing individu dalam populasi. Selanjutnya dilakukan proses seleksi yang merupakan operasi evolusi dalam algoritma genetik.
Definisi 2.14 Fungsi fitness adalah fungsi yang menunjukkan keandalan suatu individu untuk bertahan dalam populasi.
(Zomaya, 1996)
Menurut teori evolusi, individu yang terbaik seharusnya bertahan dan membentuk keturunan baru.
(Obitko, 1998)
Ada beberapa jenis seleksi, diantaranya adalah : a. Seleksi Elitism.
Seleksi ini dilakukan dengan mengkopi beberapa individu terbaik untuk menjadi populasi yang baru (mempertahankan individu dengan
fitness terbaik). Sisanya dilakukan dengan menggunakan cara klasik. b. Seleksi Roda Rolet.
Sebuah roda rolet yang ditempati semua individu dalam populasi, dimana masing-masing individu menempati luasan menurut nilai fitnessnya. Selanjutnya roda rolet diputar untuk memilih individu yang akan dijadikan induk crossover atau induk mutasi. Individu dengan fitness
yang lebih besar akan berpeluang untuk dipilih.
(Obitko, 1998)
Jika pada permasalahan fungsi tujuannya adalah untuk meminimalkan, maka seleksi roda rolet dapat diubah sebagai berikut :
1. Menghitung total fungsi tujuan f(vj) setiap individu vj untuk populasi:
host pop
j j
v f _
1
)
( (2.8)
2. Menghitung nilai fitness untuk setiap individu vj:
size pop
k k
v f _
1
)
( f ( ) (2.9)
3. Menghitung total nilai fitness untuk populasi :
pop host
j j
fithost
F _
1 (2.10)
4. Menghitung probabilitas seleksi pj untuk setiap individu vj:
F fithost
p j
j , j = 1, 2, ..., pop_host (2.11)
5. Menghitung probabilitas kumulatif qj untuk setiap individu vj:
j
i i
j p
q
1
, j = 1, 2, ..., pop_host (2.12)
6. Melakukan generate bilangan acak dari interval [0,1] = s.
7. Jika sq1, maka ditentukan menjadi individu pertamav1; sebaliknya,
menentukan individu vj ke j
2 j pop_host
dengan qj1sqj.(Gen dan Cheng, 1997)
Individu-individu yang telah terpilih dalam proses seleksi selanjutnya akan diproses crossover dan mutasi.
Definisi2.16 Crossover adalah proses penggabungan (persilangan) antara dua induk untuk mendapatkan individu baru yang mewarisi sifat dari kedua induknya.
(Obitko, 1998)
Ada beberapa jenis crossover yang didefinisikan oleh Obitko (1998), diantaranya:
a. Partial-Mapped Crossover (PMX).
Memilih dua titik potong secara random. Substring antara kedua titik potong disebut mapping sections. Mapping sections diantara kedua induk ditukar kemudian ditentukan hubungan pemetaan antara kedua mapping sections untuk menghasilkan 2 anak.
b. Order Crossover (OX).
Memilih substring dari salah satu induk secara random kemudian membentuk calon anak dari substring dengan posisi yang sama. Gen yang telah ada pada induk kedua dihapus, sisanya adalah barisan gen yang belum ada pada calon anak. Kemudian barisan tersebut ditempatkan pada posisi calon anak yang masih kosong berurutan dari kiri ke kanan hingga terbentuk 1 anak.
c. Position-Based Crossover.
Memilih beberapa posisi dari salah satu induk secara random kemudian membentuk calon anak dari gen-gen pada posisi yang telah terpilih dengan posisi yang sama. Gen yang telah ada pada induk kedua dihapus, sisanya adalah barisan gen yang belum ada pada calon anak. Kemudian barisan tersebut ditempatkan pada posisi calon anak yang masih kosong berurutan dari kiri ke kanan hingga terbentuk 1 anak.
Pada proses crossover terdapat rasio untuk mengontrol jumlah harapan dari individu yang mengalami crossover. Jumlah harapannya dihitung dengan cara pcx pop_size.
Definisi2.17 Laju crossover (pc) adalah rasio banyaknya keturunan yang dihasilkan dari crossover pada tiap-tiap generasi terhadap ukuran populasinya.
(Gen dan Cheng, 1997)
Definisi 2.18 Mutasi merupakan proses perubahan sebagian sifat individu secara random yang menghasilkan struktur genetik baru.
(Obitko, 1998)
Ada beberapa jenis mutasi yang didefinisikan Obitko (1998), diantaranya: a. Mutasi Inversi (inversion Mutation)
Memilih dua posisi dalam individu secara acak dan kemudian membalik untaian diantara dua posisi itu.
b. Mutasi Sisipan (Insertion Mutation)
Memilih gen secara acak dan menyisipkannya di posisi acak. c. Mutasi perpindahan (Displacement Mutation)
Memilih sebuah subtour secara acak dan memasukkannya pada posisi lain secara acak.
d. Reciprocal Exchange Mutation
Pada proses mutasi terdapat rasio untuk mengontrol jumlah harapan dari individu yang mengalami mutasi. Jumlah harapannya dihitung dengan cara
m
p x pop_size.
Definisi2.19 Laju mutasi (pm) adalah prosentase dari jumlah individu dalam populasi yang dimutasi.
(Gen dan Cheng, 1997)
Secara umum langkah-langkah dalam algoritma genetika adalah sebagai berikut:
1. [Mulai] Membangkitkan populasi secara random sebanyak n individu (solusi fisibel dari permasalahan)
2. [Fitness] Menilai keandalan setiap individu dalam populasi.
3. [Populasi baru] Membentuk populasi baru lewat pengulangan pengoperasian operator genetik berikut sampai populasi baru lengkap. a. [Seleksi] Memilih induk dari populasi sesuai dengan nilai
keandalannya (keandalan yang lebih baik, lebih berpeluang untuk terpilih).
b. [Crossover] Dengan suatu laju crossover, crossover induk untuk membentuk anak (individu baru). Jika tidak ada crossover yang dilaksanakan, anak merupakan copian yang sama dengan induknya. c. [Mutasi] Menggunakan suatu probabilitas, mutasi induk pada
masing-masing sifat (lokus = posisi dalam individu).
4. [Mengganti] Menggunakan populasi yang baru dibentuk untuk menjalankan algoritma lebih lanjut.
5. [Menguji] Jika sudah mencapai n iterasi atau optimal, berhenti dan diperoleh solusi terbaik dari populasi ini. Jika tidak maka kembali ke langkah 2 sampai diperoleh solusi terbaik dari populasi ini.
(Obitko, 1998)
2.5 Hybrid ACO dan GA
Hybrid menurut bahasa berarti campuran atau gabungan, jadi hybrid algorithm merupakan suatu algoritma yang digunakan untuk menyelesaikan suatu permasalahan yang menggunakan dua algoritma berbeda atau lebih. Hybrid ACO dan GA artinya menggabungkan antara algoritma ACO dan algoritma GA menjadi satu algoritma untuk menyelesaikan suatu permasalahan.
(Dechter, 2011)
2.6. Pemrograman Java
karena java bersifat open-source sehingga java merupaka bahasa pemrograman
portable yang bisa digunakan secara muti-platform (Sistem Operasi) dan multi-arsitekturdimana arsitektur java terbagi menjadi tiga bagian yaitu:
1. Java 2 Enterprise Edition ( J2EE ) untuk aplikasi berbasis web, aplikasi sistem tersebar dengan beraneka ragam klien dengan kompleksitas yang tinggi.
2. Java 2 Standard Edition ( J2SE ) untuk aplikasi standar berbasis dekstop. 3. Java 2 Mobile Edition (J2ME) untuk aplikasi mobile seperti handphone.
( Utama, 2002 )
Hal yang paling penting dalam pemrograman java adalah memahami karakter dari pola pemrograman berbasis objek yang mencakup konsep utama pada Object Oriented Programing ( OOP ) yaitu :
1. Class
Dalam java, kelas didefinisikan menggunakan kata kunci class .
2. Method
Terdapat dua buah method (metode) yaitu fungsi dan prosedur. Fungsi merupakan metode yang memiliki nilai balik yang menggunakan kata kunci tipe_data <spasi> nama_fungsi() . Sebaliknya prosedur merupakan metode yang tidak memiliki nilai balik yang menggunakan kata kunci
void <spasi> nama_fungsi().
3. Inheritance ( pewarisan )
Pewarisan adalah membentuk subkelas baru ( kelas anak ) dari kelas utama atau kelas induk sebelumnya yang menggunakan kata kunci class <spasi> nama_kelas_anak <spasi> extends <spasi> nama_kelas_induk.
4. Polimorfisme
Polimorfisme adalah pembentukan kelas baru yang bersifat abstrak karena adanya keragaman fungsi dari objek – objek yang identik. Oleh karena itu
polimorfisme membentuk kelas abstrak yang menggunakan kata kunci
abstract.
5. Interface
Interface hampir menyerupai kelas abstrak, akan tetapi interface
merupakan kelas abstrak sepenuhnya yang bertujuan untuk menerapkan pewarisan jamak. Interface menggunakan kata kunci interface.
26 BAB III
METODE PENELITIAN
Adapun langkah-langkah penyelesaian masalah untuk QAP dengan menggunakan hybrid ACO dan GA adalah sebagai berikut :
1. Studi pustaka Quadratic Assignment Problem, Ant Colony Optimization,
Genetic Algorithm dan bahasa pemrograman java. 2. Mengkodekan QAP dengan pengkodean permutasi. 3. Prosedur hybrid ACO dan GA pada QAP :
a. Pengisian parameter, diantaranya :
Menentukan α , ρ , β, matrik Pheromone, jumlah semut, jumlah lokasi, jumlah fasilitas, konstanta Q, pop_size, nilai probabilitas crossover (Pc) , nilai probabilitas mutasi (Pm) dan max_iterasi.
b. Inisialisasi
Menentukan matrik biaya dengan cara mengalikan jumlah matrik arus dengan jumlah matrik jarak.
c. Mengisi tabu list.
Masing-masing semut memilih fasilitas untuk lokasi awal dan berikutnya secara acak dengan menggunakan persamaan (2.4) dan memasukkannya ke dalam tabu list, dengan syarat fasilitas dan lokasi tersebut belum masuk ke dalam tabu list. Jika fasilitas dan lokasi sudah masuk dalam tabu list maka fasilitas dan lokasi tersebut tidak boleh dipilih.
d. Menghitung nilai fungsi tujuan.
Setelah tabu list penuh atau dengan kata lain semua fasilitas dan lokasi sudah dikunjungi maka nilai fungsi tujuannya dihitung dengan menggunakan persamaan (2.1) untuk kemudian dibandingkan dan dicari nilai fungsi tujuan terkecil. Tabu list yang memiliki fungsi tujuan terkecil inilah sebagai solusi terbaik pada iterasi saat ini.
e. Menyimpan solusi terbaik
Solusi-solusi terbaik dari perhitungan nilai fungsi tujuan setiap solusi pada langkah d akan disimpan dalam satu himpunan.
f. Memperbarui matrik pheromone.
Matrik pheromone ini akan digunakan pada iterasi selanjutnya. Nilai yang lebih besar pada fasilitas i dan lokasi j pada matrik pheromone
tersebut menandakan lebih banyak semut yang melalui garis tersebut. Matrik pheromone diperbarui dengan menggunakan persamaan (2.7). Nilai matrik pheromone yang baru akan digunakan pada iterasi selanjutnya. g. Mengulang proses.
jika iterasi sama dengan Max_Iterasi maka iterasi berhenti dan mendapatkan solusi_awal QAP. Apabila belum tercapai, kosongkan tabu list selanjutnya kembali melakukan langkah c.
h. Solusi awal
i. Populasi awal untuk proses GA.
solusi_awal menjadi individu pada populasi awal. Membangkitkan individu untuk populasi awal sejumlah pop_size dikurangi jumlah
solusi_awal.
j. Menghitung nilai fungsi tujuan.
Mengevaluasi populasi dengan cara menghitung nilai fungsi tujuan menggunakan persamaan (2.1) dari masing-masing individu.
k. Menentukan seleksi induk.
Seleksi yang akan digunakan adalah seleksi roda rollet. Tahapan-tahapan seleksi roda rollet adalah sebagai berikut :
i. Menghitung nilai fitness untuk setiap individu dengan menggunakan persamaan (2.9).
ii. Menghitung total nilai fitness untuk populasi.
iii. Menghitung probabilitas seleksi untuk setiap individu. iv. Menghitung probabilitas kumulatif untuk setiap individu.
v. Melakukan generate bilangan acak dari interval [0,1].
vi. Menentukan individu yang akan diproses untuk crossover dan mutasi.
l. Proses Crossover.
Crossover yang digunakan dalam proposal skripsi ini adalah Partial-Mapped Crossover (PMX). Tahapan-tahapan dalam PMX adalah sebagai berikut :
i. Tentukan dua posisi pada individu dengan aturan acak. Substring yang berada dalam dua posisi itu dinamakan daerah pemetaan.
ii. Tukar dua substring antar induk untuk menghasilkan bakal anak.
iii. Tentukan hubungan pemetaan diantara dua daerah pemetaan. iv. Tentukan individu keturunan mengacu pada hubungan
pemetaan. m.Proses mutasi.
Mutasi yang digunakan dalam proposal skripsi ini adalah Insertion Mutation. Tahapan-tahapan dalam Insertion Mutation adalah sebagai berikut :
i. Memilih dua posisi titik gen secara acak pada induk, namakan
posisi_1 dan posisi_2.
ii. Menentukan anak dengan cara menyisipkan gen pada posisi_2
ke posisi_1.
iii. Sedangkan untuk gen yang lainnya akan bergeser berurutan sesuai posisinya dan hasilkanya akan menjadi anak.
n. Evaluasi anak.
o. Populasi baru.
Menyeleksi dalam pembentukan populasi baru dengan tahapan-tahapan sebagai berikut :
i. Mengumpulkan individu dari populasi awal, anak hasil
crossover dan anak hasil mutasi.
ii. Semua individu tersebut diurutkan berdasarkan nilai fungsi tujuannya.
iii. Diambil individu-individu terbaik sebanyak pop_size.
p. Mengulang proses.
jika iterasi sama dengan Max_Iterasi maka iterasi berhenti dan mendapatkan solusi_akhir QAP. Apabila belum tercapai, kembali melakukan langkah i.
4. Membuat program dari algoritma hybrid ACO dan GA pada QAP dengan menggunakan bahasa pemrograman java.
5. Mengimplementasikan pada suatu contoh kasus QAP.
Alur algoritma Hybrid ACO dan GA, disajikan dalam Gambar 3.1.
Gambar 3.1 Skema flowchart hybrid ACO dan GA mulai
Pengisian Parameter
Inisialisasi
Kosongkan Tabu List
Pengisian Tabu List
Menghitung Nilai Fungsi Tujuan
Update Pheremone
max_iterasi?
Solusi Awal
Solusi awal dan Generate populasi
Seleksi
Mutasi
Crossover
Anak
Evaluasi Anak
Populasi baru
Iterasi =
max_iterasi
Selesai yes
No
yes
32 BAB IV
PEMBAHASAN
Pada Bab ini diberikan beberapa penjelasan mengenai penerapan Hybrid Ant Colony Optimization dan Genetic Algorithm pada Quadratic Assignment Problem (QAP).
4.1 Masalah Penugasan Kuadratik
Persoalan penugasan merupakan masalah penempatan fasilitas pada suatu lokasi tertentu sehingga :
1. Fasilitas-fasilitas dengan spesifikasi tertentu akan terkelompok dalam suatu stasiun kerja.
2. Penempatan fasilitas pada suatu lokasi tertentu dapat meminimalkan jarak tempuh total perpindahan bahan antar fasilitas, sehingga akan meminimalkan biaya operasional produksi.
Berdasarkan pada (Gen dan Cheng, 1997) secara umum model penugasan kuadratik dapat dinyatakan pada persamaan (2.1) dengan kendala fungsional yang harus dipenuhi pada persamaan (2.2).
4.2 Prosedur Hybrid Algorithm Ant Colony Optimization dan Genetic
Algorithm
Penyelesaian QAP dengan menggunakan Hybrid (penggabungan) antara
Algorithm Ant Colony Optimization dan Genetic Algorithm, akan diuraikan sebagai berikut ini. Proses di awali dengan menyelesaian QAP dengan Ant Colony
Optimization. Hasil terbaik (solusi awal) akan menjadi individu awal bagi proses selanjutnya dengan Genetic Algorithm. Pada GA dibangkitkan individu untuk populasi awal sejumlah pop_size dikurangi dengan jumlah solusi awal. Prosedur
Hybrid ACO dan GA dijelaskan dalam Gambar 4.1.
Procedure for Hybrid ACO and GA begin
parameter setting ( ); inisialisasi ( );
while (not max iteration) do begin
pengisian tabu_list ( ); hitung fungsi tujuan ( ); solusi awal ( );
perbaruhi matriks pheromone ( ); end
while (not max iteration) do begin
generate pop_size ( ); seleksi pop_size ( );
genetic operation ( );
evaluasi anak ( ); pop_baru ( );
end end
Gambar 4.1 Prosedur Hybrid ACO dan GA
Untuk mempermudah ilustrasi Hybrid Ant Colony Optization dan Genetic Algorithm maka prosedur diatas diuraikan pada Gambar 3.1.
4.2.1 Pengisian Parameter
Prosedur pengisian parameter disajikan dalam Gambar 4.2. Beberapa istilah yang dipakai, jml_ant adalah banyaknya semut, alpha adalah tetapan pengendali intensitas Pheromone, betha adalah tetapan pengendali visibilitas,
phero_awal adalah nilai awal dari matriks pheromone, rho adalah koefisien penguapan intensitas pheromone, Q adalah konstanta ketetapan, jml_lok adalah jumlah lokasi, jml_fas adalah jumlah fasilitas, pop_size adalah ukuran populasi,
Pc adalah nilai probabilitas crossover, Pm adalah nilai probabilitas mutasi, max_iterasi adalah iterasi maksimum yang akan digunakan untuk membatasi banyaknya siklus dalam pencarian solusi optimal.
Procedure for parameter setting begin
Banyak semut: jml_ant; Nilai alpha : alpha; Nilai Betha : betha;
Nilai pheromone awal : phero_awal; Koefisien penguapan : rho;
Konstanta Q : Q; Jumlah lokasi : jml_lok; Jumlah fasilitas : jml_fas; Ukuran Populasi : Pop_size;
probabilitas crossover : Pc;
probabilitas mutasi : Pm ;
Banyak Iterasi : max_iterasi; end
Gambar 4.2 Prosedur pengisian parameter
Setelah proses pengisian parameter sudah dilakukan, maka proses selanjutnya untuk menyelesaikan QAP ini adalah inisialisasi.
4.2.2 Inisialisasi
Pada prosedur ini akan ditentukan nilai dari eij ditunjukkan pada Gambar
4.3. adalah elemen baris ke-i dan kolom ke-j dari matriks biaya yang dibutuhkan untuk menugaskan fasilitas i pada lokasi j. diperoleh dari perkalian dan , dengan adalah jumlahan elemen baris ke-i dari matriks fasilitas dan adalah jumlahan elemen kolom ke-j dari matriks lokasi. Sedangkan adalah matriks arus antara fasilitas i dan fasilitas k, adalah matriks jarak antara lokasi j dan lokasi l.
Procedure for initialization begin
for i 0 to jml_fas - 1 begin
0;
for k 0 to jml_fas - 1 begin
= + ;
end
end
for j 0 to jml_lok - 1 begin
0;
for l 0 to jml_lok - 1
begin
= + ;
end
end
for i 0 to jml_fas - 1 begin
for j 0 to jml_lok - 1 begin
= * ;
end
end end
Gambar 4.3 Prosedur inisialisasi
4.2.3 Pengisian tabu list
Pada prosedur ini masing-masing semut memilih fasilitas untuk lokasi awal dan berikutnya secara acak dengan menggunakan persamaan (2.3) dan memasukkannya ke dalam tabu list. Prosedur untuk mengisi tabu list ditunjukkan pada Gambar 4.4.
Procedure for pengisian tabu_list begin
for k 0 to jml_semut - 1 begin
calculate probabilitas ( ); calculate pilih_fasilitas ( ); end
end
Gambar 4.4 Prosedur pengisian tabu list
Untuk mempermudah ilustrasi pengisian tabu list maka prosedur diatas dapat dinyatakan dalam flowchart seperti pada Gambar 4.5 :
Gambar 4.5 Flowchart pengisian tabu list
Pada Gambar 4.4. tercantum sebuah perintah untuk menghitung
probabilitas. prob_ant adalah probabilitas semut untuk menugaskan fasilitas i
pada lokasi j. Prosedur untuk menghitung probabilitas disajikan pada Gambar 4.6.
Procedure for calculate probabilitas begin
for k 0 to jml_ant – 1 for j 0 to jml_lok - 1
begin
Ya Tidak
Ya
Tidak Tidak
Ya Mulai
Cek Node
Generate Random
k iterasi ?
Selesai Hitung Probabilitas
Isi tabu list untuk pilih fasilitas i iterasi ?
penyebut hitung_penyebut(k, j);
Gambar 4.6 Prosedur menghitung probabilitas
Pada Gambar 4.6. tercantum sebuah fungsi hitung_penyebut. sum_allowed
adalah
yang disajikan pada Gambar 4.7.
Procedure for hitung_penyebut
Gambar 4.7 Prosedur hitung penyebut
Prosedur untuk menghitung cek_node disajikan pada Gambar 4.8, dengan nilai 0 untuk fasilitas ke-i yang masih belum ditugaskan pada lokasi j dan nilai 1 untuk fasilitas ke-i yang sudah ditugaskan pada lokasi j.
Procedure for cek_node begin
ada 0;
for j 0 to jml_lok - 1 begin
if (i == ) begin
ada 1; end
end return (ada); end
Gambar 4.8 Prosedur cek node
Pada Gambar 4.4. tercantum sebuah perintah untuk memilih fasilitas. perm
adalah nilai probabilitas semut ke-k pada fasilitas ke-i, dan randm adalah bilangan acak antara 0 dan 1. Prosedur untuk menghitung probabilitas disajikan pada Gambar 4.9.
Procedure for pilih_fasilitas begin
i 0;
perm ;
acak random(0,1);
while ((acak > perm) && (i < jml_fas - 1)) begin
i++;
perm perm + ; end
i; end
Gambar 4.9 Prosedur memilih fasilitas
4.2.4 Menghitung Nilai Fungsi Tujuan
list tersebut akan diubah kedalam bentuk matriks penempatan (x). matriks penempatan (x) merupakan matrik yang berelemen biner (0 dan 1), dimana jika bernilai 1 maka fasilitas i ditempatkan pada lokasi j dan 0 jika tidak ditempatkan. Prosedur untuk menghitung fungsi tujuan tersaji pada Gambar 4.10, dengan digunakan untuk menampung nilai tmpf, tmpf diperoleh dari menghitung nilai fungsi tujuan dari masing-masing semut dengan rumus
Procedure for fungsi tujuan begin
Gambar 4.10 Prosedur fungsi tujuan
Pada Gambar 4.10. tercantum sebuah perintah untuk menghitung isi_x. Prosedur untuk menghitung isi_x disajikan pada Gambar 4.11, dengan adalah elemen matriks penempatan (x), bernilai 1 jika sama dengan fasilitas ke-i.
Procedure for calculate isi_x begin
for j 0 to jml_lok - 1 begin
for i 0 to jml_fas - 1 begin
if ( == i)
1;
else
0;
end end end
Gambar 4.11 Prosedur isi x
4.2.5 Menyimpan solusi terbaik
Hasil perhitungan nilai fungsi tujuan akan dibandingkan dan nilai terbaik artinya solusi_awal yang paling kecil akan disimpan untuk dijadikan populasi awal pada proses genetic algorithm. Prosedur penyimpanan solusi terbaik disajikan pada Gambar 4.12.
Procedure for save the solution Begin
Min =
for ant 0 to jml_ant – 1 if
< Min
Min = ; end
for ant 0 to jml_ant – 1
if = Min update AR[ant] = ant ; end
end
4.2.6 Memperbarui Matriks Pheromone
Setelah tabu_list penuh kemudian matriks pheromone diperbarui dengan
matriks pheromone disajikan pada Gambar 4.13.
Procedure for Update Pheromone
Gambar 4.13 Prosedur update pheromone
Pada Gambar 4.13. tercantum delta(i,j). Prosedur untuk menghitung
delta(i,j) disajikan pada Gambar 4.14.
Procedure for calculate delta
Gambar 4.14 Prosedur menghitung delta
4.2.7 Generatepop_size
Pada prosedur ini akan dibangkitkan sejumlah individu secara random didaerah solusi yang fisibel. Sejumlah individu yang dibangkitkan dari ruang penyelesaian akan membentuk sebuah populasi, dimana jumlah individu yang dibangkitkan dalam populasi awal adalah pop_size dikurangi dengan jumlah
solusi_awal. Adapun prosedur untuk men-generate pop_size disajikan dalam Gambar 4.15.
Procedure for Generate pop_size begin
m = pop_size - solusi_awal; a 0;
while (a < m) do begin
generate individu dengan permutasi; a a + 1;
end end
Gambar 4.15 Prosedur generate pop_size
Pada Gambar 4.15 tercantum generate individu dengan menggunakan permutasi. Prosedur men-generate individu dengan menggunakan permutasi disajikan dalam Gambar 4.16. Misalkan pop_size adalah banyak individu dalam populasi dan tempi merupakan posisi gen dalam individu. Posisi adalah merandom dari 0, 1, ..., pop_size – 1.
Procedure for Generate individu dengan menggunakan permutasi begin
for b 0 topop_size - 1 begin
b; end
; for c posisi topop_size – 1
begin
; end
end
return individu; end
Gambar 4.16 Prosedur men-generate individu dengan menggunakan permutasi
4.2.8 Menghitung Nilai Fungsi Tujuan
Individu dalam populasi sudah terbentuk, dilakukan prosedur perhitungan nilai fungsi tujuan dari setiap individu, prosedurnya seperti pada bagian 4.2.4.
4.2.9 Seleksi
Seleksi merupakan suatu proses untuk menentukan individu yang akan dijadikan induk crossover ataupun induk mutasi. Pada kasus QAP ini, seleksi yang digunakan adalah seleksi rollet whell (roda rollet). Pada seleksi ini diharapkan individu dengan nilai fitness terbaik dapat menjadi induk crossover
dan mutasi. Seleksi ini didasarkan pada nilai fitness masing-masing individu. Parameter yang penting dalam seleksi ini adalah penentuan Pc dan Pm. Parameter
Pc ini digunakan untuk menentukan probabilitas individu yang akan di crossover.
Penentuan Pc untuk permasalahan QAP ini, direkomendasikan sebesar 0,6 (Obitko, 1998). Sedangkan Pm digunakan untuk menentukan probabilitas individu yang akan di mutasi. Penentuan Pm untuk permasalahan QAP ini, direkomendasikan sebesar 0,1 (Gen dan Cheng, 1997).
Prosedur untuk seleksi disajikan pada Gambar 4.17 dengan adalah individu ke – k, sumfx adalah jumlahan dari fungsi tujuan, adalah nilai
fitness individu , F adalah jumlahan dari nilai fitness, adalah probabilitas seleksi dan adalah probabilitas komulatif.
Procedure for Selection
4.2.10 Seleksi Crossover
Generate rp dengan rp merupakan bilangan acak dari interval [0,1] dan
size pop
p1,2,, _ . Untuk memilih induk-induk yang akan dicrossover harus memenuhi ketentuan sebagai berikut :
Jika rp pc, maka individu ke-p tersebut akan terpilih menjadi induk yang akan mengalami crossover.
Prosedur untuk seleksi crossover disajikan dalam Gambar 4.18. Misal rp adalah nilai random ke-p, pc adalah probabilitas crossover, dan vp adalah individu ke-p.
Procedure selection crossover begin
for p1 topop_ size do
p
r random number [0,1]; end
for p1topop_ sizedo
if
rp pc
then pilih vp sebagai induk crossover; endend
Gambar 4.18 Prosedur seleksi crossover
4.2.10.1 Crossover
Pada proses seleksi crossover telah diperoleh sejumlah induk crossover.
Jika dari seleksi crossover dihasilkan induk-induk crossover yang jumlahnya gasal, maka dibuang satu induk sehingga jumlahan induk crossover menjadi genap. Selanjutnya induk-induk tersebut akan mengalami crossover dengan cara mengambil dua induk yang akan dicrossover untuk menghasilkan dua anak.
Proses ini dilakukan sampai semua induk crossover mengalami proses crossover. Anak-anak hasil crossover diharapkan lebih baik daripada induk-induknya.
Crossover yang akan digunakan adalah PMX, dengan Langkah-langkahnya sebagai berikut :
Langkah 1: Memilih dua individu hasil seleksi crossover untuk dijadikan induk
crossover yang dinamakan induk_1 dan induk_2.
Langkah 2: Memilih dua posisi secara acak, namakan pos_1 dan pos_2.
Langkah 3: Menentukan subuntaian. Dari pos_1 sampai pos_2 dianggap sebagai subuntaian yang akan dijadikan bagian yang dipetakan. Subuntaian pada induk_1 dan induk_2, namakan sub_1 dan sub_2.
Langkah 4: Mengkopi sub_1 ke anak awal_2 dan sub_2 ke anak awal_1 bersesuaian dengan posisinya. Sisanya pada induk_1 yang bukan sub_1 dikopi ke anak awal_1 dan sisanya pada induk_2 yang bukan sub_2 dikopi ke anak awal_2 bersesuaian dengan posisinya.
Langkah 5: Menentukan pemetaan antara sub_2 dengan sub_1.
rangkap pada satu individu, dan terakhir akan diperoleh dua anak yaitu anak 1 dan anak 2.
Langkah-langkah PMX ini dapat dibentuk dalam bentuk prosedur, adapun prosedur untuk PMX disajikan dalam Gambar 4.19.
Procedure crossover PMX begin
1
i ;
for (i( jumlah induk crossover/2)) do
Ambil dua individu sebagai induk crossover dari seleksi crossover; Pilih dua posisi sepanjang urutan secara acak;
Tentukan sub-urutan dari dua posisi yang disebut pilihan pemetaan; Tukar dua sub-urutan antara induk untuk membentuk sub-anak; Tentukan hubungan pemetaan antara dua pilihan pemetaan; Nyatakan anak dengan hubungan pemetaan;
1
i
i ;
end end
Gambar 4.19 Prosedur crossover PMX
4.2.11 Seleksi Mutasi
Generate rq yang merupakan bilangan acak dari interval [0,1] dan
size pop
q1,2,, _ . Untuk memilih induk-induk yang akan dimutasi harus memenuhi ketentuan sebagai berikut :
Jika rq pm, maka individu ke-q tersebut akan terpilih menjadi induk yang akan mengalami mutasi.
Prosedur untuk seleksi mutasi disajikan dalam Gambar 4.20. Misal rq adalah random ke-q, pm adalah probabilitas mutasi, dan vq adalah individu ke-q.
Procedure selection mutation begin
for q1 topop_ sizedo
q
r random number [0,1]; end
for q1 topop_ sizedo
if
rq pm
if pilih vq sebagai induk mutasi; Selesaiend
Gambar 4.20 Prosedur seleksi mutasi
4.2.11.1 Mutasi
Jika pada proses seleksi mutasi tidak diperoleh induk yang akan dimutasi, maka proses mutasi tidak dilakukan. Dan sebaliknya jika diperoleh induk mutasi, maka induk tersebut akan mengalami proses mutasi. Anak hasil mutasi tersebut akan dievaluasi, diharapkan anaknya lebih baik daripada induknya. Mutasi yang akan digunakan adalah
Insertion Mutation, langkah-langkahnyaadalah sebagai berikut :
i. Memilih dua posisi titik gen secara acak pada induk, namakan
posisi_1 dan posisi_2.
ii. Menentukan anak dengan cara menyisipkan gen pada posisi_2
ke posisi_1.
iii. Sedangkan untuk gen yang lainnya akan bergeser berurutan sesuai posisinya.
Procedure insertion mutation Begin
posisi_1 random; posisi_2 random;
if (posisi_1 = posisi_2) then do
posisi_2 random; ` while (posisi_1 = posisi_2)
if (posisi_1 < posisi_2) then begin
angka = posisi_1 – posisi_2; if i 0 topop_sizedo
begin
if (i < posisi_1 or i > posisi_2) then ; else
if (i = posisi_1) then ; else ;
end end
else begin
angka posisi_1 – posisi_2; fori 0 to pop_sizedo
begin
if (i < posisi_2 or i > posisi_1) then ; else
if (i = posisi_1) then ; else ;
end end
end
Gambar 4.21 Prosedur insertion mutation
4.2.12 Evaluasi Anak
Anak crossover dan mutasi dihitung nilai fungsi tujuannya, prosedurnya seperti pada 4.2.4.
4.2.13 Populasi Baru
Untuk membentuk populasi baru, langkah awalnya mengumpulkan populasi awal, anak hasil crossover dan anak hasil mutasi. Selanjutnya semua individu tersebut akan diurutkan sesuai dengan bobotnya. Individu dipilih yang
terbaik sebanyak pop_size untuk dibentuk menjadi populasi baru. Sedangkan individu yang tidak terpilih akan dikeluarkan dari populasi. Prosedur untuk populasi baru disajikan dalam Gambar 4.22.
Procedure new population begin
Ambil semua individu dari populasi awal, anak crossover dan anak mutasi; Urutkan indivu berdasarkan nilai fungsi tujuan;
Ambil individu terbaik sebanyak pop_size; end
Gambar 4.22 Prosedur populasi baru
4.3 Data
Terdapat 2 data yang akan digunakan yaitu :
1. Data aliran bahan antar fasilitas yang diambil dari Dorigo, dkk. (1996). Pada data ini terdapat 4 fasilitas dengan 4 lokasi, untuk selengkapnya dapat dilihat pada (Lampiran 1).
2. Data aliran bahan antar fasilitas dengan 12, 14, 16, 18 dan 20 fasilitas dan lokasi, data ini diambil dari http://www.seas.upenn.edu/qaplib/inst.html , penelitihan dari Hadley, dkk (1992), untuk data selengkapnya dapat dilihat pada (Lampiran 1).
4.4 Contoh Kasus Quadratic Assignment Problem dengan Menggunakan Data
4 fasilitas dan 4 lokasi yang Diselesaikan Secara Manual
Langkah – langkah penyelesainnya adalah sebagai berikut :
4.4.1 Pengisian Parameter yang Dibutuhkan
Pada langkah inisialisasi parameter, dipilih jml_ant = 5, alpha = 1, betha = 1, phero_awal = 0,1, rho = 0,9, Q = 100, jml_lok = 4 , jml_fas = 4, pop_size = 5,
Pc = 0,6, Pm = 0,1, max_iterasi = 1. Karena phero_awal = 0,1 sehingga terbentuk matriks pheromone berukuran i x j dengan i = j , yang menggambarkan banyaknya pheromone antar fasilitas i dan lokasi j.
Matriks pheromone = [
]
Dari matriks arus (flow) dan matriks jarak, maka dapat diperoleh matriks baru yaitu matriks biaya. Matriks biaya digunakan untuk menentukan seberapa besar biaya memilih fasilitas i ditempatkan pada lokasi j.
Matriks arus (F) = [
]
Jumlah dari matriks arus ke-i (fi) = [
]
Matriks jarak (D) = [
]
Jumlah dari matriks jarak ke-j (dj) = [
]
Dari pekalian antara fi dan dj, maka dapat diperoleh matrik biaya.
Matriks biaya (eij) =[
4.4.2 Pengisian tabu list
Masing-masing semut memilih fasilitas untuk lokasi awal dan berikutnya secara acak dengan menggunakan persamaan (2.1) dan memasukkannya ke dalam
tabu list.
Pada j = 0
Untuk semut ke-0.
Probabilitas memilih fasilitas 0 ke lokasi 0 :
Probabilitas memilih fasilitas 1 ke lokasi 0 :
Probabilitas memilih fasilitas 2 ke lokasi 0 :
198
Probabilitas memilih fasilitas 3 ke lokasi 0 :
169
Karena pada j = 0 semua semut belum memilih fasilitas pada lokasi awal, sehingga nilai probabilitas semua semut untuk memilih fasilitas pada lokasi awal adalah sama. Hasil selengkapnya ditunjukkan pada Tabel 4.1.
Tabel 4.1 Probabilitas pada j = 0
Ant Probabilitas memilih fasilitas pada lokasi 0
Selanjutnya menghitung probabilitas komulatif dari probabilitas relatif pada semut ke-0, yang disajikan pada Tabel 4.2.