Design and Analysis Algorithm

Slides:



Advertisements
Presentasi serupa
Program Dinamis (Dynamic Programming)
Advertisements

MASALAH PENUGASAN (ASSIGNMENT PROBLEM)
Design and Analysis of Algorithm Divide and Conquer Algorithm
Algoritma Divide and Conquer
GRAF TIDAK BERARAH PART 2 Dosen : Ahmad Apandi, ST
Design and Analysis of Algorithm Dynamic Programming
Design and Analysis of Algorithm Back Track Algorithm
Latihan Array dan Matriks
MODEL PENUGASAN (ASSIGNMENT PROBLEM)
Hill Climbing Best First Search A*
Pengantar Strategi Algoritmik
Program Dinamis (dynamic programming): metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah (step) atau tahapan (stage)
Design and Analysis Algorithm
Design and Analysis Algorithm
Design and Analysis Algorithm
Algoritma Divide and Conquer
Design and Analysis Algorithm
Pertemuan 24 BRANCH AND BOUND (2)
Pertemuan 16 DYNAMIC PROGRAMMING : TRAVELING SALESMAN PROBLEM (TSP)
12-CRS-0106 REVISED 8 FEB 2013 CSG523/ Desain dan Analisis Algoritma Divide and Conquer Intelligence, Computing, Multimedia (ICM)
MATERI - 3 TRANSPORTASI.
Algoritma Brute Force Oleh: Muhammad Musta’in ( )
Perbandingan Algoritma Brute Force dan Depth First Search (DFS) dalam Kasus Travelling Salesman Problem (TSP) Ervin Yohannes ( )
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algoritma Bruteforce Team Fasilkom.
MODEL PENUGASAN (HUNGARIAN METHOD)
CSG3F3/ Desain dan Analisis Algoritma
Bahan Kuliah IF2211 Strategi Algoritma
MATERI PERKULIAHAN ANALISIS ALGORITMA
Greedy Pertemuan 7.
Design and Analysis Algorithm
Design and Analysis Algorithm
GRAF TIDAK BERARAH PART 2 Dosen : Ahmad Apandi, ST
Program Dinamis.
Dynamic Programming Program dinamik adalah salah satu teknik matematika yang digunakan untuk mengoptimalkan proses pengambilan keputusan secara bertahap.
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algoritma Bruteforce (disarikan dari diktat Strategi Algoritma, Rinaldi Munir) Team Fasilkom.
MATERI PERKULIAHAN ANALISIS ALGORITMA
Exhaustive Search.
Operations Management
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Program Dinamis (Dynamic Programming)
PEMROGRAMAN DINAMIS Pertemuan 7
MATRIKS (ARRAY 2 DIMENSI)
Program Dinamis (Dynamic Programming)
Modul 6 : Analisis Algoritma dan Struktur Data
Program Dinamis (Dynamic Programming)
Program Dinamis (Dynamic Programming)
Operations Management
Modul-7 : Analisis Algoritma dan Struktur data
Masalah Penugasan (Assignment Problem)
Algoritma Brute Force.
Sistem Persamaan Linear
Algoritma Divide and Conquer
Algoritma Divide and Conquer
Widita Kurniasari Universitas Trunojoyo
Algoritma Divide and Conquer
Algoritma Brute Force.
Program Dinamis (Dynamic Programming)
Pengantar Strategi Algoritma
Widita Kurniasari Universitas Trunojoyo
Widita Kurniasari Universitas Trunojoyo
Program Dinamis (Dynamic Programming)
Widita Kurniasari Universitas Trunojoyo
Widita Kurniasari Universitas Trunojoyo
Widita Kurniasari Universitas Trunojoyo
Bab 1.3 – 1.5 Matriks & Operasinya Matriks invers.
Transcript presentasi:

Design and Analysis Algorithm Drs. Achmad Ridok M.Kom Imam Cholissodin, S.Si., M.Kom M. Ali Fauzi, S.Kom., M.Kom. Ratih Kartika Dewi, ST, M.Kom Pertemuan 13

Contents Algoritma Program Dinamis 2 of 2 3 1 Travelling Salesman Problem 2 Matrix-Chain Multiplication (MCM) 3 Longest Common Subsequence (LCS) 4

Travelling Salesman Problem TSP Travelling Salesman Problem

Prinsip Optimalitas Jika tur tersebut optimal maka lintasan dari simpul k ke simpul 1 juga menjadi lintasan k ke 1 terpendek yang melalui simpul-simpul di dalam V – {1, k}. Misalkan f(i, S) adalah bobot lintasan terpendek yang berawal pada simpul i, yang melalui semua simpul di dalam S dan berakhir pada simpul 1. Maka Nilai f(1, V – {1}) adalah bobot tur terpendek.

Misalkan J(i, S) adalah nilai yang dimaksudkan tersebut Misalkan J(i, S) adalah nilai yang dimaksudkan tersebut. Maka, J(1, {2, 3, 4}) = 2. Jadi, tur mulai dari simpul 1 selanjutnya ke simpul 2. Simpul berikutnya dapat diperoleh dari f(2, {3, 4}), yang mana J(2, {3, 4}) = 4. Jadi, simpul berikutnya adalah simpul 4. Simpul terakhir dapat diperoleh dari f(4, {3}), yang mana J(4, {3}) = 3. Jadi, tur yang optimal adalah 1, 2, 4, 3, 1 dengan bobot (panjang) = 35.

