• Tidak ada hasil yang ditemukan

HYBRID ALGORITMA CAT SWARM OPTIMIZATION (CSO) DAN SIMULATED ANNEALING (SA) UNTUK PERMASALAHAN LAND ALLOCATION Repository - UNAIR REPOSITORY

N/A
N/A
Protected

Academic year: 2019

Membagikan "HYBRID ALGORITMA CAT SWARM OPTIMIZATION (CSO) DAN SIMULATED ANNEALING (SA) UNTUK PERMASALAHAN LAND ALLOCATION Repository - UNAIR REPOSITORY"

Copied!
171
0
0

Teks penuh

(1)

Dyah Ayu Puspitasari. 2018. Hybrid Algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) untuk Permasalahan Land Allocation. Skripsi ini dibawah bimbingan Dr. Herry Suprajitno, M.Si dan Auli Damayanti, S.Si., M.Si. Departemen Matematika. Fakultas Sains dan Teknologi. Universitas Airlangga.

ABSTRAK

Skripsi ini bertujuan untuk menyelesaikan masalah alokasi lahan dengan mendapatkan urutan masuk dari lahan komponen yang dapat meminimalkan tinggi lahan yang terpakai menggunakan hybrid algoritma cat swarm optimization

dan simulated annealing serta membuat program komputer menggunakan bahasa

pemrograman C++. Permasalahan alokasi lahan digambarkan dengan penempatan lahan komponen ke dalam lahan yang tersedia. Beberapa metode telah digunakan untuk menyelesaikan permasalahan alokasi lahan, salah satunya adalah cat swarm optimization.

Cat Swarm Optimization (CSO) adalah algoritma yang didapat melalui

pengamatan terhadap perilaku sekumpulan keluarga kucing, sedangkan Simulated Annealing adalah metode yang meniru perilaku pergerakan atom atom baja yang

dipanaskan kemudian didinginkan secara perlahan. Hybrid algoritma cat swarm optimization dan simulated annealing merupakan algoritma yang menggabungkan

proses algoritma cat swarm optimization dan simulated annealing. Proses simulated annealing diletakkan pada solusi terburuk dari cat swarm optimization

pada 10 iterasi pertama. Proses hybrid algoritma cat swarm optimization dan simulated annealing dimulai dengan input data dan inisialisasi parameter,

membangkitkan posisi dan kecepatan awal, mengevaluasi fungsi tujuan, memberi nilai SPC, penempatan flag, mode seeking, mode tracing, pemilihan solusi untuk

diproses dengan algoritma simulated annealing, melakukan proses algoritma simulated annealing terhadap solusi terburuk cat swarm optimization dengan

modifikasi, pencarian lokal, pemilihan, dan penurunan suhu.

Data yang digunakan berupa 2 jenis data dan diselesaikan dengan bahasa pemrograman C++ menggunakan software Borland C++ 5.0.2. Penyelesaian yang

didapatkan menggunakan program hybrid algoritma cat swarm optimization dan simulated annealing untuk data pertama dengan jumlah lahan sebanyak 13 unit

dan lebar lahan 200 feet, didapatkan tinggi minimum lahan terpakai adalah 50 feet. Untuk data kedua dengan jumlah lahan 75 unit dan lebar lahan 250 meter,

didapatkan tinggi minimum lahan terpakai adalah 222 meter.

(2)

Dyah Ayu Puspitasari. 2018. Hybrid Cat Swarm Optimization Algorithm and Simulated Annealing for Land Allocation Problem. This Thesis was under guidance of Dr. Herry Suprajitno, M.Si and Auli Damayanti, S.Si., M.Si. Mathematics Department. Science and Technology Faculty. Airlangga University.

ABSTRACT

This thesis has purpose to solve land allocation problem to get the pack order of component land into a square of land so that will minimize used object height using hybrid of Cat Swarm Optimization Algorithm and Simulated Annealing,

and making a computer program of it using C++ languange programming. Land allocation problem can be presented by placement of component land into a square of land. Several methods have been used to solve land allocation problems, ones of which is cat swarm optimization.

Cat Swarm Optimization (CSO) is an algorithm obtained through observation of the behavior of a family of cats, while Simulated Annealing is a method that mimics the behavior of later heated steel atomic atoms cool down slowly. Hybrid of Cat Swarm Optimization algorithm and Simulated Annealing is an algorithm that combines the process of Cat Swarm Optimization algorithm with Simulated Annealing. Process Simulated Annealing putting on the bad solution Cat Swarm Optimization on the 10 first iterasions. Process hybrid algorithm CSO and SA begins with data input and initialization parameters, raised position and the initial velocity, evaluate the objective function, giving a value of SPC, the placement of the flags, seeking mode, tracing mode, electoral solution to be processed by this algorithm, the process of this algorithm to the solution the worst in the CSO with modifications, local search, selection, and drop in temperature.

There’s 2 kinds of data being used and solve with C++ programming language using Borland C++ 5.0.2 software. Using hybrid of cat swarm optimization algorithm and simulated annealing with C++ programming language, achieved minimum height from used object is 50 feet for data with 13 component land and object width 200 feet. Second data with 75 component land and object width 250 meters, the minimum height achieved is 222 meters.

(3)

DAFTAR ISI

Halaman

LEMBAR JUDUL ... i

LEMBAR PERNYATAAN ... ii

LEMBAR PENGESAHAN NASKAH SKRIPSI ... iii

LEMBAR PEDOMAN PENGGUNAAN SKRIPSI ... iv

SURAT PERNYATAAN ORISINALITAS ... v

KATA PENGANTAR ... vi

ABSTRAK ... ix

ABSTRACT ... x

DAFTAR ISI ... xi

DAFTAR TABEL ... xiii

DAFTAR GAMBAR ... xv

DAFTAR LAMPIRAN ... xvii

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 2

1.3 Tujuan ... 3

1.4 Manfaat ... 3

1.5 Batasan Masalah ... 3

BAB II TINJAUAN PUSTAKA ... 4

2.1 Land Allocation Problemms ... 5

2.2 Masalah Pengepakan Segi Empat 2 Dimensi ... 5

2.2.1 Strip Packing Problem ... 6

2.3 Algoritma Cat Swarm Optimization ... 6

2.3.1 Set Solusi dalam Model ... 7

2.3.2 Seeking Mode ... 9

2.3.3 Tracing Mode ... 10

(4)

2.5 Hybrid ... 13

2.6 Pengkodean ... 13

2.7 Penentuan Nilai Fitness dan Seleksi Roulette Wheel ... 14

2.8 Algoritma Pengisian Rekursif ... 15

2.9 Borland C++ ... 16

2.9.1 Struktur Bahasa C++ ... 16

BAB III METODOLOGI PENELITIAN... 20

BAB IV PEMBAHASAN ... 29

4.1 Masalah Alokasi Lahan ... 29

4.2 Hybrid Algoritma Cat Swarm Optimization dan Simulated Annealing ... 29

4.2.1 Input Data dan Inisialisasi Parameter ... 30

4.2.2 Membangkitkan Solusi Awal ... 31

4.2.3 Membangkitkan Kecepatan Awal ... 32

4.2.4 Representasi Permutasi ... 33

4.2.5 Menghitung Nilai Fungsi Tujuan ... 34

4.2.6 Menghitung Nilai Fitness ... 36

4.2.7 Melakukan Penentuan Flag ... 36

4.2.8 Menentukan Self Position Considering (SPC) ... 37

4.2.9 Melakukan Proses Mode Seeking ... 38

4.2.10 Melakukan Proses Mode Tracing ... 39

4.2.11 Penentuan Solusi Terburuk pada CSO ... 41

4.2.12 Proses Simulated Annealing ... 42

4.2.13 Menyimpan Solusi Terbaik ... 43

4.3 Data ... 44

4.4 Contoh Kasus Masalah Alokasi Lahan dengan Menggunakan Data 13 Lahan Komponen yang Diselesaikan Secara Manual ... 44

4.5 Program ... 69

4.6 Implementasi Program pada Contoh Kasus Land Allocation ... 69

4.6.1 Menggunakan Data 13 Lahan Komponen ... 69

(5)

BAB V PENUTUP ... 72

5.1 Kesimpulan ... 72

5.2 Saran ... 72

(6)

DAFTAR TABEL

Nomor Judul Tabel Halaman

4.1 Spesifikasi dan Ukuran Departemen 45

4.2 Area Komponen dan Dimensi yang Sesuai 45

4.3 Populasi Awal Kucing 46

4.4 Kecepatan Awal Kucing 47

4.5 Hasil Transformasi Kucing pada Populasi Awal 47

4.6 Urutan Masuk Lahan Kucing-1 ( ) 48

4.7 Subspace Setelah Lahan ke-1 Masuk 49

4.8 Subspace Setelah Lahan ke-2 Masuk 49

4.9 Subspace Setelah Lahan ke-3 Masuk 50

