Algoritma Branch and Bound. Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

dokumen-dokumen yang mirip
Algoritma Branch and Bound. (Bagian 1)

Branch & Bound. Bahan Kuliah IF2211 Strategi Algoritma Rinaldi Munir & Masayu Leylia Khodra

Algoritma Branch & Bound

ALGORITMA PENCARIAN. 1. Iterative-Deepening Depth-First Search (IDS) Nama : Gede Noverdi Indra Wirawan Nim : Kelas : VI A

Algoritma Branch & Bound untuk Optimasi Pengiriman Surat antar Himpunan di ITB

BAB III ALGORITMA BRANCH AND BOUND. Algoritma Branch and Bound merupakan metode pencarian di dalam ruang

Penghematan BBM pada Bisnis Antar-Jemput dengan Algoritma Branch and Bound

Penerapan Algoritma Branch and Bound untuk Optimasi Rute Penempelan Poster di Papan Mading ITB

PENERAPAN ALGORITMA BRANCH AND BOUND DALAM MENENTUKAN RUTE TERPENDEK UNTUK PERJALANAN ANTARKOTA DI JAWA BARAT

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

Branch and Bound untuk Rute Terpendek Tur Pengenalan Labtek V Gedung Benny Subianto Chita Najmi Nabila /

Journal of Informatics and Technology, Vol 1, No 1, Tahun 2012, p

Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

Menentukan Susunan Terbaik Tim Proyek dengan Algoritma Branch and Bound

Algoritma Branch and Bound dalam Kegunaannya Memecahkan Assignment Problem

Pemecahan Masalah Knapsack dengan Menggunakan Algoritma Branch and Bound

Menentukan Titik Evakuasi Selanjutnya bagi Sekelompok Regu Tim SAR dengan Algoritma Branch and Bound

dengan Algoritma Branch and Bound

PENGGUNAAN ALGORITMA BRANCH AND BOUND UNTUK MENYELESAIKAN PERSOALAN PENCARIAN JALAN (PATH-FINDING)

Menentukan Susunan Pengambil Tendangan Penalti dalam Skema Adu Penalti pada Pertandingan Sepak Bola dengan Algoritma Branch and Bound

Penyusunan Jarkom HMIF ITB dengan Menggunakan Algoritma Branch and Bound

Penerapan BFS dan DFS pada Pencarian Solusi

Penerapan Algoritma Branch and Bound pada Penentuan Staffing Organisasi dan Kepanitiaan

Penerapan BFS dan DFS pada Pencarian Solusi

Aplikasi Branch and Bound Pada Pencarian Jalan Pada Software Navigasi

Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem

Pemodelan AI dalam Permainan Snake dengan Algoritma Branch and Bound

UNNES Journal of Mathematics

Penerapan Algoritma Branch and Bound dalam Pemacahan Travelling Salesman Problem (TSP) dalam Graf Lengkap

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

BAB 2 LANDASAN TEORI

Menentukan Starting Lineup Futsal Terbaik dengan Algoritma Branch and Bound

Pelacakan dan Penentuan Jarak Terpendek terhadap Objek dengan BFS (Breadth First Search) dan Branch and Bound

Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

Pencarian Lintasan Terpendek Pada Aplikasi Navigasi Menggunakan Algoritma A*

Penggunaan Algoritma Branch and Bound dan Program Dinamis Dalam Pemecahan Masalah Rubik s Cube

Penerapan Algoritma Branch and Bound pada Perancangan Jalur Bandros

Penerapan Algoritma Runut-balik pada Permainan Math Maze

Graf. Bekerjasama dengan. Rinaldi Munir

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

BAB 2 LANDASAN TEORI. Definisi Graf G didefinisikan sebagai pasangan himpunan (V, E), yang dalam hal ini:

Program Dinamis (Dynamic Programming)

Penyelesaian Permainan Sliding Puzzle 3x3 Menggunakan Algoritma Greedy Dengan Dua Fungsi Heuristik

