Analisa Dynamic programming PEMBAHASAN

BAB 3 PEMBAHASAN

3.1 Analisa Dynamic programming

Dynamic programming merupakan metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah step atau tahapan stage sedemikian sehingga solusi dari persoalan dapat dipandang dari serangkaian keputusan yang saling berkaitan. Diberikan sejumlah kota dan jarak antar kota. Tentukan 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 lagi ke kota asal keberangkatan. Permasalahan melewati setiap kota tepat satu kali dan kembali ke kota asal adalah meliputi pencarian lintasan terpendek pada sebuah graph Hamilton. Apabila contoh kasus tersebut diubah menjadi persoalan pada graph, maka dapat dilihat bahwa kasus tersebut adalah bagaimana menentukan sirkuit Hamilton yang memiliki bobot minimum pada graph tersebut. Dalam dynamic programming, diperlukan beberapa variabel dan langkah- langkah untuk menentukan jalur terpendek dengan bobot minimum menggunakan metode forward, yaitu: Misalkan G = V, E adalah graf lengkap dengan edge-edge yang diberi harga c ij untuk setiap i dan j adalah vertex-vertex di dalam V. Misalkan ⎢V ⎢= n dan n 1. Setiap vertex diberi nomor 1, 2, …, n. Asumsikan perjalanan tour dimulai dan berakhir pada vertex 1 dan setiap titik saling terhubung. Setiap tur pasti terdiri dari edge 1, k untuk beberapa k ∈ V – {1} dan sebuah jalur dari vertex k ke vertex 1. Jalur dari vertex k ke vertex 1 tersebut melalui setiap vertex di dalam V – {1, k} tepat hanya sekali. Inisialisasi a. Graph lengkap berarah G Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008 b. Himpunan berhingga tidak kosong dari vertex-vertex pada sebuah graph V, V = {1, 2, 3,…n} c. Himpunan edge pada sebuah graph E d. Jarak dari i ke j jarak antar kota , dimana e. Rangkaian jalur S, S {2, 3, …, n} f. Bobot jalur terpendek yang berawal pada vertex i yang melalui semua vertex di dalam S dan berakhir pada vertex 1 fi,S , i S dan S Adapun langkah-langkah dalam penyelesaian TSP dengan dynamic programming adalah sebagai berikut: Langkah 1: Menentukan basis dari graph Hamilton yang telah direpresentasikan menjadi sebuah matriks adjacency dengan persamaan: 1 , , i c i f = ∅ , 2 ≤ i ≤ n Langkah 2: Hitung fi, S untuk ⎢S ⎢= 1, kemudian kita dapat memperoleh fi, S untuk ⎢S ⎢= 2, hingga |S| = n- 1. Dengan persamaan: }} { , { min , j S j f c S i f ij S j − + = ∈ dengan: fi, S = bobot jalur terpendek S – {j} = rangkaian jalur S dikurang vertex j. i dan j = vertex-vertex di dalam V = bobot dari vertex i ke j Langkah 3: Setelah diperoleh hasil dari langkah 3, kemudian hitung persamaan hubungan rekursif: }} , 1 { , { min } 1 { , 1 1 2 k V k f c V f k n k − + = − ≤ ≤ Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008 dengan: f1, V – {1} = panjang optimal dari tour V = himpunan berhingga tidak kosong dari vertex-vertex dari sebuah graph V – {1} = himpunan vertex dari suatu graph yang dikurang vertex 1 awal k = vertex yang terhubung ke vertex 1 awal = bobot dari vertex 1 awal ke k Langkah 4: Setelah menghitung persamaan rekursif pada langkah 3,akan diperoleh bobot jalur terpendek, maka untuk memperoleh solusi optimal panjang jalur terpendek untuk sebuah graph adalah dengan menghitung f1, {2, 3, 4,…, n} yang artinya adalah panjang jalur dari vertex awal 1 menuju vertex 1 setelah melewati vertex 2, 3, 4,.., n dengan urutan apapun dicari yang minimum kemudian cari pembentuk dari solusi optimal minimum yang telah diperoleh. Berikut contoh penyelesaian TSP dengan menggunakan dynamic programming. Diketahui sebuah graph lengkap berarah, dengan persoalan TSP untuk n = 4. Rangkaian jalur {2, 3, 4}. Dapat dilihat pada gambar 3.1. berikut 12 15 9 8 10 15 16 11 11 14 17 18 1 2 3 4 Gambar 3.1. Graf dengan Empat Vertex Berikut Jarak dari i ke j jarak antar kota , dimana yang dirubah dalam bentuk matriks: Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008 Berikut langkah-langkah penyelesaiannya: Langkah 1: Hitung 1 , , i c i f = ∅ , 2 ≤ i ≤ n Diperoleh: 15 , 2 21 = = ∅ c f 8 , 3 31 = = ∅ c f 9 , 4 41 = = ∅ c f Langkah 2: Untuk |S| = 1, Hitung }} { , { min , j S j f c S i f ij S j − + = ∈ Diperoleh: Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008 Untuk |S| = 2, hitung }} { , { min , j S j f c S i f ij S j − + = ∈ Diperoleh: = min{15 + 27, 10 + 25} = min{42, 35} = 35 = min{14 +19, 27 + 11} = min{33, 38} = 33 = min{11 + 22, 17 + 29} = min{33, 46} = 33 Langkah 3: Dengan menggunakan persamaan, }} , 1 { , { min } 1 { , 1 1 2 k V k f c V f k n k − + = − ≤ ≤ diperoleh: = min {12 + 35, 11 + 33, 16 + 33} = min {47, 44, 49} = 44 Jadi, bobot jalur terpendek yang berawal dan berakhir di vertex 1 adalah 44. Langkah 4: Untuk mengetahui jalur yang dilalui, mula-mula diketahui bahwa nilai 44 yang merupakan nilai minimum didapatkan dari 11 + 33. Berarti jalur terpendek adalah , diperoleh bahwa bagian awal dari jalur adalah 1-3. Kemudian cari tahu komponen pembentuk yang menghasilkan nilai minimum ternyata adalah . Maka diketahui bahwa edge 3-2 adalah bagian dari jalur Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008 terpendek. Dengan cara yang sama, ditelusuri pembentuk yang ternyata adalah . Edge 2-4 ternyata juga bagian dari solusi jalur terpendek. Langkah terakhir adalah menelusuri pembentuk yang ternyata adalah berarti edge 4-1 juga bagian dari jalur terpendek. Hanya dengan merangkai edge- edge yang ditemukan edge 1-3, 3-2, 2-4, 4-1dari depan ke belakang. Berarti jalur terpendek adalah 1 s3s2s4s1 dengan jumlah bobot minimum 44. Dapat dilihat pada gambar berikut edge yang bercetak tebal merupakan jalur terpendek: 12 15 1 16 9 11 11 14 15 10 8 6 18 1 1 4 17 4 3 2 Gambar 3.2 Graf dengan Empat Vertex Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008

3.2 Perancangan Flowchart