4.10 Subspace Setelah Semua Lahan Masuk 51

4.11 Nilai fungsi tujuan masing-masing kucing 52

4.12 flag populasi awal 53

4.13 Nilai fitness terurut dan SPC populasi awal 54

4.14 Hasil update kecepatan kucing 3 55

4.15 Hasil update posisi kucing 3 56

4.16 Hasil transformasi update kucing 3 56

4.17 Perbandingan nilai fitness baru dan nilai fitness lama 57

4.18 Proses Pengcopyan Individu 2 Sebanyak SMP-1 Kali 58

4.19 Penentuan Dimensi untuk Modifikasi 59

4.20 Kandidat Solusi Dalam Seeking Memory Pool Individu 2 60

4.21 Representasi Permutasi dalam SMP-1 individu 2 dan

Fleksibilitas 60

4.22 Tinggi dan Nilai Fitness 61

4.23 Probabilitas Terpilih SMP-1 Individu 2 61

4.24 Probabilitas Relatif SMP Individu 2 62

(7)

4.26 Kandidat Solusi Dalam Seeking Memory Pool Individu 1 64

4.27 Representasi Permutasi dalam SMP individu 1 dan

Fleksibilitas 64

4.28 Tinggi dan Nilai FitnessSMP Individu 1 65

4.29 Probabilitas Terpilih dan Probabilitas Relatif SMP Individu 1 ( 65

4.30 Roulette Wheel Individu 1 66

(8)

DAFTAR GAMBAR

Nomor Judul Gambar Halaman

2.1 Algoritma Pengisian Rekursif 15

3.1 Flowchart Penyelesaian Land Allocation menggunakan Hybrid

Algoritma CSO dan SA 25

3.2 Flowchart Mode Tracing 27

3.3 Flowchart Mode Seeking 28

4.1 Prosedur Hybrid Algoritma CSO dan SA 30

4.2 Prosedur Input Data dan Inisialisasi Parameter 31

4.3 Membangkitkan Populasi awal 31

4.4 Membangkitan Kecepatan Awal 32

4.5 Prosedur Permutasi Objek 33

4.6 Prosedur Memasukkan Lahan ke Lahan yang Tersedia 35 4.7 Prosedur menghitung nilai fitness tiap kucing 36

4.8 Prosedur penentuan flag 37

4.9 Prosedur menentukan Self Position Considering 38 4.10 Prosedur update kecepatan pada mode seeking 39

4.11 Prosedur update kecepatan pada mode tracing 40

4.12 Prosedur update posisi tiap kucing pada mode tracing  40   

4.13 Prosedur perbandingan fitness lama dan fitness baru 41

4.14 Prosedur penentuan solusi terburuk 42

4.15 Prosedur proses Simulated Annealing 43

4.16 Prosedur menyimpan solusi Terbaik (Global Best) 44

4.17 Lahan ke-1 masuk 49

4.18 Lahan ke-2 masuk 50

4.19 Lahan ke-3 masuk 51

(9)

DAFTAR LAMPIRAN

Nomor Judul Lampiran

1 Data Permasalahan Pengepakan Segi Empat 2D dengan 75 Lahan Komponen

2 Source Code Program

(10)

BAB I PENDAHULUAN

1.1 Latar Belakang

Pada jaman sekarang banyak alokasi penggunaan lahan yang tidak efisien dan tidak sesuai dengan tata letak lahan yang baik. Hal ini menyebabkan berbagai dampak negatif, diantaranya meningkatnya ketidakteraturan tata letak lahan, kerusakan lingkungan, dan hilangnya lahan yang seharusnya dapat digunakan secara optimal. Penggunaan lahan dapat diartikan sebagai proses alokasi sejumlah aktivitas atau fungsi lahan yang berbeda (pertanian, industri, rekreasi atau konservasi) ke dalam unit area yang lebih spesifik.

(Stewart et al, 2007).

Masalah penataan lahan (land allocation) yakni untuk mengendalikan

segala bentuk efisiensi lahan yang telah ditetapkan, agar terwujudnya tata letak lahan yang rapi, produktif, nyaman, serta memberikan dampak positif bagi daerah tersebut. Masalah penataan lahan (land allocation) salah satu

contoh aplikasi masalah pengepakan segi empat 2 dimensi.

Masalah pengepakan segi empat 2 dimensi adalah masalah penempatan sejumlah item ke objek persegi panjang dengan tujuan meminimalkan ruang obyek yang digunakan. Proses pengepakan tidak boleh ada yang saling tumpang tindih antar item satu dengan item lainnya.

(Dereli dan Sena Das, 2006)

Permasalahan land allocation yang didasarkan pada prosedur

permasalahan pengepakan segi empat 2 dimensi ini harus mempertimbangkan tentang kompleknya masalah yang ada. Selain itu, pengembangan algoritma yang digunakan untuk menyelesaikan masalah

land allocation haruslah mudah menyelesaikan masalah yang bertujuan untuk

(11)

Algoritma Cat Swarm Optimization dikenalkan pertama kali oleh Shu Cuan Chu dan Pe Wei Tsai pada tahun 2007 (Chu dan Tsai, 2007). Pada

awal tahun 2013 beberapa studi telah dikembangkan untuk mengaplikasikan

Cat Swarm Optimization dalam menyelesaikan berbagai persoalan di dunia

nyata. Salah satunya adalah menerapkan Algoritma Cat Swarm Optimization

untuk Optimal Power Flow Problem, (Suryakumari, 2013). Menurut

Suryakumari (2013), Cat Swarm Optimization memiliki keunggulan performa

yang lebih baik dalam menemukan solusi global dibandingkan PSO atau PSO with Weighting Factor. Sedangkan pada algoritma simulated annealing (SA),

algoritma ini beranalogi dengan proses annealing (pendinginan) yang diterapkan dalam pembuatan material glassy (terdiri dari butir kristal). Proses annealing dapat didefinisikan sebagai penurunan temperatur secara teratur atau konstan pada benda padat yang sebelumnya sudah dipanaskan sampai keadaan dimana benda tersebut mencapai ground state / freezing point atau dengan kata lain benda mencapai titik bekunya. Sedangkan, kelebihan simulated annealing (SA) ini akan menghindari terjadinya minimum lokal karena algoritma ini merupakan algoritma dengan metode stokastik yang efektif.

(Chibante,2010)

Berdasarkan uraian di atas, penulis akan melakukan penelitian terhadap masalah land allocation menggunakan hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA).

1.2 Rumusan Masalah

Berdasarkan latar belakang, ada rumusan masalah yang dibahas dalam proposal ini, yaitu:

1. Bagaimana menyelesaikan permasalahan land allocation dengan

(12)

2. Bagaimana membuat program dari hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) yang dapat

digunakan untuk menyelesaikan permasalahan land allocation?

3. Bagaimana mengimplementasikan program tersebut pada contoh kasus?

1.3 Tujuan

Tujuan penulisan skripsi ini adalah:

1. Menyelesaikan permasalahan land allocation dengan menggunakan hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA).

2. Membuat program dari hybrid algoritma Cat Swarm Optimization

(CSO) dan Simulated Annealing (SA)

yang dapat digunakan untuk menyelesaikan permasalahan land allocation.

3. Mengimplementasikan program pada contoh kasus.

1.4 Manfaat

Manfaat penulisan skripsi ini antara lain:

1. Menambah wawasan tentang persoalan Riset Operasional khususnya untuk masalah land allocation.

2. Program komputer yang dibuat diharapkan mampu memberikan solusi dari masalah land allocation.

3. Informasi yang didapat dari skripsi ini dapat dilanjutkan untuk skripsi selanjutnya dengan berbagai modifikasi.

1.5 Batasan Masalah

(13)

2. Tidak memperhatikan aktifitas antar lahan komponen, tetapi hanya memperhatikan penempatan lahan komponen.

(14)

BAB II

TINJAUAN PUSTAKA

Pada bab ini dibahas definisi yang digunakan pada pembahasan Hybrid

Algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) untuk

Permasalahan Land Allocation. 2.1 Land Allocation Problems

Land Allocation Problems merupakan salah satu permasalahan resource allocation problem yang secara umum memiliki dua langkah penyelesaian,

yaitu yang pertama adalah menentukan jumlah total lahan komponen, dan yang kedua adalah menentukan lokasi yang optimal dari setiap masing-masing lahan komponen sehingga penggunaan dari lahan yang tersedia menjadi minimal.

(Callaghan, dkk, 1999)

2.2 Masalah Pengepakan Segi Empat 2 Dimensi

Menurut Dereli dan Sena Das (2006), masalah pengepakan segi empat 2D adalah penempatan sejumlah item berbentuk segi empat (yang kecil) ke dalam satu objek segi empat (yang besar) dalam dua dimensi sehingga dapat meminimalkan tinggi objek yang terpakai.

Masalah pengepakan berupa, terdapat n item (segi empat kecil) yang

