DYNAMIC PROGRAMMING
Diajukan untuk memenuhi salah satu tugas mata kuliah
Analisis Algoritma
Nama
Lamnidar Muharamsah
NIM
10114346
KELAS
Analisis Algoritma 3
DAFTAR ISI
KATA PENGANTAR
DAFTAR ISI..
BAB I..
1.1Latar
Belakang
Masalah
1.2Maksud
Dan
Tujuan
.
1.3Batasan
Masalah
BAB II.
2.1
Definisi
Strategi
Programming..
2.2
Kekurangan
Dan
Dynamic
Kelebihan
Strategi..
2.3 Multistage Graph Problem (Permasalahan Mencari Lintasan Pendek)
.
2.4
Study
Kasus
Dynamic
Programming..
2.4.1
Knapsack
Problem(Pendeketan
Dynamic
Programming)
..
2.4.2
Coin
Change
Problem.
2.4.3
Traveling
Salesman
Problem.
BAB III..
3.1
Algoritma
&
Program
Knapsack
Problem.
3.2
Algoritma
&
Program
Coin
Change
Problem.
3.3
Algoritma
&
Program
Traveling
Salesman
Problem
BAB I
PENDAHULUAN
I.1 Latar belakang masalah
Untuk Menyelesaikan Suatu Masalah Tentunya Membutuhkan Suatu Cara Atau
Solusi Agar Masalah Tersebut Terselesaikan Dengan Baik. Setiap Masalah Apapun
Tentunya Membutuhkan Yang Namanya Solusi Atau Cara. Dalam Sebuah Penelitianpun
Diperlukan Solusi Untuk Membantu Memecahkan Suatu Masalah. Sama Halnya Dengan
Laporan Ini Yang Membahas Tentang Dynamic Programming.
Dynamic Programming Mirip Seperti Metode Divide-And-Conquer Yang
Menyelesaikan Suatu Problem Dengan Mengkobinasikan Solusi Menjadi Subproblem. DivideAnd-Conquer Membagi Problem Menjadi Subproblem Yang Independen. Kemudian
Menyelesaikan Subproblem Secara Rekursif Dan Mengkombinasikan Solusi Tersebut Untuk
Menyelesaikan Problem Utama. Sedangkan Dynamic Programming Cocok Digunakan Ketika
Subproblem Tidak Indepen-Den, Jadi Ketika Subproblem Terbagi Menjadi Sub-Subproblem.
I.2 Maksud dan tujuan
Maksud dari program dinamis adalah suatu teknik matematis yang
biasanya digunakan untuk membuat suatu keputusan dari serangkaian keputusan yang
saling berkaitan. Dalam hal ini program dinamis menyediakan prosedur sistematis untuk
menentukan kombinasi keputusan yang optimal. Tujuan utama model ini ialah untuk
mempermudah penyelesaian persoalan optimasi yang mempunyai karakteristik tertentu. Tidak
seperti pemrograman linier, tidak ada bentuk matematis standar untuk perumusan pemrograman
dinamis. Akan tetapi, pemrograman dinamis adalah pendekatan umum untuk pemecahan
masalah dan persamaan tertentu yang digunakan di dalamnya harus dibentuk sesuai dengan
situasi masalah yang dihadapi.
BAB II
DYNAMIC PROGRAMMING
II.1 Definisi dynamic programming
Dynamic programming dapat didefinisikan sebagai suatu pendekatan
matematik yang memiliki prosedure sistematis yang dirancang sedemikian rupa dengan
tujuan untuk mengoptimalkan penyelesaian suatu masalah tertentu yang diuraikan menjadi subsub masalah yang lebih kecil yang terkait satu sama lain dengan tetap memperhatikan kondisi
dan batasan permasalahan tersebut. Struktur dynamic programming untuk dapat dimengerti
secara lebih jelas dan lebih spesifik, umumnya dideskripsikan dengan suatu sistem notasi.
Struktur dynamic programming disebut juga dengan model dynamic programming.
* Struktur Dan Sistem Notasi Dynamic Programming
Dynamic Programming (Biasa Disingkat DP) Adalah Suatu Teknik Algoritma Untuk
Memecahkan Masalah Dimana Solusi Optimal Dari Masalah Tersebut Dapat Dipandang Sebagai
Suatu Deret Keputusan.
Pada Umumnya Dynamic Programming Digunakan Untuk Masalah Optimisasi. Dimana
Suatu Permasalahan Memiliki Banyak Solusi. Setiap Solusi Memiliki Nilai Masing-Masing.
Dan Ingin Ditemukan Solusi Dengan Nilai Yang Optimum (Maksimal Atau Minimal).
Dynamic programming dapat dibagi menjadi empat tahap yang berurutan
sebagai berikut :
1. Karakterisasi struktur pada solusi optimasi
2. Mendefinisikan nilai solusi optimal secara rekursif
3. Menghitung nilai solusi optimal pada model bottom-up
4. Menyusun solusi optimal dari informasi hasil perhitungan
W1 = 10
W2=5
W3=15
W4=7
W5=6
W6=18
M =15
Jawaban
p1=2
p2=3
p3=5
p4=7
p5=1
p6=4
Property objek
Greedy by
Solusi
Optimal
Wi
Pi
Wi/Pi
profit
weight
density
10
1,7
15
18
4.5
Total bobot
15
11
13
15
Total keuntungan
54
42
52
54
Kesimpulan
Diberikan uang senilai 500. Tukar 500 dengan koin-koin uang yang tersedia. Koinkoin yang disediakan adalah koin 50 sebanyak 5 keping, koin 25 sebanyak 10 keping, koin 10
sebanyak 15 keping. Berapa jumlah koin yang diperlukan untuk penukaran tersebut? Jawaban
dari persoalan ini ada 2 macam , yaitu kombinasi yang maksimal dan kombinasi yang
minimal.
Pembahasan :
Untuk lebih mudah memahami persoalan , buatlah table yang memuat koin koin uang
yang tersedia beserta banyaknya.
Untuk kombinasi yang minimal jenis coin yang tersedia harus terlebih dahulu diurutkan
secara descending.
Indeks
Coin
Denom
amount
50
Dicari
25
10
Dicari
10
15
Dicari
Sedangkan untuk
mencari kombinasi yang
maksimal , jenis coin yang tersedia harus terlebih dahulu diurutkan secara ascending. Tabelnya seperti yang
terlihat di bawah ini :
Indeks
Coin
Denom
amount
10
15
Dicari
25
10
Dicari
50
Dicari
Perjalanan dimulai dan diakhiri di kota yang sama sebagai kota asal sales.
Salesman tidak boleh kembali ke kota asal sebelum seluruh kota terkunjungi.
Contoh
kasus
B
A
D
C
E
F
Seorang salesman akan mengawali perjalanannya di kota asal (Kota A) untuk
mengunjungi seluruh kota yaitu kota A sampai kota F. Perhatikan gambar berikut.
Dari study kasus tersebut didapatkan salah satu kemungkinan jalur yang
paling optimum dengan jalur urutan kota di mulai dari kota A, di lanjutkan
menuju ke kota E, dilanjutkan menuju ke kota F, dilanjutkan menuju ke kota C,
dilanjutkan menuju ke kota D, dilanjutkan kembali menuju ke kota B, lalu yang terakhir
kembali ke kota A. Tentunya hasil tersebut dengan mempertimbangkan jarak dari
masing-masing kota hingga menghasilkan kombinasi urutan kota dengan jarak yang
optimum.
Perhatikan gambar dibawah ini.
B
A
D
C
E
F
BAB III
PROGRAM