Gambar 2.9 Lintasan Optimal Semut Menuju Tempat Makanan
Keterangan Gambar: A: Sarang semut
B: Tempat ditemukannya makanan ----: Jalur 1 yaitu jalur yang tidak ditempuh karena kadar feromon
yang rendah. ......: Jalur 2, jalur yang tidak ditempuh karena kadar feromon yang
sangat rendah. →: Jalur 3, jalur optimal yang ditempuh oleh semut karena kadar
feromon yang tinggi.
Oleh karena itu sistem ini dinamai dengan algoritma Semut. Semut yang digunakan dalam sistem ini berbeda dengan hewan semut yang asli, antara lain
semut disini memiliki memori yang dalam tulisan ini dinamakan daftar semut dan semut akan berada pada lingkungan yang waktunya adalah diskrit.
2.5 Algoritma Semut Pada Traveling Salesperson Problem
TSP direpresentasikan dengan menggunakan sebuah graf di mana graf tersebut merupakan graf yang lengkap, artinya semua vertexnya terhubung satu sama lain.
Jadi, jika terdapat n buah vertex maka graf tersebut memiliki n n-2 2 buah edge, sesuai dengan rumus kombinasi, dan juga memiliki n-12 tour yang
mungkin dapat dilakukan oleh setiap semut. Graf tersebut juga merupakan graf
Universitas Sumatera Utara
simetris, artinya jarak antara kota i ke kota j sama dengan jarak antara kota j ke kota i
δ i,j=δ j,i. Algoritmanya sebagai berikut:
Input : Matriks D untuk jarak Inisialisasi Parameter pada Algoritma: α, β, Q, p, τ
m = n {Jumlah semut sama dengan jumlah kota} begin
for i=1:n untuk setiap edge
for j=1:n if i = j
ηi,j =1Di,j Visibility
τi,j = τ
[ ] [ ]
[ ] [ ]
∑
=
∈
∉
∈ ik
ik J
t ij
ij ij
ij
ik
J j
jika t
t
j j
if k
ij
t P
β α
β α
η τ
η τ
. .
, ,
feromon else τi,j = 0
end end
end for k =1 : m
Menempatkan semut secara acak untuk memilih kota end
Pilih Rute terpendek T dan hitung panjangnya L Loop
For t = 1 : tmax tmax = nomor iterasi
For k = 1:m untuk setiap semut: Membangun rute menurut aturan:
Menghitung Lkt, panjang dari rute Tkt End
If Apakah solusi terbaik ditemukan?
Universitas Sumatera Utara
Update T dan L End
For i = 1 : n For j = 1 : n
untuk setiap edge Update feromon trail menurut aturan:
∑
=
∆ +
− =
+
m k
k ij
ij ij
t t
p t
1 ,
1 1
τ τ
τ
End End
End Output: Rute Terpendek
Algoritma ini mengasumsikan suatu graf terhubung, antara lain semut boleh memilih vertex mereka sendiri. Masing-Masing semut mulai dari suatu kota yang
berbeda, semut memilih kota yang belum dikunjungi. Pilihan didasarkan pada suatu fungsi heuristik alur paling pendek dan alur yang memiliki jumlah
feromon terbesar.
Sekali edge dipilih, semut menurunkan feromon. Jumlah feromon dibagi dengan jarak. Ini memberikan banyak feromon ke alur paling pendek. Feromon
yang lama kemudian menguap dan setiap rute pada sisi yang feromonnya telah bekurang menjadi lebih kecil.
Secara informal, algoritma Semut bekerja sebagai berikut. Setiap semut memulai tournya melalui sebuah kota yang dipilih secara acak setiap semut
memiliki kota awal yang berbeda. Secara berulang kali, satu-persatu kota yang ada dikunjungi oleh semut dengan tujuan untuk menghasilkan tour yang lengkap
yaitu mengunjungi masing-masing kota sekali saja. Pemilihan kota-kota yang akan dilaluinya didasarkan pada suatu fungsi
probabilitas, dengan mempertimbangkan visibility jarak kota tersebut dan jumlah feromon yang
terdapat pada edge yang menghubungkan kota tersebut. Semut lebih suka untuk bergerak menuju ke kota-kota yang dihubungkan dengan edge yang pendek dan
Universitas Sumatera Utara
atau memiliki tingkat feromon yang tinggi. Setiap semut memiliki sebuah memori, dinamai daftar semut, yang berisi semua kota yang telah dikunjunginya
pada setiap tour. Daftar semut ini mencegah semut untuk mengunjungi kota-kota yang sebelumnya telah dikunjungi selama tour tersebut berlangsung, yang
membuat solusinya menjadi mungkin.
Setelah semua semut menyelesaikan tour mereka dan daftar semut menjadi penuh, sebuah aturan pembaruan feromon dilaksanakan pada setiap semut.
Penguapan feromon pada semua edge dilakukan, dan kemudian setiap semut menghitung panjang tour yang telah mereka lakukan lalu menaruh sejumlah
feromon pada edge-edge yang merupakan bagian dari tour mereka yang sebanding dengan kualitas dari solusi yang mereka hasilkan. Semakin pendek sebuah tour
yang dihasilkan oleh seekor semut, jumlah feromon yang diletakkan pada edge- edge yang dilaluinya pun semakin besar, dengan demikian edge yang merupakan
bagian dari tour-tour yang pendek adalah edge-edge yang menerima jumlah feromon yang lebih besar. Hal ini menyebabkan edge yang diberi feromon lebih
banyak akan lebih diminatidipertimbangkan pada tour-tour selanjutnya, dan sebaliknya edge-edge yang tidak diberi feromon menjadi kurang diminati. Dan
juga, jalur terpendek yang ditemukan oleh semut disimpan dan semua daftar semut dikosongkan kembali.
Aturan pemilihan kota berikut nya yang digunakan oleh algoritma Semut yang ditunjukkan oleh persamaan 1, merupakan probabilitas dari semut k pada
kota i yang memilih untuk menuju ke kota j.
[ ] [ ]
[ ] [ ]
∑
=
∈
∉
∈ ik
ik J
t ij
ij ij
ij
ik
J j
jika t
t
j j
jika k
ij
t P
β α
β α
η τ
η τ
. .
, ,
α ≥ 0 dan β ≥ 0 adalah parameter yang menjelaskan bobot dari feromon dan jarak ketika memilih rute.
Jika α = 0, maka kota yang paling dekat yang 2.1
Universitas Sumatera Utara
dipilih, dan ketika β=0, berarti hanya memperhitungkan feromon yang menandakan bahwa semua semut memilih satu rute suboptimal.
τ adalah feromon, η=1 δ adalah visibility invers dari jarak δi,j, J
ik
T adalah kumpulan kota yang akan dikunjungi oleh semut k yang sedang berada
pada kota i untuk membuat solusinya menjadi mungkin, dan β adalah sebuah
parameter yang mengontrol bobot weight relatif dari feromon terhadap jarak β0. Pada persamaan 1 feromon pada edge i,j dikalikan dengan nilai
visibility ηi,j, untuk memilih edge yang lebih pendek dan memiliki jumlah
feromon yang lebih besar.
Dalam algoritma Semut, aturan pembaruan feromon diimplementasikan sebagai berikut: Setelah semua semut membuat tour mereka, feromon yang ada
pada semua edge diperbarui menurut persamaan:
k
t adalah rute semut k pada iterasi t, L
k
t adalah panjang dari rute T
k
[ ]
1 ,
∈ p
t, dan Q 0 adalah parameter yang ditentukan.
Penguapan feromon dilakukan untuk mencegah stagnasi yaitu situasi di mana semut berakhir dengan melakukan tour yang sama. Jika koefisien
penguapan ditandai dengan , maka bentuk aturan pembaharuan feromon
adalah:
∑
=
∆ +
− =
+
m k
k ij
ij ij
t t
p t
1 ,
1 1
τ τ
τ
m adalah jumlah semut dan nilai feromon pada edge adalah sama dengan bilangan kecil positif
τ ,
, ,
, ,
t T
j i
jika t
T j
i jika
t L
Q
k k
k
∉ ∈
= ∆
,
t
k ij
τ
. 2.3
2.2
Universitas Sumatera Utara
BAB 3
PEMBAHASAN
3.1 Analisis Algoritma