5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
1/13
Strategi Algortima
Pertemuan : 09 - 12Dosen Pembina: Danang Junaedi
Program StudiTeknik Informatika UniversitasWidyatama
1 IF-UTAMA
Overview
2 IF-UTAMA
Tujuan Instruksional
3 IF-UTAMA
Definisi Strategi Algortima
4 IF-UTAMA
5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
2/13
Jenis Strategi Algoritma
( )
( -
)
( - )
( - )
.
5 IF-UTAMA
Brute Force
( )
( )
.
,
,
( ) .
6 IF-UTAMA
Contoh Brute Force
( , - )
( ) ,
,
!
.
7 IF-UTAMA
Exhaustive Search
,
, ,
, ( )
8 IF-UTAMA
5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
3/13
Contoh Exhaustive Search
Persoalan 0/1 Knapsackdapat kita pandang sebagai mencarihimpunan bagian (subset) dari keseluruhan objek yang muat kedalam knapsackdan memberikan total keuntungan terbesar.
9 IF-UTAMA
Contoh Exhaustive Search(contd)
Himpunan Bagian Total Bobot Total keuntungan{}
{1}
{2}
{3}
{4}
{1, 2}
{1, 3}{1, 4}
{2, 3}
{2, 4}
{3, 4}{1, 2, 3}
{1, 2, 4}
{1, 3, 4}{2, 3, 4}
{1, 2, 3, 4}
0
2
5
10
5
7
127
15
10
1517
12
1720
22
0
20
30
50
10
50
7030
80
40
60tidak layak
60
tidak layaktidak layak
tidak layak
Contoh: n = 4.w1 = 2; p1 = 20
w2 = 5; p2 = 30
w3 = 10; p3 = 50
w4 = 5; p4 = 10
Kapasitas knapsack K = 16
Langkah-langkah pencarian solusi 0/1Knapsack secara exhaustive searchdirangkum dalam tabel di sebelah kanan
Himpunan bagian objek yangmemberikan keuntungan maksimumadalah {2, 3} dengan total keuntunganadalah 80.
Solusi: X= {0, 1, 1, 0}
10 IF-UTAMA
Brute-Force Strengths and Weaknesses
( . . , , , ,
)
-
11 IF-UTAMA
Greedy
.
. ,
.
. .
.
, (
)
! .
.
12 IF-UTAMA
5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
4/13
Pseudo Code Greedy ( : ; : )
: ;
:
( ( ) ) ( )
( ) ;
-
(
)
13 IF-UTAMA
Elemen-Elemen Greedy
14 IF-UTAMA
Contoh Greedy
. -
( 1 , 5 , 1 0 , 2 5 ) .
:
: ,
( ) .
: 1 2 5 ( 2 5 )
: 1 5 ( 2 5 + 5 3 0 )
: 2 1 ( 2 5 + 5 + 1 + 1 3 2 )
: 4 ( ! )
,
(
) .
15 IF-UTAMA
Contoh Greedy (Contd)
16 IF-UTAMA
5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
5/13
Contoh Greedy(Contd)
Contoh Persoalan 0/1 Knapsack
n = 4
w1 = 6; p1 = 12
w2 = 5; p2 = 15
w3 = 10; p3 = 50
w4 = 5; p4 = 10
Kapasitas knapsack K = 16
Langkah-langkah pencarian solusi 0/1 Knapsack menggunakan strategigreedy dirangkum dalam tabel di sebelah kanan
Himpunan bagian objek yang memberikan keuntungan maksimum adalah {2,3} dengan total keuntungan adalah 65.
Solusi: X= {0, 1, 1, 0}
17 IF-UTAMA
Devide & Conquer
(
( (
(
)
) )
)
(
( (
(
)
) )
)
18 IF-UTAMA
subproblem 2
of size n/2
subproblem 1
of size n/2
a solution to
subproblem 1
a solution to
the original problem
a solution to
subproblem 2
a problem of size n
Divide-and-Conquer Technique
19 IF-UTAMA
Divide-and-Conquer Examples
( )
20 IF-UTAMA
5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
6/13
Contoh Divide-and-Conquer
Mencari nilai minimum dan maksimum pada array yang tidak terurutProses :
1.Untuk kasusn = 1 ataun = 2,
Jikan = 1,makamin =maks =An.
Jikan = 2, maka bandingkan kedua elemen untuk
menentukanmin danmaks.
2.Untuk kasusn > 2,
DIVIDE: Bagi dua tabelA secara rekursif menjadi dua bagian yang
berukuran sama, yaitu bagian kiri dan bagian kanan.
CONQUER: Terapkan algoritma Divide and Conquer untuk masing-
masing bagian, dalam hal ini min dan maks dari tabel bagian kiri
dinyatakan dalam peubahmin1 danmaks1, danmin danmaks dari tabel
bagian kanan dinyatakan dalam peubahmin2
danmaks2
. COMBINE: Bandingkan min1 dengan min2 untuk menentukan min
tabelA dan/atau Bandingkanmaks1 denganmaks2 untuk menentukan
maks tabelA.
21 IF-UTAMA
Contoh Divide-and-Conquer8 3 2 9 7 1 5 4
8 3 2 9 7 1 5 4
8 3 2 9 7 1 5 4
8 3 2 9 7 1 5 4
3 8 2 9 1 7 4 5
2 3 8 9 1 4 5 7
1 2 3 4 5 7 8 9
Merge SortProses :1. Untuk kasus n = 1, maka tabel A sudah terurut
dengan sendirinya
2. Untuk kasusn > 1,
DIVIDE: bagi tabelA menjadi dua bagian, bagiankiri dan bagian kanan, masing-masingbagian
berukurann/2 elemen.
CONQUER: Terapkan algoritma Divide and
Conquer untuk masing-masing bagian, secara
rekursif.
COMBINE: gabung hasil pengurutan keduabagian sehingga diperoleh tabelA yang terurut.
22 IF-UTAMA
Perbandingan Metoda Sorting
Averages Time for Sort Method (miliseconds)
0
10
20
30
40
50
0 500 1000 1500
Time
Data
Insertion Sort
Merge Sort
Quick Sort
N Insert ion Sor t Merge Sor t Quick Sor t
0 0.09 0.09 0.09
10 0.12 0.13 0.12
20 0.14 0.16 0.15
30 0.18 0.2 0.18
40 0.22 0.24 0.22
50 0.27 0.27 0.26
60 0.33 0.32 0.3170 0.4 0.37 0.33
80 0.48 0.41 0.37
90 0.56 0.45 0.41
100 0.65 0.49 0.44
200 1.99 0.93 0.86
300 4.08 1.45 1.29
400 6.9 1.95 1.75
500 10.7 2.43 2.23
600 18.15 3.01 2.73
700 20.6 3.56 3.5
800 26.9 4.12 3.67
900 34.35 4.62 4.38
1000 42.3 5.2 4.73
23 IF-UTAMA
Decrease-and-Conquer
24 IF-UTAMA
5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
7/13
Decrease-and-Conquer Technique
IF-UTAMA25
Problem of size n
Sub Problem of size n-1
Solution to the subproblem
Solution to the original
problem
3 Types of Decrease and Conquer
26 IF-UTAMA
Transform and Conquer
This group of techniques solves a problem by a transformation
to a simpler/more convenient instance of the same problem (instance
simplification)
to a different representation of the same instance (representation change)
to a different problem for which an algorithm is already available (problemreduction)
27 IF-UTAMA
Taxonomy of Searching Algorithms
28 IF-UTAMA
5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
8/13
5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
9/13
5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
10/13
Contoh Branch & Bound(Contd)
Knapsack 1/0Jika kita mempunyai N buah objek yang memiliki berat W dan harga P. Objek-objek tersebut
akan dimasukkan ke dalam suatu kantung yang memiliki kapasitas K. permasalahannya adalah
objek-objek mana yang dipilih untuk dimasukkan agar kantong dapat terisi penuh dan dengankeuntungan tertinggi. Contoh data :
K = 20 {kapasitas kantong}
N = 3 {jumlah objek}
P = {15, 25, 10}, harga untuk masing-masing objek
W = {10, 15, 5}, berat untuk masing-masing objek
Objek yang diperkenankan untuk dimasukkan ke dalam kantong adalah dalam keadaan utuh
(tidak sebagian). Objek i Xi maka (Xi = 0 atau Xi = 1) dari objek i yang dapat dimasukkan kedalam kantong.
37 IF-UTAMA
Contoh Branch & Bound(Contd)
Contoh Persoalan 0/1 Knapsack dengan n = 3; (w1, w2, w3) = (10, 15, 5); (p1,p2,p3) = (15, 25, 10); dan Kapasitas knapsack K = 20; Solusi dinyatakan sebagaiX= (x1, x2, x3), xi {0, 1}.
Langkah-langkah pencarian solusi 0/1 Knapsack :
UB dihitung dengan rumus pi+(K-w)*(pi+1/wi+1)
Solusi: X= {0, 1, 1}, Himpunan bagian objek yang memberikan keuntungan maksimum adalah{2,3} dengan total keuntungan adalah 35
38 IF-UTAMA
Dynamic Programming
IF-UTAMA39
Pendekatan Dynamic Programming
IF-UTAMA40
5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
11/13
LangkahLangkahLangkahLangkah----langkah Pengembangan Algoritma Program Dinamislangkah Pengembangan Algoritma Program Dinamislangkah Pengembangan Algoritma Program Dinamislangkah Pengembangan Algoritma Program Dinamis
IF-UTAMA41
Contoh Dynamic Programming
IF-UTAMA42
( )
( ) ( )
( )
( )
,
,
(
(
) )
Contoh Dynamic Programming(Contd)
Selanjutnya, kita bandingkan nilai keuntungan dari objek pada tahapk (yaitupk) plus nilaifk-1(ywk) dengan keuntungan pengisian hanyak 1 macam objek,fk-1(y).
Jikapk +fk-1(ywk) lebih kecil darifk-1(y), maka objek yang ke-k tidak dimasukkan ke dalamkarung, tetapi jika lebih besar, maka objek yang ke-k dimasukkan
Relasi rekurens untuk persoalan ini adalah
fk(y) adalah keuntungan optimum dari persoalan 0/1 Knapsack pada tahapk untuk kapasitaskarung sebesary.
f0(y) = 0 adalah nilai dari persoalanknapsack kosong(tidak ada persoalanknapscak) dengankapasitasy,
fk(y) = - adalah nilai dari persoalan knapsack untuk kapasitas negatif. Solusi optimum daripersoalan 0/1 Knapsack adalahfn(M).
43 IF-UTAMA
Contoh Dynamic Programming (Contd)
(
) ( ) (
) ( )
44 IF-UTAMA
5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
12/13
Contoh (Contd)
IF-UTAMA45
Studi Kasus
( , )
,
,
,
Susunan Awal Susunan Akhir
46 IF-UTAMA
Referensi
47 IF-UTAMA
Untuk bahan renungan bersama
48 IF-UTAMA
5/27/2018 Algoritma Pemrograman II Sesi09 12 Strategi Algoritma
13/13
Untuk bahan renungan bersama
!
"
" "
49 IF-UTAMA
Top Related