Pertemuan 16 DYNAMIC PROGRAMMING : TRAVELING SALESMAN PROBLEM (TSP)

Slides:



Advertisements
Presentasi serupa
Bahan Kuliah Matematika Diskrit
Advertisements

Metode Pencarian Heuristik
Matematika Diskrit Dr.-Ing. Erwin Sitompul
Graf Berarah PART 5 DOSEN : AHMAD APANDI, ST.
GRAF TIDAK BERARAH PART 2 Dosen : Ahmad Apandi, ST
Pengenalan Graph Disusun Oleh: Budi Arifitama Pertemuan 9.
Design and Analysis of Algorithm Dynamic Programming
SEARCH 2 Pertemuan ke Lima.
Hill Climbing.
Pencarian Heuristik.
Struktur Data Graph.
Hill Climbing Best First Search A*
Bahan Kuliah Matematika Diskrit
Pertemuan 6 TREE & BINARY TREE
Pertemuan 4 Mata Kuliah : Kecerdasan Buatan
Ruang Keadaan (state space)
Matakuliah : T0034 / Perancangan & Analisis Algoritma
Pertemuan 23 BRANCH AND BOUND (1)
Pertemuan 24 BRANCH AND BOUND (2)
Kuliah Sistem Fuzzy Pertemuan 13 “Algoritma Genetika” (lanjutan)
Pertemuan 7 PRIORITY QUEUE & HEAP
Pertemuan 13 Dynamic Programming
Pertemuan 5 STACK & QUEUE
Pencarian Heuristik.
Pertemuan 21 BASIC SEARCH AND TRAVERSAL
TEORI GRAF.
Bahan Kuliah IF2091 Struktur Diskrit
Informed (Heuristic) Search
Dynamic Programming Widodo. Pengantar  Dynamic Programming (DP) merupakan algoritma untuk memecahkan persoalan optimasi yaitu persoalan yang.
Bahan Kuliah IF2091 Struktur Diskrit
Pertemuan 22 BACKTRACKING
Pencarian Heuristik.
Perbandingan Algoritma Brute Force dan Depth First Search (DFS) dalam Kasus Travelling Salesman Problem (TSP) Ervin Yohannes ( )
Pert 4 METODE PENCARIAN.
Bahan Kuliah IF2151 Matematika Diskrit
APLIKASI GRAF Pertemuan 13
Metode Pencarian/Pelacakan
Pencarian Simulated Annealing
Pencarian Simulated Annealing
Pertemuan 25 MERANCANG ALGORITMA DENGAN KOMPLEKSITAS TERTENTU
Graf Berlabel Graf Euler Graf Hamilton
Pertemuan 6 Pencarian Heuristik
Bahan Kuliah IF2151 Matematika Diskrit
GRAF TIDAK BERARAH PART 2 Dosen : Ahmad Apandi, ST
Program Dinamis.
Pertemuan 6 Pencarian Heuristik
Pertemuan 13 DYNAMIC PROGRAMMING : FIBONACCI SEQUENCE PROBLEM
Pengaplikasian Graf dalam Kehidupan Sehari-hari
Pertemuan 26 PRAKTEK ANALISIS ALGORITMA
LATIHAN 26 Buatlah sebuah algoritma untuk menampilkan jumlah faktor pembagi bilangan X, dengan X adalah 1 hingga N ! Misal Jumlah faktor dari 1 adalah.
Pertemuan 20 GRAPH COLORING
Pertemuan 8 Review Berbagai Struktur Data Lanjutan …..
Program Dinamis (Dynamic Programming)
Pertemuan 14 The Traveling Sales Person Problem
Program Dinamis (Dynamic Programming)
STRUKTUR DATA Struktur Data Graf.
Trees Directed Graph Algoritma Dijkstra
Program Dinamis (Dynamic Programming)
Pathfinding dan Tactical AI
Pertemuan 17 Lintasan Terpendek
Informed (Heuristic) Search
Graf (bagian 2) Oleh: Taufik Hidayat Struktur Diskrit.
Bahan Kuliah IF2091 Struktur Diskrit
Pertemuan 19 HUFFMAN CODE
Rute perdagangan.
Program Dinamis (Dynamic Programming)
Bahan Kuliah IF2091 Struktur Diskrit
Bahan Kuliah Matematika Diskrit
Program Dinamis (Dynamic Programming)
Graf dan Analisa Algoritma
Transcript presentasi:

Pertemuan 16 DYNAMIC PROGRAMMING : TRAVELING SALESMAN PROBLEM (TSP) Matakuliah : T0034 / Perancangan & Analisis Algoritma Tahun : 2008 Pertemuan 16 DYNAMIC PROGRAMMING : TRAVELING SALESMAN PROBLEM (TSP)

TRAVELING SALESMAN PROBLEM Ada seorang pedagang keliling (salesman) yang hendak menawarkan barang dagangannya ke beberapa alamat. Jarak antar alamat-alamat itu berbeda-beda. Pedagang berusaha mencari rute agar dia bisa mengunjungi semua alamat tersebut secepat mungkin (rute terpendek), kemudian kembali ke rumahnya sendiri. Problem inilah yang dinamakan dengan Traveling Salesman Problem (atau sering disingkat TSP). [buku utama, bab 7.6] Bina Nusantara

