SIMULATED ANNEALING (SA)
PADA TRAVELING SALESMAN PROBLEM (TSP)
SKRIPSI
ANIS ATUL FUAIDAH
PRO GRAM ST UDI S -1 MATEMATI KA
DE PARTE ME N MATEMAT I KA
FAKULTAS SAINS DAN TE KNOLO GI
UNI VE RSITAS AIRLANGGA
2012
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
Dr. Miswanto
NIP. 19680204 199303 1 002
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
sehingga penyusun dapat menyelesaikan skripsi ini.
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.
Kata kunci: Traveling Salesman Problem (TSP), Particle Swarm Optimization
(PSO), Simulated Annealing (SA), dan Hybrid.
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
4.5.Perbandingan Hasil Perhitungan dengan Parameter yang
Berbeda pada Hybrid Algoritma PSO-SA ...
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
4.2. Hasil Perbandingan Output TSP 100 Kota ...
44
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
algoritma Particle Swarm Optimization (PSO).
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-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
nberbeda satu dengan yang lain
(Chartrand and Oellermann, 1993)
Definisi 2.5 Digraph (directed graph)
adalah himpunan berhingga
yang tak kosong yang anggotanya disebut titik dan
himpunan (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 tournya
adalah
Garis dari tour pada persamaan (2.1) dapat dinyatakan sebagai berikut:
)}
,
(
),
,
(
),...,
,
(
),
,
{(
i
1i
2i
2i
3i
n 2i
n1i
n1i
nt
(2.2)
Variabel
x
ijdidefinisikan sebagai berikut:
lain
yang
tour
dalam
j
i
garis
ada
jika
x
ij,
0
)
,
(
,
1
(2.3)
Untuk setiap titik , tepat satu garis harus ada pada setiap tour, jadi:
n j ijx
11,
(2.4)
Sedangkan untuk setiap titik , tepat satu garis harus ada pada setiap
tour
, sehingga memenuhi
n i ijx
11
,
(2.5)
Secara matematis,
menghasilkan sebuah subtour jika dan hanya
jika untuk beberapa subset tak kosong ,
0
Q i j Q ijx
z
(2.6)
dengan ̅ . Jadi, definisi tour terpenuhi dengan persamaan (2.3),
(2.4) dan (2.5), untuk semua , yakni
1
Q i j Q ijx
z
(2.7)
Misalkan jarak dari titik adalah
c
ij, dimana jika , maka
iic
= 0 dengan Dengan demikian TSP dapat ditulis sebagai
Meminimalkan
n i n j ij ijx
c
z
1 1(2.8)
Dengan batasan :
n j ijx
11,
n i ijx
11,
1
Q i j Q ijx
dengan dan ̅
0
,
1
ijx
,
2.2 Algoritma
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
diharapkan partikel mampu mengunjungi setiap wilayah . Jika
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
ditulis oleh Chibante (2010). Simulated Annealing (SA) adalah salah satu
algoritma untuk optimisasi yang bersifat umum. Fitur utama dari algoritma
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
baru. Jika tidak, maka dibangkitkan bilangan acak pada interval
[ ]
. 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
diterima. Jika tidak, maka ditolak.
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++
diatas, Return merupakan contoh statement executable yang
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 mengupdate 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
akan semakin baik hasilnya (Fang dkk, 2007),
adalah temperature
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
selama pencarian.
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 ; End 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
1072
1280
1196
1066
1324
862
1442
988
988
942
826
1072
1042
754
800
800
1042
836
1194
1286
1194
1194
1268
1240
1240
1110
1194
Langkah 3
: Tetapkan
dan
Langkah selanjutnya adalah mencari
dan
, tetapi
sebelumnya akan dilakukan pencarian local best route
terlebih
dahulu pada setiap lokal area partikel dengan menggunakan aturan SA.
Misal
adalah modifikasi dari partikel awal
, jika
maka solusi baru dapat diterima. Jika tidak, maka dibangkitkan
bilangan acak pada interval [ ], kemudian hitung probabilitas
(
)
, jika maka solusi baru tetap diterima. Kemudian
yang telah didapat oleh setiap partikel dari masing-masing lokal
areanya akan digunakan sebagai
.
Untuk proses perhitungannya adalah sebagai berikut:
Untuk
{ }
, dimodifikasi menjadi
{ }
(
)
, maka
{ }
(
)
,
karena
(
)
maka
dibangkitkan dan hitung (
)
. Dan karena maka rute baru
diterima, sehingga
{ }
(
) ,
karena
(
)
maka
dibangkitkan dan hitung (
)
. Dan karena maka rute baru
ditolak, sehingga
{ }
(
)
, karena (
)
maka
{ }
,
karena
(
)
maka
dibangkitkan dan hitung (
)
. Dan karena maka rute baru
ditolak, sehingga
Jadi, didapatkan
{ }
dengan
.
Dan dengan cara yang sama maka akan
didapatkan
yang lainnya.
Jadi, semua
yang telah diperoleh adalah:
{ }
dengan
{ }
dengan
{ }
dengan
{ }
dengan
{ }
dengan
{ }
dengan
{ }
dengan
{ }
dengan
{ }
dengan
{ }
dengan
Setelah mendapat nilai
dari setiap partikel, kemudian
akan ditetapkan
, yaitu:
{
Sehingga didapatkan
{ }
dengan
Langkah 4
: Update Partikel-partikel
Langkah ini adalah menyilangkan partikel
dengan
dan
secara terpisah untuk memperbarui dirinya, yaitu sebagai
berikut:
Untuk
, karena sebelumnya telah didapatkan:
{ }
{ }
{ }
Maka dipilih daerah persilangan,
: