Dynamic Programming Widodo. Pengantar  Dynamic Programming (DP) merupakan algoritma untuk memecahkan persoalan optimasi yaitu persoalan yang.

Slides:



Advertisements
Presentasi serupa
Masalah Optimasi Jaringan Model Optimasi Jaringan Penyelesaian Optimasi Jaringan dengan Simpleks Optimasi Jaringan.
Advertisements

Jembatan Königsberg.
DR Rahma Fitriani, S.Si., M.Sc.,
Tugas #3 File soal UTS sudah dikirim ke alamat masing-masing.
Pengantar Strategi Algoritma
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.
Program Dinamis (Dynamic Programming)
Design and Analysis of Algorithm Dynamic Programming
Algoritma Greedy (lanjutan)
Hill Climbing.
Hill Climbing Best First Search A*
Pengantar Strategi Algoritmik
*copyleft*1 Ade Ariyani A Agung Taufiqurrahman Annas Firdausi Hario Adit W Kartika Anindya P Kelompok XII Implementation of Dijkstra’s Shortest Path Algorithm.
Program Dinamis (dynamic programming): metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah (step) atau tahapan (stage)
Penerapan Int.Programming (IP) dgn Program Komputer.. Pertemuan 21 :
Matakuliah : T0034 / Perancangan & Analisis Algoritma
Pendefinisian problema sebagai proses pencarian ruang keadaan
Pertemuan 24 BRANCH AND BOUND (2)
Pertemuan 16 DYNAMIC PROGRAMMING : TRAVELING SALESMAN PROBLEM (TSP)
Pertemuan 13 Dynamic Programming
APLIKASI GRAF.
Algoritma Greedy (lanjutan)
Perbandingan Algoritma Brute Force dan Depth First Search (DFS) dalam Kasus Travelling Salesman Problem (TSP) Ervin Yohannes ( )
Graf Berarah / DIGRAPH PART 5 DOSEN : AHMAD APANDI, ST.
Fak. Teknologi Industri
Algoritma Bruteforce Team Fasilkom.
Metode Pencarian/Pelacakan
Bahan Kuliah IF2211 Strategi Algoritma
Graf Berlabel Graf Euler Graf Hamilton
Greedy Pertemuan 7.
Dynamic Programming (Program Dinamis)
Design and Analysis Algorithm
Program Dinamis.
Dynamic Programming Program dinamik adalah salah satu teknik matematika yang digunakan untuk mengoptimalkan proses pengambilan keputusan secara bertahap.
Studi kasus Graph Ali Ridho Barakbah.
Algoritma Bruteforce (disarikan dari diktat Strategi Algoritma, Rinaldi Munir) Team Fasilkom.
Algoritma Greedy (lanjutan)
ALGORITMA GREEDY, KRUSKAL, MINIMUM SPANNING TREE
Pengaplikasian Graf dalam Kehidupan Sehari-hari
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Pertemuan 20 GRAPH COLORING
Program Dinamis (Dynamic Programming)
Matematika Diskrit Semester Ganjil TA Short Path.
BAB 10: Short Path Matematika Diskrit DU1023 Heru Nugroho, S.Si., M.T.
PEMROGRAMAN DINAMIS Pertemuan 7
Program Dinamis (Dynamic Programming)
TESTING DAN IMPLEMENTASI PERTEMUAN 3
Program Dinamis (Dynamic Programming)
STRUKTUR DATA Struktur Data Graf.
STRUKTUR DATA (9) Struktur Data Graf.
Trees Directed Graph Algoritma Dijkstra
Program Dinamis (Dynamic Programming)
ALGORITMA GRAF.
Pertemuan 17 Lintasan Terpendek
Algoritma Floyd Teori Optimasi.
ALGORITMA GREEDY : MINIMUM SPANNING TREE
POHON DAN APLIKASI GRAF
PEMROGRAMAN KOMPUTER : OPERASI MATRIKS
Algoritma dan Struktur Data
Program Dinamis (Dynamic Programming)
Pengantar Strategi Algoritma
Teori Bahasa Otomata (1) 2. Searching
Program Dinamis (Dynamic Programming)
Aplikasi Graph Minimum Spaning Tree Shortest Path.
DETERMINISTIC DYNAMIC PROGRAMMING 1
Logika Matematika/DPH1A3
Graf dan Analisa Algoritma
Transcript presentasi:

Dynamic Programming Widodo

Pengantar  Dynamic Programming (DP) merupakan algoritma untuk memecahkan persoalan optimasi yaitu persoalan yang menuntut pencarian solusi optimum.  Pemecahan masalahnya dengan mengkombinasikan solusi-solusi dari sub- masalah  DP bisa dijalankan jika solusi masalah di dalamnya termasuk solusi-solusi submasalah

Pengantar  Ditemukan oleh ahli matematika: Richard Bellman tahun 1950  Istilah “programming” di sini mengacu pada planning bukan pemrograman komputer

Pengantar  DP adalah teknik untuk menyelesaikan masalah dengan cara membagi masalah ke dalam beberapa sub masalah yang tidak saling independen (overlapping sub problem)  DP adalah metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah (step) atau tahapan (stage) sedemikian sehingga solusi dari sebuah masalah dapat dipandang sebagai serangkaian keputusan yang saling berkaitan

