MATERI PERKULIAHAN
ANALISIS ALGORITMA
DYNAMIC PROGRAMMING
7
Ken Kinanti Purnamasari
Strategi Algoritma
1. Strategi Solusi Langsung (Direct Solution)
Brute-Force, Greedy
2. Strategi Berbasis Ruang Status (State-space Base)
Backtracking, Branch & Bound
3. Strategi Solusi Atas-Bawah (Top-Down Solution)
Divide & Conquer
4. Strategi Solusi Bawah-Atas (Down-Top Solution)
Dynamic Programming
DYNAMIC PROGRAMMING
An idea, like a ghost … must be spoken to a little, before it will explain itself.
Charles Dickens
Introduction
Richard
Bellman, 1950
Dynamic Programming
Programming =≠ Planning Computer Programming
Definisi
Dynamic Programming adalah pemecahan
masalah yang menguraikan solusi menjadi sekumpulan langkah, sehingga solusi
merupakan rangkaian keputusan yang saling berkaitan.
TSP
Shortest Path 0/1 Knapsack
Dynamic Programming
Greedy VS Dynamic Prog.
- Greedy : 1 rangkaian keputusan
- Dynamic Programming : banyak rangkaian keputusan
Dynamic Programming
Karakter Masalah
- Terdapat sejumlah berhingga pilihan yang mungkin.
- Solusi di suatu tahap dibangun sebagai hasil solusi tahap sebelumnya.
- Digunakan persyaratan optimasi untuk membatasi jumlah pilihan yang
dipertimbangkan.
Dynamic Programming
Prinsip Optimalitas
“ Jika solusi total optimal, maka bagian solusi sampai tahap ke-k juga optimal ”
Cost[k + 1] = Cost[k] + Cost[k] ke [k+1]
Dynamic Programming
Karakter Penyelesaian
- Masalah dibagi jadi beberapa tahap.
- Setiap tahap dapat menghasilkan suatu keputusan.
- Setiap tahap memiliki sejumlah status yang berhubungan dengan tahap tersebut.
- Cost meningkat secara teratur sesuai bertambahnya tahapan.
Dynamic Programming
Jenis DP
- Maju (forward)
bergerak mulai dari tahap 1 sampai n.
- Mundur (backward)
bergerak mulai dari tahap n sampai 1.
Dynamic Programming
Langkah Penyelesaian
- Tentukan karakter solusi optimal
- Definisikan secara rekursif nilai solusi optimal
- Hitung nilai solusi optimal dengan cara maju/
mundur
- Konstruksi solusi optimal
Dynamic Programming
Contoh Kasus
- TSP
- Shortest Path - 1/0 Knapsack
- Binary Search Tree - Algoritma Warshall - Algoritma Floyd
Dynamic Programming
Shortest Path
CONTOH KASUS 1
Mencari jalur terpendek antara dua buah lokasi tertentu.
Dynamic Programming
1 3
2
4
5
6
7
8
9
1 0
7
2
4
3
1
3
4
5
3 3
3 6 4
4 1 6
4 3
2
4
MUNDUR - Langkah Dinamis 4 :
CONTOH KASUS 1
Shortest Path Shortest Path
Dynamic Programming
ASAL
SOLUSI OPTIMUM
Bobot 4(ASAL) X4
8
3
109
4
1088 99
10 10
CONTOH KASUS 1
Shortest Path Shortest Path
Dynamic Programming
1 3
2
4
5
6
7
8
9
1 0
7
2
4
3
1
3
4
5
3 3
3 6 4
4 1 6
4 3
2
4
MUNDUR - Langkah Dinamis 3 :
CONTOH KASUS 1
Shortest Path Shortest Path
Dynamic Programming
ASAL
KEMUNGKINAN TUJUAN SOLUSI OPTIMUM
8 9 Bobot 3(ASAL) X3
5
4
86 9
7
7 6 7
8 9
55 66 77
4 7 6 8
8 9
CONTOH KASUS 1
Shortest Path Shortest Path
Dynamic Programming
1 3
2
4
5
6
7
8
9
1 0
7
2
4
3
1
3
4
5
3 3
3 6 4
4 1 6
4 3
2
4
MUNDUR - Langkah Dinamis 2 :
CONTOH KASUS 1
Shortest Path Shortest Path
Dynamic Programming
ASAL
KEMUNGKINAN TUJUAN SOLUSI OPTIMUM
5 6 7 Bobot (ASAL)2 X2
2 11 11 12
3 7 9 10
4 8 8 11
5 22
33 44
11
7 8
5 66 7
5
5 6
CONTOH KASUS 1
Shortest Path Shortest Path
Dynamic Programming
1 3
2
4
5
6
7
8
9
1 0
7
2
4
3
1
3
4
5
3 3
3 6 4
4 1 6
4 3
2
4
MUNDUR - Langkah Dinamis 1 :
CONTOH KASUS 1
Shortest Path Shortest Path
Dynamic Programming
ASAL
KEMUNGKINAN TUJUAN SOLUSI OPTIMUM
5 6 7 Bobot(ASAL)1 X1
2 13 11 11
2
11 11
3 4
3 4
CONTOH KASUS 1
Shortest Path Shortest Path
Dynamic Programming
1 3
2
4
5
6
7
8
9
1 0
7
2
4
3
1
3
4
5
3 3
3 6 4
4 1 6
4 3
2
4
CONTOH KASUS 1
Shortest Path Shortest Path
Dynamic Programming
1 3
2
4
5
6
7
8
9
1 0
7
2
4
3
1
3
4
5
3 3
3 6 4
4 1 6
4 3
2
4
Shortest Path : Bobot
11
1 – 3 – 5 – 8 – 10 1 – 4 – 5 – 8 – 10 1 – 4 – 6 – 9 - 10
CONTOH
KASUS 1
Dynamic ProgrammingShortest Path Shortest Path