masing-masing memiliki tinggi hi dan lebar wi, i=1,2,...,n dan satu atau lebih objek yang lebih besar (segi empat). Kita diharuskan menempatkan item secara ortogonal tanpa overlap (ujung dari setiap item paralel dengan ujung

dari objek) sehingga dapat mengoptimalkan fungsi yang diberikan.

(15)

2.2.1 Strip Packing Problem

Permasalahan ini merupakan bagian dari masalah pengepakan segi empat. Terdapat n item yang memiliki lebar wi dan tinggi hi 1,2,3, … , serta satu objek besar (disebut strip) yang memiliki lebar

tetap W, tetapi tingginya H merupakan variabel. Fungsi objektif dari

permasalahan ini adalah untuk meminimalkan tinggi dari H sehingga

semua item dapat dimasukkan ke dalam strip.

Umumnya, secara matematik permasalahan ini dideskripsikan sebagai berikut:

Meminimumkan H

Kendala:

0 , 1 (2.1)

0 , 1 (2.2)

, , , (2.3)

Dengan (xi,yi) adalah koordinat dari ujung kiri bawah dari item ke i.

H tinggi dari strip/ objek. Pernyataan (2.1) dan (2.2) menyatakan bahwa

setiap item harus ditempatkan ke dalam lahan yang tersedia. Pada pernyataan (2.3) setidaknya satu dari empat pernyataan terpenuhi untuk setiap pasang i dan j.

Pernyataan (2.3) sendiri menyatakan bahwa tidak ada dua item yang saling bertumpukan dan menyatakan empat sudut relatif yang dibutukan untuk menghindari overlap.

(Imahori, dkk, 2007)

2.3 Algoritma Cat Swarm Optimization

Definisi 2.1 Algoritma merupakan suatu himpunan langkah-langkah atau instruksi yang telah dirumuskan dengan baik (well defined)

untuk memperoleh suatu keluaran khusus (spesific output) dari

suatu masukan khusus (spesific input) dalam langkah yang

(16)

Cat Swarm Optimization adalah algoritma yang diusulkan oleh

Shu-Chuan Chu dan Pei-Wei Tsai pada tahun 2007, yang didapat melalui pengamatan terhadap perilaku sekumpulan keluarga kucing. Dalam Ant Colony Optimization (ACO) semut digunakan sebagai agent, dan jalur yang

dilalui oleh semut-semut tersebut adalah set solusinya. Dalam Particle Swarm Optimization (PSO), posisi-posisi dari kawanan burung digunakan untuk

menggambarkan set solusinya. Sedangkan, dalam CSO, sekumpulan keluarga kucing dan model perilakunya digunakan untuk menyelesaikan permasalahan optimasi. Shu-Chuan Chu dan Pei-Wei Tsai (2007) membagi algortima CSO

ke dalam dua sub model yang berdasar dari dua perilaku utama kucing, yaitu ”seeking mode” dan ”tracing mode”. Untuk lebih jelasnya langkah-langkah

algoritma CSO sepertiyang Shu-Chuan Chu dan Pei-Wei Tsai (2007) dalam penelitiannya akan dijabarkan dalam sub babberikutnya.

(Chu dan Tsai , 2007)

2.3.1 Set Solusi dalam Model

Bagaimanapun bentuk algoritma optimasi, set solusi (hasil) harus ditampilkan dalam suatu cara tertentu. Misalnya dalam Ant Colony Optimization (ACO) semut disimulasikan sebagai agen, dan jalur yang

dibentuk oleh semut menunjukkan set solusinya. Dalam CSO, digunakan kucing dan model perilaku kucing untuk menyelesaikan permasalahan optimasi. Dengan kata lain kucing digunakan untuk menggambarkan set solusi. Tahap pertama dalam CSO adalah menentukan berapa banyak kucing akan digunakan dalam iterasi, kemudian menggunakan kucing dalam CSO untuk menyelesaikan permasalahan. Setiap kucing masing-masing memiliki posisi yang tersusun dalam dimensi D, kecepatan untuk setiap dimensi, nilai fitness yang menunjukkan seberapa bagus posisi kucing untuk dijadikan

solusi, dan bendera untuk mengetahui apakah kucing berada dalam seeking mode atau tracing mode. Solusi akhir adalah posisi terbaik dari salah satu

kucing. CSO akan menyimpan solusi terbaik hingga akhir iterasi.

(17)

Langkah-Langkah Algoritma Cat Swarm Optimization

Seperti yang telah dijabarkan sebelumnya, CSO terdiri dari dua sub mode. Untuk mengkombinasikan kedua mode dalam satu algoritma, perlu didefinisikan rasio campuran / mixture ratio (mr) untuk menggabungkan seeking mode dan tracing mode. Dengan mengamati perilaku kucing, dapat

diketahui bahwa kucing menghabiskan sebagian besar waktunya untuk beristirahat. Selama beristirahat, kucing mengubah posisinya perlahan dan berhati-hati, terkadang bahkan tetap pada tempatnya. Untuk menerapkan perilaku ini ke dalam CSO, digunakan seeking mode. Perilaku mengejar

target diaplikasikan dalam tracing mode. Karena itu maka mr harus bernilai

kecil untuk memastikan bahwa kucing menghabiskan sebagian besar waktu dalam seeking mode, seperti di kehidupan nyatanya.

Proses CSO dapat digambarkan dalam 6 langkah sebagai berikut: Langkah 1: Bangkitkan N kucing dalam proses.

Langkah 2: Sebarkan kucing secara acak dalam ruang solusi berdimensi D dan secara acak pula pilih nilai dalam rentang kecepatan maksimum untuk menjadi kecepatan kucing. Kemudian pilih sejumlah kucing secara sembarang dan masukkan dalam tracing mode sesuai MR, sisanya

dimasukkan dalam seekingmode

Langkah 3: Hitung nilai fitness masing-masing kucing dengan memasukkan nilai posisi kucing yang telah diubah menjadi representasi permutasi ke dalam fungsi fitness, dan simpan kucing terbaik dalam memori. Perlu diingat bahwa yang perlu disimpan adalah posisi kucing terbaik (xbest) karena kucing terbaik sejauh ini mewakili solusi terbaik. Langkah 4: Pilih lagi sejumlah kucing dan masukkan dalam tracing mode

sesuai mr, sisanya masukkan ke dalam seeking mode.

Langkah 5: Pindahkan kucing sesuai benderanya, jika kucingk berada

dalam seeking mode, perlakukan sesuai proses seeking mode, sebaliknya

(18)

Langkah 6: Perhatikan iterasi maksimum-nya. Jika telah terpenuhi

hentikanprogram. Sebaliknya ulangi langkah 3 hingga 5.

(Chu dan Tsai , 2007)

2.3.2 Seeking Mode

Sub model ini digunakan untuk memodelkan situasi kucing ketika dalam keadaan beristirahat, melihat sekeliling dan mencari posisi berikutnya untuk bergerak. Dalam seeking mode, didefinisikan empat faktor penting: seeking memory pool (SMP), seekingrange of the selected dimension (SRD) ,counts of dimension to change (CDC) , dan self-position considering (SPC) atau

mempertimbangkan posisi. SMP digunakan untuk mendefinisikan ukuran memori pencarian untuk masing-masing kucing, yang mengindikasikan titik-titik yang telah dicoba oleh kucing. Kucing tersebut kemudian akan memilih titik dari kelompok memori berdasarkan aturan yang akan dijelaskan kemudian. SRD menyatakan rentang perpindahan dalam dimensi terpilih. Dalam seeking mode, jika suatu dimensi diputuskan berpindah,

selisih antara nilai baru dengan yang lama tidak boleh melebihi suatu rentang, yaitu rentang yang didefinisikan oleh SRD. CDC memperlihatkan berapa banyak dimensi yang akan berubah. Keseluruhan faktor inilah yang memegang peran penting dalam seeking mode. SPC merupakan variabel Boolean (bernilai 0 atau 1), untuk memutuskan apakah suatu titik, yang

pernah menjadi posisi kucing, akan menjadi kandidat posisi untuk bergerak. Bagaimanapun nilai SPC, entah 0 ataupun 1, tidak akan mempengaruhi nilai SMP.

(Chu dan Tsai , 2007)

(19)

Langkah 1: Bangkitkan j tiruan dari posisi kucing1,d , dengan j = SMP.

Jika nilai SPC=1, maka j = (SMP–1), kemudian pertahankan posisi saat ini

sebagai salah satu kandidat.

Langkah 2: Untuk setiap tiruan dari kucing1,d , pilih sebanyak CDC posisi

d secara acak, untuk setiap posisi d yang terpilih .tambahkan atau kurangkan SRD persen dari nilai saat ini dan gantikan nilai yang

sebelumnya.

Langkah 3: Hitung nilai fitness (FS) untuk semua titik kandidat.

Langkah 4: Jika semua FS tidak benar benar sama, hitung probabilitas

