KI141319 PAA2: Perancangan Dan Analisis Algoritma 2 Semester Genap 2015/2016
KI141319 PAA2: Perancangan Dan Analisis Algoritma 2 Semester Genap 2015/2016
Rencana Pembelajaran
Materi
(algorithmic
paradigms)
Greedy
Divide-and-conquer
Dynamic
Programming
Temu Muka
Nilai
16 kali
Tidak ada hari libur
nasional
Maksimal libur
pribadi 3x
4 kali
2 nilai dari ujian tulis
(koreksi bersama)
Algorithmic Paradigms
Greedy
Divide-and-Conquer (DC)
Build up a
solution
incrementally
(make a choice
that looks best at
the moment)
Get the optimal
solution of the
complete
problem
Dynamic
Programming (DP)
Break up a problem
into overlapping
subproblems
Build up solutions to
larger and larger
subproblems (Optimal
Substructure)
Fibonacci Problem -- DP
1. /* DP Memoization (Top Down)*/
2. int fib(int n){
3.
if (lookup[n] == NIL){
4.
if (n <= 1) lookup[n] = n;
5.
else
6.
lookup[n] = fib(n-1) + fib(n-2);
7.
}
8.
return lookup[n];
computed solutions
9. }
to subproblems are
stored in a table,
dont have to
recomputed
DC vs DP
Fibonacci Problem
Binary Search
Divide-and-conquer ??
Dynamic Programming ??
Divide-and-conquer ??
Dynamic Programming ??
0/1 Knapsack
vs
Fractional Knapsack
sort by:
weight or value or
value/weight or weight/value
GOAL: maksimalkan value
dengan constraint berat
Maks size=0
Maks size=1
Maks size=2
Maks size=3
Maks size=4
Maks size=5
Value=0
Value=0
Value=0
Value=0
Value=0
Value=0
Value=0, krn
value a=3
Value=0
Value=3
Value=3
Value=3
Value=3, size a
tdk mungkin >2
2 Benda (a/b)
Value=0
Value=0
Value=3, pilih
benda a
Value=4, benda
b lebih dipilih
Value=4, masih
memilih benda b
Value=7, pilih
benda a & b
3 Benda (a/b/c)
Value=0
Value=0
Value=3, ambil
pilihan
sebelumnya (a)
Value=4, ambil
pilihan
sebelumnya (b)
Value=5, benda
c lebih dipilih
Value=7, pilih
benda a & b
4 Benda (a/b/c/d)
Value=0
Value=0
Value=3, ambil
pilihan
sebelumnya (a)
Value=4, ambil
pilihan
sebelumnya (b)
Value=5, benda
c lebih dipilih
Value=7, pilih
benda a & b
1 Benda (a)