2.4 Algoritma Semut
Algoritma Semut merupakan teknik probabilistik untuk menyelesaikan masalah komputasi dengan menemukan rute optimum. Algoritma Semut diperkenalkan oleh
Moyson dan Manderick pada tahun 1996 dan secara meluas dikembangkan oleh Marco Dorigo.
2.4.1 Cara Kerja Algoritma Semut Mencari Rute Terpendek
Untuk mendiskusikan algoritma semut, lingkungan yang akan kita gunakan adalah sebuah graf yang fully connected setiap verteks memiliki sisi ke verteks yang lain
dan bidirectional setiap rute bisa ditempuh bolak-balik dua arah. Setiap sisi memiliki bobot yang menunjukkan jarak antara dua buah verteks yang dihubungkan oleh sisi
tersebut.
Algoritma Semut ini menggunakan sistem multiagen, yang berarti kita akan mengerahkan seluruh “semut buatan” yang masing-masingnya bergerak sebagai agen
tunggal. Setiap semut memiliki daftar_kota yang akan menyimpan sisi-sisi yang sudah pernah ia lalui, dimana ia tidak diijinkan untuk melalui sisi yang sama dua kali dalam
satu kali perjalanan.
Semut mampu mengindera lingkungannya yang kompleks untuk mencari
makanan dan kemudian kembali ke sarangnya dengan meninggalkan zat feromon pada rute-rute yang mereka lalui. Feromon adalah zat kimia yang berasal dari kelenjar
endokrin dan digunakan oleh makhluk hidup untuk mengenali sesama jenis, individu lain, kelompok, dan untuk membantu proses reproduksi. Berbeda dengan hormon,
feromon menyebar ke luar tubuh dapat mempengaruhi dan dikenali oleh individu lain yang sejenis satu spesies. Proses peninggalan feromon ini dikenal sebagai stigmergy,
sebuah proses memodifikasi lingkungan yang tidak hanya bertujuan untuk mengingat jalan pulang ke sarang, tetapi juga memungkinkan para semut berkomunikasi dengan
koloninya. Seiring waktu, bagaimanapun juga jejak feromon akan menguap dan akan
mengurangi kekuatan daya tariknya. Lebih lama seekor semut pulang pergi melalui rute tersebut, lebih lama jugalah feromon menguap.
Gambar 2.9 Perjalanan Semut Menemukan Sumber Makanan
Sumber: Menentukan Jalur Terpendek Menggunakan Algoritma Semut, Muttakhiroh
Gambar 2.9.a menujukkan perjalanan semut dalam menemukan rute terpendek dari sarang ke sumber makanan, terdapat dua kelompok semut yang melakukan
perjalanan. Kelompok semut L berangkat dari arah kiri ke kanan dan kelompok semut R berangkat dari kanan ke kiri. Kedua kelompok berangkat dari titik yang sama dan
dalam posisi pengambilan keputusan jalan sebelah mana yang akan diambil. Kelompok L membagi dua kelompok lagi. Sebagian melewati jalan atas dan sebagian
melewati jalan bawah. Hal ini juga berlaku pada kelompok R.
Gambar 2.9.b dan gambar 2.9.c menunjukkan bahwa kelompok semut berjalan pada kecepatan yang sama dengan meninggalkan feromon atau jejak kaki di jalan
yang telah dilalui. Feromon yang ditinggalkan oleh kumpulan semut yang melewati jalan atas telah mengalami banyak penguapan karena semut yang melewati jalan atas
berjumlah lebih sedikit dibandingkan jalan yang di bawah. Hal ini disebabkan jarak yang ditempuh lebih panjang dibandingkan jalan yang di bawah. Sedangkan feromon
yang berada pada bagian bawah penguapannya cenderung lebih lama. Karena semut yang melewati jalan bawah lebih banyak daripada semut yang melewati jalan atas.
Gambar 2.9.d menunjukkan bahwa semut-semut yang lain pada akhirnya memutuskan untuk melewati jalan bawah karena feromon yang ditinggalkan masih
banyak, sedangkan feromon pada jalan atas sudah banyak menguap sehingga semut- semut tidak memilih jalan atas. Semakin banyak semut yang melewati jalan maka
semakin banyak semut yang mengikutinya, semakin sedikit semut yang melewati jalan, maka feromon yang ditinggalkan semakin berkurang bahkan hilang. Dari sinilah
kemudian terpilihlah rute terpendek antara sarang dan sumber makanan. Secara ringkas diperlukan beberapa proses agar semut mendapatkan rute
optimal yaitu:
1. Semut akan berkeliling secara acak dari sarang hingga menemukan sumber
makanan.
2. Ketika menemukan sumber makanan mereka kembali ke sarang sambil
meninggalkan tanda menggunakan feromon.
3. Seekor semut yang menemukan rute optimal akan menempuh rute ini lebih
cepat dari rekan-rekannya, melakukan round-trip lebih sering, dan dengan sendirinya meninggalkan feromon lebih banyak dari rute-rute yang lebih
lambat ditempuh.
4. Feromon yang berkonsentrasi tinggi pada akhirnya akan menarik semut-semut
lain untuk berpindah rute, menuju rute paling optimal, sedangkan rute lainnya akan ditinggalkan.
5. Pada akhirnya semua semut yang tadinya menempuh rute yang berbeda - beda
akan beralih ke sebuah rute paling optimal dari sarang menuju ke tempat makanan.
2.4.2 Pseudocode Algoritma Semut
Pseudeocode Algoritma Semut ditunjukkan oleh tabel 2.1 dibawah ini:
Tabel 2.1 Pseudocode Algoritma Semut
Baris Pseudo code
1 initialization default data;
2 sourceVertex - input vertex;
3 destinationVertex - input vertex;
4 m - input ant used value;
5 NCMax - input cycle used value;
6 For i - 1 To NCMax Do
7 For j - m Do
8 While currentVertex destinationVertex do
9 q - random from 0..1;
10 If q = q0 then
11 Calculate probability;
12 Find vertex that has maximum probability has
not used; 13
currentVertex - new vertex; 14
Update daftar_kota; 15
Else 16
Calculate probability; 17
Calculate probability cumulative for currentVertex;
18 prob - random from 0..1;
19 Find the closest value based on cumulative
value and probability; 20
currentVertex - new vertex; 21
Update daftar_kota; 22
End If 23
End While 24
Update Local Pheromone; 25
End For 26
Calculate total distance each ant; 27
Find the best result for current cycle; 28
Update Global Pheromone; 39
End For 30
Show the best result;
2.5 Sistem Informasi Geografis