Algoritma Pemrograman II Sesi09 12 Strategi Algoritma

download Algoritma Pemrograman II Sesi09 12 Strategi Algoritma

of 13

Transcript of Algoritma Pemrograman II Sesi09 12 Strategi Algoritma

  • 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