BAB II TINJAUAN PUSTAKA. masing-masing tepat satu kali dan kembali lagi ke tempat semula?

Kecerdasan Buatan. Penyelesaian Masalah dengan Pencarian... Pertemuan 02. Husni

Penerapan Algoritma Branch And Bound Dalam Optimasi Assigment Problem

Penerapan strategi BFS untuk menyelesaikan permainan Unblock Me beserta perbandingannya dengan DFS dan Branch and Bound

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Kecerdasan Buatan Penyelesaian Masalah dengan Pencarian

UJM 3 (1) (2014) UNNES Journal of Mathematics.

Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

Aplikasi Algoritma B&B untuk Memperoleh Poin Maksimum pada Permainan Diner Dash

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

Penggunaan Algoritma Runut-balik Pada Pencarian Solusi dalam Persoalan Magic Square

BAB I PENDAHULUAN. Kemajuan Ilmu dan Teknologi (IPTEK) di berbagai bidang terasa sangat

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Pengantar Strategi Algoritma

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

BAB 1 PENDAHULUAN 1.1 LATAR BELAKANG

PENYELESAIAN TRAVELLING SALESMAN PROBLEM DENGAN ALGORITMA BRANCH AND BOUND

Algoritma Runut-balik (Backtracking) Bagian 1

Penerapan Algoritma Backtracking pada Game The Lonely Knight

BAB 2 LANDASAN TEORI

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

Penerapan Algoritma Branch and Bound dalam Menentukan Jalur Terpendek pada Permainan Clash of Clans

Pembentukan Pohon Pencarian Solusi dalam Persoalan N-Ratu (The N-Queens Problem)

PENENTUAN JALUR TERPENDEK PADA PELAYANAN AGEN TRAVEL KHUSUS PENGANTARAN WILAYAH SEMARANG BERBASIS SIG DENGAN ALGORITMA BRANCH AND BOUND

Analisis Algoritmik Fitur AutoComplete Tracks dari Video Game RollerCoaster Tycoon 3

METODE PENCARIAN DAN PELACAKAN

Pemanfaatan Pohon dalam Realisasi Algoritma Backtracking untuk Memecahkan N-Queens Problem

MateMatika Diskrit Aplikasi TI. Sirait, MT 1

Pengaturan Sistem Lampu Lalu Lintas dengan Algoritma Branch and Bound dengan Waktu Tunggu Menggunakan Algoritma Greedy

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Implementasi Algoritma BFS dan DFS dalam Penyelesaian Token Flip Puzzle

Optimasi Branch and Bound pada Persoalan Travelling Salesman Problem

PERBANDINGAN ALGORITMA BFS DAN DFS DALAM PEMBUATAN RUTE PERJALANAN OBJEK PERMAINAN 2 DIMENSI

Matematika Diskret (Graf II) Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Penerapan Algoritma BFS, DFS, DLS dan IDS dalam Pencarian Solusi Water Jug Problem

Penerapan Algoritma Branch & Bound dan Backtracking pada Game Flow

Kecerdasan Buatan. Pertemuan 03. Pencarian Branch & Bound dan Heuristik (Informed)

Penerapan Search Tree pada Penyelesaian Masalah Penentuan Jalur Kota Terpendek.

METODE PERKIRAAN UKURAN POHON PENCARIAN

Pembentukan pohon pencarian solusi dan perbandingan masingmasing algoritma pembentuknya dalam simulasi N-Puzzle

Pemanfaatan Algoritma BFS pada Graf Tak Berbobot untuk Mencari Jalur Terpendek

BAB II LANDASAN TEORI

Implementasi Algoritma Greedy, BFS, Branch and Bound, dan Metode Heuristik dalam Permainan Reversi

Sistem Kecerdasan Buatan. Masalah, Ruang Masalah dan Pencarian Solusi. Masalah. Masalah Sebagai Ruang Keadaan 10/7/2015

TARGET BERORIENTASI METODE CABANG DAN BATAS UNTUK OPTIMISASI GLOBAL

