Dynamic Programming Program dinamik adalah salah satu teknik matematika yang digunakan untuk mengoptimalkan proses pengambilan keputusan secara bertahap.

Slides:



Advertisements
Presentasi serupa
REKURSIF.
Advertisements

MATHEMATICS INDUCTION AND BINOM THEOREM
Bab 1 PENDAHULUAN.
Koefisien Binomial.
DODGE-ROMIG PLANS REVISITED SHYAMAPRASAD MUKHERJEE 2009.
KALKULUS I SRI REDJEKI.
KALKULUS I NI KETUT SARI.
REKURSIF.
Induksi Matematika.
7. INDUKSI MATEMATIKA.
BAB VII KOMBINATORIAL & PELUANG DISKRIT.
BAB VI KOMBINATORIL DAN PELUANG DISKRIT.
Sistem Persamaan Linier
Program Dinamis (Dynamic Programming)
Design and Analysis of Algorithm Dynamic Programming
Hill Climbing.
KOMBINATORIAL & PELUANG DISKRIT waniwatining.
KOMBINATORIAL DAN PELUANG DISKRIT
Program Dinamis (dynamic programming): metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah (step) atau tahapan (stage)
ASSALAMU’ALAIKUM Wr. Wb.
METODE NUMERIK.
Matematika Komputasi.
LINEAR PROGRAMMING Pertemuan 05
Sistem Persamaan Linier Oleh : Sudaryatno Sudirham
Pertemuan 16 DYNAMIC PROGRAMMING : TRAVELING SALESMAN PROBLEM (TSP)
Pertemuan 13 Dynamic Programming
Programa Dinamis.
Program Linier Dengan Grafik
Dynamic Programming Widodo. Pengantar  Dynamic Programming (DP) merupakan algoritma untuk memecahkan persoalan optimasi yaitu persoalan yang.
Algoritma Greedy (lanjutan)
LINEAR PROGRAMMING.
Induksi Matematika.
MEDIA PEMBELAJARAN MATEMATIKA
DISUSUN OLEH : IPHOV KUMALA SRIWANA
PEMROGRAMAN DINAMIS Modul 9. PENELITIAN OPERASIONAL Oleh : Eliyani
Pendekatan Inferensi dalam Sistem Pakar
Greedy Pertemuan 7.
Dynamic Programming (Program Dinamis)
Design and Analysis Algorithm
Program Linier (Linier Programming)
Program Dinamis.
MATERI PERKULIAHAN ANALISIS ALGORITMA
Dasar Pemrograman Dan Bahasa Pemrograman
ALGORITMA GREEDY, KRUSKAL, MINIMUM SPANNING TREE
MATERI PERKULIAHAN ANALISIS ALGORITMA
Probabilitas dan Statistika
MATERI PERKULIAHAN ANALISIS ALGORITMA
GRAMMER ATAU TATA BAHASA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Permutasi.
Program Dinamis (Dynamic Programming)
PEMROGRAMAN DINAMIS Pertemuan 7
Program Dinamis (Dynamic Programming)
Program Dinamis (Dynamic Programming)
Trees Directed Graph Algoritma Dijkstra
Logika Matematika Bab 5: Induksi Matematika
Perpangkatan dan Bentuk Akar
Algoritma Floyd Teori Optimasi.
Algoritma Rekursif.
Operasi Hitung Pecahan Bentuk Aljabar
Mata Kuliah :Teori Bilangan
ALGORITMA GREEDY : MINIMUM SPANNING TREE
Assalamu’alaikum Wr. Wb
Matematika Diskrit TIF (4 sks) 3/9/ /5/2010.
Konsep Simulasi Ipung Permadi, S.Si, M.Cs.
TEORI BILANGAN INDUKSI MATEMATIKA
Dasar Pemrograman Dan Bahasa Pemrograman
Induksi Matematik Pertemuan 7 Induksi Matematik.
dan LOGARITMA EKSPONEN Kelompok 3 :
OPERATIONS RESEARCH – I
Transcript presentasi:

Dynamic Programming Program dinamik adalah salah satu teknik matematika yang digunakan untuk mengoptimalkan proses pengambilan keputusan secara bertahap ganda. Inti dari teknik ini ialah membagi satu persoalan atas beberapa bagian persoalan (tahap), kemudian memecahkan tiap tahap sampai seluruh persoalan telah terpecahkan. Penggunanan program dinamik untuk mencari bobot minimum dari suatu pohon merentang merupkan salah satu alternatif selain penggunaan algoritma greedy. Prosedur pemecahan persoalan dlam program dinamik dilakukan secara rekursif. Ini berarti bahwa setiap kali diambil keputusan, diperhatikan keadaan yang dihasilkan oleh keputusan sebelumnya.

