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.
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.
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
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
BAB V PENUTUP ... 72
5.1 Kesimpulan ... 72
5.2 Saran ... 72
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
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
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
DAFTAR LAMPIRAN
Nomor Judul Lampiran
1 Data Permasalahan Pengepakan Segi Empat 2D dengan 75 Lahan Komponen
2 Source Code Program
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
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
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
2. Tidak memperhatikan aktifitas antar lahan komponen, tetapi hanya memperhatikan penempatan lahan komponen.
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.
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
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.
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
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)
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.
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
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
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.
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,
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
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
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.
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
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;
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.
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.
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.
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
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.
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
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
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
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
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
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
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
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);
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
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)
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
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
.
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
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
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
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
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
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
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
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
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