terpilih masing masing titik kandidat dengan menggunakan (2.4), sebaliknya update probabilitas terpilih untuk semua titik sama dengan 1. Langkah 5: hitung probabilitas terpilih komulatif untuk semua titik kandidat dan lakukan roulette wheel untuk menentukan posisi baru dari kucing1,d.

|

|

.

Keterangan:

: probabilitas terpilih

: Fitness ke , dengan 1,2, . . , .

: Fitness tertinggi

: Fitness terendah

Ulangi langkah 1 sampai langkah 5 sebanyak a kali.

(Chu dan Tsai , 2007)

2.3.3 Tracing Mode

Tracing mode adalah sub model yang menggambarkan keadaan ketika

kucing sedang mengikuti jejak targetnya. Sekali kucing memasuki tracing mode, kucing tersebut akan bergerak sesuai dengan kecepatannya untuk tiap

dimensi.

(20)

Tahapan tracing mode dapat dijabarkan dalam 3 langkah sebagai berikut:

Diasumsikan terdapat b kucing yang masuk dalam tracing mode.

Langkah 1: Perbarui nilai kecepatan kucing1 untuk setiap dimensi (v1,d)

dengan 1,2,3, … , . Kemudian update kecepatan didapatkan berdasarkan (2.5)

, , , , (2.5)

1,2 … , Keterangan:

, : nilai kecepatan kucingk baru pada dimensi d , : nilai kecepatan kucingk lama pada dimensi ke d xbest,d : posisi kucing yang memiliki nilai fitness terbesar

xk,d : posisi kucingk pada dimensi ke d. : konstanta tracing

: nilai acak dalam rentang [0,1].

Langkah 2: Setelah melakukan upate kecepatan, langkah selanjutnya adalah mengupdate posisi tiap – tiap kucing.

, , , (2.6)

1,2 … , Keterangan:

, : posisi kucingk baru pada dimensi d

, : nilai kecepatan kucingk baru pada dimensi ke d xk,d : posisi kucingk pada dimensi ke d.

Langkah 3: Perbarui posisi kucing1 berdasarkan (2.6).

Lakukan langkah 1 sampai langkah 3 sebanyak b kali.

(Chu dan Tsai , 2007)

2.4 Algoritma Simulated Annealing (SA)

Simulated Annealing (SA) adalah salah satu algoritma untuk optimasi

(21)

kemampuan untuk menghindar dari perangkat minimum lokal, yaitu dengan membiarkan algoritma tersebut tidak hanya menerima solusi yang lebih baik, tetapi juga menerima solusi yang buruk dengan probabilitas tertentu.

Annealing merupakan suatu teknik yang dikenal dalam bidang metalurgi

yang digunakan dalam mempelajari proses pembentukan kristal dalam suatu materi. Atom–atom dari materi ini memiliki energi yang tinggi pada suhu yang tinggi. Hal ini memberikan atom banyak kebebasan dalam kemampuan untuk merestrukturisasi diri mereka sendiri. Seperti saat suhu berkurang, energi dari atom-atom tersebut menjadi berkurang sampai keadaan energi mencapai minimum, dan perlahan-lahan memungkinkan atom-atom yang tadinya bergerak bebas itu pada akhirnya menemukan tempat yang optimum.

Simulated Annealing (SA) berjalan berdasarkan analogi dengan proses annealing yang telah dijelaskan. Gerakan bebas dari atom-atom pada materi,

direpresentasikan dalam bentuk modifikasi terhadap solusi awal / solusi awal diatur tinggi, solusi sementara yang sudah ada diperbolehkan untuk mengambil modifikasi secara bebas.

Bila nilai fungsi evaluasi hasil modifikasi ini membaik ( dalam masalah optimisasi yang berusaha mencari nilai minimum berarti nilainya lebih kecil /

downhill). Solusi hasil modifikasi ini akan digunakan sebagai solusi

selanjutnya. Bila nilai fungsi evaluasi hasil modifikasi ini memburuk, pada saat temperatur annealing masih tinggi, solusi lebih buruk ( up hill ) ini masih

mungkin diterima. Dalam tahap selanjutnya, saat temperatur sedikit demi sedikit dikurangi, maka kemungkinan untuk menerima langkah modifikasi yang tidak memperbaiki nilai fungsi evaluasi semakin berkurang.

Secara umum prinsip dalam algoritma simulated annealing (SA) dapat

dinyatakan sebagai berikut:

1. Inisialisasi temperatur awal dan temperatur akhir . 2. Inisialisasi individu awal

3. Mengevaluasi individu awal sebagai solusi sementara

(22)

5. Jika maka solusi sementara digantikan solusi baru. Jika tidak maka dibangkitkan bilangan acak r pada interval [0,1]. Hitung probabilitas exp ∆ , jika P > r maka solusi baru tetap diterima sebagai solusi sementara.

6. Jika , maka algoritma berhenti. Jika tidak, hitung perubahan temperatur pada iterasi ke - t dengan 0 1. Kemudian kembali ke langkah (4)

(Chibante, 2010)

2.5 Hybrid

Hybrid algoritma adalah perkawinan antara dua jenis yang berlainan.

Sehingga algoritma hybrid dapat dikatakan sebagai gabungan antara dua

algoritma.

(Milano dan Henterryck, 2010)

2.6 Pengkodean

Jenis-jenis pengkodean: 1. Pengkodean Biner

Adalah pengkodean yang setiap kromosomnya dinyatakan (disimbolkan) dengan dua bilangan, yaitu 0 dan 1.

2. Pengkodean Nilai

Adalah pengkodean yang setiap kromosomnya direpresentasikan sebagai nilai (nilai dapat berupa angka, bilangan real, atau karakter). 3. Pengkodean Permutasi

Adalah pengkodean yang setiap kromosomnya direpresentasikan sebagai sebuah urutan bilangan.

(23)

2.7 Penentuan Nilai Fitness dan Seleksi Roulette Wheel Definisi 2.3

Nilai Fitness adalah nilai keandalan suatu individu pada suatu ukuran populasi tempat individu itu berasal. Individu dengan nilai fitness yang tinggi akan dapat kesempatan lebih besar untuk survive dalam populasi selanjutnya. Rumus pencarian nilai fitness (fitness value) tergantung pada permasalahan yang akan diselesaikan.

Untuk melakukan seleksi individu baru dalam mode seeking , sesuai dengan jurnal Shu-Chuan Chu dan Pei-Wei Tsai (2007) dilakukan dengan roulette wheel.

Dalam Obitko (1998), seleksi (selection) merupakan proses pemilihan

individu, menurut teori evolusi, individu yang terbaik seharusnya bertahan dan membentuk keturunan baru.

a. Seleksi Roulette Wheel

Sebuah roulette wheel (roda rolet) yang ditempati semua

individu dalam populasi. Masing-masing individu menempati luasan menurut nilai fitnessnya. Selanjutnya roda rolet diputar untuk menyeleksi individu. Kromosom dengan fitness yang lebih besar

akan terseleksi beberapa kali.

(Obitko 1998)

Langkah-langkah seleksi roulette wheel dapat dijelaskan sebagai berikut :

a. Menghitung nilai fitness setiap kromosom, dinotasikan dengan

1,2, … ,

b. Menghitung jumlah total nilai fitness semua kromosom dalam populasi,

dinotasikan F

c. Menghitung peluang terpilih dari setiap kromosom, pi = fi/F

d. Menghitung peluang kumulatif setiap kromosom,

(24)

f. Jika r ≤ q1, maka kromosom pertama terpilih; yang lain, pilih kromosom ke i apabila qi-1 < r ≤ qi

(Gen dan Cheng, 1997)

2.8 Algoritma Pengisian Rekursif

Algoritma ini digunakan untuk menempatkan item ke dalam objek. Langkah-langkah algoritma ini adalah:

1. Menempatkan item pertama ke dalam objek (Operasi ini membagi daerah objek menjadi dua subspace).

2. Menempatkan item selanjutnya ke dalam subspace S1. Jika hal ini tidak

memungkinkan, maka ditempatkan ke dalam subspace S2. Lakukan

prosedur ini hingga seluruh item ditempatkan ke dalam objek.

Gambar 2.1 Algoritma Pengisian Rekursif

(25)

2.9 Borland C++

Berbicara tentang C++ biasanya tidak lepas dari C, sebagai bahasa pendahulunya. Pencipta C adalah Brian W. Kerninghan dan Dennis M. Ritchie pada sekitar tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk sejumlah blok. Tujuannya adalah untuk memudahkan dalam pembuatan dan pengembangan program. Pada mulanya C++ disebut “a better C”. Nama C++ sendiri diberikan oleh Rick Masciti pada musim panas 1983. Adapun tanda ++ berasal dari nama operator penaikan pada bahasa C.

