Coconote
AI notes
AI voice & video notes
Export note
Try for free
Pengenalan Algoritma Program Dinamis
Aug 19, 2024
Kuliah Program Dinamis
Pengantar
Topik: Penyelesaian persoalan dengan algoritma Program Dinamis (Dynamic Programming).
Tujuan kuliah: Menjelaskan gambaran umum algoritma dan penyelesaian masalah dengan algoritma ini.
Apa itu Program Dinamis?
Definisi: Metode pemecahan masalah dengan menguraikan solusi menjadi sekumpulan tahap (stages).
Solusi masalah dianggap sebagai serangkaian keputusan yang saling berkaitan.
Kata "program" berarti perencanaan, sedangkan "dinamis" menunjukkan pencarian solusi yang berkembang.
Aplikasi Program Dinamis
Umumnya digunakan untuk menyelesaikan masalah optimasi.
Contoh masalah:
Memaksimumkan keuntungan (contoh: masalah knapsack).
Meminimumkan bobot (contoh: Traveling Salesman Problem - TSP).
Perbedaan dengan Algoritma Greedy
Algoritma Greedy: Menghasilkan satu keputusan terbaik di setiap tahap.
Program Dinamis: Menghasilkan lebih dari satu keputusan dengan mempertimbangkan semua kemungkinan.
Prinsip Optimalitas
Jika solusi keseluruhan optimal, maka bagian solusinya juga harus optimal.
Contoh ilustrasi: Menggunakan hasil optimal dari tahap sebelumnya untuk menghitung ongkos tahap berikutnya.
Karakteristik Masalah yang Diselesaikan dengan Program Dinamis
Solusi dapat dibagi menjadi beberapa tahap, masing-masing dengan satu keputusan.
Masing-masing tahap memiliki satu atau lebih status yang berhubungan.
Hasil dari keputusan pada setiap tahap ditransformasikan ke status berikutnya.
Ongkos meningkat secara teratur.
Ongkos pada suatu tahap bergantung pada ongkos tahap sebelumnya.
Hubungan rekursif untuk mengidentifikasi keputusan terbaik.
Optimalitas berlaku pada masalah tersebut.
Pendekatan pada Program Dinamis
Terdapat dua pendekatan utama:
Maju (Forward)
: Menghitung dari tahap 1 hingga N.
Mundur (Backward)
: Menghitung dari tahap N hingga 1.
Langkah-langkah Pengembangan Algoritma Program Dinamis
Menentukan karakteristik dan struktur masalah.
Mendefinisikan formula rekursif.
Melakukan perhitungan menggunakan pendekatan maju atau mundur.
Rekonstruksi solusi dari tahap terakhir ke tahap pertama.
Contoh Masalah: Lintasan Terpendek
Masalah: Menentukan lintasan terpendek dari simpul 1 ke simpul 10 pada graf berbobot.
Pendekatan: Menggunakan prinsip optimalitas untuk menghitung bobot optimal dari setiap simpul.
Hasil: Lintasan terpendek memiliki bobot total 11.
Contoh Masalah: Knapsack Problem
Masalah: Memilih objek dengan bobot dan keuntungan tertentu sehingga total keuntungan maksimal dalam kapasitas yang diberikan.
Pendekatan: Menentukan keputusan berdasarkan kapasitas yang tersisa setelah memasukkan objek.
Kesimpulan
Program Dinamis adalah teknik yang kompleks namun bermanfaat untuk menyelesaikan masalah optimasi.
Penting untuk memahami struktur masalah dan prinsip optimalitas agar dapat menerapkan algoritma ini dengan efektif.
📄
Full transcript