Analisis Masalah Umum Analisis Algoritma Semut

BAB 3 ANALISIS DAN DESAIN SISTEM

3.1 Analisis Masalah Umum

Persoalan pencarian terpendek merupakan salah satu permasalahan optimasi. Graf yang digunakan dalam pencarian rute terpendek adalah graf berbobot. Bobot pada sisi graf menyatakan jarak antar verteks. Dalam hal ini bobot harus bernilai positif. Rute terpendek dengan verteks awal t dan verteks tujuan v didefenisikan sebagai rute terpendek dari t ke v dengan bobot minimum dan berupa rute sederhana simple path. Misalkan gedung dan persimpangan jalan di Kampus Universitas Sumatera Utara adalah verteks-verteks pada graf yang bersesuaian, maka setiap pasangan verteks yang dihubungkan dengan sebuah sisi yang terdiri dari jarak untuk melakukan perjalanan diantara gedung dan persimpangan jalan yang berhubungan. Misalkan dalam masalah ini rute diperlukan untuk memulai pada verteks A dan berakhir pada verteks F. Rute dengan panjang minimum dapat ditemukan dengan mendaftar semua rute yang mungkin dari verteks A ke F kemudian memilih rute yang terpendek. A E F D B 5 3 4 3 4 5 C 1 2 2 4 Gambar 3.1 Rute Terpendek Sisi yang Bercetak Tebal Gambar 3.1 diatas memperlihatkan bahwa setiap sisi terletak pada verteks- verteks dari titik A ke titik F. Sisi merepresentasikan panjang jalan dengan bobot tertentu. Sedangkan verteks merepresentasikan gedung atau persimpangan jalan. Rute terpendek dari verteks A menuju verteks F pada graf di atas adalah P = {A → D, D → E, E → F} dengan bobot 6.

3.2 Analisis Algoritma Semut

Algoritma Semut merupakan teknik probabilistik untuk menyelesaikan masalah komputasi dengan menemukan rute terpendek dari suatu graf. Dalam mencari rute terpendek dalam algoritma semut, ‘semut-semut tiruan’ akan bertindak seperti agen, dimana setiap semut memiliki rute masing-masing dari titik awal menuju titik tujuan dengan tidak mengunjungi suatu titik lebih dari satu kali untuk mendapatkan hasil terbaik. Proses mencari rute optimal tersebut tidak semudah yang kita bayangkan dan tentu saja memerlukan rumus yang pada intinya menerapkan suatu fungsi heuristik yang cukup rumit.

3.2.1 Karakteristik Algoritma Semut