PENERAPAN TSP Dalam penerapan TSP di komputer, setiap alamat dilambangkan dengan sebuah node di graph. Semua jalur antar alamat dilambangkan dengan edge yang memiliki weight (bobot). Misalkan si pedagang memulai perjalanannya dari node A (rumahnya sendiri), dia harus mengunjungi semua alamat yang lain tepat 1 kali (tiap node dikunjungi 1 kali, tidak boleh kurang dan tidak boleh lebih) dan akhirnya harus kembali pulang ke rumahnya sendiri. Bina Nusantara

CONTOH KASUS p(i,L) = min[c(j,i) + p(j,L–{j})] [buku utama, ilustrasi 7.16] Rumus Dynamic Programming untuk TSP p(i,L) = min[c(j,i) + p(j,L–{j})] Bina Nusantara

REPRESENTASI MASALAH TSP Digunakan Cost Matrix, bukan Adjacency Matrix, mengapa? Jika antara 2 node tidak ada edge yang menghubungkan, berarti tidak ada jalur yang bisa ditempuh antara 2 node tersebut. Jika digunakan nilai 0 dalam Adjacency Matrix, maka algoritma Dynamic Programming akan mendeteksinya sebagai jarak yang sangat dekat, seolah terdapat jalur. Bina Nusantara

RUMUS TSP p(i,L) = min[c(j,i) + p(j,L–{j})] p(i,S) adalah panjang jalur dari node awal menuju node i setelah sebelumnya melewati rangkaian jalur L. Jarak dari node j ke node i dilambangkan dengan c(j,i). Perhatikan bahwa c(j,i) tidak sama dengan c(i,j) karena graph di atas mengandung 2 directed edge dengan arah berbeda dan weight berbeda. L-{j} dapat diartikan sebagai rangkaian jalur L yang dikurangi dengan node j. Maka, panjang lintasan terpendek untuk graph pada gambar di atas adalah p(A,{B,C,D}) yang artinya panjang lintasan dari node awal menuju node A setelah melewati node B, C, D dengan urutan apa pun (dicari yang terpendek). [buku utama, ilustrasi 7.17] Bina Nusantara

PERHITUNGAN TSP p(B,Ø)=c(A,B)=12 p(C,Ø)=c(A,C)=11 p(D,Ø)=c(A,D)=16 p(B,{C})=c(C,B)+p(C,Ø)=25 p(B,{D})=c(D,B)+p(D,Ø)=27 p(C,{B})=c(B,C)+p(B,Ø)=29 p(C,{D})=c(D,C)+p(D,Ø)=33 p(D,{B})=c(B,D)+p(B,Ø)=22 p(D,{C})=c(C,D)+p(C,Ø)=29 p(B,{C,D})= min[c(C,B)+p(C,{D})|c(D,B)+p(D,{C})] = min[14+33|11+29] = 40 p(C,{B,D})= min[c(B,C)+p(B,{D})|c(D,C)+p(D,{B})] = min[15+27|17+22] = 39 p(D,{B,C})= min[c(B,D)+p(B,{C})|c(C,D)+p(C,{B})] = min[10+25|18+27] = 35 p(A,{B,C,D})= min[c(B,A)+p(B,{C,D})| c(C,A)+p(C,{B,D})| c(D,A)+p(D,{B,C})] = min[15+40|8+39|9+35] = 44 Panjang lintasan terpendek = 44 [buku utama, ilustrasi 7.18] Bina Nusantara

PERHITUNGAN TSP p(B,Ø)=c(A,B)=12 p(C,Ø)=c(A,C)=11 p(D,Ø)=c(A,D)=16 p(B,{C})=c(C,B)+p(C,Ø)=25 p(B,{D})=c(D,B)+p(D,Ø)=27 p(C,{B})=c(B,C)+p(B,Ø)=29 p(C,{D})=c(D,C)+p(D,Ø)=33 p(D,{B})=c(B,D)+p(B,Ø)=22 p(D,{C})=c(C,D)+p(C,Ø)=29 p(B,{C,D})= min[c(C,B)+p(C,{D})|c(D,B)+p(D,{C})] = min[14+33|11+29] = 40 p(C,{B,D})= min[c(B,C)+p(B,{D})|c(D,C)+p(D,{B})] = min[15+27|17+22] = 39 p(D,{B,C})= min[c(B,D)+p(B,{C})|c(C,D)+p(C,{B})] = min[10+25|18+27] = 35 p(A,{B,C,D})= min[c(B,A)+p(B,{C,D})| c(C,A)+p(C,{B,D})| c(D,A)+p(D,{B,C})] = min[15+40|8+39|9+35] = 44 Lintasan terpendek = ACBDA [buku utama, ilustrasi 7.18] Bina Nusantara

LINTASAN TERPENDEK TSP Bina Nusantara

Diketahui Cost Matrix sebuah Graph TSP sebagai berikut : LATIHAN Diketahui Cost Matrix sebuah Graph TSP sebagai berikut : Gambarkan Graph TSP nya ! Temukan lintasan TSP terpendek dengan menggunakan Dynamic Programming ! Bina Nusantara

Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? REVIEW Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? Bina Nusantara