Terdapat sejumlah berhingga pilihan yang mungkin Program Dinamik (Dynamic Programming) adalah 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. Karakteristik penyelesaian masalah dengan algoritma program Dinamik : Terdapat sejumlah berhingga pilihan yang mungkin Solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya. Kita menggunakan persyaratan optimasi dankendala untuk membatasi sejumlah pilihan yang harus dipertimbangkan pada satu tahap Program dinamis (dynamic programming) yang ditemukan oleh Richard Bellman pada tahun 1953 merupakan suatu metode penyelesaian masalah di mana solusi persoalan dapat dipandang sebagai serangkaian keputusan yang saling berkaitan. Program dinamis merupakan salah satu metode yang biasanya digunakan untuk menyederhanakan persoalan-persoalan rekursif.

Seperti halnya algoritma greedy, program dinamis juga merupakan suatu ancangan untuk menyelesaikan masalah optimasi. Hanya saja, pada metode greedy hanya satu rangkaian keputusan yang pernah dihasilkan,sedangkan dengan program dinamis lebih dari satu rangkaian keputusan. Program dinamis fokus pada bagian permasalahan yang tumpang-tindih (overlapping subproblems). Rangkaian keputusan dibuat dengan prinsip optimalitas (optimal substructure), dimana solusi optimal dari bagian solusi permasalahan bisa digunakan untuk menemukan solusi optimal untuk masalah secara keseluruhan. Dalam matematika dan ilmu komputer, pemrograman dinamis adalah metode untuk memecahkan masalah yang kompleks dengan membagi mereka ke dalam subproblems yang lebih sederhana. Hal ini berlaku untuk masalah menunjukkan sifat overlapping subproblem yang hanya sedikit lebih kecil dan optimal substruktur (dijelaskan di bawah). Ketika diterapkan, metode ini membutuhkan waktu jauh lebih sedikit daripada metode naif.

Ide kunci di balik pemrograman dinamis adalah cukup sederhana  Ide kunci di balik pemrograman dinamis adalah cukup sederhana. Secara umum, untuk memecahkan persoalan yang diberikan, kita perlu untuk memecahkan berbagai masalah (submasalah), kemudian menggabungkan solusi dari submasalah untuk mencapai solusi secara keseluruhan. Seringkali, banyak dari submasalah ini benar-benar sama. Pendekatan pemrograman dinamis berusaha untuk memecahkan setiap subproblem hanya sekali, sehingga mengurangi jumlah perhitungan. Hal ini sangat berguna ketika jumlah subproblems mengulangi secara eksponensial besar. Penerapan program dinamis ini sangat luas. Di antaranya, yang sederhana, adalah untung menghitung angka koefisien binominal. Juga terdapat sejumlah algoritma lain yang didasarkan pada program dinamis, seperti algoritma Cocke-Younger-Kasami (CYK) untuk menentukan  apakah string dapat diterima suatu context-free grammar, algoritma Viterbi untuk model hidden Markov, algoritma Earley untuk chart parser, algoritma Needleman-Wunsch yang dipakai dalam bionformatik, algoritma Floyd’s Warshall untuk mencari lintasan terpendek, algoritma Selinger untuk optimal query suatu basis data, algoritma De Boor untuk evaluasi kurva B-spline, dan lain-lain.

Koefisien Binomial (a + b)³ = a³ + 3a²b + 3ab² + b³ Koefisien binomial merupakan bilangan-bilangan yang muncul dari hasil penjabaran penjumlahan dua peubah yang dipangkatkan, misalnya (a + b)ⁿ. Sepintas terlihat bahwa ekspresi (a + b)ⁿ tidak ada hubungannya dengan kombinasi, tetapi kenyataannya kita bisa mendapatkan rumus untuk penjabaran (a + b)ⁿ dengan menggunakan rumus banyaknya kombinasi-r dari n unsur. Teori untuk menurunkan rumus yang diperoleh dari penjabaran (a +b)ⁿ dengan menggunakan kombinasi dikenal dengan Teorema Binomial. Sebelum membahas teorema ini, perhatikan ilustrasi berikut ini. Dalam al-jabar kita tahu bahwa (a + b)³ = a³ + 3a²b + 3ab² + b³ Penjabaran dari (a + b)³ yang merupakan perkalian 3 faktor (a + b), yaitu  (a + b)³ = (a + b)(a + b)(a + b) = aaa, aab, aba, abb, baa, bab, bba, bbb   Maka akan diperoleh a³, a²b, a²b, ab², a²b, ab², ab², b³ Jika semua suku-suku diatas dijumlahkan, maka hasilnya adalah a³ + 3a²b + 3ab² + b³

