• Tidak ada hasil yang ditemukan

HYBRID ALGORITHM ANT COLONY OPTIMIZATION DAN GENETIC ALGORITHM UNTUK MENYELESAIKAN QUADRATIC ASSIGNMENT PROBLEM Repository - UNAIR REPOSITORY

N/A
N/A
Protected

Academic year: 2019

Membagikan "HYBRID ALGORITHM ANT COLONY OPTIMIZATION DAN GENETIC ALGORITHM UNTUK MENYELESAIKAN QUADRATIC ASSIGNMENT PROBLEM Repository - UNAIR REPOSITORY"

Copied!
148
0
0

Teks penuh

(1)

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.

(2)

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.

(3)

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)

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

(5)

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

(6)

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

(7)

xiii

DAFTAR LAMPIRAN

No. Judul Lampiran

1. Data Quadratic Assignment Problem

2. Source Code Program

3. Hasil implementasi Program pada QAP

4. Output

(8)

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.

(9)

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.

(10)

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

(11)

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).

(12)

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.

(13)

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).

(14)

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

W0, 1, 1, 2, 2,..., 1, , , untuk n0

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 n3, v0vn 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

(15)

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

(16)

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

(17)

   

, 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

(18)

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.

(19)

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

(20)

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

(21)

( )

( )

∑ ( ) (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.

(22)

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

(23)

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)

(24)

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)

(25)

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)

(26)

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 jpop_host

dengan qj1sqj.

(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)

(27)

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.

(28)

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

(29)

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).

(30)

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

(31)

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().

(32)

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.

(33)

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.

(34)

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

(35)

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 :

(36)

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.

(37)

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.

(38)

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

(39)

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

(40)

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.

(41)

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.

(42)

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

(43)

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 :

(44)

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 ?

(45)

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.

(46)

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

(47)

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.

(48)

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

(49)

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

(50)

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

(51)

; 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).

(52)

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

(53)

4.2.10 Seleksi Crossover

Generate rp dengan rp merupakan bilangan acak dari interval [0,1] dan

size pop

p1,2,, _ . Untuk memilih induk-induk yang akan dicrossover harus memenuhi ketentuan sebagai berikut :

Jika rppc, 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 p1 topop_ size do

p

r random number [0,1]; end

for p1topop_ sizedo

if

rppc

then pilih vp sebagai induk crossover; end

end

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.

(54)

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.

(55)

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

q1,2,, _ . Untuk memilih induk-induk yang akan dimutasi harus memenuhi ketentuan sebagai berikut :

Jika rqpm, 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.

(56)

Procedure selection mutation begin

for q1 topop_ sizedo

q

r random number [0,1]; end

for q1 topop_ sizedo

if

rqpm

if pilih vq sebagai induk mutasi; Selesai

end

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.

(57)

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

(58)

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

(59)

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) = [

]

(60)

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 :

(61)

 

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.

Gambar

Gambar 3.1 Skema flowchart hybrid ACO dan GA
Gambar 4.2 Prosedur pengisian parameter
Gambar 4.3 Prosedur inisialisasi
Gambar 4.4 Prosedur pengisian tabu list
+7

Referensi

Dokumen terkait

Adapun fase penerapan model pembelajaran kooperatif tipe TGT yang dilakukan dengan memodifikasi langkah-langkah siklus I ke siklus II yakni fase II (penyajian

Pada daerah bagian utara dan sebelah timur penelitian ini, keberadaan terumbu karang juga sangat berperan terhadap distribusi foraminifera, terutama karena habitatnya selalu

Berdasarkan tabel 2 dapat dilihat bahwa kategori pengetahuan responden sebelum dilakukan intervensi (4,3%) termasuk kategori sangat tidak baik, setelah intervensi tidak

Puskesmas sebagai salah satu tempat pelayan kesehatan, telah melakukan upaya penanggulangan penyakit TB Paru melalui berbagai program kesehatan, berupa

Pengaruh pemberian kombinasi konsentrasi ekstrak daun kelor ( Moringa oleifera ) dengan pupuk walne dalam media kultur terhadap laju pertumbuhan dan kandungan karotenoid

Tujuan dari penelitian ini ialah guna mengetahui apa saja metode pembelajaran PAI bagi Kelas VII yang ada di SLB Negeri sragen, pelaksanaan dalam menerapkan

Mengingat tingginya tingkat risiko pada produk- produk investasi derivatif tersebut, maka saran yang biasa diberikan kepada setiap investor adalah : (1) Memahami dulu produk

Assalamualaikum Wr. Salam Sejahtera Bagi Kita Semua. Puji syukur kehadirat Allah SWT, karena atas hidayah-Nya maka Seminar Hasil Pengabdian Masyarakat 2020 dapat