Keistimewaan yang sangat berarti pada C++ adalah bahasa ini mendukung pemrograman yang berorientasi obyek. Tujuan utama pembuatan C++ adalah untuk meningkatkan produktivitas pemrograman dalam membuat aplikasi.

(Kadir, 2005)

C++ diciptakan oleh Bjarne Stoustrup di Laboratorium Bell, AT & T, pada tahun 1980-an. C++ digunakan oleh banyak industri karena efisien, dapat digunakan untuk menyelesaikan masalah dalam segala bidang (fleksibel) dan compiler C tersedia di hampir seluruh jenis komputer (avaible).

(Horowitz et.al., 2006)

2.9.1 Struktur Bahasa C++

Program C ataupun C++ selalu tersusun dari 4 bagian utama, yaitu: 1. Bagian komentar

2. Bagian pengarah compiler 3. Bagian deklarasi

4. Bagian definisi a. Bagian komentar

(26)

namun Borland C++ lebih fleksibel dalam hal ini. Pada Borland C++ dapat menggunakan komentar bersarang asalkan opsi cek Nested Comment pada

menu Option/Compiler/Source dipilih.

b. Bagian pengarah compiler

Include adalah salah satu pengarah preprocessordirective yang tersedia

pada C++. Preprocessor selalu dijalankan terlebih dahulu pada saat proses

kompilasi terjadi. Bentuk umumnya: #include<nama_file>

tidak diakhiri dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk pernyataan, tetapi merupakan preprocessor directive. Baris

tersebut menginstruksikan kepada compiler yang menyisipkan file lain dalam hal ini file yang berakhiran .h(fileheader) yaitu file yang berisi sebagai deklarasi, contohnya:

1. #include <iostream.h> : diperlukan pada program yang melibatkan objectcout.

2. #include <conio.h> : diperlukan bila melibatkan clrscr(), yaitu perintah untuk membersihkan layar.

3. #include <iomanip.h> : diperlukan bila melibatkan setw(), yang bermanfaat untuk mengatur lebar dari suatu tampilan data.

4. #include <math.h> : diperlukan pada program yang menggunakan operasi sqrt(), yang bermanfaat untuk operasi matematika pengakaran. c. Fungsi main()

Fungsi ini menjadi awal dan akhir eksekusi program C++. Main adalah nama judul fungsi. Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh program utama berada didalam fungsi main().

d. Pengaruh compiler #if, #else, #elif, #endif

Digunakan untuk memilih bagian program yang akan dikompilasi. Kompilasi cara ini disebut kompilasi bersyarat dan program yang baik biasanya memanfaatkan teknik ini.

(27)

Digunakan juga dalam kompilasi bersyarat. #ifdef dapat dibaca: “jika didefinisikan” dan #ifndef dapat dibaca: “jika tidak didefinisikan”. Pengaruh compiler ini sering digunakan untuk menandai bahwa suatu file sudah

diikutsertakan dalam kompilasi. f. Bagian deklarasi dan definisi

Semua program C pada dasarnya tersusun dari rangkaian pemanggilan fungsi yang bekerja atas sekelompok data. Selain pemanggilan fungsi, program C mengandung komponen lain yang disebut statement. Statement

C ada dua, yaitu statement yang tidak dapat dieksekusi/non-executable (bila dikompilasi tidak menghasilkan kode objek dan biasanya digunakan untuk mengatur alur program), dan statement yang dapat dieksekusi/executable (bila dikompilasi akan menghasilkan objek). Setiap pemanggilan fungsi maupun statement executable dalam C harus diakhiri dengan tanda titik

koma. Dalam contoh program C++ diatas, Return merupakan contoh

statement executable yang menginstruksikan agar suatu fungsi

mengembalikan nilai balik tertentu. Contoh statement non executable adalah: if, else, dan while.

g. Input dan output

Dalam C++ input berarti menulis dari sistem dan output berarti membaca ke

stream.

Bentuk umum output operator:

cout<<ekspresi;

Bentuk umum input operator:

cin>>variabel

h. Tanda semicolon

Tanda semicolon “ ; ” digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon.

i. Variabel

Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili

(28)

kebutuhan. Untuk memperoleh nilai dari suatu variabel digunakan pernyataan penugasan (assigment statement), yang mempunyai sintaks

sebagai berikut: j. Deklarasi variabel

Bentuk umumnya:

k. Tipe dasar

Tipe Dasar

Ukuran Memori (byte)

Jangkauan Nilai

Jumlah Digit Presisi

Char 1 -128 hingga +127 -

Int 2 -32768 hingga +32767 -

Long 4 -2.147.438.648 hingga -2.147.438.647 -

Float 4 3.4E-38 hingga 3.4E38 6-7

Double 8 1.7E-308 hingga 1.7E308 15-16

Long double 10 3.4E-4932 hingga 1.1E4932 19

(Kadir, A, 2001)

variabel = ekspresi;

(29)

BAB III

METODE PENELITIAN

Adapun langkah-langkah penelitian ini adalah sebagai berikut :

1. Melakukan kajian pustaka yang berhubungan dengan algoritma Cat Swarm Optimization (CSO), Simulated Annealing (SA) dan land allocation.

2. Menerapkan algoritma Cat Swarm Optimization (CSO) dalam

permasalahan land allocation dengan prosedur sebagai berikut:

a) Menginputkan parameter-parameter CSO, yaitu: jumlah populasi

kucing (m), Seeking Memory Pool (SMP), Count Dimension to Change (CDC), Seeking Range Dimension (SRD), Mixing Ratio (MR), max iteration, konstanta tracing (c), stripwidth.

b) Menginputkan sejumlah data-data yang berkaitan dengan land allocation.

c) Menentukan pengkodean individu. Pengkodean yang akan digunakan pada land allocation adalah pengkodean permutasi.

d) Membentuk populasi awal secara random.

e) Mengevaluasi nilai fungsi tujuan setiap individu dalam populasi menggunakan algoritma pengisian rekursif.

f) Menempatkan Flag Secara Random dengan proporsi sejumlah jumlah seeking kucing akan dibagikan flag=1 , dan sejumlah

jumlah tracing kucing akan dibagikan flag=0 , dengan ketentuan : jumlah seeking=m-MR*m dan jumlah tracing=MR*m

g) Menentukan nilai dari Self Position Consideration (SPC) yakni

boolean untuk memutuskan suatu titik yang pernah menjadi posisi kucing akan menjadi posisi untuk bergerak. Secara Khusus Proses Penentuan SPC ini adalah sebagai berikut:

i. Menentukan jumlah kucing yang terlibat seeking yakni

sejumlah jumlah seeking.

(30)

iii. Memberi tanda sejumlah jumlah seeking kucing bernilai

evaluasi tertinggi dengan SPC=1 dan sisanya SPC=0.

h) Menyimpan posisi kucing dengan nilai evaluasi terbesar sebagai

xbest.

i) Melakukan Mode Tracing (flag = 0)

i. Mengupdate kecepatan baru untuk setiap kucing yang terlibat

dalam mode tracing dengan formulasi:

, , , , 1,2 … ,

ii. Periksa apakah kecepatan berada dalam ambang batas yang ditentukan. Jika kecepatan baru melebihi batas, atur nilainya sama dengan batas

iii. Mengupdate posisi baru dari setiap kucing yang terlibat dalam mode tracing dengan formulasi:

, , ,

1,2 … ,

iv. Hitung height (h) setiap posisi baru dari kucing dalam mode tracing, nilai fitness dan representasi permutasinya.

v. Membandingkan nilai fitness awal dengan nilai fitness baru,

jika nilai fitness baru kurang dari nilai fitness awal maka posisi

baru diubah kembali menjadi posisi awal.

vi. Menyimpan posisi dan jarak dari kucing dalam mode tracing

berfitness terbaik.

j) Melakukan proses mode seeking (flag = 1):

i. Mengambil satu individu kucing yang bermode seeking secara

sebarang misal kucinga.

ii. Jika nilai boolean Self Position Consideration(SPC) dari

kucingk tersebut bernilai 1 maka lakukan langkah-langkah

berikut :

1. Buat tiruan dari posisi kucingk sejumlah SMP-1.

(31)

3. Tunjuk secara sebarang dimensi yang akan diubah nilainya sampai sejumlah dim=CDC*jumlah dimensi

4. Untuk setiap dimensi yang ditunjuk lakukan penambahan atau pengurangan sebanyak SRD persen dari posisi awal.

5. Cek apakah sejumlah (SMP-1) tiruan telah melalui proses 3 dan 4?

6. Jika belum maka kembali ke langkah 2, jika sudah ke langkah 7.

7. Simpan posisi baru dari setiap kucing tiruan sebagai kandidat solusi seeking dari kucinga

iii. Sebaliknya Jika nilai boolean Self Position Consideration(SPC) dari kucinga tersebut bernilai 0 maka

lakukan langkah-langkah berikut :

1. Buat tiruan dari posisi kucinga sejumlah SMP.

2. Ambil satu tiruan dari kucinga.