Terdapat tiga karakteristik utama dari algoritma semut, yaitu aturan transisi status, aturan pembaruan feromon lokal, dan aturan pembaruan feromon global. a. Aturan Transisi Status Aturan transisi status adalah aturan yang digunakan dalam memilih titik tujuan berikutnya dengan melakukan perhitungan probabilitas masing-masing titik tujuan yang mungkin. Aturan transisi status yang berlaku pada Algoritma Semut adalah sebagai berikut: Seekor semut yang ditempatkan pada titik t memilih untuk menuju ke titik v, kemudian dibangkitkan bilangan acak dimana 0 ≤q≤1, q sebuah parameter yaitu probabilitas semut melakukan eksplorasi pada setiap tahapan, dimana 0 ≤q ≤1 dan p k t,v adalah probabilitas dimana semut k memilih untuk bergerak dari titik t ke titik v. Jika q ≤ q maka pemilihan titik yang akan dituju menerapkan aturan yang ditunjukkan oleh persamaan 1 dibawah ini: [ ] [ ] n i u t u t u t temporary i i ,..., 3 , 2 , 1 , . , , , = = β η τ [ ] [ ] { } β η τ , . , max i i u t u t v = ...……................................ persamaan 1 dengan v = titik yang akan dituju. Sedangkan jika qq digunakan persamaan 2 [ ] [ ] [ ] [ ] ∑ = = = n i i i i i k u t u t v t v t v t p v 1 , . , , . , , β β η τ η τ ………............................. persamaan 2 Setelah hasil perhitungan probabilitas semut yang akan dipilih berikutnya selesai, kemudian dicari probabilitas kumulatifnya q k dimana q 1 = p t1 sedangkan q k = q k-1 + p tv untuk k = 2,3,4, ..., n. Kemudian dibangkitkan bilangan random r antara 0 sampai 1. Titik ke-k akan terpilih jika q k-1 r ≤ q k . b. Aturan Pembaruan Feromon Lokal Selagi melakukan perjalanan untuk mencari solusi pencarian rute terpendek, semut mengunjungi sisi-sisi dan mengubah tingkat feromon pada sisi-sisi tersebut dengan menerapkan aturan pembaruan feromon lokal yang ditunjukkan oleh persamaan 3 dibawah ini. , , . 1 , v t v t v t τ τ ρ τ ∆ + − ← ...................................persamaan 3 c L v t nn . 1 , = ∆ τ dimana: L nn : panjang rute yang diperoleh.. c : jumlah titik yang sudah dijalani. ρ : tetapan penguapan feromon. Δτ : perubahan intensitas feromon. c. Aturan Pembaruan Feromon Global Pembaruan feromon secara global hanya dilakukan oleh semut yang membuat rute terpendek sejak permulaan percobaan. Pada akhir sebuah siklus, setelah semua semut menyelesaikan perjalanan mereka, intensitas feromon diperbaharui pada sisi-sisi yang dilewati oleh seekor semut yang telah menemukan rute optimum Tingkat feromon itu diperbarui dengan menerapkan aturan pembaruan feromon global yang ditunjukkan oleh persamaan 4. , . , . 1 , v t v t v t τ α τ α τ ∆ + − ← ................................persamaan 4     ∈ = ∆ − , , 1 terbaik rute v t jika L v t gb τ dimana: τt,v : nilai feromon akhir setelah mengalami pembaruan lokal L gb : panjang rute terpendek pada akhir siklus. α : tetapan pengendali feromon. ∆τ : perubahan intensitas feromon.

3.2.2 Implementasi Pencarian Rute Terpendek dengan Algoritma Semut

Sama seperti dengan algoritma pencarian lainnya, Algoritma Semut juga memiliki langkah-langkah untuk mencari rute terpendek yaitu: 1. Menginsialisasi harga parameter-parameter algoritma semut: a. Intensitas feromon τ ij . b. Tetapan siklus semut q . c. Tetapan pengendali intensitas visibilitas β, nilai β ≥ 0. d. Tetapan pengendali feromon α, nilai α ≥ 0. e. Jumlah semut m. f. Tetapan penguapan feromon ρ, nilai ρ harus 0 dan 1. g. Jumlah siklus maksimum NC max . 2. Setelah itu tentukan titik selanjutnya yang akan dituju, ulangi proses sampai titik tujuan tercapai. Dengan menggunakan persamaan 1 atau persamaan 2 dapat ditentukan titik mana yang akan dituju, yaitu dengan: a. Jika q ≤q maka pemilihan titik aturan transisi yang akan dituju menggunakan persamaan 1. b. Jika qq maka pemilihan titik yang akan dituju aturan transisi menggunakan persamaan 2. 3. Apabila telah memilih titik yang dituju, titik tersebut disimpan ke dalam daftar_kota untuk menyatakan bahwa titik tersebut telah menjadi bagian dari rute perjalanan. Setelah itu intensitas feromon di sisi tersebut diubah dengan menggunakan persamaan 3. Perubahan feromon tersebut dinamakan perubahan feromon lokal. Aturan transisi kembali dilakukan sampai titik tujuan tercapai. 4. Apabila titik tujuan telah dicapai, panjang rute masing-masing semut akan diakumulasikan, kemudian diurutkan sehingga akan didapatkan panjang rute yang terpendek. 5. Perbaruan feromon pada titik-titik yang yang termuat dalam rute terpendek tersebut menggunakan persamaan 4. Perubahan feromon ini dinamakan perubahan feromon global. 6. Pengosongan daftar_kota. Daftar_kota perlu dikosongkan untuk diisi lagi dengan urutan titik yang baru. Algoritma diulang lagi dari langkah 2 dengan harga parameter intensitas feromon yang sudah diperbarui. 7. Setelah semua proses telah dilalui jumlah siklus maksimum sudah terpenuhi, maka akan didapatkan rute dengan panjang rute yang terpendek. Dari analisa terhadap Algoritma Semut ini, beberapa hal yang penting adalah: 1. Dalam pemilihan titik berdasarkan persamaan probabilitas diperlukan nilai parameter q dan r yang merupakan sebuah bilangan acak dimana 0 ≤ q ≤ 1 dan ≤ r ≤ 1. 2. Setiap semut harus memiliki daftar_kota untuk menyimpan hasil perjalanannya masing-masing. Daftar_kota berisi kumpulan sisi yang merupakan bagian dari rute perjalanan setiap semut. Nilai dari masing-masing daftar_kota akan dikosongkan kembali setiap kali semut akan memulai rutenya siklus baru. 3. Proses pembaruan intensitas feromon dipengaruhi oleh dua parameter yaitu ρ dan α keduanya bernilai antara 0 sampai 1 dan ∆τ didapat dari satu per hasil perkalian panjang rute yang ditempuh dengan jumlah verteks yang ada pada graf tersebut.

