Repositori Karya Ilmiah Universitas Riau Matematika: September 01. PENYELESAIAN MASALAH TRAVELING SALESMAN DENGAN PEMROGRAMAN DINAMIK Mustafsiroh 1, M. D. H Gamal, M. Natsir mustafsiroh@ymail.com 1 Mahasiswa Program Studi S1 Matematika Laboratorium Opersai Riset Jurusan Matematika Laboratorium Matematika Terapan Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Riau Kampus Binawidya Pekanbaru (89), Indonesia ABSTRACT Traveling salesman problem ia a problem in graph theory. This problem can be solved by enumurating all possible Hamilton circuit. Then we calculate the length of rute of each circuit, and then we choose the shortest circuit. For a large n, many of Hamilton circuits are examined. We discuss traveling salesman problem using dinamic programming to find optimal solution. Keywords:Traveling salesman problem, graph, Hamilton circuit, dinamik programming 1. PENDAHULUAN Masalah traveling salesman adalah menentukan jarak terpendek yang melalui sejumlah kota sekali dan kembali ke kota asal. Masalah ini termasuk kedalam persoalan yang sangat terkenal dalam teori graf yang menentukan sirkuit Hamilton yang memiliki bobot minimum pada sebuah graf terhubung. Salah satu cara yang digunakan untuk menyelesaikan masalah traveling salesman yaitu dengan cara menumerisasi seluruh kemungkinan rute yang dilalui, kemudian memilih rute yang optimal. Dalam graf kota disebut dengan node dan jarak antak kota disebut sisi. Namun, jika jumlah node yang harus dikunjungi adalah n, maka dengan cara mencari siklus Hamilton waktu komputasi yang diperlukan akan jauh meningkat dengan bertambahnya jumlah n node yang harus dikunjungi. Beberapa metode telah dikembangkan untuk memecahkan masalah traveling salesman. Salah satu metode yang muncul untuk menyelesaikan persoalan ini adalah pemrograman dinamik. Pada kertas kerja ini, penulis tertarik untuk membahas masalah traveling salesman dengan pemrograman dinamik maju dan dinamik mundur yang pembahasan metode ini dapat dijumpai dalam buku-buku teks operasi riset [1, hal: 9], [, hal: 99]. 1
Mustafsiroh et al. Masalah traveling salesman. MASALAH TRAVELING SALESMAN SEBAGAI SIRKUIT HAMILTON Dalam bagian ini dibahas tentang penyelesaian masalah traveling salesman dengan menumerisasikan siklus hamilton. Untuk node yang bayak menghitung siklus hamilton memerlukan waktu yang kurang efisien, oleh karena itu menggunakan pemrograman dinamik untuk mengurangi penumerisasian. Masalah traveling salesman merupakan suatu masalah optimisasi dan kombinatorial. Nama permasalahan ini berdasarkan pada masalah seorang salesman yang akan mengunjungi sejumlah kota atau node. Tujuan dari masalah ini adalah mencari rute terpendek agar mendapat hasil yang optimal. Misalkan, diketahui sejumlah kota dan jarak antar kota, kemudian ditentukan sirkuit terpendek yang harus dilalui oleh seorang salesman bila salesman itu berangkat dari sebuah kota asal dan menyinggahi setiap kota tepat satu kali dan kembali ke kota asal keberangkatan. Kota dapat dinyatakan sebagai node dalam graf, sedangkan sisi menyatakan jalan yang menghubungkan antara dua buah kota. Bobot pada sisi menyatakan jarak antara dua buah kota. Masalah traveling salesman adalah menentukan sirkuit Hamilton yang memiliki bobot minimum pada setiap graf terhubung [, hal: ]. Graf yang digunakan adalah graf lengkap (K n ) berarah atau tak-berarah dengan bobot pada setiap sisi. Ada bagian dalam masalah traveling salesman [, hal: 79] yaitu asimetri dan simetris. Teorema 1 (Teorema Hamilton) [, hal: 1] Graf lengkap K n dengan n node memiliki H = (n 1)!/ sirkuit Hamilton.. PENYALESAIAN MASALAH TRAVELING SALESMAN DENGAN PEMROGRAMAN DINAMIK Masalah traveling salesman dapat diselesaikan dengan pemrograman dinamik melalui dua cara yaitu: 1. Pemrograman dinamik maju langkah-langkah penyelesaiannya sebagai berikut: (a) Menentukan jarak terpendek dari node 1 ke node j tanpa melalui node lain dengan persamaan: f 0 (j, ) = d 1j (b) Hitung f(j,s) untuk S = 1 kemudian dapat diperoleh untuk S = sampai S =n 1, dengan persamaan: f i (j,s) = min k S [f i 1(k,S {k})+d kj ] (i=1,,...,n ;j 1;S nj ) (c) Solusi optimal untuk menyelesaikan masalah traveling salesman adalah min [f n (j,n j )+d j1 ] j=,, n. Pemrograman dinamik mundur langkah-langkah penyelesaiannya sebagai berikut: (a) Menentukan jarak terpendek dari node sebelumnya atau node i ke node asal (1) dengan melewati (S) semua node dengan persamaan: f(i,s) = f n [j,s {j}] = d ij
Mustafsiroh et al. Masalah traveling salesman (b) Hitung f(i,s) untuk S = n 1 kemudian dapat diperoleh untuk S = n sampai S =1, dengan persamaan: f t (i,s) = min j/ Sdanj 1 {d ij +f n [j,s {j}]} (t=1,,, n). CONTOH MASALAH TRAVELING SALESMAN Salah satu kandidat suatu partai akan berkampaye ke kota, kandidat sekarang berada pada kota 1, sebelum pemilihan dia harus menggunjungi kota,,,,. Dalam perjalanan kandidat tersebut tidak diperbolehkan mengunjungi satu kota lebih dari satu kali, dan semua kota tujuan harus dilalui. Maka akan ditentukan jarak paling minimum yang akan dilalui oleh kandidat tersebut. Adapun jarak antar kota akan disajikan dalam Tabel 1 dalam satuan (km). Table 1: Tabel Jarak Perjalanan node Asal node Tujuan 1 1 0 8 9 10 8 0 7 7 0 8 9 9 0 9 8 0 10 9 9 0 Permasalahan pada kasus di atas dapat digambarkan secara graf, maka hasilnya adalah graf lengkap tak-berarah dengan n =. Gambar graf ini dapat dilihat pada Gambar 1. Berdasarkan 10 9 9 1 8 7 9 8 Figure 1: Graf Perjalanan Teorema 1 dengan n = buah node terdapat 0 buah sirkuit Hamilton yang merupakan rute yang mungkin dilalui kandidat. Menghitung panjang setiap rute dan menentukan rute terpandek akan membutuhkan waktu yang lama dan hal ini kurang efesien. Oleh karena itu untuk mendapatkan rute optimal digunakan pemrograman dinamik dengan cara rekursif maju dan mundur. Tahap - tahap penyelesaian masalah traveling salesman dengan pemrograman dinamik maju adalah:
Mustafsiroh et al. Masalah traveling salesman Tahap 1. Penyelesaian dari masalah perjalanan kandidat dengan (n = 1) terdapat pada Tabel. Table : Tabel Hasil Perhitungan PD Maju Tahap 1 k f 0 (j, ) = d 1j Solusi Optimal j = j = j = S,k = S,k = Node Jarak 1 8 9 10 1ke Pada tahap pertama diperoleh rute terpendek adalah 1 dengan panjang jarak km. Tahap. Pada tahap ini, kandidat berada pada node 1 ke node berikutnya melewati satu node. Dalam Tabel terdapat penyelesaian dari masalah perjalanan kandidat dengan (n = ). Table : Tabel Hasil Perhitungan PD Maju Tahap S,k f 1 (j,s) = f 0 (k,s {k})+d kj Solusi Optimal j = j = j = j = j = Node Jarak - 8+7=1 8+=1 8+=11 8+=1 +7=1 - +=7 +8=1 +9=1 9+=1 9+=11-9+=1 9+9=18 ke 7 +=9 +8=1 +=11 - +=1 10+=1 10+9=19 10+9=19 10+=1 - Pada tahap kedua diperoleh jarak rute terpendek adalah dengan panjang jarak 7 km. Tahap. Pada tahap ini, kandidat berada pada node 1 ke node berikutnya melewati dua node. Tabel adalah hasil menentukan jarak perjalanan kandidat dengan (n = ). Table : Tabel Hasil Perhitungan PD Maju Tahap S,k f (j,s) = minf 1(k,S {k})+d kj Solusi Optimal j = j = j = j = j = Node Jarak 1+7=1 1+=18 1+=1 1+=1-9+7=1 9+=1 1+=18 1+=19 1+7=1 1+=0 1+=17 9+=1 11+7=18 1+=17 1+8= 1+9= 1+7=1-1+=1 11+8=19 11+9=0 19+7= 19+=1 19+8=7 1+9= 7+=1 1+=1 1+=19 1+9= ke 1 11+=17 11+=1-7+=1 7+9=1 19+= 19+=1 19+= 11+9=0 1+=1 11+8=19 11+=1 11+=17 1+=17 1+8= 1+=18-1+=19 1+=19 1+8= 1+=1 1+=0 1+=18 1+9=1 1+=1 1+=1 18+= 18+9=7 1+= 1+=0-1+=1 1+9=1 1+=1 18+= Pada tahap ketiga diperoleh jarak terpendek adalah rute dengan jarak 1 km.
Mustafsiroh et al. Masalah traveling salesman Tahap. Sekarang kandidat berada pada node 1 ke node berikutnya melewati tiga node. Tabel adalah hasil menentukan jarak perjalanan kandidat denga n =. Table : Tabel Hasil Perhitungan PD Maju Tahap S,k f (j,s) = minf (k,s {k})+d kj Solusi Optimal j = j = j = j = j = Node Jarak 17+7= 1+= += 17+=1 - +7=9 1+= 18+=1 1+=0 1+7= 18+= 1+=1 1+=17 1+7=0 1+= 1+8=9 1+9= 1+7=8-1+=18 1+8=9 1+9= 1+7=8 1+=18 1+8= 1+9= 1+= 1+= 1+= 1+9= 1+=7 1+=17-0+= 1+9= 1+=7 0+= 17+= 17+9= 1+=1 +8= 0+= - 1+=19 1+=19 1+8= 1+=1 18+= ke 1 +=7 17+8= 1+=0 1+=1 1+=0 0+9=9 19+9=8 1+= 19+= 19+9=8 1+9= 19+= - 0+= 1+9= 1+9= 1+= Pada tahap keempat diperoleh jarak terpendek adalah dengan panjang jarak 1 km. Tahap. Sekarang kandidat berada pada tahap (n = ) dimana node yang dilalui sebanyak empat node. Dengan cara penyelesaian sama dengan cara sebelumnya diperoleh hasilnya dalam Tabel yaitu. Table : Tabel Hasil Perhitungan PD Maju Tahap S,k f (j,s) = minf (k,s {k})+d kj Solusi Optimal j = j = j = j = j = Node Jarak - +7=1 +=9 0+= 1+=19 ke 19 +7=0 - += +8=0 17+9= +=9 += - +=8 18+9=7 += +8= 1+= - +=8 18+= 1+9=0 0+9=9 17+= - Pada tahap ke lima diperoleh jarak terpendek adalah dengan panjang jarak 19 km. Tahap. Semua node telah dilewati oleh kandidat, untuk kembali ke node asal hasil perhitungannya pada Tabel 7. Table 7: Tabel Hasil Perhitungan PD Maju Tahap i f (j,s) = min[f n (j,n j)+d j1] Solusi Optimal j= j= j= j= j= Node Jarak 1 +8=0 +=9 +9= +=9 19+10=9 1ke 9
Mustafsiroh et al. Masalah traveling salesman Pada tahap terakhir jarak optimal yang ditempuh oleh kandidat yang melakukan perjalanan kampanye yang diperoleh jarak 9 km, yaitu dari node 1. Dari perhitungan pemrograman dinamik dengan rekursif maju dari tahap 1 sampai bahwa rute optimal yang dapat dilalui kandidat adalah 1 1 dengan panjang jarak perjalanan adalah 9 km. Gambar adalah rute optimal yang di lalui kandidat, sekaligus diperoleh sirkuit Hamilton-nya. 10 1 Figure : Sirkuit Hamilton PD Maju Masalah traveling salesman juga dapat diselesaikan dengan cara pemrograman dinamik mundur (backward), yaitu tahapannya bergerak mulai dari n terus mundur ke tahap n 1,n dan seterusnya sampai ke tahap 1. Tahap-tahap penyelesaianya sebagai berikut: Tahap. Ketika kandidat tinggal memiliki satu tahap lagi (n = ), rute kemudian ditentukan sepenuhnya oleh node sekarang i = (,,,,) dan tujuan akhirnya adalah node j = 1, sehingga rute perjalanan tahap terakhir adalah i j. Dengan demikian f 1 (i,s) = d i1, Tabel 8 menunjukkan hasil perhitungan tahap. Table 8: Tabel Hasil Perhitungan PD Mundur Tahap j f 1 (i,s) = d i1 Solusi Optimal i = i = i = i = i = Node Jarak 1 8 9 10 ke1 Pada tahap diperoleh rute terpendek adalah 1 dengan jaraknya adalah km. Tahap. Tabel 9 merupakan hasil perhitungan jarak terpendek pada tahap n =. Table 9: Tabel Hasil Perhitungan PD Mundur Tahap j f (i,s) = min[d ij +f [j,s {j}] Solusi Optimal i = i = i = i = i = Node Jarak - 7+=1 +9=1 +=9 +10=1 7+8=1 - +9=11 8+=1 9+10=19 ke 7 +8=1 +=7 - +=11 9+10=19 +8=11 8+=1 +9=1 - +10=1 +8=1 9+=1 9+9=18 +=1 - Dari tabel pada tahap diperoleh rute terpendek jarak terpendek adalah 7 km.
Mustafsiroh et al. Masalah traveling salesman 7 Tahap. Pada tahap (n = ), kandidat berada pada node i dan dia pergi ke node j, jarak perjalanan di d ij. Perhitungan selanjutnya disajikan pada Tabel 10. Table 10: Tabel Hasil Perhitungan PD Mundur Tahap j f (i,s) = min[d ij +f [j,s {j}] Solusi Optimal i = i = i = i = i = Node Jarak 7+1=1 +1=18 +1=1 +1=1-7+9=1 +9=1 +1=18 +1=19 7+1=1 +1=0 +1=17 +9=1 7+11=18 +1=17 8+1= 9+1= 7+1=1 - +1=1 8+11=19 9+11=0 7+19= +19=1 8+19=7 9+1= +7=1 +1=1 +1=19 9+1= ke 1 +11=17 +11=1 - +7=1 9+7=1 +19= +19=1 +19= 9+11=0 +1=1 8+11=19 +11=1 +11=17 +1=17 8+1= +1=18 - +1=19 +1=19 8+1= +1=1 +1=0 +1=18 9+1=1 9+1=1 +1=1 +18= 9+18=7 9+1= +1=0 - +1=1 9+1=1 9+1=1 +18= Pada tahap diperoleh rute terpendek jarak terpendek adalah 1 km. Tahap. Kandidat berada pada tahap selanjutnya(n = ). Perhitungan selanjutnya disajikan Pada Tabel 11. Table 11: Tabel Hasil Perhitungan PD Mundur Tahap j f (i,s) = min[d ij +f [j,s {j}] Solusi Optimal i = i = i = i = i = Node Jarak 7+17= +1= += +17=1-7+=9 +1= +18=1 +1=0 7+1= +18= +1=1 +1=17 7+1=0 +1= 8+1=9 9+1= 7+1=8 - +1=18 8+1=9 9+1= 7+1=8 +1=18 8+1= 9+1= +1= 1+= 1+= 1+9= +1=7 1+=17-0+= 1+9= +1=7 0+= 1+= 17+9= +1=1 8+= +0= - +1=19 +1=19 8+1= +1=1 +1=0 ke 1 +=7 8+17= +1=0 +1= +1=0 9+0=9 9+19=8 +1= +19= 9+19=8 9+1= +19= - +0= 9+1= 9+1= +1= Pada tahap ketiga diperoleh jarak terpendek adalah dengan panjang jarak lintasan adalah 1 km. Tahap. Kandidat mengunjungi satu node yang tersisa, perhitungan pada tahap disajikan dalan Tabel 1.
Mustafsiroh et al. Masalah traveling salesman 8 Table 1: Tabel Hasil Perhitungan PD Mundur Tahap j f (i,s) = min[d ij +f [j,s {j}] Solusi Optimal i = i = i = i = i = Node Jarak - 7+=1 +=9 +0= +1=19 ke 19 7+=0 - += 8+=0 9+17= +=9 += - +=8 9+18=7 += 8+= +1= - +=8 +18= 9+1=0 9+0=9 +17+= - Pada tahap ke dua diperoleh jarak terpendek adalah dengan panjang jarak lintasanya 19 km. Tahap 1. Terakhir Bergerak dari masalah enam tahap (n = 1), kecuali bahwa sekarang hanya ada satu kemungkinan node keberangkatan, i = 1 seperti yang ditunjukkan pada Tabel 1. Table 1: Tabel Hasil Perhitungan PD Mundur Tahap 1 i f 1(i,S) = min[d ij +f [j,s {j}] Solusi Optimal j= j= j= j= j= Node Jarak 1 8+=0 +=9 9+= +=9 10+19=9 1ke 9 Pada perhitungan tahap 1 diperoleh rute 1 dengan panjang jaraknya 9 km. Dari perhitungan pemrograman dinamik dengan rekursif mundur diperoleh rute perjalanan dimulai dari 1 1 dengan jarak optimal adalah 9 km. hasil rute optimal digambarkan pada Gambar, sekaligus diperoleh sirkuit Hamilton-nya. 10 1 Figure : Sirkuit Hamilton PD Mundur Dari pendekatan dalam pemrograman dinamik perhitungan rekursif maju diperoleh bahwa ruteyangdapatdilaluikandidatadalah1 1dandenagnpemrograman dinamik perhitungan rekursif mundur diperoleh bahwa rute terpendek yamg dilalui kandidat adalah 1 1. Karena jarak d ji = d ji maka rute 1 1 = 1 1 dengan panjang jarak optimal 9 km.
Mustafsiroh et al. Masalah traveling salesman 9 DAFTAR PUSTAKA [1] Dreyfus, S. E and Averill M. L. 1977. The Art and Theory Dynamic Programming. London: Academic Press. [] Gross, J. L dan Yellen J. 00. Handbook of Graph Theory. Washington, D.C: Crc Press. [] Lipschutz, S dan Marc L. L. 00. Matematika diskrit. Terj Solved Problems in Discrete Mathematics. Jakarta: Erlangga. [] Munir, R. 00. Matematika Diskrit. Bandung: Informatika. [] Winston, W. L. 00. Operations Research: Applications and Algorithms. International Student, rd Ed. Belmont, USA.