ALGORITMA RUNUT-BALIK (BACKTRACKING ALGORITHM) PADA MASALAH KNIGHT S TOUR

PENERAPAN ALGORITMA RUNUT-BALIK (BACKTRACKING) DALAM PENYELESAIAN PERMAINAN SUDOKU

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

FOURIER Juni 2014, Vol. 3, No. 1, APLIKASI ALGORITMA BRANCH AND BOUND UNTUK OPTIMASI JALUR PEMADAM KEBAKARAN KOTA YOGYAKARTA

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 09

Skripsi disajikan sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains Program Studi Matematika. oleh Ari Yulianto Nugroho

UJM 3 (1) (2014) UNNES Journal of Mathematics.

Analisis Penerapan Algoritma Backtracking Pada Pencarian Jalan Keluar di Dalam Labirin

ALGORITMA RUNUT-BALIK UNTUK MENGGANTIKAN ALGORITMA BRUTE FORCE DALAM PERSOALAN N-RATU

Transkripsi:

Algoritma Branch and Bound Bahan Kuliah IF51 Strategi Algoritmik Oleh: Rinaldi Munir 1

Algoritma Branch and Bound Algoritma Branch and Bound (B&B) juga merupakan metode pencarian di dalam ruang solusi secara sistematis. Algoritma runut-balik skema DFS Algoritma B&B skema BFS

Untuk mempercepat pencarian ke simpul solusi, maka setiap simpul diberi sebuah nilai ongkos (cost). Simpul berikutnya yang akan diekspansi tidak lagi berdasarkan urutan pembangkitannya (sebagaimana pada BFS murni), tetapi simpul yang memiliki ongkos yang paling kecil (least cost search) pada kasus minimasi.

Nilai ongkos pada setiap simpul i menyatakan taksiran ongkos termurah lintasan dari simpul i ke simpul solusi (goal node): c ˆ( i) = nilai taksiran lintasan termurah dari simpul status i ke status tujuan Dengan kata lain, c ˆ( i) menyatakan batas bawah (lower bound) dari ongkos pencarian solusi dari status i.

Tinjau kembali persoalan -ratu yang diselesaikan dengan skema BFS (murni). 1 x 1 =1 x 1 = x 1 = x 1 = 5 x = x = x = x =1 x = x 1 =1 x =1 x = x = x =1 x = x = 6 7 9 1 1 1 15 16 17 x = x = x = x = B B x =1 x = x = x = B B x = x = x =1 x = B 1 19 1 5 6 7 9 B B B B x = B B B B B 5

Solusi pertama dicapai pada simpul, yaitu X = (,, 1, ). Dengan skema BFS murni / FIFO, kita harus memperluas dulu simpul, simpul 15, dan simpul 16 sebelum memperluas simpul yang melahirkan simpul solusi, yaitu simpul. Pada algoritma B&B, pencarian ke simpul solusi dapat dipercepat dengan memilih simpul hidup berdasarkan nilai ongkos (cost). 6

Setiap simpul hidup diasosiasikan dengan sebuah ongkos yang menyatakan nilai batas (bound). Simpul hidup yang menjadi simpul-e ialah simpul yang mempunyai nilai batas terkecil (strategi pencarian berdasarkan biaya terkecil (least cost search)). 7

Untuk setiap simpul X, nilai batas ini dapat berupa [HOR7]: 1. jumlah simpul dalam upapohon X yang perlu dibangkitkan sebelum simpul solusi ditemukan, atau. panjang lintasan dari simpul X ke simpul solusi terdekat (dalam upapohon X ybs) Misal digunakan ukuran (b):

x 1 =1 x 1 = x 1 = x 1 = 1 5 B x =1 x = x 1 =1 B 9 1 B B x =1 x = 1 x = B simpul solusi 9

Pemberian nilai batas seperti pada persoalan N-Ratu di atas adalah nilai batas yang ideal, karena letak simpul solusi diketahui. Pada umumnya, untuk kebanyakan persoalan, letak simpul solusi tidak diketahui, karena itu, dalam prakteknya, nilai batas untuk setiap simpul umumnya berupa taksiran atau perkiraan. 1