3.2.3 Flowchart Algoritma Semut

Berdasarkan penjelasan sebelumnya, maka dapatlah digambarkan flowchart Algoritma Semut seperti yang disajikan dalam gambar 3.2 dibawah ini: Mulai Aturan Transisi dengan Persam aan 1 atau Persam aan 2 Berhenti Sim pan Kota Terpilih ke daftar_kota Perbaruan Ferom on Lokal m enggunakan Persam aan 3 Tetapkan Param eter, Kota Awal, Kota Tuj uan For i = 1 to NC Max do For j = 1 to m do Kota Tuj uan Dicapai? Tidak Ya Hitung Jarak Rute m asing - m asing Sem ut Perbaruan Ferom on Global m enggunakan Persam aan 4 Kosongkan daftar_ kota Tam pilkan Rute Terpendek Gambar 3.2 Flowchart Algoritma Semut Misalkan dimiliki sebuah contoh graf G yang berbobot dengan lima verteks dan enam sisi sebagai berikut: A E C D B 5 7 4 4 3 5 Gambar 3.3 Graf G Analisis Algoritma Semut Dari graf G diatas, akan dicari rute terpendek dari titik A ke titik E. Berikut ini analisis dan langkah-langkah perhitungan rute terpendek dari titik A ke titik E menggunakan algoritma semut. 1. Menginisialisasi harga parameter-parameter algoritma semut: a. τ ij = 0,01 b. q = 0,1 c. α = 0,1 d. β = 1 e. m = 4 f. ρ = 0,5 g. NCmax = 1 Terdapat aturan dalam menentukan nilai parameter dalam Algoritma Semut seperti yang sudah dijelaskan sebelumnya yaitu nilai α dan β harus lebih besar atau sama dengan 0 sementara nilai ρ harus diantara 0 dan 1. Dari graf yang diberikan diperoleh jarak antar titik d ij . Tabel 3.1 dibawah ini akan memperlihatkan nilai d ij . Tabel 3.1 Jarak antar Titik d ij pada Graf G Titik A B C D E A 5 7 3 B 5 4 C 7 4 5 D 3 4 E 5 4 Visibilitas η ij antar titik yang merupakan ij d 1 akan diperlihatkan oleh tabel 3.2 dibawah ini. Tabel 3.2 Visibilitas antar Titik η ij pada Graf G Titik A B C D E A 0,2 0,143 0,333 B 0,2 0,25 C 0,143 0,25 0,2 D 0,333 0,25 E 0,2 0,25 Intensitas feromon antar titik τ ij akan diperlihatkan oleh tabel 3.3 dibawah ini: Tabel 3.3 Feromon antar Titik pada Graf G Titik A B C D E A 0,01 0,01 0,01 0,01 0,01 B 0,01 0,01 0,01 0,01 0,01 C 0,01 0,01 0,01 0,01 0,01 D 0,01 0,01 0,01 0,01 0,01 E 0,01 0,01 0,01 0,01 0,01 Nilai dari parameter visibilitas η dan intensitas feromon τ ini nantinya akan digunakan dalam persamaan probabilitas dan merupakan parameter yang mempengaruhi semut dalam pemilihan titik berikutnya aturan transisi. 1. Mencari titik tujuan berikutnya dengan perhitungan probabilitas: Siklus I Semut 1: a. Probabilitas dari titik A ke titik tujuan: q = 0,562; qq artinya probabilitas dihitung menggunakan persamaan 2: [ ] [ ] [ ] [ ] ∑ = = = n i i i i i k u t u t v t v t v t p v 1 , . , , . , , β β η τ η τ [ ] [ ] 006760 , 01 , 33 , 01 , 143 , 01 , 2 , 01 , 01 , , . , 1 = + + + + = ∑ = n i i i u t u t β η τ Dengan demikian dapat dihitung probabilitas dari titik A menuju setiap titik, sebagai berikut: Titik = A Titik 295 , 006760 , 002 , 006760 , 2 , 01 , 1 = = = B Titik 212 , 006760 , 00143 , 006760 , 143 , 01 , 1 = = = C Titik 493 , 006760 , 0033 , 006760 , 33 , 01 , 1 = = = D Titik = E b. Probabilitas Kumulatif : 0 0,295 0,507 1 1 c. Bilangan random yang dibangkitkan : r = 0,623; d. Memeriksa q k-1 r ≤ q k . → Pilih titik D Isi daftar_kota = A D e. Melakukan pembaruan lokal feromon menggunakan persamaan 3: , , . 1 , v t v t v t τ τ ρ τ ∆ + − ← c L v t nn . 1 , = ∆ τ 667 , 15 1 5 . 3 1 , = = = ∆ D A τ 667 , 01 , . 5 , 1 , + − ← D A τ 672 , , ← D A τ f. Titik tujuan selanjutnya hanya ke titik E Isi daftar_kota: A D E g. Melakukan pembaruan lokal feromon menggunakan persamaan 3: , , . 1 , v t v t v t τ τ ρ τ ∆ + − ← c L v t nn . 1 , = ∆ τ 5 , 20 1 5 . 4 1 , = = = ∆ E D τ 5 , 01 , . 5 , 1 , + − ← E D τ 505 , , ← E D τ Semut 2: a. Menghitung probabilitas dari titik A ke titik tujuan q = 0,376; qq artinya Probabilitas dihitung dengan persamaan 2: [ ] [ ] [ ] [ ] ∑ = = = n i i i i i k u t u t v t v t v t p v 1 , . , , . , , β β η τ η τ Nilai probabilitas titik tujuan adalah: Titik A = 0 Titik B = 0,295 Titik C = 0,212 Titik D = 0,493 Titik E = 0 b. Probabilitas Kumulatif : 0 0,295 0,507 1 1 c. Bilangan random yang dibangkitkan : r = 0,135; d. Memeriksa q k-1 r ≤ q k . → pilih titik B Isi daftar_kota = A B e. Melakukan pembaruan lokal feromon menggunakan persamaan 3: , , . 1 , v t v t v t τ τ ρ τ ∆ + − ← c L v t nn . 1 , = ∆ τ 4 , 25 1 5 . 5 1 , = = = ∆ B A τ 4 , 01 , . 5 , 1 , + − ← E D τ 405 , , ← E D τ f. Tujuan titik selanjutnya dari titik B hanya titik C Isi daftar_kota = A B C g. Melakukan pembaruan lokal feromon menggunakan persamaan 3: , , . 1 , v t v t v t τ τ ρ τ ∆ + − ← c L v t nn . 1 , = ∆ τ 5 , 20 1 5 . 4 1 , = = = ∆ C B τ 5 , 01 , . 5 , 1 , + − ← C B τ 505 , , ← C B τ h. Dari titik C ada 2 tujuan titik yaitu A dan E, titik A tidak dipilih karena titik asal, jadi pilihan titik E Jadi isi daftar_kota = A B C E Semut 3: a. Menghitung probabilitas dari titik A ke titik tujuan selanjutnya q = 0,828; qq artinya Probabilitas dihitung dengan persamaan 2: [ ] [ ] [ ] [ ] ∑ = = = n i i i i i k u t u t v t v t v t p v 1 , . , , . , , β β η τ η τ Nilai probabilitas sebagai berikut: Titik A = 0 Titik B = 0,295 Titik C = 0,212 Titik D = 0,493 Titik E = 0 b. Probabilitas Kumulatif : 0 0,295 0,507 1 1 c. Bilangan random yang dibangkitkan : q = 0,489; d. Memeriksa q k-1 r ≤ q k . → pilih titik C. Isi daftar_kota = A C e. Melakukan pembaruan lokal feromon menggunakan persamaan 3: , , . 1 , v t v t v t τ τ ρ τ ∆ + − ← c L v t nn . 1 , = ∆ τ 289 , 35 1 5 . 7 1 , = = = ∆ C A τ 289 , 01 , . 5 , 1 , + − ← C A τ 294 , , ← C A τ f. Menghitung probabilitas dari titik C ke titik berikutnya: q = 0,65 ; qq artinya probabilitas dihitung dengan persamaan 2: [ ] [ ] [ ] [ ] ∑ = = = n i i i i i k u t u t v t v t v t p v 1 , . , , . , , β β η τ η τ Titik 455 , 0055 , 0025 , 2 , 01 , 1 25 , 01 , 1 , 01 , 25 , 01 , 1 = = + + = B Titik 365 , 0055 , 002 , 2 , 01 , 1 25 , 01 , 1 , 01 , 2 , 01 , 1 = = + + = E g. Probabilitas Kumulatif : 0 0,454 0,455 0,455 0,820 h. Bilangan random yang dibangkitkan : r = 0,267; i. Memeriksa q k-1 r ≤ q k . → Pilih titik B, Dari titik B tidak ada pilihan titik yang akan dikunjungi lagi jadi isi daftar_kota = A C B j. Melakukan Pembaruan Lokal menggunakan persamaan 2: , , . 1 , v t v t v t τ τ ρ τ ∆ + − ← c L v t nn . 1 , = ∆ τ 5 , 20 1 5 . 4 1 , = = = ∆ B C τ 5 , 01 , . 5 , 1 , + − ← B C τ 505 , , ← B C τ Semut 4: a. Menghitung probabilitas dari titik A ke titik tujuan selanjutnya q = 0,762; qq artinya Probabilitas dihitung dengan persamaan 2: [ ] [ ] [ ] [ ] ∑ = = = n i i i i i k u t u t v t v t v t p v 1 , . , , . , , β β η τ η τ Nilai probabilitas setiap titik dari titik A adalah: Titik A = 0 Titik B = 0,295 Titik C = 0,212 Titik D = 0,493 Titik E = 0 b. Probabilitas Kumulatif : 0 0,295 0,507 1 1 c. Bilangan random yang dibangkitkan : q = 0,389; d. Memeriksa q k-1 r ≤ q k . → pilih titik C. Isi daftar_kota = A C e. Melakukan pembaruan lokal feromon menggunakan persamaan 3: , , . 1 , v t v t v t τ τ ρ τ ∆ + − ← c L v t nn . 1 , = ∆ τ 289 , 35 1 5 . 7 1 , = = = ∆ C A τ 289 , 01 , . 5 , 1 , + − ← C A τ 294 , , ← C A τ f. Menghitung pembaruan lokal feromon menggunakan persamaan 3: q = 0,658; qq artinya probabilitas dihitung dengan persamaan 2: [ ] [ ] [ ] [ ] ∑ = = = n i i i i i k u t u t v t v t v t p v 1 , . , , . , , β β η τ η τ Titik 455 , 0055 , 0025 , 2 , 01 , 1 25 , 01 , 1 , 01 , 25 , 01 , 1 = = + + = B Titik 365 , 0055 , 002 , 2 , 01 , 1 25 , 01 , 1 , 01 , 2 , 01 , 1 = = + + = E g. Probabilitas Kumulatif : 0 0,454 0,455 0,455 0,820 h. Bilangan random yang dibangkitkan: r = 0,455; i. Memeriksa q k-1 r ≤ q k . → Pilih titik C, Isi daftar_kota = A C E j. Melakukan Pembaruan Lokal menggunakan persamaan 2: , , . 1 , v t v t v t τ τ ρ τ ∆ + − ← c L v t nn . 1 , = ∆ τ 4 , 25 1 5 . 5 1 , = = = ∆ B A τ 4 , 01 , . 5 , 1 , + − ← E D τ 405 , , ← E D τ 2. Menampilkan hasil pencarian dari siklus pertama seperti yang terlihat pada tabel 3.3 berikut: Tabel 3.4 Hasil Siklus I Analisis Algoritma Semut Semut ke Rute Panjang Rute L gb 1 A D E 7 2 A B C E 14 3 A C B - 4 A C E 12 3. Melakukan pembaruan global feromon menggunakan persamaan 4 , . , . 1 , v t v t v t τ α τ α τ ∆ + − ←     ∈ = ∆ − , , 1 terbaik rute v t jika L v t gb τ a. Melakukan pembaruan global untuk rute terbaik pada siklus I: Rute terbaik adalah A D E dengan panjang L gb = 7, sehingga diperoleh 142 , 7 1 , = = ∆ v t τ , . , . 1 , v t v t v t τ α τ α τ ∆ + − ← 142 , . 1 , 672 , 1 , 1 , + − ← D A τ 619 , , ← D A τ 142 , . 1 , 505 , 1 , 1 , + − ← E D τ 468 , , ← E D τ b. Melakukan pembaruan global untuk rute lainnya: , . , . 1 , v t v t v t τ α τ α τ ∆ + − ← , = ∆ v t τ . 1 , 505 , 1 , 1 , + − ← C B τ 454 , , ← C B τ . 1 , 405 , 1 , 1 , + − ← B A τ 364 , , ← B A τ . 1 , 405 , 1 , 1 , + − ← E C τ 364 , , ← E C τ . 1 , 2904 , 1 , 1 , + − ← C A τ 242 , , ← C A τ . 1 , 01 , 1 , 1 , , , , , + − ← = = = = E E D D C C B B A A τ τ τ τ τ 009 , , , , , , ← = = = = E E D D C C B B A A τ τ τ τ τ Intensitas feromon pada setiap titik setelah diperbaharui τ ij hasil dari siklus I akan ditunjukkan oleh tabel 3.5 di bawah ini. Tabel 3.5 Feromon antar Titik pada Graf Titik A B C D E A 0, 009 0, 364 0,242 0,619 0, 009 B 0, 364 0, 009 0,454 0, 009 0, 009 C 0,242 0,454 0, 009 0, 009 0,364 D 0,619 0, 009 0, 009 0, 009 0,468 E 0, 009 0, 009 0,364 0,468 0, 009 Dari tabel diatas terlihat bahwa terjadi perubahan nilai feromon. Untuk titik yang sering dikunjungi oleh semut terjadi penambahan intensitas feromon, sedangkan pada titik yang jarang dikunjungi semut terjadi pengurangan nilai intensitas feromon evaporasi. Nilai intensitas feromon yang baru inilah yang akan digunakan untuk melakukan perhitungan pada siklus berikutnya.

3.3 Perancangan Peta