3. Tunjuk secara sebarang dimensi yang akan diubah nilainya sampai sejumlah dim=CDC*jumlah dimensi

4. Untuk setiap dimensi yang ditunjuk lakukan penambahan atau pengurangan sebanyak SRD persen dari posisi awal.

5. Cek apakah sejumlah SMP tiruan telah melalui proses 3 dan 4?

6. Jika belum maka kembali ke langkah 2, jika sudah ke langkah 7.

7. Simpan posisi baru dari setiap kucing tiruan sebagai kandidat solusi seeking dari kucinga

iv. Menghitung nilai height (h)dari anggota setiap kandidat solusi seeking.

(32)

vi. Jika tidak semua nilai fitness dari setiap anggota kandidat

bernilai sama, hitung probabilitas terpilih dari setiap kandidat solusi seeking.

Jika tujuan dari fungsi fitness adalah meminimumkan solusi, maka FSb=FSmax dan sebaliknya FSb=FSmin . Sebaliknya Jika

nilai fitness dari setiap anggota kandidat solusi seeking sama

maka probabilitas terpilih semua kandidat solusi seeking adalah

1.

vii. Hitung probabilitas terpilih relatif (Pir) setiap kandidat solusi

seeking.

viii. Menghitung probabilitas terpilih komulatif (Pik) setiap

kandidat solusi seeking dengan formula :

P

ix. Mulai bangkitkan satu bilangan acak dari interval [0.1] dinotasikan r.

x. Jika r ≤ P1k, maka kandidat solusi seeking pertama terpilih

menjadi solusi seeking. Sebaliknya pilih kandidat solusi seeking ke i sebagai solusi seeking apabila P(i-1)k < r ≤ Pik

(seleksi roulette wheel).

xi. Posisi kucingk=posisi solusi seeking.

xii. Simpan posisi dalam Memory Pool yang memberikan solusi

terbaik sebagai gbest seeking

xiii. Semua kucing berflag=1 telah melalui proses seeking?

xiv. Jika belum kembali ke langkah i, jika sudah lakukan proses l. k) Tentukan solusi iterasi dengan menghitung:

=min (g ,g )

l) Setelah melakukan Mode Seeking dan Mode Tracing dipilih individu

(33)

m) Jika iterasi saat ini kurang dari atau sama dengan 10 maka menuju langkah berikutnya, jika tidak kembali ke langkah 2.f.

3. Proses Simulated Annealing (SA)

a. Modifikasi menggunakan pencarian lokal, yaitu dengan memilih dua lokasi secara acak, kemudian menukarnya. Selanjutnya dihitung fungsi tujuan dari hasil yang diperoleh.

b. Menghitung nilai selisih (calculate), evaluasi dilakukan dengan

cara membandingkan fungsi tujuan solusi hasil modifikasi atau solusi baru f(xm) dengan fungsi tujuan individu awal atau solusi sementara .

i. Jika ≤ maka solusi sementara sama dengan solusi baru.

ii. Jika > maka dihitung probabilitas penerimaannya

menggunakan rumus: ∆

Dimana ΔC merupakan selisih nilai fungsi tujuan.

Kemudian bangkitkan bilangan real r antara interval [0 1], jika r < P maka solusi baru menggantikan solusi lama, begitu juga sebaliknya.

c. Jika looping sudah memenuhi, dilakukan penurunan suhu rumus

d. Cek suhu, jika Tb < Takhir, maka proses berhenti.

4. Solusi akhir pada proses simulated annealing menggantikan solusi yang dipilih pada langkah 3.a.

5. Jika maksimum iterasi sudah tercapai maka menuju langkah selanjutnya, jika tidak maka kembali ke langkah 2.f.

6. Membuat program dari algoritma di atas.

7. Mengimplementasikan program pada contoh kasus.

(34)

 

Inisialisasi posisi awal kucing dan kecepatan kucing

Evaluasi Nilai Fitness tiap kucing

Flag kucingk=1?

Kucingk diproses di mode seeking Kucingk diproses di mode tracing

Menentukan individu terbaik dari CSO

Menentukan individu terburuk dari CSO C

Menentukan nilai SPC

Menentukan flag

Iterasi 10?

A

(35)

Ya

Tidak

Tidak

Ya

Ya

Tidak

Tidak

Ya

Gambar 3.1 Flowchart Penyelesaian land allocation menggunakan Hybrid

Algoritma Cat Swarm Optimization (CSO) dan Simulated

(SA)

?

End

Mengevaluasi individu yang telah dimodifikasi ( )

A

Hitung P dan Bangkitkan r

P > r ?

Penurunan Suhu

Max iterasi?

Solusi Terbaik tetap

B Melakukan modifikasi menjadi

(36)

 

Gambar 3.2 FlowchartMode Tracing

Start

Update Kecepatan

Update Posisi

Menghitung Fungsi Tujuan

Kucing flag = 0 telah berproses

End Gbest Solusi Posisi dan Kecepatan

Kucing

Ya

Tidak Ambil satu individu

kucing

Update solusi

(37)

 

Gambar 3.3 FlowchartMode Seeking

Start

SPC = 1

End

Buat tiruan sejumlah SMP-1

Isi baris pertama SMP dengan posisi awal

Modifikasi

SMP-1 sudah dimodifikasi

Ambil salah satu tiruan kucing Buat tiruan sejumlah

SMP

Ambil salah satu tiruan kucing

Modifikasi

SMP sudah dimodifikasi

Bangkitkan satu bilangan real secara acak

Hitung tinggi, nilai fitness, probabilitas terpilih relatif dan kumulatif Simpan kandidat solusi

Kucing flag =1 telah berproses

Ya Tidak

Tidak

Ya Tidak

Gbest Solusi Ambil satu individu kucing

Ya Tidak

(38)

             

       

     

   

 

Gambar 3.4 Flowchart Seleksi Roullete Wheel

Start

Menghitung Nilai Fitness

Menghitung Jumlah Total Nilai

Menghitung Peluang Terpilih Probabilitas Terpilih Kumulatif

Setiap Individu Kucing

No Menghitung Peluang Kumulatif

Bangkitkan Bilangan Random (r)

r Prob. Kumulatif

Probabilitas Terpilih Kumulatif Pertama

(39)

BAB IV PEMBAHASAN

Pada bab ini akan dijelaskan mengenai penggunaan hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) pada masalah land allocation.

4.1 Masalah Alokasi Lahan

Persoalan alokasi lahan merupakan masalah penempatan lahan komponen persegi pada lahan yang tersedia, sehingga:

1. Lahan komponen yang akan dialokasikan ditinjau dari fleksibilitas dimensinya.

2. Fleksibilits dimensi lahan komponen akan mempengaruhi penempatan lahan komponen tersebut pada lahan yang tersedia, sehingga dapat meminimalkan area yang dipakai.

4.2 Hybrid Cat Swarm Optimization (CSO) dan Simulated Annealing (SA)

Hybrid Cat Swarm Optimization (CSO) dan Simulated Annealing (SA)

adalah penggabungan dari proses Cat Swarm Optimization dengan Simulated Annealing dalam aplikasinya merupakan salah satu algoritma heuristik yang

dapat digunakan untuk menyelesaikan masalah optimasi. Menurut (Chu dan Tsai, 2007) proses penyelesaian permasalahan tersebut diawali dengan membangkitkan sejumlah m populasi kucing awal, setiap kucing merupakan

representasi dari satu set solusi yang terdiri atas n dimensi. Setiap dimensi

dimodelkan untuk mempunyai inisialisasi kecepatan awal. Kecepatan awal digunakan untuk memodelkan perilaku sekumpulan kucing yang selalu berpindah-pindah posisi sesuai kecepatannya ketika sedang berburu. Proses berlanjut dengan membagi m populasi awal kucing ini menjadi 2 populasi

baru. Yakni populasi mode seeking dan populasi mode tracing. MR (mixing ratio) adalah parameter yang diinisialisasikan untuk menentukan proporsi

(40)

Ilustrasi penggunaan hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) dalam Land Allocation telah diuraikan dalam Gambar 4.1

Prosedur hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) dapat dilihat pada Gambar 4.1

Prosedur Hybrid Algoritma CSO dan SA

Begin

input data(); inisialisasi parameter(); bangkitkan populasi awal();