Fungsi heuristik untuk menghitung taksiran cost: c ˆ( i) = fˆ ( i) gˆ( i) c ˆ( i) = ongkos untuk simpul i f ˆ( i ) = ongkos mencapai simpul i dari akar g ˆ( i) = ongkos mencapai simpul tujuan dari simpul i. Simpul berikutnya yang dipilih untuk diekspansi adalah simpul yang memiliki ĉ minimum.

Algoritma B&B: 1. Masukkan simpul akar ke dalam antrian Q. Jika simpul akar adalah simpul solusi (goal node), maka solusi telah ditemukan. Stop.. Jika Q kosong, tidak ada solusi. Stop.. Jika Q tidak kosong, pilih dari antrian Q simpul i yang mempunyai c ˆ( i) paling kecil. Jika terdapat beberapa simpul i yang memenuhi, pilih satu secara sembarang.. Jika simpul i adalah simpul solusi, berarti solusi sudah ditemukan, stop. Jika simpul i bukan simpul solusi, maka bangkitkan semua anak-anaknya. Jika i tidak mempunyai anak, kembali ke langkah. 5. Untuk setiap anak j dari simpul i, hitung c ˆ( j), dan masukkan semua anak-anak tersebut ke dalam Q. 6. Kembali ke langkah.

Permainan 15-Puzzle 1 15 1 5 5 6 7 7 6 1 9 1 9 1 1 1 1 15 (a) Susunan awal (b) Susunan akhir (c) Terdapat 16! (=,9 1 ) susunan ubin yang berbeda pada bidang kerangka 1

1 1 5 6 9 1 7 1 1 15 up right down left 5 1 1 1 1 5 6 5 6 5 6 7 5 6 9 1 7 9 1 7 9 1 9 1 7 1 1 15 1 1 15 1 1 15 1 1 15 right left up down right down left up down left 6 7 9 1 1 1 15 1 1 1 1 1 1 1 1 1 1 5 6 5 6 5 6 5 6 5 6 7 5 6 7 5 6 7 5 7 6 5 1 6 5 6 9 1 7 9 1 7 9 1 7 9 1 7 9 1 9 1 15 9 1 9 1 7 9 7 9 1 7 1 1 15 1 1 15 1 1 15 1 1 15 1 1 15 1 1 1 1 15 1 1 15 1 1 15 1 1 15 down 16 1 down left 19 1 left down left up down 1 1 5 6 5 6 5 6 7 5 6 7 9 1 7 9 1 7 9 1 9 1 1 1 15 1 1 15 1 1 15 1 1 15 17 1 1 1 6 1 1 1 5 9 1 7 5 6 9 1 7 5 6 9 1 7 5 6 9 1 7 1 1 1 15 1 1 15 1 1 15 1 1 15

Sebelum menelusuri ruang status untuk mencapai susunan akhir, kita patut menentukan apakah status tujuan dapat dicapai atau tidak dari status awal. POSISI(i) = posisi ubin bernomor i pada susunan akhir. KURANG(i) = jumlah ubin j sedemikian sehingga j < i dan POSISI(j) > POSISI(i). 15

1 15 1 5 5 6 7 7 6 1 9 1 9 1 1 1 1 15 Misalkan X = 1 jika pada status awal slot kosong berada pada salah satu posisi yang diarsir pada Gambar 7.c, dan X = jika slot kosong berada pada posisi lainnya. Teorema.1. Status tujuan hanya dapat dicapai dari status awal jika 16 KURANG ( i) i = 1 bernilai genap. X 16

Pada Gambar 7.a mempunyai X = dan 16 KURANG ( i) = 7, sehingga 7 = 7 (ganjil). i = 1 Oleh karena itu, status tujuan tidak dapat dicapai dari status awal pada Gambar 7.a. 17

