8 BAB II LANDASAN TEORI 2.1 Teori Graf 2.1.1 Definisi Graf Graf adalah umpulan simpul (nodes) yang dihubungan satu sama lain melalui sisi/busur (edges) (Zaaria, 2006). Suatu Graf G terdiri dari dua himpunan yaitu himpunan V dan himpunan E. a. Vertes (simpul) :V = himpunan simpul yang terbatas dan tida osong b. Edge (sisi/busur):e = himpunan busur yang menghubungan sepasang simpul. Simpul-simpul pada graf dapat merupaan obye sembarang seperti ota, atom-atom suatu zat, nama ana, jenis buah, omponen alat eletroni dan sebagainya. Busur dapat menunjuan hubungan (relasi) sembarang seperti rute penerbangan, jalan raya, sambungan telepon, iatan imia, dan lain-lain. Notasi graf: G(V,E) artinya graf G memilii V simpul dan E busur. 2.1.2 Macam-macam Graf Menurut arah dan bobotnya, graf dibagi menjadi empat bagian, yaitu :
9 1. Graf berarah dan berbobot : tiap busur mempunyai ana panah dan bobot. Gambar 2.1 menunjuan graf berarah dan berbobot yang terdiri dari tujuh titi yaitu titi A,B,C,D,E,F,G. Titi menujuan arah e titi B dan titi C, titi B menunjuan arah e titi D dan titi C, dan seterusnya. Bobot antar titi A dan titi B pun telah di etahui. Gambar 2.1 Graf berarah dan berbobot 2. Graf tida berarah dan berbobot : tiap busur tida mempunyai ana panah tetapi mempunyai bobot. Gambar 2.2 menunjuan graf tida berarah dan berbobot. Graf terdiri dari tujuh titi yaitu titi A,B,C,D,E,F,G. Titi A tida menunjuan arah e titi B atau C, namun bobot antara titi A dan titi B telah dietahui. Begitu juga dengan titi yang lain.
10 Gambar 2.2 Graf tida berarah dan berbobot 3. Graf berarah dan tida berbobot: tiap busur mempunyai ana panah yang tida berbobot. Gambar 2.3 menunjuan graf berarah dan tida berbobot. Gambar 2.3 Graf berarah dan tida berbobot 4. Graf tida berarah dan tida berbobot: tiap busur tida mempunyai ana panah dan tida berbobot. Gambar 2.4 Graf tida berarah dan tida berbobot 2.1.2 Representasi Graf 1. Matris Kedeatan (Adjacency Matrix)
11 Untu suatu graf dengan jumlah simpul sebanya n, maa matris edeatan mempunyai uuran n x n (n baris dan n olom). Jia antara dua buah simpul terhubung maa elemen matris bernilai 1, dan sebalinya bernilai 0 jia tida terhubung. Tabel matris edeatan untu graf ABCDEFG dapat dilihat pada Tabel 2.1 : A B C D E F G A 0 1 1 0 0 0 0 B 1 0 1 1 1 0 0 C 1 1 0 1 0 1 0 D 0 1 1 0 1 1 1 E 0 1 0 1 0 0 1 F 0 0 1 1 0 0 1 G 0 0 0 1 1 1 0 Tabel 2.1 Matris Kedeatan Graf ABCDEFG Pada tabel diatas, elemen matris edeatan bernilai 0 untu diagonal dan elemen yang tida terhubung dengan simpul lain (elemen matris bernilai 0 jia simpul tida terhubung dengan simpul lainnya).
12 Ruang (memori) yang diperluan untu matris edeatan adalah : n x n =(N 2 ) Untu graf tida berarah : - Ruang yang diperluan = ½ N 2 ½ N - Derajat simpul i = A[ i, j] Untu graf berarah : n j= 1 - Derajat luar (out degree) = jumlah dalam 1 baris (matris) atau banyanya busur dengan simpul V sebagai epala. - Derajat dalam (in degree) = jumlah dalam 1 olom (matris) atau banyanya busur dengan simpul V sebagai eor. 2. Senarai Kedeatan (Adjacency List) Pada simpul x dapat dianggap sebagai suatu senarai yang terdiri dari simpul pada graf yang berdeatan dengan x. Representasi senarai edeatan mempunyai esamaan flesibilitas dengan matris edeatan, aan tetapi representasi ini lebih tersusun rapi. Ruang (memori) yang diperluan untu n simpul dan e sisi pada graf tida berarah = n head node + 2e node list. Senarai edeatan untu graf ABCDEFG dapat dilihat pada gambar 2.5 :
13 Gambar 2.5 Senarai edeatan graf ABCDEFG 2.2 Permasalahan Optimasi 2.2.1 Penyelesaian Masalah Optimasi Secara umum, penyelesaian masalah pencarian jalur terpende dapat dilauan dengan menggunaan dua metode, yaitu metode onvensional dan metode heuristi. Metode onvensional diterapan dengan perhitungan matematis biasa, sedangan metode heuristi diterapan dengan perhitungan ecerdasan buatan. 1. Metode Konvensional Metode onvensional adalah metode yang menggunaan perhitungan matematis biasa.. Ada beberapa metode onvensional yang biasa digunaan untu melauan pencarian jalur terpende, diantaranya: algoritma Djistraa, algoritma Floyd-Warshall, dan algoritma Bellman- Ford
14 2. Metode Heuristi Metode Heuristi adalah sub bidang dari ecerdasan buatan yang digunaan untu melauan pencarian dan optimasi. Ada beberapa algoritma pada metode heuristi yang biasa digunaan dalam permasalahan optimasi, diantaranya algoritma genetia, algoritma semut, logia fuzzy, jaringan syaraf tiruan, pencarian tabu, simulated annealing, dan lain-lain. 2.2.2 Permasalahan Jalur Terpende (Shortest Path Problem) Jalur terpende adalah suatu jaringan pengarahan perjalanan dimana sesorang pengarah jalan ingin menentuan jalur terpende antara dua ota, berdasaran beberapa jalur alternatif yang tersedia, dimana titi tujuan hanya satu. Gambar 2.6 menunjuan suatu graf ABCDEFG yang berarah dan tida berbobot. Gambar 2.6 Graf ABCDEFG Pada gambar diatas, misalan ita dari ota A ingin menuju Kota G. Untu menuju ota G, dapat dipilih beberapa jalur yang tersedia :
15 A B C D E G A B C D F G A B C D G A B C F G A B D E G A B D F G A B D G A B E G A C D E G A C D F G A C D G A C F G Berdasaran data diatas, dapat dihitung jalur terpende dengan mencari jara antara jalur-jalur tersebut. Apabila jara antar jalur belum dietahui, jara dapat dihitung berdasaran oordinat ota-ota tersebut, emudian menghitung jalur terpende yang dapat dilalui.
16 2.3 Algoritma Semut Algoritma Semut diadopsi dari perilau oloni semut yang dienal sebagai sistem semut (Dorigo, 1996). Secara alamiah oloni semut mampu menemuan rute terpende dalam perjalanan dari sarang e tempat-tempat sumber maanan. Koloni semut dapat menemuan rute terpende antara sarang dan sumber maanan berdasaran jeja ai pada lintasan yang telah dilalui. Semain banya semut yang melalui suatu lintasan, maa aan semain jelas beas jeja ainya. Hal ini aan menyebaban lintasan yang dilalui semut dalam jumlah sediit, semain lama aan semain berurang epadatan semut yang melewatinya, atau bahan aan tida dilewati sama seali. Sebalinya lintasan yang dilalui semut dalam jumlah banya, semain lama aan semain bertambah epadatan semut yang melewatinya, atau bahan semua semut aan melalui lintasan tersebut. Gambar 2.1 menujuan perjalanan semut dalam menemuan jalur terpende dari sarang e sumber maanan.
17 L R L R a b L R L R c d Gambar 2.7 Perjalanan semut menemuan sumber maanan. Gambar 2.7.a di atas menunjuan ada dua elompo semut yang aan melauan perjalanan. Satu elompo bernama L yaitu epompo yang berangat dari arah iri yang merupaan sarang semut dan elompo lain yang bernama elompo R yang berangat dari anan yang merupaan sumber maanan. Kedua elompo semut dari titi berangat sedang dalam posisi pengambilan eputusan jalan sebelah mana yang aan diambil. Kelompo semut L membagi dua elompo lagi. Sebagian melalui jalan atas dan sebagian melalui jalan bawah. Hal ini juga berlau pada elompo semut R. Gambar 2.7.b dan gambar 2.7.c menunjuan bahwa elompo semut berjalan pada ecepatan yang sama dengan meninggalan feromon atau jeja ai di jalan yang telah dilalui. Feromon yang ditinggalan oleh umpulan semut yang melalui jalan atas telah mengalami banya penguapan arena semut yang melalui jalan atas berjumlah lebih sediit dari pada jalan yang di bawah. Hal ini diarenaan jara yang ditempuh lebih
18 panjang daripada jalan bawah. Sedangan feromon yang berada di jalan bawah, penguapannya cenderung lebih lama. Karena semut yang melalui jalan bawah lebih banya daripada semut yang melalui jalan atas. Gambar 2.7.d menunjuan bahwa semut-semut yang lain pada ahirnya memutusan untu melewati jalan bawah arena feromon yang ditinggalan masih banya. Sedangan feromon pada jalan atas sudah banya menguap sehingga semut-semut tida memilih jalan atas tersebut. Semain banya semut yang melalui jalan bawah maa semain banya semut yang mengiutinya. Demiian juga dengan jalan atas, semain sediit semut yang melalui jalan atas, maa feromon yang ditinggalan semain berurang bahan hilang. Dari sinilah emudian terpilihlah jalur terpende antara sarang dan sumber maanan. Dalam algoritma semut, diperluan beberapa variabel dan langahlangah untu menentuan jalur terpende, yaitu: Langah 1 : a. Inisialisasi harga parameter-parameter algoritma. Parameter-parameter yang di inisialisasian adalah : 1. Intensitas jeja semut antar ota dan perubahannya (τ ij ) 2. Banya ota (n) termasu oordinat (x,y) atau jara antar ota (d ij ) 3. Kota berangat dan ota tujuan 4. Tetapan silus-semut (Q) 5. Tetapan pengendali intensitas jeja semut (α), nilai α 0
19 6. Tetapan pengendali visibilitas (β), nilai β 0 7. Visibilitas antar ota = 1/d ij (η ij ) 8. Banya semut (m) 9. Tetapan penguapan jeja semut (ρ), nilai ρ harus > 0 dan < 1 untu mencegah jeja pheromone yang ta terhingga. 10. Jumlah silus masimum (NC max ) bersifat tetap selama algoritma dijalanan, sedangan τ ij aan selalu diperbaharui harganya pada setiap silus algoritma mulai dari silus pertama (NC=1) sampai tercapai jumlah silus masimum (NC=NC max ) atau sampai terjadi onvergensi. b. Inisialisasi ota pertama setiap semut. Setelah inisialisasi τ ij dilauan, emudian m semut ditempatan pada ota pertama tertentu secara aca. Langah 2 : Pengisian ota pertama e dalam tabu list. Hasil inisialisasi ota pertama setiap semut dalam langah 1 harus diisian sebagai elemen pertama tabu list. Hasil dari langah ini adalah terisinya elemen pertama tabu list setiap semut dengan indes ota tertentu, yang berarti bahwa setiap tabu (1) bisa berisi indes ota antara 1 sampai n sebagaimana hasil inisialisasi pada langah 1. Langah 3 : Penyusunan rute unjungan setiap semut e setiap ota. Koloni semut yang sudah terdistribusi e sejumlah atau setiap ota, aan mulai melauan
20 perjalanan dari ota pertama masing-masing sebagai ota asal dan salah satu otaota lainnya sebagai ota tujuan. Kemudian dari ota edua masing-masing, oloni semut aan melanjutan perjalanan dengan memilih salah satu dari otaota yang tida terdapat pada tabu sebagai ota tujuan selanjutnya. Perjalanan oloni semut berlangsung terus menerus sampai semua ota satu persatu diunjungi atau telah menempati tabu. Jia s menyataan indes urutan unjungan, ota asal dinyataan sebagai tabu (s) dan ota-ota lainnya dinyataan sebagai {N-tabu }, maa untu menentuan ota tujuan digunaan persamaan probabilitas ota untu diunjungi sebagai beriut : α [ τ ] [ η ] ij p ij = untu j {N-tabu } (1) [ τi' ] [ ηi' ] ' {N tabu } β ij dan p ij = 0, untu j lainnya.(2) dengan i sebagai indes ota asal dan j sebagai indes ota tujuan. Langah 4 : a. Perhitungan panjang rute setiap semut. Perhitungan panjang rute tertutup (length closed tour) atau L setiap semut dilauan setelah satu silus diselesaian oleh semua semut. Perhitungan ini dilauan berdasaran tabu masing-masing dengan persamaan beriut : n 1 L = d tabu (n),tabu (1) + d tabu (s),tabu (s+ 1) s= 1 (3) dengan d ij adalah jara antara ota i e ota j yang dihitung berdasaran persamaan :
21 2 2 dij (xi x j ) + (y i y j ) =..(4) b. Pencarian rute terpende. Setelah L setiap semut dihitung, aan didapat harga minimal panjang rute tertutup setiap silus atau L minnc dan harga minimal panjang rute tertutup secara eseluruhan adalah atau L min. c. Perhitungan perubahan harga intensitas jeja ai semut antar ota. Koloni semut aan meninggalan jeja-jeja ai pada lintasan antar ota yang dilaluinya. Adanya penguapan dan perbedaan jumlah semut yang lewat, menyebaban emunginan terjadinya perubahan harga intensitas jeja ai semut antar ota. Persamaan perubahan ini adalah : dengan m Δτij = Δτij = 1.(5) Δ τ ij adalah perubahan harga intensitas jeja ai semut antar ota setiap semut yang dihitung berdasaran persamaan Δ τ ij Q = L, untu (i,j) ota asal dan ota tujuan dalam tabu (6) Δ τ ij = 0, untu (i,j) lainnya.(7) Langah 5 :
22 a. Perhitungan harga intensitas jeja ai semut antar ota untu silus selanjutnya. Harga intensitas jeja ai semut antar ota pada semua lintasan antar ota ada emunginan berubah arena adanya penguapan dan perbedaan jumlah semut yang melewati. Untu silus selanjutnya, semut yang aan melewati lintasan tersebut harga intensitasnya telah berubah. Harga intensitas jeja ai semut antar ota untu silus selanjutnya dihitung dengan persamaan : τ ij = ρ τij + Δτij.. (8) b. Atur ulang harga perubahan intensitas jeja ai semut antar ota. Untu silus selanjutnya perubahan harga intensitas jeja semut antar ota perlu diatur embali agar memilii nilai sama dengan nol. Langah 6 : Pengosongan tabu list, dan ulangi langah 2 jia diperluan. Tabu list perlu diosongan untu diisi lagi dengan urutan ota yang baru pada silus selanjutnya, jia jumlah silus masimum belum tercapai atau belum terjadi onvergensi. Algoritma diulang lagi dari langah 2 dengan harga parameter intensitas jeja ai semut antar ota yang sudah diperbaharui. Contoh penyelesaian asus Travelling Salesman Problem menggunaan Antco :
23 Dietahui suatu graph A D B E C Dengan jara antar ota (d ij ) sebagai beriut: A B C D E A 0 5 7 3 B 5 0 4 C 7 4 0 5 D 3 0 4 E 5 4 0 Parameter parameter yang digunaan adalah : Alfa (α) = 1.00 Beta (β) = 1.00 Rho (ρ) = 0.50 T ij awal = 0.01 Masimum silus (NC max ) = 2 Tetapan silus semut (Q) = 1 Banya semut (m) = 5 Dari jara ota yang telah dietahui dapat dihitung visibilitas antar ota (η ij ) = 1/d ij
24 A B C D E A 0 0.2 0.143 0.33 0 B 0.2 0 0.25 0 0 C 0.1 0.25 0 0 0.2 D 0.3 0 0 0 0.25 E 0 0 0.2 0.25 0 Silus e -1 : Isi Tabu awal : A B C D E Untu t=1 Jumlah semut Tiap ota = Kota A = 1 Kota B = 1 Kota C = 1 Kota D = 1 Kota E = 1 Semut e 1: - Tabu list = A - Probabilitas dari ota A e setiap ota beriutnya dapat dihitung dengan [ τ ] [ η ] ij ij persamaan p ij =, untu j anggota dari tabu. [ τi' ] [ ηi' ] ' {N tabu } untu Σ[t ij ] α.[η ij ] β = (0.01*0) + (0.01*0.2) + (0.01*0.143) + (0.01*0.33) = 0.00676. Dengan demiian dapat dihitung probabilitas dari ota A menuju setiap ota = Kota A = 0.00 Kota B = (0.01) 1.00. (0.2) 1.00 / 0.00676 = 0.295
25 Kota C = (0.01) 1.00. (0.143) 1.00 / 0.00676 = 0.211 Kota D = (0.01) 1.00. (0.33) 1.00 / 0.00676 = 0.492 Kota E = 0.00 - Probabilitas Komulatif = 0.000 0.295 0.507 1.000 1.000 - Bilangan random yang dibangitan = 0.699 maa ota yang terpilih adalah ota D - Tabu List = A D Semut e 2 : - Tabu list = B - Probabilitas dari ota B e ota beriutnya dapat dihitung dengan [ τ ] [ η ] ij ij persamaan p ij =, untu j anggota dari tabu. [ τi' ] [ ηi' ] ' {N tabu } untu Σ[t ij ] α.[η ij ] β = (0.01*0.2) + (0.01*0.25) = 0.0045. Dengan demiian dapat dihitung probabilitas dari ota B menuju ota = Kota A = (0.01) 1.00. (0.2) 1.00 / 0.0045 = 0.444 Kota B = 0.00 Kota C = (0.01) 1.00. (0.25) 1.00 / 0.0045 = 0.556 Kota D = 0.00 Kota E = 0.00 - Probabilitas Komulatif = 0.444 0.444 1.000 1.000 1.000 - Bilangan random yang dibangitan = 0.635 maa ota yang terpilih adalah ota C - Tabu List = B C Semut e 3 : - Tabu list = C
26 - Probabilitas dari ota C e ota beriutnya dapat dihitung dengan [ τ ] [ η ] ij ij persamaan p ij =, untu j anggota dari tabu. [ τi' ] [ ηi' ] ' {N tabu } untu Σ[t ij ] α.[η ij ] β = (0.01*0.143) + (0.01*0.25) +(0.01*0.2) = 0.005929. Dengan demiian dapat dihitung probabilitas dari ota C menuju ota = Kota A = (0.01) 1.00. (0.143) 1.00 / 0.005929 = 0.241 Kota B = (0.01) 1.00. (0.25) 1.00 / 0.005929 = 0.422 Kota C = 0.00 Kota D = 0.00 Kota E = (0.01) 1.00. (0.2) 1.00 / 0.005929 = 0.337 - Probabilitas Komulatif = 0.241 0.663 0.663 0.663 1.000 - Bilangan random yang dibangitan = 0.368 maa ota yang terpilih adalah ota B Tabu List = C B Semut e 4 : - Tabu list = D - Probabilitas dari ota D e setiap ota beriutnya dapat dihitung dengan [ τ ] [ η ] ij ij persamaan p ij =, untu j anggota dari tabu. [ τi' ] [ ηi' ] ' {N tabu } untu Σ[t ij ] α.[η ij ] β = (0.01*0.3) + (0.01*0) + (0.01*0) + (0.01*0) + (0.01*0.25) = 0.00583. Dengan demiian dapat dihitung probabilitas dari ota D menuju ota = Kota A = (0.01) 1.00. (0.3) 1.00 / 0.00583 = 0.514 Kota B = 0.00 Kota C = 0.00 Kota D = 0.00
27 Kota E = (0.01) 1.00. (0.25) 1.00 / 0.00583 = 0.428 - Probabilitas Komulatif = 0.514 0.514 0.514 0.514 0.942 - Bilangan random yang dibangitan = 0.3783 maa ota yang terpilih adalah ota A Tabu List = D A Semut e 5 : - Tabu list = E - Probabilitas dari ota E e setiap ota beriutnya dapat dihitung dengan [ τ ] [ η ] ij ij persamaan p ij =, untu j anggota dari tabu. [ τi' ] [ ηi' ] ' {N tabu } untu Σ[t ij ] α.[η ij ] β = (0.01*0) + (0.01*0) + (0.01*0.2) + (0.01*0.25) + (0.01*0) = 0.0045. Dengan demiian dapat dihitung probabilitas dari ota E menuju ota = Kota A = 0.00 Kota B = 0.00 Kota C = (0.01) 1.00. (0.2) 1.00 / 0.0045 = 0.444 Kota D = (0.01) 1.00. (0.25) 1.00 / 0.0045 = 0.556 Kota E = 0.00 - Probabilitas Komulatif = 0.00 0.00 0.444 1.00 1.00 - Bilangan random yang dibangitan = 0.1953 maa ota yang terpilih adalah ota C Tabu List = E C Perhitungan aan dilanjutan hingga semut telah menyelesaian perjalanannya mengunjungi tiap-tiap ota. Hal ini aan berulang hingga sesuai dengan NCmax yang telah ditentuan atau telah mencapai onvergen. Kemudian aan ditentuan jara terpende dari semut dari msaing-masing silus.
28