SlideShare a Scribd company logo
9
Most read
16
Most read
19
Most read
ANALISIS ALGORITMA
Strategi Algoritma: Dynamic Programming
Pemateri:
Adam Mukharil Bachtiar
adam@email.unikom.ac.id
Setelah mempelajari strategi algoritma
Divide and Conquer maka berikutnya
kita pelajari Dynamic Programming
(Program Dinamis).
Program Dinamis:
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.
Batasan Program Dinamis:
1 Terdapat sejumlah berhingga pilihan yang tersedia.
2 Solusi pada setiap tahap yang dibangun dari hasil solusi tahap sebelumnya.
3
Menggunakan persyaratan optimasi dan kendala untuk membatasi
sejumlah pilihan yang harus dipertimbangkan pada suatu tahap.
Pada program dinamis, rangkaian
keputusan yang optimal dibuat dengan
menggunakan Prinsip Optimalitas.
Prinsip Optimalitas:
Jika solusi total optimal, maka bagian solusi sampai
tahap ke-k juga optimal.
Pada Prinsip optimalitas berarti bahwa jika kita
bekerja dari tahap k ke tahap k + 1, kita dapat
menggunakan hasil optimal dari tahap k tanpa
harus kembali ke tahap awal.
Ongkos pada tahap k +1 =
(ongkos yang dihasilkan pada tahap k ) +
(ongkos dari tahap k ke tahap k + 1)
Karakteristik Program Dinamis:
1
Persoalan dapat dibagi menjadi beberapa tahap (stage), yang pada
setiap tahap hanya diambil satu keputusan.
2
Masing-masing tahap terdiri dari sejumlah status (state) yang
berhubungan dengan tahap tersebut. Secara umum, status merupakan
bermacam kemungkinan masukan yang ada pada tahap tersebut.
3
Hasil dari keputusan yang diambil pada setiap tahap ditransformasikan dari
status yang bersangkutan ke status berikutnya pada tahap berikutnya.
Karakteristik Program Dinamis:
4
Ongkos (cost) pada suatu tahap meningkat secara teratur (steadily)
dengan bertambahnya jumlah tahapan.
5
Ongkos pada suatu tahap bergantung pada ongkos tahap-tahap yang
sudah berjalan dan ongkos pada tahap tersebut.
6
Keputusan terbaik pada suatu tahap bersifat independen terhadap
keputusan yang dilakukan pada tahap sebelumnya.
Karakteristik Program Dinamis:
7
Adanya hubungan rekursif yang mengidentifikasikan keputusan terbaik
untuk setiap status pada tahap k memberikan keputusan terbaik untuk
setiap status pada tahap k + 1.
8 Prinsip optimalitas berlaku pada persoalan tersebut
Ada dua pendekatan yang bisa digunakan
pada Program Dinamis yaitu pendekatan
maju (forward atau up-down) dan
mundur (backward atau bottom-up).
Pendekatan Maju (Forward atau Up-Down)
Pendekatan Mundur (Forward atau Bottom-Up)
1
3
2
4
6
7
8
9
11
10
5
12
V1
V2
V3
V4
V5
Langkah-Langkah Program Dinamis:
1 Karakteristikkan struktur solusi optimal.
2 Definisikan secara rekursif nilai solusi optimal.
3 Hitung nilai solusi optimal secara maju atau mundur.
4 Konstruksi solusi optimal.
Problem: Shortest Path
Problem/Kasus:
Tentukan lintasan terpendek dari simpul 1 ke simpul 10.
1 3
2
4
5
6
7
8
9
10
7
2
4
3
1
3
4
5
3
3
3
6
4
1
4
6
4 3
2
4
Misalkan x1, x2, …, x4 adalah simpul-simpul yang dikunjungi pada tahap k (k = 1, 2, 3, 4) maka rute
yang dilalui adalah 1®x1®x2®x3®x4, yang dalam hal ini x4 = 10.
Solusi Program Dinamis Mundur:
!" # = %&'" (Basis)
!( # = )*+&( %&'( + !(-. /( , 1 = 1, 2, 3 (Rekurens)
Tentukan Relasi rekurens berikut menyatakan lintasan terpendek dari
status s ke x4 pada tahap k:
Keterangan:
/( = Peubah keputusan pada tahap k
%'&( = bobot (cost) sisi dari s ke /(
!( #, /( = total bobot (cost) lintasan dari s ke /(
!( # = nilai minimum dari !( #, /(
1 3
2
4
5
6
7
8
9
10
7
2
4
3
1
3
4
5
3
3
3
6
4
1
4
6
4 3
2
4
s
Solusi Optimum
f4(s) x4
*
8 3 10
9 4 10
!" # = %&'"Tahap 4:
Nilai () ∗ adalah nilai () yang meminimumkan !) #, ()
1 3
2
4
5
6
7
8
9
10
7
2
4
3
1
3
4
5
3
3
3
6
4
1
4
6
4 3
2
4
!" # = %&'(" )(*" + !, -"
Tahap 3:
x3
s
f3(s, x3) = cs,x3 + f4(x3) Solusi Optimum
8 9 f3(s) x3
*
5 4 8 4 8
6 9 7 7 9
7 6 7 6 8
1 3
2
4
5
6
7
8
9
10
7
2
4
3
1
3
4
5
3
3
3
6
4
1
4
6
4 3
2
4
!" # = %&'(" )(*" + !, -"
Tahap 3:
x3
s
f3(s, x3) = cs,x3 + f4(x3) Solusi Optimum
8 9 f3(s) x3
*
5 4 8 4 8
6 9 7 7 9
7 6 7 6 8
1 3
2
4
5
6
7
8
9
10
7
2
4
3
1
3
4
5
3
3
3
6
4
1
4
6
4 3
2
4
!" # = %&'(" )(*" + !, -"Tahap 2:
x2
s
f2(s, x2) = cs,x2 + f3(x2) Solusi Optimum
5 6 7 f2(s) x2
*
2 11 11 12 11 5 atau 6
3 7 9 10 7 5
4 8 8 11 8 5 atau 6
1 3
2
4
5
6
7
8
9
10
7
2
4
3
1
3
4
5
3
3
3
6
4
1
4
6
4 3
2
4
!" # = %&'(" )(*" + !, -"Tahap 1:
x1
s
f1(s, x1) = cs,x1 + f2(x1) Solusi Optimum
2 3 4 f1(s) x1
*
1 13 11 11 11 3 atau 4
x1 x2 x3 x4 Panjang Lintasan
Terpendek
1
3
4
5
5
6
8
8
9
10
10
10
11
11
11
Hasil:
Jadi ada tiga lintasan terpendek dari 1 ke 10, yaitu
1 ® 3 ® 5 ® 8 ® 10
1 ® 4 ® 5 ® 8 ® 10
1 ® 4 ® 6 ® 9 ® 10
Panjang ketiga lintasan tersebut sama, yaitu 11.

More Related Content

PDF
Analisis Algoritma - Strategi Algoritma Greedy
PPTX
Algoritma Greedy (contoh soal)
PDF
Analisis Algoritma - Langkah Desain Algoritma
PPTX
Algoritma pencarian lintasan jalur terpendek
PDF
Analisis Algoritma - Notasi Asimptotik
PDF
Matematika Diskrit - 01 pengantar matematika diskrit
PPT
Metode pencarian heuristik
PDF
Matematika Diskrit - 11 kompleksitas algoritma - 03
Analisis Algoritma - Strategi Algoritma Greedy
Algoritma Greedy (contoh soal)
Analisis Algoritma - Langkah Desain Algoritma
Algoritma pencarian lintasan jalur terpendek
Analisis Algoritma - Notasi Asimptotik
Matematika Diskrit - 01 pengantar matematika diskrit
Metode pencarian heuristik
Matematika Diskrit - 11 kompleksitas algoritma - 03

What's hot (20)

PPTX
Bab 5 penyederhanaan fungsi boolean
DOCX
Tugas mandiri struktur data
PPT
Bab 2 perhitungan galat
DOCX
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
DOCX
Contoh Soal Huffman Code
PPT
Algoritma Pencarian String matching
DOCX
Menentukan sistem persamaan linier dalam bentuk sistem konsisten dan inkonsisten
PDF
Laporan Praktikum Algoritma
PPTX
Graf Pohon
PDF
Analisis Algoritma - Teorema Notasi Asimptotik
PPTX
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
PDF
Matematika Diskrit - 11 kompleksitas algoritma - 02
PPTX
Perbandingan algoritma brute force , divide and conquer
PDF
Makalah I Rancangan Database CDM dan PDM
PDF
Relasi Rekurensi
PDF
Bab 01 logika mtk diskrit
PDF
Tugas Metode Numerik Golden ratio Pendidikan Matematika UMT
PPTX
Insertion sort
PPT
Bilangan kompleks lengkap
PPTX
Materi 3 Finite State Automata
Bab 5 penyederhanaan fungsi boolean
Tugas mandiri struktur data
Bab 2 perhitungan galat
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Contoh Soal Huffman Code
Algoritma Pencarian String matching
Menentukan sistem persamaan linier dalam bentuk sistem konsisten dan inkonsisten
Laporan Praktikum Algoritma
Graf Pohon
Analisis Algoritma - Teorema Notasi Asimptotik
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Matematika Diskrit - 11 kompleksitas algoritma - 02
Perbandingan algoritma brute force , divide and conquer
Makalah I Rancangan Database CDM dan PDM
Relasi Rekurensi
Bab 01 logika mtk diskrit
Tugas Metode Numerik Golden ratio Pendidikan Matematika UMT
Insertion sort
Bilangan kompleks lengkap
Materi 3 Finite State Automata
Ad

Similar to Analisis Algoritma - Strategi Algoritma Dynamic Programming (7)

PDF
11-Program Dinamis.pdf
PPT
Program yahahyesyshahshsshshahshshhshhs.ppt
PPT
Pemrograman Dinamis Pemrograman DinamisPemrograman DinamisPemrograman Dinamis...
PDF
model dinamik
PDF
Dynamic programming pertemuan 4
RTF
Program Dinamis Riset Operasi
PDF
Program Dinamis - Masalah Stagecoach
11-Program Dinamis.pdf
Program yahahyesyshahshsshshahshshhshhs.ppt
Pemrograman Dinamis Pemrograman DinamisPemrograman DinamisPemrograman Dinamis...
model dinamik
Dynamic programming pertemuan 4
Program Dinamis Riset Operasi
Program Dinamis - Masalah Stagecoach
Ad

More from Adam Mukharil Bachtiar (20)

PDF
Materi 8 - Data Mining Association Rule.pdf
PDF
Clean Code - Formatting Code
PDF
Clean Code - Clean Comments
PDF
PDF
Clean Code and Design Pattern - Meaningful Names
PDF
Model Driven Software Development
PDF
Scrum: How to Implement
PDF
Pengujian Perangkat Lunak
PDF
Data Mining Clustering
PPTX
Data Mining Klasifikasi (Updated 30 Desember 2020)
PDF
Analisis Algoritma - Strategi Algoritma Divide and Conquer
PDF
Analisis Algoritma - Penerapan Strategi Algoritma Brute Force
PDF
Analisis Algoritma - Strategi Algoritma Brute Force
PDF
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
PDF
Activity Diagram
PDF
UML dan Use Case View
PDF
Validasi ide Menggunakan Javelin Board (Idea Validation)
PDF
Analisis Algoritma - Pengantar Kompleksitas Algoritma
PDF
Analisis Algoritma - Pengantar Analisis Algoritma
PDF
Mini Google Design Sprint
Materi 8 - Data Mining Association Rule.pdf
Clean Code - Formatting Code
Clean Code - Clean Comments
Clean Code and Design Pattern - Meaningful Names
Model Driven Software Development
Scrum: How to Implement
Pengujian Perangkat Lunak
Data Mining Clustering
Data Mining Klasifikasi (Updated 30 Desember 2020)
Analisis Algoritma - Strategi Algoritma Divide and Conquer
Analisis Algoritma - Penerapan Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Activity Diagram
UML dan Use Case View
Validasi ide Menggunakan Javelin Board (Idea Validation)
Analisis Algoritma - Pengantar Kompleksitas Algoritma
Analisis Algoritma - Pengantar Analisis Algoritma
Mini Google Design Sprint

Analisis Algoritma - Strategi Algoritma Dynamic Programming

  • 1. ANALISIS ALGORITMA Strategi Algoritma: Dynamic Programming Pemateri: Adam Mukharil Bachtiar adam@email.unikom.ac.id
  • 2. Setelah mempelajari strategi algoritma Divide and Conquer maka berikutnya kita pelajari Dynamic Programming (Program Dinamis).
  • 3. Program Dinamis: 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.
  • 4. Batasan Program Dinamis: 1 Terdapat sejumlah berhingga pilihan yang tersedia. 2 Solusi pada setiap tahap yang dibangun dari hasil solusi tahap sebelumnya. 3 Menggunakan persyaratan optimasi dan kendala untuk membatasi sejumlah pilihan yang harus dipertimbangkan pada suatu tahap.
  • 5. Pada program dinamis, rangkaian keputusan yang optimal dibuat dengan menggunakan Prinsip Optimalitas.
  • 6. Prinsip Optimalitas: Jika solusi total optimal, maka bagian solusi sampai tahap ke-k juga optimal.
  • 7. Pada Prinsip optimalitas berarti bahwa jika kita bekerja dari tahap k ke tahap k + 1, kita dapat menggunakan hasil optimal dari tahap k tanpa harus kembali ke tahap awal.
  • 8. Ongkos pada tahap k +1 = (ongkos yang dihasilkan pada tahap k ) + (ongkos dari tahap k ke tahap k + 1)
  • 9. Karakteristik Program Dinamis: 1 Persoalan dapat dibagi menjadi beberapa tahap (stage), yang pada setiap tahap hanya diambil satu keputusan. 2 Masing-masing tahap terdiri dari sejumlah status (state) yang berhubungan dengan tahap tersebut. Secara umum, status merupakan bermacam kemungkinan masukan yang ada pada tahap tersebut. 3 Hasil dari keputusan yang diambil pada setiap tahap ditransformasikan dari status yang bersangkutan ke status berikutnya pada tahap berikutnya.
  • 10. Karakteristik Program Dinamis: 4 Ongkos (cost) pada suatu tahap meningkat secara teratur (steadily) dengan bertambahnya jumlah tahapan. 5 Ongkos pada suatu tahap bergantung pada ongkos tahap-tahap yang sudah berjalan dan ongkos pada tahap tersebut. 6 Keputusan terbaik pada suatu tahap bersifat independen terhadap keputusan yang dilakukan pada tahap sebelumnya.
  • 11. Karakteristik Program Dinamis: 7 Adanya hubungan rekursif yang mengidentifikasikan keputusan terbaik untuk setiap status pada tahap k memberikan keputusan terbaik untuk setiap status pada tahap k + 1. 8 Prinsip optimalitas berlaku pada persoalan tersebut
  • 12. Ada dua pendekatan yang bisa digunakan pada Program Dinamis yaitu pendekatan maju (forward atau up-down) dan mundur (backward atau bottom-up).
  • 13. Pendekatan Maju (Forward atau Up-Down) Pendekatan Mundur (Forward atau Bottom-Up) 1 3 2 4 6 7 8 9 11 10 5 12 V1 V2 V3 V4 V5
  • 14. Langkah-Langkah Program Dinamis: 1 Karakteristikkan struktur solusi optimal. 2 Definisikan secara rekursif nilai solusi optimal. 3 Hitung nilai solusi optimal secara maju atau mundur. 4 Konstruksi solusi optimal.
  • 16. Problem/Kasus: Tentukan lintasan terpendek dari simpul 1 ke simpul 10. 1 3 2 4 5 6 7 8 9 10 7 2 4 3 1 3 4 5 3 3 3 6 4 1 4 6 4 3 2 4 Misalkan x1, x2, …, x4 adalah simpul-simpul yang dikunjungi pada tahap k (k = 1, 2, 3, 4) maka rute yang dilalui adalah 1®x1®x2®x3®x4, yang dalam hal ini x4 = 10.
  • 17. Solusi Program Dinamis Mundur: !" # = %&'" (Basis) !( # = )*+&( %&'( + !(-. /( , 1 = 1, 2, 3 (Rekurens) Tentukan Relasi rekurens berikut menyatakan lintasan terpendek dari status s ke x4 pada tahap k: Keterangan: /( = Peubah keputusan pada tahap k %'&( = bobot (cost) sisi dari s ke /( !( #, /( = total bobot (cost) lintasan dari s ke /( !( # = nilai minimum dari !( #, /(
  • 18. 1 3 2 4 5 6 7 8 9 10 7 2 4 3 1 3 4 5 3 3 3 6 4 1 4 6 4 3 2 4 s Solusi Optimum f4(s) x4 * 8 3 10 9 4 10 !" # = %&'"Tahap 4: Nilai () ∗ adalah nilai () yang meminimumkan !) #, ()
  • 19. 1 3 2 4 5 6 7 8 9 10 7 2 4 3 1 3 4 5 3 3 3 6 4 1 4 6 4 3 2 4 !" # = %&'(" )(*" + !, -" Tahap 3: x3 s f3(s, x3) = cs,x3 + f4(x3) Solusi Optimum 8 9 f3(s) x3 * 5 4 8 4 8 6 9 7 7 9 7 6 7 6 8
  • 20. 1 3 2 4 5 6 7 8 9 10 7 2 4 3 1 3 4 5 3 3 3 6 4 1 4 6 4 3 2 4 !" # = %&'(" )(*" + !, -" Tahap 3: x3 s f3(s, x3) = cs,x3 + f4(x3) Solusi Optimum 8 9 f3(s) x3 * 5 4 8 4 8 6 9 7 7 9 7 6 7 6 8
  • 21. 1 3 2 4 5 6 7 8 9 10 7 2 4 3 1 3 4 5 3 3 3 6 4 1 4 6 4 3 2 4 !" # = %&'(" )(*" + !, -"Tahap 2: x2 s f2(s, x2) = cs,x2 + f3(x2) Solusi Optimum 5 6 7 f2(s) x2 * 2 11 11 12 11 5 atau 6 3 7 9 10 7 5 4 8 8 11 8 5 atau 6
  • 22. 1 3 2 4 5 6 7 8 9 10 7 2 4 3 1 3 4 5 3 3 3 6 4 1 4 6 4 3 2 4 !" # = %&'(" )(*" + !, -"Tahap 1: x1 s f1(s, x1) = cs,x1 + f2(x1) Solusi Optimum 2 3 4 f1(s) x1 * 1 13 11 11 11 3 atau 4
  • 23. x1 x2 x3 x4 Panjang Lintasan Terpendek 1 3 4 5 5 6 8 8 9 10 10 10 11 11 11 Hasil: Jadi ada tiga lintasan terpendek dari 1 ke 10, yaitu 1 ® 3 ® 5 ® 8 ® 10 1 ® 4 ® 5 ® 8 ® 10 1 ® 4 ® 6 ® 9 ® 10 Panjang ketiga lintasan tersebut sama, yaitu 11.