Algoritma B&B: Nilai ongkos untuk simpul P: c ˆ( P) = f ( P) gˆ( P) f(p) = adalah panjang lintasan dari simpul akar ke P g ˆ( P) = taksiran panjang lintasan terpendek dari P ke simpul solusi pada upapohon yang akarnya P. 1

Salah satu cara menghitung g ˆ( P) : g ˆ( P) = jumlah ubin tidak kosong yang tidak terdapat pada susunan akhir Paling sedikit sejumlah g ˆ( P) perpindahan harus dilakukan untuk mentransformasikan status P ke status tujuan. 19

1 1 5 6 9 1 7 1 1 15 up right down left 5 1 1 1 1 5 6 5 6 5 6 7 5 6 9 1 7 9 1 7 9 1 9 1 7 1 1 15 1 1 15 1 1 15 1 1 15 5 5 5 right down left 1 1 1 1 5 6 7 5 6 7 5 6 7 9 1 9 1 15 9 1 1 1 15 1 1 1 1 15 up 5 5 down 1 1 5 6 7 5 6 7 9 1 9 1 1 1 15 1 1 15 simpul solusi

Persoalan Pedagang Keliling (Travelling Salesperson Problem - TSP) Misalkan (i) G=(V,E) adalah graf lengkap TSP (ii) V =n = jumlah simpul dalam graf G. Simpul- simpul diberi nomor 1,,, n. (iii) c ij = bobot sisi (i, j) (iv) perjalanan (tur) berawal dan berakhir di simpul 1. (v) S adalah ruang solusi, yang dalam hal ini S = { (1, π, 1) π adalah permutasi (,,..., n) } Solusi TSP dinyatakan sebagai X = (1, x 1, x,..., x n 1, 1) yang dalam hal ini xo= xn = 1 (simpul asal = simpul akhir= 1). 1

Contoh instansiasi persoalan TSP: 1 1 5 9 x 1 = x 1 = 15 x 1 = x = x = x = x = x = 5 6 7 9 1 x = x = x = x = x = x = 1 1 15 16

Ongkos atau nilai batas untuk setiap simpul dihitung dengan menggunakan matriks ongkostereduksi (reduced cost matrix) dari graf G. Sebuah matriks dikatakan tereduksi jika setiap kolom dan barisnya mengandung paling sedikit satu buah nol dan semua elemen lainnya nonnegatif.

Contoh: tinjau graf lengkap berarah TSP dengan n = 5 15 19 16 5 6 16 1 7 1 16

Lakukan reduksi baris: 15 19 16 5 6 16 1 7 1 16 R1 R R R R 5 1 1 1 16 1 1 15 1 Kemudian, lakukan reduksi kolom (dari hasil reduksi baris di atas): 1 1 16 1 1 15 1 C C 1 1 15 1 17 1 = A Total jumlah semua pengurang = (1 ) (1 ) = 5. 5

Nilai 5 ini adalah nilai batas untuk simpul akar, c ˆ ( root) = 5 1 5 6

Selanjutnya, misalkan A adalah matriks tereduksi untuk simpul R. Misalkan S adalah anak dari simpul R sedemikian sehingga sisi (R, S) pada pohon ruang status berkoresponden dengan sisi (i, j) pada perjalanan. Jika S bukan simpul daun, maka matriks bobot tereduksi untuk simpul S dapat dihitung sebagai berikut: 7

(a) ubah semua nilai pada baris i dan kolom j menjadi. Ini untuk mencegah agar tidak ada lintasan yang keluar dari simpul i atau masuk pada simpul j; (b) ubah A(j, 1) menjadi. Ini untuk mencegah penggunaan sisi (j, 1); (c) reduksi kembali semua baris dan kolom pada matriks A kecuali untuk elemen. Jika r adalah total semua pengurang, maka nilai batas untuk simpul S adalah: c ˆ ( S) = cˆ( R) A( i, j) r Hasil reduksi ini menghasilkan matriks B.

