SIMULATED ANNEALING
(SA)
PADA
TRAVELING SALESMAN PROBLEM
(TSP)
SKRIPSI
ANIS ATUL FUAIDAH
PRO GRAM ST UDI S -1 MATEMATIKA
DE PARTE ME N MATEMAT IKA
FAKULTAS SAINS DAN TE KNOLO GI
ii
HYBRID
ALGORITMA
PARTICLE SWARM OPTIMIZATION
(PSO) DENGAN
SIMULATED ANNEALING
(SA)
PADA
TRAVELING SALESMAN PROBLEM
(TSP)
SKRIPSI
Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Sains
Bidang Matematika Pada Fakultas Sains Dan Teknologi
Universitas Airlangga
Oleh :
ANISATUL FUAIDAH
080810129
Tanggal Lulus: 17 Juli 2012
Disetujui Oleh :
Pembimbing I
Dr. Herry Suprajitno
NIP. 19680404 199403 1 020
Pembimbing II
Dr. Miswanto
NIP. 19680204 199303 1 002
LEMBAR PENGESAHAN NASKAH SKRIPSI
Judul
:
Hybrid
Algoritma
Particle Swarm Optimization
(PSO)
dengan
Simulated Annealing
(SA) Pada
Traveling
Salesman Problem
(TSP)
Penyusun
: Anisatul Fuaidah
NIM
: 080810129
Tanggal Ujian
: 17 Juli 2012
Disetujui Oleh :
Pembimbing I
Dr. Herry Suprajitno
NIP. 19680404 199403 1 020
Pembimbing II
Dr. Miswanto
NIP. 19680204 199303 1 002
Mengetahui :
Ketua Program Studi S-1 Matematika
DepartemenMatematika
FakultasSains dan Teknologi
UniversitasAirlangga
iv
PEDOMAN PENGGUNAAN SKRIPSI
Skripsi ini tidak dipublikasikan, namun tersedia di perpustakaan dalam
lingkungan Universitas Airlangga, diperkenankan untuk dipakai sebagai referensi
kepustakaan, tetapi pengutipan harus seizin penyusun dan harus menyebutkan
sumbernya sesuai kebiasaan ilmiah. Dokumen skripsi ini merupakan hak milik
Universitas Airlangga.
KATA PENGANTAR
Alhamdulillah, puji syukur penyusun panjatkan kehadirat Allah SWT
karena atas limpahan rahmat dan hidayah-Nya skripsi yang berjudul “
Hybrid
Algoritma
Particle Swarm Optimization
(PSO) dengan
Simulated Annealing
(SA)
pada
Traveling Salesman Problem
(TSP)” ini bisa terselesaikan dengan baik.
Dalam kesempatan ini, penyusun ingin mengucapkan terima kasih yang
sebanyak-banyaknya kepada:
1.
Ayah Robbah, Ibu Is, adik Nafa, dan Mas Lutfi tersayang serta
saudara-saudara yang senantiasa memberikan doa, kasih sayang, semangat,
perhatian, kesabaran dan pengorbanan yang tak ternilai dan tidak dapat
tergantikan oleh apapun.
2.
Kementrian agama RI, khususnya Direktorat Pendidikan Diniyah dan
Pondok Pesantren RI, Pak khoironi, Pak Ruchman, Bu Lilik, Pak imam,
Bu Nyoman, serta pihak-pihak lain sebagai wakil KEMENAG yang telah
memberikan dukungan material maupun non-material pada penyusun
sehingga dapat menyelesaikan skripsi ini.
3.
Dr. Herry Suprajitno selaku pembimbing I, Dr. Miswanto selaku
pembimbing II, serta Dr. Fatmawati dan Toha Saifudin, S.Si., M.Si.
selaku dosen penguji yang telah memberikan bimbingan dan arahan
vi
4.
Dra. Inna Kuswandari, M. Si selaku dosen wali selama menjadi
mahasiswa Universtas Airlangga.
5.
Sahabat-sahabat Matematika’08 terutama Lail, Yusi, Meta, Citra, Au’, dan
sahabat-sahabat Griya Annisa terutama Fika dan Tika yang telah
memberikan banyak semangat kepada penyusun.
6.
Semua pihak yang tidak dapat disebutkan satu persatu yang turut memberi
bantuan, semangat dan masukan dalam penyusunan skripsi ini.
Penyusun menyadari bahwa penyusunan skripsi ini masih belum
sempurna. Untuk itu penyusun mengharapkan adanya kritik dan saran yang
bersifat membangun demi kesempurnaan skripsi ini. Semoga skripsi ini dapat
bermanfaat dan menambah wawasan bagi pembaca.
Surabaya, Juli 2012
Anisatul Fuaidah
Anisatul Fuaidah, 2012,
Hybrid
Algoritma
Particle Swarm Optimization
(PSO)
dengan
Simulated Annealing
(SA) pada
Traveling Salesman Problem
(TSP),
Skripsi ini dibawah bimbingan Dr. Herry Suprajitno dan Dr. Miswanto,
Departemen Matematika, Fakultas Sains dan Teknologi,
Universitas Airlangga
ABSTRAK
Traveling Salesman Problem
(TSP) dapat digambarkan dengan perjalanan
seorang salesman yang mengunjungi
kota, dengan rute perjalanannya dimulai
dari satu kota lalu mengunjungi kota yang lain masing-masing kota tepat satu kali
dan diakhiri di kota asal tempat memulai perjalanan. Tujuan dari TSP adalah
mencari urutan rute kota dengan jarak yang minimal. Skripsi ini bertujuan untuk
menyelesaikan permasalahan TSP dengan menggunakan
hybrid
algoritma
PSO-SA.
Hybrid
algoritma PSO-SA merupakan algoritma yang menggabungkan antara
algoritma PSO dan SA. Secara umum proses PSO adalah membangkitkan
partikel-partikel
,
menentukan
dan
,
update
kecepatan dan posisi.
Hybrid
algoritma PSO-SA merupakan suatu proses PSO dimana pencarian
dan
dilakukan berdasarkan aturan SA. Algoritma berhenti ketika suhu yang
dikehendaki sudah tercapai.
TSP dengan 10 kota dan 100 kota diselesaikan dengan
hybrid
algoritma PSO-SA
menggunakan bahasa pemrograman Borland C++. Solusi terbaik dari TSP 10 kota
adalah 582 km dengan parameter
dan
Sedangkan solusi terbaik dari TSP 100 kota adalah 6239 km dengan
parameter
dan
Berdasarkan
hasil yang diperoleh dari jarak 100 kota
menunjukkan bahwa semakin besar
jumlah modifikasi partikel
maka jarak minimal kota yang didapatkan
cenderung
lebih baik.
viii
Anisatul Fuaidah, 2012, Hybrid Algorithm Particle Swarm Optimization (PSO)
with Simulated Annealing (SA) for Traveling Salesman Problem (TSP), This
skripsi
was supervised by Dr. Herry Suprajitno and Dr. Miswanto, Mathematics
Department, Faculty of Sciences and Technology,
Airlangga University.
ABSTRACT
Traveling Salesman Problem (TSP) could be represented by a salesman who
travels to visit
cities, the tour started from one city then visited another city
exactly once and finished up where he started. The purpose of TSP is to find the
permutation of tour by calculating the minimum total distances have been
traveled. This
skripsi
purposeful for solved TSP by using hybrid algorithm
PSO-SA.
Hybrid algorithm PSO-SA was an algorithm that combines algorithm PSO and
algorithm SA.
Generally, PSO process generated particles, than found
and
, than updated velocity and position.
Hybrid algorithm PSO-SA was PSO
process which process of finding
and
was using rule of SA algorithm.
Algorithm stopped when refrigerated temperature has been reached.
TSP with 10 cities and 100 cities was solved by hybrid algorithm PSO-SA by
software Borland C++. The best solution for TSP 10 cities was 582 km with using
the parameter of
m
and
And the
best solution for TSP 100 cities was 6239 km with using the parameter of
and
Based on the result of
calculating distances of 100 cities, the conclusion could be drawn is more number
of particles modifications (
L
), then minimum distances of cities was better.
Keyword: Traveling Salesman Problem (TSP), Particle Swarm Optimization
(PSO), Simulated Annealing (SA), and Hybrid.
DAFTAR ISI
Halaman
LEMBAR JUDUL ...
i
LEMBAR PERNYATAAN ...
ii
LEMBAR PENGESAHAN ...
iii
LEMBAR PEDOMAN PENGGUNAAN SKRIPSI ...
iv
KATA PENGANTAR ...
v
ABSTRAK ...
vii
ABSTRACT ...
viii
DAFTAR ISI ...
ix
DAFTAR TABEL ...
xi
DAFTAR LAMPIRAN ...
xii
BAB I PENDAHULUAN ...
1
1.1
Latar Belakang ...
1
1.2
Rumusan Masalah ...
2
1.3
Tujuan ...
3
1.4
Manfaat ...
3
BAB II TINJAUAN PUSTAKA ...
4
2.1
Travelling Salesman Problem
(TSP) ...
4
2.2
Algoritma ...
8
2.3
Algoritma
Particle swarm Optimization
(PSO) ...
8
2.4
Algoritma
Simulated Annealing
(SA) ...
12
2.5
Hybrid
Algoritma
Particle Swarm Optimization
dengan
Simulated Annealing
(PSO-SA) ...
15
2.6
Borland C++ ...
16
BAB III METODE PENELITIAN...
22
BAB IV PEMBAHASAN ...
25
4.1.Prosedur
Hybrid
Algoritma PSO-SA ...
25
4.2.Program ...
31
4.3.Contoh Kasus TSP dengan 10 Kota yang
Diselesaikan Secara Manual
31
4.4.Implementasi Program pada Contoh Kasus TSP ...
42
4.4.1
Menggunakan Data 10 Kota ...
42
4.4.2
Menggunakan Data 100 Kota ...
43
x
BAB V PENUTUP ...
45
5.1
Kesimpulan ...
45
5.2
Saran ...
46
DAFTAR PUSTAKA ...
48
LAMPIRAN
DAFTAR TABEL
Nomor
Judul
Halaman
4.1.
Fungsi Tujuan Partikel-partikel ...
35
xii
DAFTAR LAMPIRAN
Nomor
Judul Lampiran
1.
Data Jarak 10 Kota dari
Workshop Integer Programming
, 2004
2.
Data Jarak 100 Kota dari
Workshop Integer Programming
, 2004
3.
Program
Hybrid
Algoritma PSO-SA dengan
Software
Borland C++
4.
Output
TSP 10 Kota
5.
Output
TSP 100 Kota dengan Berbagai Parameter yang Berbeda
BAB I
PENDAHULUAN
1.1
Latar Belakang
Dewasa ini, perkembangan jasa pengiriman semakin cepat, hal ini
berdampak pada persaingan perusahaan yang cukup berat. Dalam
menghadapi persaingan tersebut diperlukan adanya strategi yang tepat
dalam mengatasi permasalahan. Dalam jasa pengiriman permasalahan
yang timbul adalah bagaimana menentukan rute yang akan ditempuh
sehingga semua kota dapat dilewati satu kali dengan jarak atau biaya
minimal.
Menurut
Puspitorini (2008)
Traveling Salesman Problem
(TSP)
merupakan sebuah permasalahan yang telah dipelajari secara ekstensif
selama beberapa dekade terakhir.
TSP melibatkan
traveling salesman
yang
harus melakukan kunjungan ke
kota dalam menjajakan produknya.
Rangkaian kota yang dikunjungi harus membentuk suatu jalur (rute)
sedemikian sehingga kota-kota tersebut hanya boleh dilewati tepat satu
kali dan kemudian kembali lagi ke kota awal. Tujuan dari permasalahan
TSP ini adalah untuk memperoleh jalur terpendek. Beberapa metode telah
banyak dikembangkan untuk menyelesaikan TSP ini. Berbagai pendekatan
dan algoritma telah ditawarkan untuk mendapatkan solusi optimal. Salah
satu algoritma yang dapat digunakan untuk menyelesaikan TSP adalah
PSO merupakan algoritma yang pertama kali diperkenalkan oleh
Kennedy dan Eberhart pada tahun 1995. PSO memiliki kinerja yang baik
dalam memecahkan beberapa masalah optimasi. Namun algoritma dasar
PSO mempunyai masalah serius, yaitu semua partikel cenderung terjebak
dalam minimum lokal pada fase konvergensi selanjutnya, sehingga PSO
sering menemukan sebuah solusi minimum lokal bukan minimum global
(
Fang dkk, 2007)
. Karena itu, untuk mengatasi masalah tersebut algoritma
PSO akan digabungkan dengan
Simulated Annealing
(SA). Kelebihan
algoritma SA adalah algoritma dengan metode stokastik yang
fitur-fiturnya efektif dalam menghindari perangkap minimum lokal (
Chibante,
2010)
.
Oleh karena itu, skripsi ini menggunakan
hybrid
algoritma
PSO-SA untuk menyelesaikan TSP.
Hybrid
algoritma PSO-SA adalah algoritma
yang tidak hanya dapat menghindari perangkap minimum lokal dalam
tahap konvergensi selanjutnya tetapi juga menyederhanakan implementasi
algoritma (
Fang dkk, 2007)
.
1.2
Rumusan Masalah
Berdasarkan latar belakang masalah, ada beberapa masalah yang
dibahas dalam skripsi ini, yaitu:
1.
Bagaimana menyelesaikan permasalahan TSP dengan
hybrid
algoritma PSO-SA?
2.
Bagaimana membuat program penyelesaian TSP dengan
hybrid
algortima PSO-SA dengan
software
Borland C++?
3.
Bagaimana mengimplementasikan program pada contoh kasus?
1.3
Tujuan
Adapun tujuan dari skripsi ini adalah:
1.
Menyelesaikan permasalahan TSP dengan
hybrid
algoritma
PSO-SA.
2.
Membuat program penyelesaian TSP dengan
hybrid
algortima
PSO-SA dengan
software
Borland C++.
3.
Mengimplementasikan program pada contoh kasus.
1.4
Manfaat
Beberapa manfaat yang bisa diambil dari skripsi ini adalah :
1.
Menambah pemahaman tentang permasalahan
Traveling Salesman
Problem
(TSP) dan penyelesaian permasalahannya.
2.
Menambah pemahaman tentang
hybrid
algoritma PSO-SA.
3.
Mengetahui program penyelesaian permasalahan TSP dengan
4
BAB II
TINJAUAN PUSTAKA
Pada bab ini akan diuraikan beberapa definisi yang digunakan pada
pembahasan
hybrid
algoritma
Particle Swarm Optimization
(PSO) dengan
Simulated Annealing
(SA) pada
Traveling Salesman Problem
(TSP).
2.1
Traveling Salesman Problem
(TSP)
Traveling Salesman Problem
(TSP) dikenal sebagai salah satu
permasalahan optimasi yang sulit untuk dipecahkan secara konvensional.
Penyelesaian eksak terhadap persoalan ini akan melibatkan algoritma yang
mengharuskan untuk mencari kemungkinan semua solusi yang ada. TSP
melibatkan
traveling salesman
yang harus melakukan kunjungan ke
kota
dalam menjajakan produknya. Rangkaian kota yang dikunjungi harus
membentuk suatu jalur sedemikian sehingga kota-kota tersebut hanya
boleh dilewati tepat satu kali dan kemudian kembali lagi ke kota awal.
Penyelesaian terhadap permasalahan TSP ini adalah untuk memperoleh
jalur terpendek. Penyelesaian eksak terhadap masalah TSP mengharuskan
untuk melakukan perhitungan terhadap semua kemungkinan rute yang
dapat diperoleh, kemudian memilih salah satu rute yang terpendek.
Dengan cara ini waktu perhitungan yang diperlukan akan jauh meningkat
seiring dengan bertambahnya jumlah kota yang harus dikunjungi.
Penjelasan ini menunjukkan bahwa solusi eksak terhadap masalah TSP
sangat sulit dilakukan.
(Puspitorini, 2008)
Berikut ini diberikan beberapa definisi yang terkait dengan TSP,
Definisi 2.1
Graph G
didefinisikan sebagai himpunan berhingga
V(G)
yang tak kosong dengan elemen-elemennya disebut titik
(
vertice
) dan himpunan
E(G)
(mungkin kosong) yang
elemen-elemennya merupakan pasangan tak terurut 2
elemen berbeda dari
V(G)
dan disebut garis (
edge
).
(Chartrand and Oellermann, 1993)
Definisi 2.2
Perjalanan
(walk)
pada
graph G
adalah urutan secara
bergantian titik-titik elemen
dan
edge
elemen
yang berbentuk :
yang dimulai dan diakhiri titik sedemikian sehingga
untuk
.
(Chartrand and Oellermann, 1993)
Definisi 2.3
Path
adalah
walk
yang titik-titiknya tidak boleh berulang.
Graph
G dikatakan terhubung, jika setiap dua titiknya
dihubungkan oleh suatu
path
.
(Chartrand and Oellermann, 1993)
Definisi 2.4
Cycle
adalah
walk
dengan
n
3
,
v
0
v
ndan titik-titik
v
0,
v
1, v
2, ..., v
n-1, v
n berbeda satu dengan yang lainhimpunan
(yang kemungkinan himpunan kosong)
dari pasangan garis titik terurut.
Arc
(garis berarah) adalah
elemen-elemen dari
(Chartrand and Oellermann, 1993)
Definisi 2.6
GraphG
disebut
graph
lengkap (
complete graph
) jika setiap
dua titiknya terhubung.
(Chartrand and Oellermann, 1993)
Definisi 2.7
Graph
berbobot adalah
graph
yang setiap garisnya
mempunyai bobot.
(Chartrand and Oellermann, 1993)
Untuk materi yang dibahas selanjutnya bersumber dari buku yang
ditulis oleh
Garfinkel dan Nemhauser (1972).
Permasalahan dari TSP
yaitu membuat
tour
dari
kota
dimulai dan diakhiri pada kota
yang sama, dengan jarak
tour
-nya minimal.
Tour
adalah sebuah
cycle
dalam
yang memuat setiap titik tepat satu kali. Dalam istilah
graph
,
permasalahan ini dapat digambarkan dalam
digraph
. Misal
adalah himpunan dari kota dan misal ada garis
, jika ada hubungan
antara kota
dan kota
.
Titik dari
tour
sebagai berikut:
)
,
,...,
,
(
i
1i
2i
n 1i
nt
(2.1)
Dengan
(
i
1,
i
2,...,
i
n1,
i
n)
adalah
permutasi
(urutan angka-angka) dari bilangan bulat
dan paling banyak kemungkinan jumlah total dari
tour
nya
adalah
Garis dari
tour
pada persamaan (2.1) dapat dinyatakan sebagai berikut:
Variabel
x
ijdidefinisikan sebagai berikut:
Meminimalkan
Algoritma adalah merupakan suatu himpunan langkah-langkah
atau instruksi yang telah dirumuskan dengan baik (
well-defined
) untuk
memperoleh suatu keluaran khusus (
specific output
) dari suatu masukan
khusus (
specific input
) dalam langkah yang jumlahnya berhingga.
(Chartrand dan Oellermann, 1993)
2.3
Algoritma
Particle swarm Optimization
(PSO)
Materi yang dibahas berikut bersumber dari buku yang ditulis oleh
Parsopoulos dan Vrahatis (2010).
Particle Swarm Optimization
(PSO)
dikembangkan oleh Kennedy dan Eberhart (1995) sebagai algoritma
optimasi yang bersifat stokastik dan berdasarkan pada model simulasi
sosial. Secara bersamaan, posisi terbaik yang pernah dicapai oleh setiap
partikel disebut sebagai pengalaman, dan pengalaman-pengalaman
tersebut disimpan dalam memori. Pengalaman ini kemudian
dikomunikasikan ke bagian atau seluruh populasi dan diteruskan dengan
membentuk gerakan ke arah daerah yang telah dikunjungi dan terbaik
sejauh ini. PSO mensimulasikan perilaku sosial seperti kawanan burung
dan ikan didasarkan pada konsep kerjasama antar individu sehingga
populasi tersebut dapat mencapai tujuan secara efisien dan efektif untuk
memecahkan beberapa masalah optimasi.
Secara matematis, diberikan
sebagai ruang pencarian dan
adalah fungsi tujuan. Seperti dijelaskan sebelumnya, PSO
merupakan algoritma berbasis populasi, yaitu dengan mengeksploitasi
populasi solusi untuk menyelidiki ruang pencarian secara bersamaan.
Dalam PSO, populasi disebut
swarm
dan individu-individunya disebut
partikel,
Swarm
didefinisikan sebagai himpunan:
{
}
(2.9)
dari
partikel (calon solusi), yang didefinisikan sebagai berikut:
(2.10)
Partikel-partikel tersebut bergerak didalam ruang pencariannya,
pergerakan ini dilakukan dengan menyesuaikan posisi mereka dengan
menggunakan kecepatan
(velocity),
yang didefinisikan sebagai berikut:
(2.11)
Kecepatan tersebut disesuaikan secara bertahap sehingga
menunjukkan jumlah iterasi, maka posisi saat ini dari partikel ke-
dan
kecepatannya masing-masing dinotasikan sebagai
dan
Kecepatan diperbarui berdasarkan informasi yang diperoleh dari langkah
algoritma sebelumnya. Hal ini di implementasikan dalam sebuah memori,
di mana masing-masing partikel dapat menyimpan posisi terbaik yang
pernah dikunjungi selama pencarian, sehingga
berisi posisi partikel saat
ini. Memori yang dipertahankan oleh PSO adalah :
{
}
(2.12)
yang mengandung
best positions
(2.13)
dan pernah dikunjungi oleh masing-masing partikel. Sehingga
posisi-posisi ini didefinisikan sebagai berikut:
,
(2.14)
Dengan
adalah partikel dengan
yang minimal.
PSO didasarkan pada model simulasi perilaku sosial, sehingga
mekanisme pertukaran informasi harus ada untuk memungkinkan
partikel-partikel saling berkomunikasi. Algoritma akan mendekati minimum global
dengan posisi terbaik yang pernah dikunjungi oleh semua partikel.
Diberikan
sebagai posisi terbaik dengan nilai fungsi terendah dalam
pada
iterasi yang diberikan, yaitu:
(2.15)
Dengan
adalah
dengan
yang
minimal.
Masing-masing partikel memperbarui kecepatan dan posisinya
dengan persamaan sebagai berikut:
(2.16)
(2.17)
dengan
adalah koefisien inersia pada interval
[ ]
,
adalah
koefisien akselerasi yang berupa konstanta positif,
adalah bilangan
acak pada interval
[ ]
. Berikut adalah algoritma dasar PSO:
1.
Inisialisasi posisi awal partikel
dan kecepatan awal partikel
, dengan
dan
adalah ukuran
swarm
.
2.
Evaluasi nilai fungsi tujuan untuk setiap partikel
.
3.
Tentukan
awal dan
awal.
4.
Update kecepatan dengan persamaan (2.16).
5.
Update posisi partikel baru dengan persamaan (2.17).
6.
Evaluasi kembali
, jika
maka
,
setelah mendapatkan
baru, maka didapatkan
baru.
{
7.
Jika iterasi sudah maksimum atau konvergen, maka algoritma
berhenti, jika tidak maka kembali ke langkah 4.
2.4
Algoritma
Simulated Annealing
(SA)
Materi yang dibahas pada bagian ini bersumber dari buku yang
yaitu dengan membiarkan algoritma tersebut tidak hanya menerima solusi
yang lebih baik tetapi juga menerima solusi buruk dengan probabilitas
tertentu. Masalah yang membutuhkan pendekatan SA adalah
masalah-masalah optimisasi kombinatorial, dengan ruang pencarian solusi yang ada
terlalu besar, sehingga hampir tidak mungkin ditemukan solusi eksak
terhadap permasalahan itu. Publikasi tentang pendekatan ini pertama kali
dilakukan oleh Kirkpatrick, Gelatt dan Vecchi pada tahun 1983, yang
diaplikasikan pada desain optimal
hardware
komputer, dan juga pada
salah satu masalah klasik ilmu komputer yaitu
Traveling Salesman
Problem
(TSP).
Annealing
adalah satu 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 sangat tinggi. Hal ini memberikan atom banyak kebebasan
dalam kemampuan mereka untuk merestrukturisasi diri mereka sendiri.
Seperti pada 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.
SA berjalan berdasarkan analogi dengan proses
annealing
yang
telah dijelaskan di atas. Pada awal proses SA, dipilih suatu solusi awal,
yang merepresentasikan kondisi materi sebelum proses dimulai. Gerakan
bebas dari atom-atom pada materi, direpresentasikan dalam bentuk
modifikasi terhadap solusi awal/solusi sementara. Pada awal proses SA,
saat parameter suhu
diatur tinggi, solusi sementara yang sudah ada
diperbolehkan untuk mengalami modifikasi secara bebas.
Kebebasan ini secara relatif diukur berdasarkan nilai fungsi
tertentu yang mengevaluasi seberapa optimal solusi sementara yang telah
diperoleh. Bila nilai fungsi evaluasi hasil modifikasi ini membaik (dalam
masalah optimisasi yang berusaha mencari 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 yang lebih buruk (
uphill
) ini
masih mungkin diterima. Dalam tahapan selanjutnya saat temperatur
sedikit demi sedikit dikurangi, maka kemungkinan untuk menerima
langkah modifikasi yang tidak memperbaiki nilai fungsi evaluasi semakin
berkurang. Sehingga kebebasan untuk memodifikasi solusi semakin
menyempit, sampai akhirnya diharapkan diperoleh solusi yang mendekati
solusi optimal. Berikut algortima dari SA:
1.
Inisialisasi temperatur awal
dan temperatur akhir
.
2.
Inisialisasi individu awal
.
3.
Evaluasi individu awal sebagai solusi sementara
.
4.
Modifikasi individu awal
dan evaluasi kembali sebagai solusi
baru
.
5.
Jika
maka solusi sementara sama dengan solusi
[ ]
. Hitung probabilitas
(
)
, jika
maka solusi
baru tetap diterima sebagai solusi sementara.
6.
Jika
, maka algoritma berhenti. Jika tidak, hitung perubahan
temperatur
pada iterasi ke-
dengan
,
kemudian kembali ke langkah 4.
Keterangan:
Modifikasi :
Mekanisme sederhana untuk mengubah solusi yang
sudah ada, untuk menghasilkan solusi baru yang berbeda tidak
terlalu jauh dengan solusi yg sudah ada. Biasanya disebut
neighbour
solution
. Contoh dalam TSP bila solusi sementara dari TSP dengan 3
kota adalah : A B C. Hasil fungsi modifikasi adalah solusi baru
dengan urutan A C B.
(
)
: Probabilitas bahwa langkah/solusi baru yang tidak
lebih baik, akan diterima sebagai solusi sementara.
bernilai
positif, yang berarti solusi baru pada tahap ini lebih buruk dari
pada solusi sementara yang sudah ada. Ekspresi ini menyatakan
bahwa semakin buruk solusi baru, kemungkinan diterima sebagai
solusi sementara semakin kecil. Tetapi pada awal proses
annealing
,
karena faktor temperatur
sebagai pembagi masih bernilai besar,
probabilitas ini akan tetap cukup besar. Tidak demikian halnya
setelah
menurun, dalam proses pendinginan.
: hanya merupakan salah satu contoh jadwal
penurunan temperatur. Sebenarnya tidak selalu harus seperti ini.
Biasanya juga dalam implementasi SA, diadakan perulangan
proses modifikasi dan
update
solusi sementara untuk suhu tertentu.
2.5
Hybrid
Algoritma
Particle Swarm Optimization
dengan
Simulated
Annealing
(PSO-SA)
Hybrid
menurut bahasa berarti campuran atau gabungan. Jadi
Hybrid
Algoritma merupakan suatu gabungan dua algoritma atau lebih
yang digunakan untuk menyelesaikan suatu permasalahan.
Hybrid
algoritma PSO-SA artinya menggabungkan antara algoritma PSO dan SA
menjadi satu algoritma untuk menyelesaikan permasalahan.
Dengan algoritma PSO-SA diharapkan menjadi algoritma yang
mampu mencapai optimal global. Adapun algoritma dasar dari PSO-SA
adalah sebagai berikut:
1.
Inisialisasi posisiawal partikel
dan kecepatan awal setiap
partikel
, dengan
dan
adalah ukuran
swarm
.
2.
Evaluasi nilai fungsi tujuan untuk setiap partikel
.
3.
Tentukan
awal dan
awal.
4.
Update
kecepatan partikel dengan persamaan (2.16) dan posisi
partikel dengan persamaan (2.17).
5.
Setiap partikel
mencari
baru dengan menggunakan
aturan SA, jika
maka
. Jika tidak,
maka menggunakan keputusan probabilitas
(
)
agar
bisa diterima, jika
dengan
[ ]
maka tetap bisa
6.
Setelah mendapatkan
baru, maka akan didapatkan pula
baru.
{
7.
Hitung perubahan suhu
, dengan
adalah
temperatur awal,
adalah temperatur akhir,
adalah koefisien
cooling
yang berupa bilangan acak pada interval
[ ]
, dan
adalah jumlah iterasi terakhir yang dioperasikan.Jika
maka
iterasi akan dihentikan dan algoritma menemukan
, jika tidak
maka akan kembali ke langkah 4.
(Fang dkk, 2007)
2.6
Borland C++
Materi yang dibahas pada bagian ini bersumber dari buku yang
ditulis oleh
Kadir (2003).
Berbicara tentang C++ biasanya tidak lepas dari
bahasa C, sebagai bahasa pendahulunya. Bahasa C pertama kali
dikenalkan oleh Brian W. Kerninghan dan Dennis M. Ritchie sekitar tahun
1972, dan sekitar satu dekade setelahnya diciptakanlah C++ oleh Bjarne
Stroustrup dari Laboratorium Bell, AT&T, pada tahun 1983. C++ cukup
kompatibel dengan bahasa pendahulunya C. Pada mulanya C++ disebut “
a better C
“. Nama C++ sendiri diberikan oleh Rick Mascitti pada tahun
1983, yang berasal dari operator
increment
pada bahasa C. Keistimewaan
yang sangat berarti dari C++ ini adalah karena bahasa ini mendukung
pemrograman yang berorientasi objek (OOP
/Object
Oriented
Programming
). Bahasa program C++ mempunyai bentuk umum seperti di
bawah, yaitu:
a.
Struktur bahasa C++
Program C maupun C++ selalu tersusun dari 4 (empat)
bagian utama, yaitu :
1. Bagian komentar.
2. Bagian pengarah compiler.
3. Bagian deklarasi.
4. Bagian definisi.
b.
Bagian komentar
Program yang baik pada umumnya diberi komentar yang
akan membantu orang lain maupun pembuat program itu untuk
memahami program yang dibuat. Dalam C atau C++ setiap
proposal yang diapit oleh variabel /* … */ atau setiap baris yang
dimulai dengan variabel // dianggap komentar. C++ tidak
mengizinkan komentar bersarang (
nested comment
), namun
Borland C++ lebih fleksibel dalam hal ini. Pada Borland C++
dapat menggunakan komentar bersarang asalkan opsi cek
Nested
c.
Bagian pengarah kompiler
Include adalah salah satu pengarah
prepocessor directive
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
prepocessor
directive
. Baris tersebut menginstrusikan kepada compiler yang
menyisipkan file lain dalam hal ini file yang berakhiran
.h(
fileheader
) yaitu file yang berisi sebagai deklarasi contohnya:
#include <iostream.h>: diperlukan pada program yang
melibatkan objekcout
.
#include <conio.h>: diperlukan bila melibatkan clrscr(),
yaitu perintah untuk membersihkan layar.
#include <iomanip.h>: diperlukan bila melibatkan setw()
yang bermanfaat untuk mengatur lebar dari suatu tampilan
data.
#include <math.h>: diperlukan pada program yang
menggunkan operasi sqrt() yang bermanfaat untuk operasi
matematika pengakaran.
d.
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( ).
e.
Pengarah kompiler # 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.
f.
Pengarah kompiler # ifdef, # ifndef
Digunakan juga dalam kompilasi bersyarat. #Ifdef dapat
dibaca: „
jika didefinisikan
‟
dan #ifndef dapat dibaca: „
jika tidak
didefinisikan
‟
. Pengarah compiler ini sering digunakan untuk
menandai bahwa suatu
file
sudah diikutsertakan dalam kompilasi.
g.
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 kode objek). Setiap
pemanggilan fungsi maupun
statement xecutable
dalam C harus
diakhiri dengan tanda titik koma. Dalam contoh program C++
menginstruksikan agar suatu fungsi mengembalikan nilai balik
tertentu. Contoh
statement
non
executable
adalah : if, else, dan
while
.
h.
Input
dan
output
Dalam C++
input
berarti menulis dari stream dan
output
berarti membaca ke stream.
Bentuk umum
Output
operator :
cout << ekspresi ;
Bentuk umum
Input
operator :
cin >> variable ;
i.
Tanda semicolon
Tanda semicolon “ ; ” digunakan untuk mengakhiri sebuah
pernyataan. Setiap pernyataan harus diakhiri dengan sebuah tanda
semicolon.
j.
Variabel
Variabel adalah suatu pengenal (
identifier
) yang digunakan
untuk mewakili suatu nilai tertentu di dalam proses program.
Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari
suatu variabel diubah-ubah sesuai kebutuhan. Untuk memperoleh
nilai dari suatu variabel digunakan pernyataan penugasan
(
assignment statement
), yang mempunyai sintaks sebagai berikut :
k.
Deklarasi variable
Bentuk umumnya :
22
BAB III
METODE PENELITIAN
Metode penelitian yang digunakan dalam skripsi ini adalah sebagai
berikut:
1.
Mengkaji materi tentang TSP, algoritma PSO, algoritma SA, dan
hybrid
algoritma PSO-SA.
2.
Menerapkan
hybrid
algoritma PSO-SA dengan langkah-langkah
berikut ini:
Inisialisasi.
Tetapkan
sebagai ukuran
swarm
dan semua
partikel-partikel
.
dapat ditunjukkan sebagai berikut :
{ [ ] [ ] [ ]}
dengan
adalah jumlah kota, dimana
[ ]
yang berarti kota
dikunjungi setelah
dan
[ ]
[ ]
.
Tetapkan
dan
, dengan
adalah temperatur
awal, semakin tinggi
maka akan semakin baik hasilnya,
adalah temperatur akhir,
adalah koefisien
cooling
yang
berupa bilangan acak pada interval
[ ]
, dan
adalah jumlah
modifikasi partikel pada suhu tertentu.
Setiap partikel
) mencari
local best route
)
.
Dalam satu iterasi, setiap partikel
)
dibangkitkan
menjadi rute baru
)
pada lokal areanya, dan dengan
berdasarkan aturan penerimaan SA dapat diketahui apakah
rute tersebut diterima atau tidak, sehingga setelah
iterasi,
setiap partikel menemukan
local best route
)
.
Metode
untuk membangkitkan rute baru
)
adalah sebagai berikut:
Misalkan terdapat
kota, diasumsikan
[ ]
adalah kota
ke-
yang dikunjungi oleh
salesman.
Dua kota
[ ] [ ]
dipilih secara acak pada rute
dan selanjutnya urutan
kunjungan kota ke-
dan kota ke-
ditukar, sedangkan urutan
kunjungan ke kota-kota lainnya tetap sama. Setelah ditukar,
maka rute baru
)
telah berhasil dibangkitkan.
Update
personal best route
)
dan
global best route
)
.
yang telah didapat oleh setiap partikel dari
masing-masing lokal areanya akan digunakan sebagai
.
Dan setelah meng
update
nilai
personal best
dari setiap partikel,
akan dibandingkan dengan
sebagai berikut:
{
)
)
)
)
Dapatkan rute baru
)
dengan operasi
crossing.
Operasi
crossing
pada langkah ini adalah untuk
mengganti langkah
update
kecepatan dan
update
posisi setiap
partikel pada
hybrid
algoritma PSO-SA, adapun operasi
Partikel
)
disilangkan dengan
dan
secara
terpisah untuk memperbarui dirinya. Salah satu metode
persilangan yang akan dipakai pada iterasi ini adalah sebagai
berikut:
Misalkan terdapat dua rute
dan
, pertama yang dilakukan
adalah memilih secara acak daerah
crossing
pada
kemudian
menggantikan nomor-nomor kota tersebut pada daerah
crossing
dengan posisi yang sama sebagaimana
.
Hitung temperature baru
, dengan persamaan
))
). Jika
, algoritma menemukan
dan
proses berhenti. Jika tidak, maka kembali ke langkah mencari
local best route
)
.
3.
Membuat program dengan
software
Borland C++.
4.
Mengimplementasikan program pada contoh kasus.
BAB IV
PEMBAHASAN
Pada bab ini akan dijelaskan mengenai penggunaan
hybrid
algoritma PSO-SA untuk menyelesaikan TSP, yaitu permasalahan untuk
mencari rute dari
kota dengan jarak atau biaya perjalanan yang minimal.
4.1
Prosedur
Hybrid
Algoritma PSO-SA
Prosedur
hybrid
algoritma PSO-SA dalam menyelesaikan TSP
adalah sebagai berikut:
Prosedur
hybrid
algoritma PSO-SA secara ringkas adalah:
Prosedur Hybrid Algoritma PSO-SA
Begin
Inisialisasi parameter;
Generate partikel awal;
While do
Evaluasi partikel; Tetapkan dan ;
Update partikel;
Hitung Temperatur ;
End
Dan untuk prosedur inisialisai parameter dapat dilihat pada
berikut. Misalkan
sebagai ukuran
swarm
dan semua partikel
dilambangkan dengan
, dengan
dapat dinyatakan
sebagai berikut:
{ [ ] [ ] [ ]}
dengan
adalah jumlah
kota, dimana
[ ]
yang berarti kota
dikunjungi setelah
dan
[ ] [ ]
.
Misalkan
adalah temperatur awal, semakin tinggi
maka
akhir,
adalah koefisien
cooling
yang berupa bilangan acak pada
interval
[ ]
, dan
adalah jumlah modifikasi partikel pada suhu
tertentu.
Prosedur Inisialisai Parameter
Begin
Banyak kota ; Ukuran swarm ; Temperatur awal ; Temperatur akhir ; Koefisien cooling ;
Jumlah modifikasi partikel pada suhu tertentu ;
End
Langkah 1
:
Generate
Partikel-partikel Awal
Pada langkah ini adalah membangkitkan sejumlah partikel (rute
pada TSP) secara acak di ruang pencarian, yang merupakan himpunan
solusi yang fisibel. Banyaknya partikel-partikel yang dibangkitkan
adalah sesuai dengan ukuran
swarm
yang ditentukan. Setiap partikel
tersebut dimodifikasi menjadi rute yang baru
pada lokal
areanya sebanyak jumlah modifikasi partikel
pencarian
personal
best route
,
yaitu dengan memilih dua posisi secara acak kemudian
menukarnya, tujuannya adalah untuk mencari
personal best route.
Dalam menyelesaikan TSP akan digunakan pengkodean
permutasi yaitu barisan angka yang memperhatikan urutan dan posisi
sehingga tidak terjadi adanya pengulangan angka, sehingga partikel
dapat digambarkan sebagai rute yang terdiri dari urutan
kota yang
berbeda. Adapun prosedurnya sebagai berikut:
Prosedur Generate Partikel Awal
Begin
For 1 to
generate partikel-partikel awal;
For to
modifikasi partikel baru dari ;
End End End
Langkah 2
: Evaluasi Partikel Awal
Proses evaluasi merupakan proses menghitung fungsi tujuan
atau bobot masing-masing partikel dalam suatu populasi. Bobot
tersebut untuk mengetahui partikel terbaik dengan cara mencari nilai
bobot terkecil suatu partikel dalam populasi. Semua partikel yang
sudah dibangkitkan dievaluasi. Prosedur dari langkah ini sebagai
berikut:
Prosedur Evaluasi Partikel
Begin
For 1 to
For to
SUM(jarak_kota[1,n]);
End End End
Langkah 3
: Tetapkan
dan
Proses penetapan
dan
adalah proses lanjutan setelah
evaluasi dari masing-masing partikel. Tujuan dari proses ini adalah
untuk menyimpan posisi terbaik yang pernah dikunjungi oleh partikel
Dalam
hybrid
algoritma PSO-SA untuk TSP, pencarian
local
best route
dilakukan sebelum penetapan
, dimana
aturan-aturan yang digunakan dalam pencarian
adalah aturan SA yang
tujuannya adalah untuk menghindari minimum lokal selama proses
pencarian. Dengan demikian, proses setelah pencarian
adalah
pencarian
yaitu posisi terbaik dari semua posisi yang telah
dikunjungi oleh partikel-partikel dengan nilai fungsi tujuan terkecil
.
Adapun prosedurnya sebagai berikut:
Prosedur Penetapan dan
Begin
For 1 to
For 1 to
If then ;
Else
If ( ) then ;
Else
bilangan acak [0,1]; Hitung ( ) ;
If then ;
Else ;
End End End End
;
If then ; Else
If then ;
Else ;
End End End
Langkah 4
:
Update
Partikel-partikel
Proses
update
pada dilakukan dengan menggunakan operasi
crossing,
yaitu menyilangkan partikel
dengan
dan
secara terpisah
.
Misalkan terdapat dua partikel,
dan
atau
dan
, pertama yang dilakukan adalah memilih secara acak
daerah persilangan pada partikel kedua, missal
atau
,
kemudian menggantikan kode-kode kota (rutekota) tersebut pada
daerah persilangan
dengan posisi yang sama sebagaimana daerah
persilangan partikel kedua yang terpilih.
Operasi
crossing
ini dilakukan untuk mengganti proses
update
kecepatan
(velocity)
dan
update
posisi partikel dalam
hybrid
algoritma
PSO-SA pada umumnya. Adapun prosedurnya sebagai berikut:
Prosedur Update Partikel-partikel
Begin
For 1 to
random( );
random( );
For to
; End End
For 1 to
random( );
random( );
For to
; End
;
Langkah 5
: Hitung Temperatur Baru
Pada awal proses algoritma, parameter temperatur
diatur tinggi, solusi sementara yang sudah ada diperbolehkan untuk
modifikasi secara bebas.
Kebebasan ini diukur berdasarkan nilai fungsi yang
mengevaluasi seberapa optimal solusi sementara yang telah
diperoleh. Bila nilai fungsi evaluasi semakin membaik maka solusi
hasil modifikasi ini akan digunakan sebagai solusi selanjutnya.
Sehingga penghitungan temperature baru digunakan untuk
membuat modifikasi solusi semakin menyempit, sampai akhirnya
diharapkan diperoleh solusi yang optimal. Prosedur untuk proses
ini sebagai berikut:
Prosedur Hitung Temperatur Baru
Begin ;
While do
; ;
End
4.2
Program
Dari prosedur yang telah dibahas sebelumnya, akan dibuat
program dengan menggunakan
software
Borland C++ seperti pada
Lampiran 2. Pemilihan bahasa pemrograman Borland C++ lebih
didasari pada kemudahan dalam bahasa dan pemahaman dalam
mengimplementasikan
hybrid
algoritma PSO-SA yang banyak
menggunakan
array
. Program ini dibuat untuk mempermudah dalam
mencari rute kota dengan jarak tempuh sependek mungkin, terutama
jika jumlah kota sangat besar.
4.3
Contoh Kasus TSP dengan 10 Kota yang Diselesaikan Secara
Manual
Berikut contoh kasus TSP dengan 10 kota yang diselesaikan
dengan
hybrid
algoritma PSO-SA dengan menggunakan data yang
bersumber dari
workshop integer programming
(2004) seperti pada
Lampiran 1.
Dari contoh TSP ini akan ditentukan sebuah jalur distribusi
produk yang jarak tempuhnya minimal.
Penyelesaian:
Dalam menyelesaikan TSP tersebut, akan digunakan
hybrid
algoritma PSO-SA untuk mencari jalur yang jaraknya minimal.
Parameter-parameter yang digunakan dalam menyelesaikan
kasus ini adalah:
Berikut
adalah proses penyelesaian secara manual:
Langkah 1
:
Generate
Partikel-partikel Awal
Proses
generate
ini dilakukan dengan membangkitkan
partikel-partikel secara acak sejumlah ukuran
swarm
yaitu 10 dan dengan
jumlah 10 kota, partikel ini adalah rute awal dari TSP. Partikel yang
telah dibangkitkan adalah:
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
Kemudian setiap partikel tersebut dimodifikasi untuk
mendapatkan partikel baru pada lokal areanya dengan memilih dua
daerah secara acak kemudian menukarnya. Contoh:
:
Setelah dimodifikasi, kemudian menjadi
:
Dengan cara yang sama maka didapatkan hasil modifikasi setiap
partikel.
Untuk
{ }
, dimodifikasi menjadi
{ }
{ }
{ }
{ }
1 0 4 7 8 6 3 5 2 9
1 0 2 7 8 6 3 5 4 9
{ }
Untuk
{ }
, dimodifikasi menjadi
}
{ }
{ }
{ }
{ }
Untuk
{ }
, dimodifikasi menjadi
{ }
{ }
{ }
{ }
{ }
Untuk
{ }
, dimodifikasi menjadi
{9,6,0,4,7,5,1,2,3,8}
{ }
{ }
{ }
{ }
Untuk
{ }
, dimodifikasi menjadi
{ }
{ }
{ }
{ }
Untuk
{ }
, dimodifikasi menjadi
{ }
{ }
{ }
{ }
{ }
Untuk
{ }
, dimodifikasi menjadi
{ }
{ }
{ }
{ }
{ }
Untuk
{ }
, dimodifikasi menjadi
{ }
{ }
{ }
{ }
{ }
Untuk
{ }
, dimodifikasi menjadi
{ }
{ }
{ }
{ }
{ }
Untuk
{ }
, dimodifikasi menjadi
{ }
{ }
{ }
{ }
{ }
Langkah 2
: Evaluasi Partikel-partikel Awal
Mengevaluasi masing-masing partikel yang sudah dimodifikasi
dengan menghitung jarak dari masing-masing partikel (rute), yang
disimbolkan dengan
. Hasilnya disajikan dalam
Tabel 4.1.
Tabel 4.1.
Fungsi Tujuan Partikel-partikel
912
998
906
1152
748
950
666
950
1130
1108
1240
1194
1154
1166
908
1082
868
996
952
1196
1398
1324