` bangkitkan kecepatan awal(); hitung fungsi tujuan();

do

hitung fitness();

bagikan flag secara acak();

tentukan nilai spc(); lakukan tahap seeking(); lakukan tahap tracing();

if(iterasi<11)

proses sa pada individu terburuk();

end

while(maks_iterasi) tentukan solusi terbaik();

End

Gambar 4.1 Prosedur Hybrid Algoritma CSO dan SA

Berikut ini dijelaskan langkah-langkah dalam prosedur algoritma Cat Swarm Optimization (CSO).

4.2.1 Input Data dan Inisialisasi Parameter

Prosedur ini merupakan prosedur untuk menginput data dan menentukan informasi awal yang dibutuhkan dalam algoritma Cat Swarm Optimization (CSO). Data yang diinputkan adalah data berupa

(41)

Mixing Ratio (MR), konstanta tracing (c), dan maks_iterasi yang dapat

dilihat pada Gambar 4.2

Prosedur Input Data dan Inisialisai Parameter

Begin

Jumlah Kucing (Individu)=kucing;

Jumlah Seeking Memory Pool=smp;

Nilai CDC=cdc;

Nilai SRD=srd;

Nilai MR=mr;

Nilai Beta=beta;

Nilai c1=c1;

Nilai lebar_wadah=lebar_wadah;

Nilai suhu_awal=suhu_awal;

Nilai suhu_akhir=suhu_akhir;

End

Gambar 4.2 Prosedur Input Data dan Inisialisasi Parameter

4.2.2. Membangkitkan Populasi Awal

Populasi awal terdiri dari beberapa individu kucing, yang mereprentasikan urutan lahan masuk ke dalam objek, sebanyak n

dimensi. Tiap individu terdiri dari n sebanyak jumlah lahan. Oleh

karena itu, untuk membangkitkan populasi awal perlu dibangkitkan bilangan real acak antara 0 dan 1 yang mewakili urutan tiap n dalam

individu. Nilai dalam tiap n akan digunakan untuk menentukan lahan

mana yang akan diletakkan terlebih dahulu. Prosedur pembangkitkan populasi awal dapat dilihat pada Gambar 4.3

Prosedur Pembangkitan Populasi Awal Begin

for i=0 to kucing

for j=0 to jumlah lahan

data_kucingi,j = random (1,jumlah lahan);

(42)

Untuk mempermudah pembangkitkan populasi awal, dibuat matriks dengan ukuran m x n.

4.2.3 Membangkitan Kecepatan Awal

Hal yang harus diperhatikan adalah setiap dimensi (n) dari setiap individu juga memiliki inisialisasi lain yakni kecepatan awal (initial velocity). Kecepatan awal adalah suatu bilangan acak yang terkait

dengan setiap dimensi dari setiap individu (kucing) yang dapat dilihat pada Gambar 4.4

Prosedur Membangkitan Kecepatan Awal

Begin

for i=0 to kucing

for j=0 to jumlah lahan

data_kecepatani,j = random (1,jumlah lahan);

end end End

Gambar 4.4 Membangkitan Kecepatan Awal

(43)

4.2.4 Representasi Permutasi

Posisi awal dari setiap individu (kucing) merupakan kandidat lahan

awal dari permasalahan Land Allocation. Untuk mengubah

representasi random dari posisi awal ke dalam bentuk lahan yang diwakili oleh representasi permutasi digunakan Gambar 4.5 sebagai prosedur.

Prosedur Konversi ke Dalam Representasi Permutasi Begin

if(kucinguruti1<kucinguruti1+1)

ii=kucinguruti1;

kucinguruti1=kucinguruti1+1;

kucinguruti1+1=ii;

k=permutasii1;

permutasii1=permutasii1+1;

permutasii1+1=k;

end end

j1=0;

for i1=0 to n-1

if (kucinguruti1>=kucinguruti1+1)

(44)

4.2.5 Menghitung Nilai Fungsi Tujuan

Setelah pembangkitan populasi awal diubah menjadi bentuk permutasi, maka diperoleh urutan masuk lahan kecil ke dalam lahan besar. Dari urutan tersebut dapat diperoleh tata letak lahan kecil dalam lahan besar, sehingga dapat diperoleh pula tinggi lahan terpakai. Tinggi lahan terpakai tersebutlah yang akan diminimalkan sehingga didapatkan hasil yang optimal. Prosedur meletakkan lahan kecil dimulai dengan meletakkan lahan kecil pertama pada bagian ujung kiri bawah objek sehingga terbentuk subspace S1 dan S2. Selanjutnya, lahan

kecil kedua diletakkan pada S1 jika memungkinkan, namun jika tidak

maka lahan kecil kedua akan diletakkan pada S2. Demikian seterusnya

(45)

Prosedur Meletakkan Lahan ke dalam Objek Begin

for i=1 to n

for j=1 to jumlah lahan

if j=1

if lebarlahankecil[geni,j] <= lebarlahanbesar

lebarsubspacei,j=lebarobjek-lebarlahan[geni,j];

tinggisubspacei,j=tinggilahan[geni,j]; end

else

lebarsubspacei,j=tinggilahan[geni,j];

tinggisubspacei,j=lebarobjek- lebarlahan[geni,j]; end

end else

if pas=0;

for k=1 to j-1

if lebarlahan[geni,j] <= lebarsubspace &

tinggilahan[geni,j] <= tinggisubspace

for l > k+1 to l=j

lebarsubspacei,l = lebarsubspacei,l-1;

tinggisubspacei,l = tinggisubspacei,l-1; end

lebarsubspacei,k+1 = lebarsubspace;

tinggisubspacei,k+1 = tinggisubspace -c;

lebarsubspacei,k = lebarsubspace-lebarlahan[geni,j];

tinggisubspacei,k =tinggilahan[geni,j];

pas=1; break; end

else if tinggilahan[geni,j] <= lebarsubspace &

lebarlahan[geni,j] <= tinggisubspace

for l > k+1 to l=j

lebarsubspacei,l= lebarsubspacei,l-1;

tinggisubspacei,l= tinggisubspacei,l-1; end

lebarsubspacei,k+1 =lebarsubspace;

tinggisubspacei,k+1=tinggisubspace-lebarlahan[geni,j];

lebarsubspacei,k=lebarsubspace-tinggilahan[geni,j];

tinggisubspacei,k=lebarlahan[geni,j];

pas=1; break; end end

if pas!=1

if lebarlahan[geni,j]<=lebarobjek

lebarsubspacei,j=lebarobjek- lebarlahan[geni,j];

tinggisubspacei,j= tinggilahan[geni,j]; end

else

lebarsubspacei,j=lebarobjek- tinggilahan[geni,j];

tinggisubspacei,j= lebarlahan[geni,j]; end

end end end End

.

(46)

4.2.6 Menghitung Nilai Fitness

Dalam skripsi ini, nilai fitness (fitness value) yang didapat setiap

individu (kucing) bergantung perhitungan tinggi lahan yang didapat

dari representasi permutasi individu tersebut.

Cara menghitung nilai fitness kucing ke-i adalah dengan membagi

1 dengan nilai tinggi lahan yang diperoleh tiap set solusi kucing ke-i.

Prosedur menghitung nilai fitness setiap kucing dalam populasi dapat disajikan pada Gambar 4.7

Prosedur menghitung nilai fitness tiap kucing

Begin

for i=0 to m-1

fitnessi=1/jaraki; end

End

Gambar 4.7 Prosedur menghitung nilai fitness tiap kucing

Langkah selanjutnya adalah nilai fitness yang didapatkan dalam proses nilai fitness diurutkan mulai dari yang terbesar hingga yang

terkecil untuk digunakan dalam proses penentuan Self Position Considering dan penentuan xbest.

4.2.7 Melakukan Penentuan Flag

Setiap individu (kucing) akan dlahanpatkan ke dalam suatu mode,

diantaranya adalah mode seeking atau mode tracing. Gambar 4.8

(47)

Prosedur penentuan flag

Begin

jumtracing=MR*m; for i= 0 to m-1

ri=random(m)/m+1;

end

for i=0 to m-1

urutanrandomi=randomurut(ri,m)

end

for i= 0 to jumtracing-1

flagurutanrandomi=1; end

for i= jumtracing to m-1

flagurutanrandomi=0; end

End

Gambar 4.8 Prosedur penentuan flag

Prosedur diatas adalah proses penentuan flag dilakukan secara

random (acak), dengan membangkitkan sejumlah m bilangan random

dan menempatkannya pada array ri , dengan i adalah indeks dari

individu (kucing). Urutan dari bilangan random dalam array ri secara ascending disajikan dalam array urutan randomi, penempatan flag

ditentukan oleh indeks individu (i) yang berkaitan dengan bilangan

random terurut dalam array urutan random.

4.2.8 Menentukan Self Position Considering (SPC)

Self Position Considering (SPC) merupakan nilai boolean yang

melabeli setiap individu sebelum melakukan mode seeking atau mode tracing. Label ini ditentukan sesaat setelah nilai fitness dari

masing-masing individu dalam populasi dihitung. Sebagai catatan dalam konteks ini populasi yang dimaksud adalah populasi awal untuk iterasi pertama , dan populasi gabungan hasil mode seeking dan mode tracing

(48)

Prosedur penentuan SPC tiap individu (kucing)

Begin

jumseeking=(1-MR)*m;

for i=0 to m-1

urutani=fitnessurut(fitness[],fitnessi,m)

end

for i= 0 to jumseeking-1

spcurutani=1; end

for i= jumseeking to m-1

spcurutani =0; end

End

Gambar 4.9 Prosedur menentukan Self Position Considering

Array urutan dalam prosedur diatas memuat urutan indeks kucing

dari yang mempunyai nilai fitness terbesar , hingga yang mempunyai nilai fitness terkecil secara terurut dari atas ke bawah (descending).

4.2.9 Melakukan Proses Mode Seeking

Setelah dilakukan proses penempatan flag, beberapa kucing akan

diproses dalam mode seeking. Setiap kucing yang memiliki flag

bernilai 1 akan memasuki tahap mode seeking. Prosedur mode seeking

(49)

Pseudocode proses seeking  Begin 

if(spc(grup_seeking(i))==1 

for j=0 to smp 

for k=0 to jumlahLahan 

Memory_pool(j,k)=data_random(grup_seeking(i))(k) 

end for 

else if(spc(grup_seeking(i))!=1 

for j=0 to smp 

Gambar 4.10 Prosedur update kecepatan pada mode seeking

4.2.10 Melakukan Proses Mode Tracing

Setelah dilakukan proses penempatan flag secara random (acak),

kemudian beberapa kucing akan diproses dalam mode tracing. Secara

operasional dalam mode ini setiap individu akan mengubah representasi kecepatan yang lama menjadi representasi kecepatan yang baru. Proses update kecepatan ini dipengaruhi oleh memory yang

dimiliki setiap kucing, yang berfungsi mengingat posisi terbaik yang sejauh ini diperoleh swarm (xbest) . Hal ini dapat dijelaskan pada

(50)

Prosedur update kecepatan pada mode tracing

Gambar 4.11 Prosedur update kecepatan pada mode tracing

Untuk mendapatkan set solusi yang lebih baik, dalam fase ini representasi kecepatan baru digunakan oleh setiap individu (kucing) ini

untuk mengubah posisinya. Prosedur dalam menentukan posisi baru dapat dilihat dalam Gambar 4.12

Prosedur mengupdate posisi lama setiap kucing Begin

Gambar 4.12 Prosedur update posisi tiap kucing pada mode

tracing

(51)

solusi baru memberikan nilai fitness yang lebih baik dari set solusi lama. Proses ini kemudian disajikan dalam Gambar 4.13

Prosedur perbandingan fitness lama dan fitness baru

Begin

for i= 0 to jumtracing-1

if(fitnessbi-fitnessi>0)

for j=0 to n-1

kucingbarui,j;

end end

else

for j=0 to n-1

kucingbarui,j=kucingi,j;

end end

end End

Gambar 4.13 Prosedur perbandingan fitness lama dan fitness baru

4.2.11 Penentuan Solusi Terburuk pada CSO

Penentuan solusi terburuk ini menggunakan informasi posisi kucing yang baru setelah melalui proses mode seeking dan mode tracing yaitu

dengan cara membandingkan posisi terburuk antara mode seeking dan

mode tracing masing-masing kucing yang telah disimpan pada proses

diatas. Solusi terburuk yang diperoleh dari proses mode seeking dan

proses mode tracing akan dibandingkan dan dicari posisi yang memiliki

(52)

Pseucode penentuan solusi terburuk   

Begin 

if(tinggi_best_tracing<tinggi_best) 

real_tinggi=tinggi_best_tracing 

 

for i=0 to jumlahLahan 

real_lahan[i]=lahan_best_tracing[i]; 

real_variasi[i]=variasi_best_tracing[i]; 

end for  end if 

 

else if(tinggi_best<tinggi_best_tracing) 

real_tinggi=tinggi_best; 

 

for i=0 to jumlahLahan 

real_lahan[i]=lahan_best[i]; 

real_variasi[i]=variasi_best[i]; 

end for  end else 

End   

Gambar 4.14 Prosedur penentuan solusi terburuk

Setelah solusi terburuk di cat swarm optimization diperoleh, maka

selanjutnya adalah solusi terburuk pada cat swarm optimization

diproses engan menggunakan algoritma simulated annealing.

4.2.12 Proses Simulated Annealing

Pada proses ini individu terburuk dari cat swarm optimization akan

diproses menggunakan simulated annealing. Pada proses annealing

pertama yang dilakukan adalah modifikasi. Proses mutasi yang digunakan dalam proses modifikasi adalah pencarian lokal, metode yang digunakan adalah resiprochal exchange mutation. Resiprochal exchange mutation merupakan suatu metode mutasi dengan cara

(53)

Prosedur Simulated Annealing

Begin

select_1=random(jumlahLahan-1); select_2=random(jumlahLahan-1);

while(select_1==select_2||select_1>select_2);

for int sel=0 to jumlah lahan

data_random[counter_sa][sel];

end

for int j=select_1;j<=select_1+mutatecounter;j++)

tempSA=solusi_sa[j];

solusi_sa[j]=solusi_sa[select_2];

solusi_sa[select_2]=tempSA; select_2--;

end

evaluasi solusi sa();

penentuan tolak atau terima solusi();

suhu=suhu_sekarang*beta;

suhu_sekarang=suhu;

end

End

Gambar 4.15 Prosedur proses Simulated Annealing

4.2.13 Menyimpan Solusi Terbaik (Global Best)

Prosedur ini merupakan prosedur untuk menyimpan solusi terbaik pada setiap iterasinya. Nilai fungsi tujuan terbaik merupakan nilai fungsi tujuan dari solusi yang terbaik. Solusi terbaik ini dlahanukan diantara solusi CSO dan SA sehingga dapat pula disebut global best.

Perlu diingat bahwa proses ini dilakukan pada tiap iterasi, sehingga akan diperoleh solusi terbaik setiap iterasinya maka untuk keseluruhan akan didapat sejumlah t solusi terbaik (global best). Prosedur

(54)

Prosedur menentukan gbest Begin

for j=0 to individu-1

if (ftGbest > ftj) then for k= 0 to n-1

individuGbestk=individuk,j

xGbestk=xk,j

end for k end if end for j End

Gambar 4.16 Prosedur menyimpan solusi Terbaik (Global Best)

4.3Data

Untuk mengimplementasikan penggabungan algoritma cat swarm optimization dan simulated annealing pada Land Allocation, akan digunakan

data yang diambil dari Alison R. Callaghan (1999) dan Egy Rifky (2015). Data yang digunakan dalam skripsi ini dibagi menjadi 2 yaitu :

1. Data dengan 13 lahan komponen 2. Data dengan 75 lahan komponen

Data secara lengkap dapat dilihat pada Tabel 4.1 dan Lampiran 1.

4.4 Contoh Kasus Masalah Alokasi Lahan dengan Menggunakan Data 13 Lahan Komponen yang Diselesaikan Secara Manual

Misalkan pada sebuah gedung terdapat ruangan yang berukuran WxH

dengan W = 200 feet dan H = 171.5 feet. Pada ruangan tersebut akan

dialokasikan lahan untuk departemen – departemen yang ukuran masing-masing departemen memiliki fleksibilitas dimensi yang dapat dilihat pada

Gambar

Gambar 2.1 Algoritma Pengisian Rekursif
Gambar 3.1 Flowchart Penyelesaian land allocation menggunakan Hybrid Algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA)
Gambar 3.2 Flowchart Mode Tracing
Gambar 3.3 Flowchart Mode Seeking
+7

Referensi

Dokumen terkait

Menurut Papalia &amp; Felman (2010: 397) Perilaku prososial adalah segala bentuk perilaku yang dilakukan secara sukarela untuk memberikan keuntungan atau manfaat bagi

Iklan menginformasikan atau menyampaikan informasi- informasi mengenai produk sunlight sebagai sabun cuci piring dapat dipahami konsumen dan diketahui kegunaannya dalam

Secara sederhana dapat kita analisis bahwa dalam masyarakat kapitalis yang penuh dengan kompetisi, pendidikan menjadi penyebab ketidakmerataan distribusi kesempatan;

(1) Bank Penampung atau Mitra Pembayaran yang telah ditetapkan sebagaimana dimaksud dalam Pasal 7 menandatangani perjanjian kerja sama dengan Bank Kustodian. (2)

3 Segala pudji bagi Allah, Bapa Tuhan kita Jesus Keristus, jang menurut seperti rahmatnja jang amat besar telah mendjadikan kita baharu, sehingga kita beroleh pengharapan jang

7ampir keban0akan burner min0ak bakar dan gas 0ang digunakan dalam sebuah plant  boiler tidak  diran/ang untuk suhu pemanas awal udara 0ang tinggi. Burner 0ang modern dapat tahan

Konsep New World Grand Bali Resort secara detail dirancang untuk menciptakan akomodasi yang mewah dan terintegrasi baik sesuai standar hotel bintang 5, yang akan

Biasanya orangtua akan menganggap perilaku remaja tersebut sebagai perilaku menolak atau memberontak atas aturan yang dibuat oleh orangtua da pada akhirnya sikap dan