Secara umum, persamaan fungsi pembatas adalah: c ˆ ( S) = cˆ( R) A( i, j) r yang dalam hal ini, c ˆ( S) = bobot perjalanan minimum yang melalui simpul S (simpul di pohon ruang status) c ˆ( R) = bobot perjalanan minimum yang melalui simpul R, yang dalam hal ini R adalah orangtua dari S. A(i, j) = bobot sisi (i, j) pada graf G yang berkoresponden dengan sisi (R, S) pada pohon ruang status. r = jumlah semua pengurang pada proses memperoleh matriks tereduksi untuk simpul S. 9

Perhitungan selanjutnya: 1. Simpul ; Lintasan: 1, 15 = B Tidak ada pengurangan yang dilakukan, r =. c ˆ () = cˆ(1) A(1,) r = 5 1 = 5

1. Simpul ; Lintasan: 1, 15 1 C 1 = B Diperoleh r =. Nilai batas untuk simpul pada pohon ruang status: 5 17 5 (1,) ˆ(1) () ˆ = = = r A c c

. Simpul ; Lintasan: 1, = B Diperoleh r =. Nilai batas untuk simpul pada pohon ruang :tatus: c ˆ () = cˆ(1) A(1,) r = 5 = 5

. Simpul 5; Lintasan: 1, 5 15 R R 9 9 1 = B Diperoleh r = = 5. Nilai batas untuk simpul 5 pada pohon ruang status: 1 5 1 5 (1,5) ˆ(1) (5) ˆ = = = r A c c

Pohon ruang status yang terbentuk sampai saat ini adalah: 1 5 x 1 = x 1 = x 1 = x 1 =5 5 5 5 5 1

5. Simpul 6; Lintasan: 1,, = C Tidak ada pengurangan yang dilakukan, sehingga r =. Nilai batas untuk simpul 6 pada pohon ruang status: c ˆ (6) = cˆ() B(,) r = 5 = 5

6 6. Simpul 7; Lintasan: 1,, R 1 1 C 1 1 = C Diperoleh r = = 1. Nilai batas untuk simpul 7 pada pohon ruang status: 5 1 5 (,) ˆ() (7) ˆ = = = r B c c

7 7. Simpul ; Lintasan: 1,, 5 R C = 1 Diperoleh r =. Nilai batas untuk simpul pada pohon ruang status: 6 5 (,5) ˆ() () ˆ = = = r B c c

Pohon ruang status yang terbentuk sampai saat ini adalah: 1 5 x 1 = x 1 = x 1 = x 1 =5 5 5 5 5 1 x = x x = =5 6 7 5 6

9. Simpul 9; Lintasan: 1,,, 5 R R = D Diperoleh r = = 1. Nilai batas untuk simpul 9 pada pohon ruang status: 5 1 (,) ˆ(6) (9) ˆ = = = r C c c

9. Simpul 1; Lintasan: 1,,, 5 = D Tidak ada pengurangan yang dilakukan, sehingga r =. Nilai batas untuk simpul 9 pada pohon ruang status: (,5) ˆ(6) (9) ˆ = = = r C c c

Pohon ruang status yang terbentuk sampai saat ini adalah: 1 5 x 1 = x 1 = x 1 = x 1 =5 5 5 5 5 1 x = x x = =5 6 7 5 6 x = x =5 9 1 5 1

1. Simpul ; Lintasan: 1,,, 5, = E Diperoleh r =. Nilai batas untuk simpul pada pohon ruang status: (5,) ˆ(1) () ˆ = = = r D c c

Pohon ruang status yang terbentuk sampai saat ini adalah: 1 5 x 1 = x 1 = x 1 = x 1 =5 5 5 5 5 1 x = x x = =5 6 7 5 6 x = x =5 9 1 5 x =

x 1 = 1 5 x 1 = x 1 = x 1 =5 5 5 5 5 1 B B x = x x = =5 B 6 7 x = x =5 5 6 B B 9 1 5 B x = Karena tidak ada lagi simpul hidup di dalam pohon ruang status, maka X = (1,,, 5,, 1) menjadi solusi persoalan TSP di atas dengan bobot.