Implementasi TSP dengan Algoritma Semut

menjadi tour terbaik. Namun pencarian jalur terpendek akan terus berjalan sampai mencapai siklus maksimum yang diinput kan oleh user. Semakin besar angka yang di inputkan pada input kota dan parameter, hasil pencarian dari algoritma ini semakin beragam. Dari analisa terhadap algoritma Semut ini, beberapa hal yang penting adalah: 1. Dalam pemilihan kota berdasarkan persamaan probabilitas diperlukan nilai parameter q yang merupakan sebuah bilangan acak dimana 0 ≤ q ≥ 1. 2. Setiap semut harus memiliki daftar semut untuk menyimpan hasil tournya masing-masing. Daftar semut berisi kumpulan edge dan vertex yang merupakan bagian dari tour setiap semut. Nilai dari masing-masing daftar semut akan dikosongkan kembali setiap kali semut akan memulai tournya. 3. Proses perbaikan jejak feromon dipengaruhi oleh dua parameter yaitu ρ suatu koefisien yang bernilai antara 0 sampai 1 dan τ ∆ didapat dari hasil perkalian antara panjang tour dengan jumlah vertex yang ada pada graf tersebut.

3.2 Implementasi TSP dengan Algoritma Semut

Diberikan sejumlah kota dan jarak antar kota. Tentukan sirkuit terpendek yang harus dilalui oleh seorang pedagang, bila pedagang itu berangkat dari sebuah kota asal dan menyinggahi setiap kota tepat satu kali dan kembali lagi ke kota asal keberangkatan. Permasalahan melewati setiap kota tepat satu kali dan kembali ke kota asal adalah meliputi pencarian lintasan terpendek pada sebuah graf Hamilton. Apabila contoh kasus tersebut diubah menjadi persoalan pada graf, maka dapat dilihat bahwa kasus tersebut adalah bagaimana menentukan sirkuit Hamilton yang memiliki bobot minimum pada graf tersebut. Dalam algoritma Semut, diperlukan beberapa variabel dan langkah-langkah untuk menentukan jalur terpendek, yaitu: Universitas Sumatera Utara Langkah 1: a. Inisialisasi harga parameter-parameter algoritma adalah: 1. Intensitas jejak feromon antar kota dan perubahannya τ ij 2. Banyak kota n termasuk koordinat x,y atau jarak antar kota d ij 3. Tetapan siklus-semut Q 4. Tetapan pengendali intensitas jejak semut α, nilai α ≥ 0 5. Tetapan pengendali visibilitas β, nilai β ≥ 0 6. Visibilitas antar kota = 1d ij η ij 7. Banyak semut m 8. Tetapan penguapan jejak feromon ρ, nilai ρ harus 0 dan 1 untuk mencegah jejak feromone yang tak terhingga. 9. Jumlah siklus maksimum NCmax bersifat tetap selama algoritma dijalankan, sedangkan τ ij akan selalu diperbaharui harganya pada setiap siklus algoritma mulai dari siklus pertama NC=1 sampai tercapai jumlah siklus maksimum NC=NCmax. b. Inisialisasi kota pertama setiap semut. Setelah inisialisasi τ ij dilakukan, kemudian m semut ditempatkan pada kota pertama tertentu secara acak. Universitas Sumatera Utara Langkah 2: Pengisian kota pertama ke dalam daftar semut. Hasil inisialisasi kota pertama setiap semut dalam langkah 1 harus diisikan sebagai elemen pertama daftar semut DS. Hasil dari langkah ini adalah terisinya elemen pertama daftar semut setiap semut dengan indeks kota tertentu, yang berarti bahwa setiap DS1 bisa berisi indeks kota antara 1 sampai n sebagaimana hasil inisialisasi pada langkah 1. Langkah 3: Penyusunan rute kunjungan setiap semut ke setiap kota. Semut yang sudah terdistribusi ke sejumlah atau setiap kota, akan mulai melakukan perjalanan dari kota pertama masing-masing sebagai kota asal dan salah satu kota-kota lainnya sebagai kota tujuan. Kemudian dari kota ke dua masing-masing, semut akan melanjutkan perjalanan dengan memilih salah satu dari kota-kota yang tidak terdapat pada DS sebagai kota tujuan selanjutnya. Perjalanan semut berlangsung terus menerus sampai semua kota satu persatu dikunjungi atau telah menempati DS. Jika s menyatakan indeks urutan kunjungan, kota asal dinyatakan sebagai DSs dan kota-kota lainnya dinyatakan sebagai {N-DS}, maka untuk menentukan kota tujuan digunakan persamaan probabilitas kota untuk dikunjungi. Langkah 4: Perhitungan panjang rute tertutup length closed tour atau Lk setiap semut dilakukan setelah satu siklus diselesaikan oleh semua semut. Perhitungan ini dilakukan berdasarkan daftar semut masing-masing. setelah Lk setiap semut dihitung, akan didapat harga minimal panjang rute tertutup setiap siklus. Kemudian akan dihitung perbaikan jejak feromon atau perubahan harga feromon antar kota. Persamaan perubahan ini adalah: ∑ = ∆ = ∆ m k k ij ij 1 τ τ dengan k ij τ ∆ adalah perubahan feromon antar kota setiap semut yang dihitung berdasarkan persamaan: 3.1 Universitas Sumatera Utara k ij τ ∆ = Lk Q , untuk i,j ∈ kota dalam daftar semut. k ij τ ∆ = 0, untuk i,j lainnya. Langkah 5: Perhitungan jejak feromon antar kota untuk siklus selanjutnya. Harga jejak feromon pada semua lintasan antar kota ada kemungkinan berubah sebab adanya perbedaan jumlah semut dan penguapan feromon. Selanjutnya harga feromon dihitung dengan persamaan: ij ij ij τ τ ρ τ ∆ + = . Langkah 6: Pengosongan daftar semut, dan ulangi Langkah 2 jika diperlukan. Pengosongan daftar semut dilakukan untuk melakukan pengisian urutan kota yang baru pada siklus selanjutnya, jika jumlah maksimum belum tercapai. Berikut contoh penyelesaian TSP dengan Algoritma Semut: Diketahui sebuah graf: Gambar 3.1 Graf dengan Empat Vertex dan Enam Edge Dengan input kota berupa koordinat lokasi: Tabel 3.1 Koordinat Kota Kota ke- X Y 1 10 2 30 3 15 20 4 25 20 Dengan jarak kota di,j, dihitung dengan bentuk 2 2 j i j i ij y y x x d − + − = , jarak antar kota adalah: 1 2 4 3 3.2 3.3 3.4 Universitas Sumatera Utara Tabel 3.2 Jarak antar Kota Kota ke- 1 2 3 4 1 0.00 20.00 20.62 25.00 2 20.00 0.00 25.00 20.62 3 20.62 25.00 0.00 10.00 4 25.00 20.62 10.00 10.00 Parameter–parameter yang digunakan adalah: Alfa α = 1.00 Beta β = 1.00 Rho ρ = 0.50 τ ij awal = 0.01 Maksimum siklus NCmax = 2 Tetapan siklus semut Q = 1 Banyak semut m = 4 Dari jarak kota yang telah diketahui dapat dihitung visibilitas antar kota η ij = 1d ij Kota ke- : Tabel 3.3 Visibilitas Antar Kota 1 2 3 4 1 0.05 0.049 0.04 2 0.05 0.04 0.049 3 0.049 0.04 0.1 4 0.04 0.049 0.1 Siklus ke-1: Isi daftar semut awal: 1 2 3 4 Untuk t =1 Jumlah semut tiap kota: Kota 1 = 1 Kota 2 = 1 Kota 3 = 1 Kota 4 = 1 Semut ke – 1: - Daftar semut = 1 Universitas Sumatera Utara - Probabilitas dari kota 1 ke setiap kota berikutnya dapat dihitung dengan persamaan = t P k ij , [ ] [ ] [ ] [ ] ∑ ∈ ik j t ij ij ij ij t t t t β α β α η τ η τ untuk Σ[τ ij ] α .[ η ij ] β - Probabilitas Komulatif = 0.000 0.360 0.712 1.000 = 0.010 + 0.010.05 + 0.010.049 + 0.010.04 = 0.00139 dengan demikian dapat dihitung probabilitas dari kota 1 menuju setiap kota = Kota 1 = 0.00 Kota 2 = 0.011.00 . 0.051.00 0.00139 = 0.360 Kota 3 = 0.011.00 . 0.0491.00 0.00139 = 0.353 Kota 4 = 0.011.00 . 0.041.00 0.00139 = 0.288 - Bilangan Random = 0.706 - Kota dipilih = 3 - Daftar semut = 1 3 Setelah hasil perhitungan probabilitas semut menuju kota yang akan dipilih berikutnya, kemudian dicari probabilitas kumulatifnya qk, dimana q1 = pi1, sedangkan q k = q k-1 + p ij , untuk k = 2, 3, …, N. Kemudian bangkitkan bilangan random r antara 0 sampai 1. Kota ke-k akan terpilih jika r q k-1 dan r ≥ q k = t P k ij , . Semut ke – 2: - Daftar semut = 2 - Probabilitas dari kota 2 ke kota berikutnya dapat dihitung dengan persamaan [ ] [ ] [ ] [ ] ∑ ∈ ik j t ij ij ij ij t t t t β α β α η τ η τ untuk Σ[τ ij ] α .[η ij ] β - Bilangan Random = 0.533 = 0.010.05 + 0.010 +0.010.04 + 0.010.049 = 0.0139 Dengan demikian dapat dihitung probabilitas dari kota 2 menuju kota = Kota 1 = 0.011.00 . 0.051.00 0.0139 = 0.360 Kota 2 = 0.00 Kota 3 = 0.011.00 . 0.041.00 0.0139 = 0.288 Kota 4 = 0.011.00 . 0.0491.00 0.139 = 0.353 - Probabilitas Komulatif = 0.360 0.360 0.647 1.000 Universitas Sumatera Utara - Kota dipilih = 3 - Daftar semut = 2 3 Semut ke – 3: - Daftar semut = 3 - Probabilitas dari kota 3 ke kota berikutnya dapat dihitung dengan persamaan = t P k ij , [ ] [ ] [ ] [ ] ∑ ∈ ik j t ij ij ij ij t t t t β α β α η τ η τ untuk Σ[τ ij ] α .[η ij ] β = t P k ij , = 0.010.049 + 0.010.04 +0.010 + 0.010.1 = 0.00189 Dengan demikian dapat dihitung probabilitas dari kota 3 menuju kota = Kota 1 = 0.011.00 . 0.0491.00 0.00189 = 0.259 Kota 2 = 0.011.00 . 0.041.00 0.00189 = 0.212 Kota 3 = 0.00 Kota 4 = 0,011.00 . 0.011.00 0.00189 = 0.529 - Probabilitas Komulatif = 0.259 0.471 0.471 1.000 - Bilangan Random = 0.580 - Kota dipilih = 4 - Daftar semut = 3 4 Semut ke – 4: - Daftar semut = 4 - Probabilitas dari kota 4 ke setiap kota berikutnya dapat dihitung dengan persamaan [ ] [ ] [ ] [ ] ∑ ∈ ik j t ij ij ij ij t t t t β α β α η τ η τ untuk Σ[τ ij ] α .[η ij ] β - Probabilitas Komulatif = 0.212 0.471 1.000 1.000 = 0.010.04 + 0.010.049 + 0.010.1 + 0.010 = 0.00 189 Dengan demikian dapat dihitung probabilitas dari kota 4 menuju kota = Kota 1 = 0.011.00 . 0.041.00 0.00189 = 0.212 Kota 2 = 0.011.00 . 0.0491.00 0.00189 = 0.259 Kota 3 = 0.011.00 . 0.011.00 0.00189 = 0.0529 Kota 4 = 0.00 - Bilangan Random = 0.290 - Kota dipilih = 2 Universitas Sumatera Utara - Daftar semut = 4 2 Untuk t =2 Jumlah semut tiap kota = 0 1 2 1 Semut ke-1 Probabilitas = 0.000 0.286 0.000 0.714 Probabilitas kumulatif = 0.000 0.286 0.286 1.000 Bilangan Random = 0.302 Kota dipilih = 4 Daftar semut = 1 3 4 Semut ke-2 Probabilitas = 0.329 0.000 0.000 0.671 Probabilitas kumulatif = 0.329 0.329 0.329 1.000 Bilangan Random = 0.775 Kota dipilih = 4 Daftar semut = 2 3 4 Semut ke-3 Probabilitas = 0.449 0.551 0.000 0.000 Probabilitas kumulatif = 0.449 1.000 1.000 1.000 Bilangan Random = 0.014 Kota dipilih = 1 Daftar semut = 3 4 1 Semut ke-4 Probabilitas = 0.556 0.000 0.444 0.000 Probabilitas kumulatif = 0.556 0.556 1.000 1.000 Bilangan Random = 0.761 Kota dipilih = 3 Daftar semut = 4 2 3 Untuk t =3 Universitas Sumatera Utara Jumlah semut tiap kota = 1 0 1 2 Semut ke-1 Probabilitas = 0.000 1.000 0.000 0.000 Probabilitas kumulatif = 0.000 1.000 1.000 1.000 Bilangan Random = 0.814 Kota dipilih = 2 Daftar semut = 1 3 4 2 Semut ke-2 Probabilitas = 1.000 0.000 0.000 0.000 Probabilitas kumulatif = 1.000 1.000 1.000 1.000 Bilangan Random = 0.709 Kota dipilih = 1 Daftar semut = 2 3 4 1 Semut ke-3 Probabilitas = 0.000 1.000 0.000 0.000 Probabilitas kumulatif = 0.000 1.000 1.000 1.000 Bilangan Random = 0.045 Kota dipilih = 2 Daftar semut = 3 4 1 2 Semut ke-4 Probabilitas = 1.000 0.000 0.000 0.000 Probabilitas kumulatif = 1.000 1.000 1.000 1.000 Bilangan Random = 0.414 Kota dipilih = 1 Daftar semut = 4 2 3 1 Panjang Jalur Setiap Semut 1 = 71.232 2 = 80 Universitas Sumatera Utara 3 = 80 4 = 91.232 Jalur Terpendek = 71.232 Perbaikan Jejak: 0.0100 0.0106 0.0107 0.0100 0.0100 0.0100 0.0109 0.0100 0.0105 0.0100 0.0100 0.0139 0.0110 0.0112 0.0100 0.0100 Siklus ke -2 Isi Daftar Semut Awal Daftar semut [1,1]=1 Daftar semut [2,1]=2 Daftar semut [3,1]=3 Daftar semut [4,1]=4 Untuk t =1 Jumlah semut tiap kota = 1 1 1 1 Semut ke-1 Probabilitas = 0.000 0.365 0.360 0.275 Probabilitas kumulatif = 0.000 0.365 0.725 1.000 Bilangan Random = 0.863 Kota dipilih = 4 Daftar semut = 1 4 Semut ke-2 Probabilitas = 0.350 0.000 0.306 0.343 Probabilitas kumulatif = 0.350 0.350 0.657 1.000 Bilangan Random = 0.790 Kota dipilih = 4 Daftar semut = 2 4 Semut ke-3 Universitas Sumatera Utara Probabilitas = 0.224 0.173 0.000 0.603 Probabilitas kumulatif = 0.224 0.397 0.397 1.000 Bilangan Random = 0.374 Kota dipilih = 2 Daftar semut = 3 2 Semut ke-4 Probabilitas = 0.221 0.276 0.503 0.000 Probabilitas kumulatif = 0.221 0.497 1.000 1.000 Bilangan Random = 0.962 Kota dipilih = 3 Daftar semut = 4 3 Untuk t =2 Jumlah semut tiap kota = 0 1 1 2 Semut ke-1 Probabilitas = 0.000 0.355 0.645 0.000 Probabilitas kumulatif = 0.000 0.355 1.000 1.000 Bilangan Random = 0.871 Kota dipilih = 3 Daftar semut = 1 4 3 Semut ke-2 Probabilitas = 0.306 0.000 0.694 0.000 Probabilitas kumulatif = 0.306 0.306 1.000 1.000 Bilangan Random = 0.056 Kota dipilih = 1 Daftar semut = 2 4 1 Semut ke-3 Probabilitas = 0.505 0.000 0.000 0.495 Probabilitas kumulatif = 0.505 0.505 0.505 1.000 Universitas Sumatera Utara Bilangan Random = 0.950 Kota dipilih = 4 Daftar semut = 3 2 4 Semut ke-4 Probabilitas = 0.563 0.437 0.000 0.000 Probabilitas kumulatif = 0.563 1.000 1.000 1.000 Bilangan Random = 0.364 Kota dipilih = 1 Daftar semut = 4 3 1 Untuk t =3 Jumlah semut tiap kota = 2 0 1 1 Semut ke-1 Probabilitas = 0.000 1.000 0.000 0.000 Probabilitas kumulatif = 0.000 1.000 1.000 1.000 Bilangan Random = 0.525 Kota dipilih = 2 Daftar semut = 1 4 3 2 Semut ke-2 Probabilitas = 0.000 0.000 1.000 0.000 Probabilitas kumulatif = 0.000 0.000 1.000 1.000 Bilangan Random = 0.767 Kota dipilih = 3 Daftar semut = 2 4 1 3 Semut ke-3 Probabilitas = 1.000 0.000 0.000 0.000 Probabilitas kumulatif = 1.000 1.000 1.000 1.000 Bilangan Random = 0.054 Kota dipilih = 1 Universitas Sumatera Utara Daftar semut = 3 2 4 1 Semut ke-4 Probabilitas = 0.000 1.000 0.000 0.000 Probabilitas kumulatif = 0.000 1.000 1.000 1.000 Bilangan Random = 0.592 Kota dipilih = 2 Daftar semut = 4 3 1 2 Panjang Jalur Setiap Semut 1 = 80 2 = 91.232 3 = 91.232 4 = 71.232 Jalur Terpendek = 71.232 Perbaikan Jejak: 0.0100 0.0120 0.0119 0.0105 0.0100 0.0100 0.0119 0.0111 0.0118 0.0109 0.0100 0.0178 0.0129 0.0124 0.0127 0.0100 Perhitungan akan dilanjutkan hingga semut menyelesaikan perjalanannya mengunjungi tiap-tiap kota. Hal ini akan berulang hingga sesuai dengan jumlah siklus maksimum yang ditentukan. Kemudian dihasilkan jarak terpendek dari semut dari masing-masing siklus.

3.3 Perancangan Program Penyelesaian TSP dengan Algortima Semut