Multistage Graph  Multistage Graph (Graf Multi Tahap) adalah graf dengan sifat:  Graf berarah (directed graph)  Setiap edge-nya punya bobot (weighted graph)  Hanya tdp 1 source (s) dan 1 sink ( t )  Lintasan dari source ke sink terdiri atas beberapa stage (V 1 s.d V k )  Terdapat stage sebanyak k di mana k ≥ 2.

Multistage Graph problem  Problem mencari lintasan terpendek dari source ke sink:

Multistage Graph Problem  Penyelesaian Multistage Graph Problem berdasar prinsip: Jalur terpendek dari satu node ke node lain di stage tertentu merupakan jalur terpendek dari stage sebelumnya ditambah panjang salah satu edge penghubung stage.  Metode Forward  Menghitung jarak dari source ke sink  Metode Backward  Menghitung jarak dari sink ke source

Metode Backward  Prinsip : analisis dilakukan dengan menghitung path (jalur) dari suatu node ke sink  Rumus : cost(i,j) = min{c(j,k) + cost(i+1,k)}  cost(i,j) artinya panjang lintasan dari node j di stage i menuju sink (t)  c(j,k) artinya panjang lintasan dari node j ke node k

Metode Backward cost(4,I) = c(I,L) = 7 cost(4,J) = c(J,L) = 8 cost(4,K) = c(K,L) = 11 cost(3,F) = min { c(F,I) + cost(4,I) | c(F,J) + cost(4,J) } cost(3,F) = min { | } = 17 cost(3,G) = min { c(G,I) + cost(4,I) | c(G,J) + cost(4,J) } cost(3,G) = min { | } = 12 cost(3,H) = min { c(H,J) + cost(4,J) | c(H,K) + cost(4,K) } cost(3,H) = min { | } = 18 cost(2,B) = min { c(B,F) + cost(3,F) | c(B,G) + cost(3,G) | c(B,H) + cost(3,H) } cost(2,B) = min { | | } = 20 cost(2,C) = min { c(C,F) + cost(3,F) | c(C,G) + cost(3,G) } cost(2,C) = min { | } = 15 cost(2,D) = min { c(D,H) + cost(3,H) } cost(2,D) = min { } = 27 cost(2,E) = min { c(E,G) + cost(3,G) | c(E,H) + cost(3,H) } cost(2,E) = min { | } = 18 cost(1,A) = min { c(A,B) + cost(2,B) | c(A,C) + cost(2,C) | c(A,D) + cost(2,D) | c(A,E) + cost(2,E) } cost(1,A) = min { | | | } = 21

Metode Forward  Prinsip : analisis dilakukan dengan menghitung path (jalur) dari source ke suatu node  Rumus : bcost(i,j) = min{bcost(i–1,l) + c(l,j)}  bcost(i,j) artinya panjang lintasan backward dari source (s) menuju node j di stage i  c(j,l) artinya panjang lintasan dari node j ke node l

Metode Forward cost(2,B) = c(A,B) = 7 cost(2,C) = c(A,C) = 6 cost(2,D) = c(A,D) = 5 cost(2,E) = c(A,E) = 9. cost(3,F) = min { c(B,F) + bcost(2,B) | c(C,F) + bcost(2,C) } cost(3,F) = min { | } = 11 cost(3,G) = min { c(B,G) + bcost(2,B) | c(C,G) + bcost(2,C) | c(E,G) + bcost(2,E) } cost(3,G) = min { | | } = 9 cost(3,H) = min { c(B,H) + bcost(2,B) | c(D,H) + bcost(2,D) | c(E,H) + bcost(2,E) } cost(3,H) = min { | | } = 14 cost(4,I) = min { c(F,I) + bcost(3,F) | c(G,I) + bcost(3,G) } cost(4,I) = min { | } = 14 cost(4,J) = min { c(F,J) + bcost(3,F) | c(G,J) + bcost(3,G) | c(H,J) + bcost(3,H) } cost(4,J) = min { | | } = 16 cost(4,K) = min { c(H,K) + cost(3,H) } cost(4,K) = min { } = 22 cost(5,L) = min { c(I,L) + bcost(4,I) | c(J,L) + bcost(4,J) | c(K,L) + bcost(4,K) } cost(5,L) = min { | | } = 21 Rute terpendek adalah A-C-G-I-L dengan panjang 21

Rute terpendek

Matrix-chain multiplication problem  Perkalian matriks bersifat asosiatif, artinya semua jenis variasi pengelompokkan akan menghasilkan produk sama, namun berbeda efisiensi komputasinya  Perkalian matriks dapat dilakukan jika compatible, yaitu jumlah kolom pada matriks A sama dengan jumlah baris pada matriks B A. B [4x3]. [3.5]

Matrix-chain multiplication problem

Contoh  Perkalian 3 buah matriks (A 1, A 2, A 3 ) Dimensi tiap-tiap matriks adalah: 10X100, 100X5, 5X50. PerkalianA 1 A 2 A 3 dapat dilakukan dengan 2 cara: ((A 1 A 2 ) A 3 ) atau dengan (A 1 (A 2 A 3 )) Cara I : = 7500 perkalian skalar Cara II: = perkalian skalar Cara I 10x lebih efisien dari cara II.

Matrix-chain multiplication problem  Berapa banyak cara untuk perkalian A 1 A 2 A 3 A 4 ? Ada 5 cara (A 1 (A 2 (A 3 A 4 ))) (A 1 ((A 2 A 3 )A 4 )) ((A 1 A 2 )(A 3 A 4 )) ((A 1 (A 2 A 3 ))A 4 ) (((A 1 A 2 )A 3 )A 4 )