Tentukan simpul dan bobot (panjang) yang optimal dari data tur berikut (n=5): Simpul : J(i, S), J(1, {2,3,4,5})=..

Matrix-Chain Multiplication (Pengkurungan Perkalian Matrik) Multiplication (MCM)

Matrix-chain multiplication (MCM) - DP Problem: diberikan A1, A2, …,An, hitung perkalian : A1A2…An , temukan cara tercepat (yaitu dengan meminimalkan jumlah perkalian) dalam penghitungan. Misal terdapat dua matrik A(p,q) dan B(q,r), Hitung hasil perkaliannya C(p,r) dalam p  q  r sebagai banyaknya perkalian for i=1 to p for j=1 to r C[i,j]=0 for i=1 to p for j=1 to r for k=1 to q C[i,j] = C[i,j]+ A[i,k]B[k,j]

Matrix-chain multiplication (MCM) - DP Perbedaan parenthesizations akan menghasilkan perbedaan jumlah perkalian dalam hasil perkalian matrik Contoh: A(10,100), B(100,5), C(5,50) If ((A B) C), 10 100 5 +10 5 50 =7500 If (A (B C)), 10 100 50+100 5 50=75000 Cara pertama 10x lebih cepat daripada cara kedua !!! Diketahui kumpulan matrik MCM A1, A2, …,An dengan < p0,p1,p2,…,pn> Berarti, A1(p0,p1), A2(p1,p2), …, Ai(pi-1,pi),… An(pn-1,pn) baris kolom

Matrix-chain multiplication (MCM) - DP Secara intuitif, solusi brute-force: Hitung banyaknya parenthesizations secara exhaustive dengan mengecek semua kemungkinan kombinasi parenthesizations. Misal P(n) merupakan banyaknya alternatif parenthesizations dari suatu sequence n matrik : P(n) = 1 if n=1 k=1n-1 P(k)P(n-k) if n2 Waktu kompleksitas solusi rekursifnya (2n). Jadi, brute-force tidak akan dapat bekerja pada kasus tersebut.

Langkah-langkah MCP - DP Step 1: structure dari suatu parenthesization yang optimal Misal Ai..j (ij) merupakan matrik hasil dari AiAi+1…Aj Apapun parenthesization dari AiAi+1…Aj harus men-split perkalian diantara Ak dan Ak+1 untuk beberapa nilai k, (ik<j). Total cost = # of computing Ai..k + # of computing Ak+1..j + # Ai..k  Ak+1..j. Jika k adalah posisi untuk optimal parenthesization, maka parenthesization dari “prefix” subchain AiAi+1…Ak dalam optimal parenthesization ini dari AiAi+1…Aj harus menjadi suatu parenthesization yang optimal dari AiAi+1…Ak. AiAi+1…Ak  Ak+1…Aj

Langkah-langkah MCP - DP Step 2: a recursive relation Misal m[i,j] merupakan banyaknya operasi perkalian yang paling minimum dari AiAi+1…Aj m[1,n] akan menjadi jawaban untuk Parenthesizing perkalian AiAi+1…Aj menjadi

Langkah-langkah MCP - DP Step 3, Menghitung optimal cost Jika dengan algoritma rekursif, exponential time (2n) (ref. to P.346 for the proof.), tidak lebih baik dari pada brute-force. Total banyaknya subproblems = (n2) Algoritma rekursif akan banyak sekali menemui subproblem yang sama. Jika tabling menjawab subproblems, setiap subproblem hanya di-solving sekali. 2 hal khusus dari DP yang membuat tampak berbeda: overlapping subproblems dan solve setiap subproblem hanya sekali.

Langkah-langkah MCP - DP Step 3, Algorithm, array m[1..n,1..n], dengan m[i,j] menyimpan optimal cost untuk AiAi+1…Aj . array s[1..n,1..n], s[i,j] menyimpan index k yang merupakan optimal cost ketika menghitung m[i,j]. Misal input untuk MCP adalah p=< p0 , p1 ,…, pn >.

MCM DP—order of matrix computations m(1,1) m(1,2) m(1,3) m(1,4) m(1,5) m(1,6) m(2,2) m(2,3) m(2,4) m(2,5) m(2,6) m(3,3) m(3,4) m(3,5) m(3,6) m(4,4) m(4,5) m(4,6) m(5,5) m(5,6) m(6,6)

MCM DP — Contoh m s i j j i A1 A2 A3 A4 A5 A6 6 1 5 2 1 6 4 3 5 2 3 4 Tabel m dan s dihitung dengan MATRIX-CHAIN-ORDER untuk n = 6 dan mengikuti dimensi matrik

MCM DP— Contoh Optimal, k=1 Optimal, k=3 Tabel dirotasi sedemikian higga diagonal utama (DU) dijalankan secara horisontal. Hanya DU dan upper triangles yang digunakan dalam tabel m, dan hanya upper triangles yang digunakan dalam tabel s. Jumlah minimum dari banyaknya perkalian skalar untuk mengalikan 6 matrik adalah m[1,6] = 15125. P0 30 P1 35 P2 15 P3 5 P4 10 P5 20 Optimal, k=1 Optimal, k=3

Click to edit subtitle style Thank You !