(a + b)ⁿ = (a + b)(a + b). . .(a + b) Bilangan 3 yang merupakan koefisien dari a²b muncul dari pemilihan a dari faktor dan b dari 1 faktor sisanya. Hal ini bisa dilakukan dalam C (3, 2) atau C (3, 1) cara. Cara yang sama bisa dilakukan untuk memperoleh koefisien b³ yang dalam hal ini merupakan pemilihan a dari 0 faktor dan b dari 3 faktor lainnya yang dapat dilakuk an dalam C (3, 0) atau C (3, 3) cara, dan seterusnya. Sehingga secara umum koesien-koesien tersebut bisa ditentukan berdasarkan Teorema Binomial berikut ini. Jika a dan b adalah bilangan real dan n adalah bilangan bulat positif, maka (a + b)ⁿ = ∑nk=0 C (n, k)an-k bk Penjabaran dari (a + b)ⁿ merupakan perkalian (a + b) sebanyak n factor yaitu (a + b)ⁿ = (a + b)(a + b). . .(a + b) Koefisien dari an-k bk dapat ditentukan dengan banyaknya cara pemilihan a dari n-k faktor diantara n faktor yang ada atau pemilihan b dari k factor diantara n faktor. Hal ini bisa dilakukan dengan C (n, n-k) atau C (n, k) cara. Penentuan koefisien ini berlaku untuk setiap k = 0, 1. . . n. Sehingga (a + b)ⁿ = C(n, 0)an-0 b0 + C(n, 1)an-1b1 + . . . + C (n, n)an-n bn = ∑nk=0 C (n, k)an-k bk

Contoh : Jabarkan (a + b)4 (a + b)4 = C(4, 0)a4-0b0 + C(4, 1)a4-1b1 + C(4, 2)a4- 2b2 + C(4, 3)a4-3b3 + C(4, 4)a4 -4 b4 =a4+ 4a3b + 6a2b2+ 4ab3+ b4 Tentukan koefisien dari a5b6 dalam penjabaran (a + b)11 C (11, 6) = 11! = 11.10.9.8.7 = 462 5!.6! 5.4.3.2.1

Disamping menggunakan kombinasi, kita juga bisa menentukan koefisien binomial dengan menggunakan segitiga Pascal seperti berikut ini. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 . . . . . . . Batas dari segitiga Pascal diatas terdiri dari 1 dan nilai-nilai didalamnya merupakan hasil penjumlahan dari dua bilangan diatasnya.

Algoritma Floyd-Warshall Algoritma Floyd-Warshall adalah salah satu varian dari pemrograman dinamis, metode untuk memecahkan masalah pencarian rute terpendek. Metode ini melakukan pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait. Artinya solusi-solusi tersebut dibentuk dari solusi yang berasal dari tahap sebelumnya dan ada kemungkinan solusi lebih dari satu. Hal yang membedakan pencarian solusi menggunakan pemrograman dinamis dengan algoritma greedy adalah bahwa keputusan yang diambil pada tiap tahap pada algoritma greedy hanya berdasarkan pada informasi yang terbatas sehingga nilai optimum yang diperoleh pada saat itu Jadi pada algoritma greedy, kita tidak memikirkan konsekuensi yang akan terjadi seandainya kita memilih suatu keputusan pada suatu tahap. Algoritma warshall merupakan algoritma yang mengambil jarak minimal dari suatu titik ketitik lainnya. Pada algoritma ini menerapkan suatu algoritma dinamis yang menyebabkan akan mengambil jarak lintasan terpendek secara benar.

Algoritma warshall disebut juga algoritma dinamis Algoritma warshall disebut juga algoritma dinamis. Karakteristik dari algoritma dinamis: Persoalannya dibagi atas beberapa tahap,yang setiap tahapnya diambil satu keputusan. Masing-masing tahap terdiri dari sejumlah status yang saling berhubungan. Hasil keputusan akan di transformasikan. Ongkos tergantung dari ongkos tahapan yang telah berjalan dan ongkos pada tahap itu sendiri. Keputusan terbaik pada tahap bersifat independen. Terdapat hubungan rekursif yang menyatakan bahwa keputusan terbaik dalam setiap status pada tahap -k.

Contoh apabila kita berada dari suatu tempat di titik A akan menuju tempat yang berada di titik E di mana kita harus melewati minimal satu titik titik antara b,c,d dan f . Apabila kita memakai floyd warshall maka kita harus mentotalkan jumlah jaraknya. a-b-d-e = 10+15+10 =35 km a-d-e = 20+5 =25 km a-c-e = 30+25 =55km a-f-e = 20+25 =45 km Apabila semua nya telah terjumlah, maka jarak minimalnya ada di lintasan a-d-e dengan 25 km, sesuai dengan algoritma floyd warshall.