Algoritma Semut Pada Traveling Salesperson Problem

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