Pemrograman Dinamis

Embed Size (px)

DESCRIPTION

pemrograman dinamis dalam strategi algoritma

Citation preview

  • 5/22/2018 Pemrograman Dinamis

    1/34

    Program Dinamik :

    Pendahuluan (1)

    Program dinamik merupakan suatupendekatan solusi bukan suatu teknik Tidak terbatas pada golongan masalah tertentu

    Pendekatan solusi adalah merinci suatumasalah menjadi masalah-masalah yanglebih keciltahapan (stages) Penyelesaian tahapan secara berurutan

    Hasil dari suatu keputusan (solusi) padasuatu tahap akan mempengaruhi keputusantahap berikutnya

  • 5/22/2018 Pemrograman Dinamis

    2/34

    Program Dinamik :

    Pendahuluan (2)

    Pemrograman dinamik merupakan teknikmatematis yang dapat berguna untukmembuat suatu urutan keputusan yang saling

    berkaitan Pemrograman dinamis tidak mempunyai

    rumusan yang baku

    Tiap permasalahan memerlukan perumusan

    tertentu Teknik pemrograman dinamis dikenal juga

    dengan multistage programming

  • 5/22/2018 Pemrograman Dinamis

    3/34

    Klasifikasi Program Dinamis

    Status Diskret Status Kontinyu

    Tunggal Majemuk Tunggal Majemuk

    Deterministik

    Probabilistik

  • 5/22/2018 Pemrograman Dinamis

    4/34

    Prosedur Pemecahan Masalah

    Prosedur pemecahan

    Rekursi maju (forward recursion)

    Rekursi mundur (backward recursion)

    Perbedaan prosedur

    Cara mendefinisikan status dalam sistem.

    Prosedur rekursi mundur secara umum lebih

    efisien

  • 5/22/2018 Pemrograman Dinamis

    5/34

    Langkah-langkah Pemecahan

    Tentukan prosedur pemecahan (maju atau mundur).

    Tentukan tahap (stage).

    Definisikan variabel status (state) pada tiap tahap.

    Definisikan variabel keputusan pada tiap tahap.

    Definisikan fungsi pengembalian pada tiap tahap.

    Definisikan fungsi transisi.

    Definisikan fungsi rekursif. Perhitungan.

    Tentukan solusi optimal dengan backtracking.

  • 5/22/2018 Pemrograman Dinamis

    6/34

    Permasalahan

    Sebuah perusahaan membagi wilayah

    pemasarannya menjadi tiga: utara, timur,

    selatan. Perusahaan tersebut memilliki 3

    tenaga penjual yang akan dialokasikan ketiga wilayah tersebut tanpa membatasi

    jumlah tenaga penjual di setiap wilayah sdrs

    hasil penjualan maksimum.

  • 5/22/2018 Pemrograman Dinamis

    7/34

    Contoh Program Dinamik (1)

    Permasalahan

    Alternatif Keputusan

    Salesman/Daerah

    Tingkat Pengembalian/Daerah

    Utara Timur Selatan

    0 0 0 2

    1 7 9 6

    2 12 15 103 20 18 16

  • 5/22/2018 Pemrograman Dinamis

    8/34

    Contoh Program Dinamik (2)

    Model Matatematika Masalah

    Maksimum R1+R2+R3

    Ditujukan

    D1+D2+D3 3

    Dimana

    R1, R2, R3 = pengembalian dari tiap 3 daerahD1, D2, D3 = keputusan penempatan

    salesman ke tiap 3 daerah

  • 5/22/2018 Pemrograman Dinamis

    9/34

    Contoh Program Dinamik (3)

    Tahap 1 : Alokasi ke Daerah SelatanKeadaan 1 (S1):

    Salesman Tersedia

    Keputusan 1 (D1):

    Alokasi Salesman

    Pengembalian 1(R1):

    Jumlah Penjualan

    0 0 2

    1 0 2

    1 6

    2 0 2

    1 6

    2 10

    3 0 2

    1 6

    2 10

    3 16

  • 5/22/2018 Pemrograman Dinamis

    10/34

    Contoh Program Dinamik (4)

    Tahap 1 : Alokasi ke Daerah Selatan (Opt)Keadaan 1 (S1):

    Salesman Tersedia

    Keputusan 1 (D1):

    Alokasi Salesman

    Pengembalian 1(R1):

    Jumlah Penjualan

    0 0 2

    1 0 2

    1 6

    2 0 2

    1 6

    2 10

    3 0 2

    1 6

    2 10

    3 16

  • 5/22/2018 Pemrograman Dinamis

    11/34

    Contoh Program Dinamik (5)

    Tahap 2 : Alokasi ke Daerah TimurKeadaan 2

    (S2):

    Salesman

    Tersedia

    Keputusa 2

    (D2):

    Alokasi

    Salesman

    Pengembali

    an 2 (R2):

    Jumlah

    Penjualan

    Keadaan 1

    (S1):

    Salesman

    Tersedia

    Pengembali

    an 1(R1):

    Jumlah

    Penjualan

    Total

    Pengembali

    an (R1+R2)

    0 0 0 0 2 2

    1 0 0 1 6 6

    1 9 0 2 11

    2 0 0 2 10 10

    1 9 1 6 15

    2 15 0 2 17

    3 0 0 3 16 16

    1 9 2 10 19

    2 15 1 6 21

    3 18 0 2 20

  • 5/22/2018 Pemrograman Dinamis

    12/34

    Contoh Program Dinamik (6)

    Tahap 2 : Alokasi ke Daerah Timur (Opt)Keadaan 2

    (S2):

    Salesman

    Tersedia

    Keputusa 2

    (D2):

    Alokasi

    Salesman

    Pengembali

    an 2 (R2):

    Jumlah

    Penjualan

    Keadaan 1

    (S1):

    Salesman

    Tersedia

    Pengembali

    an 1(R1):

    Jumlah

    Penjualan

    Total

    Pengembali

    an (R1+R2)

    0 0 0 0 2 2

    1 0 0 1 6 6

    1 9 0 2 11

    2 0 0 2 10 10

    1 9 1 6 15

    2 15 0 2 17

    3 0 0 3 16 16

    1 9 2 10 19

    2 15 1 6 21

    3 18 0 2 20

  • 5/22/2018 Pemrograman Dinamis

    13/34

    Contoh Program Dinamik (7)

    Tahap 3 : Alokasi ke Daerah Utara

    Keadaan 3

    (S3):

    Salesman

    Tersedia

    Keputusa

    3 (D3):

    Alokasi

    Salesman

    Pengemba

    lian 3

    (R3):

    Jumlah

    Penjualan

    Keadaan 2

    (S2):

    Salesman

    Tersedia

    Pengemba

    lian 2(R2):

    Jumlah

    Penjualan

    Total

    Pengemba

    lian

    (R1+R2+R

    3)

    3 0 0 3 21 21

    1 7 2 17 24

    2 12 1 11 23

    3 20 0 2 22

  • 5/22/2018 Pemrograman Dinamis

    14/34

    Contoh Program Dinamik (8)

    Tahap 3 : Alokasi ke Daerah Utara (Opt)

    Keadaan 3

    (S3):

    Salesman

    Tersedia

    Keputusa

    3 (D3):

    Alokasi

    Salesman

    Pengemba

    lian 3

    (R3):

    Jumlah

    Penjualan

    Keadaan 2

    (S2):

    Salesman

    Tersedia

    Pengemba

    lian 2(R2):

    Jumlah

    Penjualan

    Total

    Pengemba

    lian

    (R1+R2+R

    3)

    3 0 0 3 21 21

    1 7 2 17 24

    2 12 1 11 23

    3 20 0 2 22

  • 5/22/2018 Pemrograman Dinamis

    15/34

    Contoh Program Dinamik (8)

    Urutan Keputusan Optimal

    Keadaan

    (daerah)

    Alokasi

    SalesmanPengembalian

    1. Selatan 0 2

    2. Timur 2 15

    3. Utara 1 7

    Total 3 24

  • 5/22/2018 Pemrograman Dinamis

    16/34

    Problem Knapsack

    Permasalahan mengenai berapa jumlah tiap

    jenis barang yang berbeda dapat dimasukkan

    ke dalam sebuah ransel guna

    memaksimumkan pengembalian dari barang-barang tersebut. Ransel punya kapasitas

    tertentu (5 ruang)

  • 5/22/2018 Pemrograman Dinamis

    17/34

    Contoh Problem Knapsack (1)

    Permasalahan

    Alternatif Barang

    yang Dibawa

    Berat LabaX 2 90

    Y 3 150Z 1 30

  • 5/22/2018 Pemrograman Dinamis

    18/34

    Contoh Problem Knapsack (2)

    Model Matatematika Masalah

    Maksimum R1D1+R2D2+R3D3

    Ditujukan

    W1D1+W2D2+W3D3 5

    Dimana

    R1, R2, R3 = pengembalian dari tiap barang

    D1, D2, D3 = keputusan jumlah barang yangdibawa

    W1, W2, W3 = berat barang yang dibawa

  • 5/22/2018 Pemrograman Dinamis

    19/34

    Contoh Problem Knapsack (3)

    Tahap 1 : Keputusan X

    Keadaan 1 (S1):

    Ruang Tersedia

    Keputusan 1

    (D1): Jumlah

    Barang

    Kebutuhan

    Ruang

    Pengembalian

    1(R1)

    5 2 4 180

    4 2 4 1803 1 2 90

    2 1 2 90

    1 0 0 0

    0 0 0 0

  • 5/22/2018 Pemrograman Dinamis

    20/34

    Contoh Problem Knapsack (4)

    Tahap 1 : Keputusan X (Opt)

    Keadaan 1 (S1):

    Ruang Tersedia

    Keputusan 1

    (D1): Jumlah

    Barang

    Kebutuhan

    Ruang

    Pengembalian

    1(R1)

    5 2 4 180

    4 2 4 1803 1 2 90

    2 1 2 90

    1 0 0 0

    0 0 0 0

  • 5/22/2018 Pemrograman Dinamis

    21/34

    Contoh Problem Knapsack (5)

    Tahap 2 : Keputusan Y

    Keadaa

    n 2 (S2)

    Keput

    usan

    2

    (D2)

    Kebutu

    han

    Ruang

    Penge

    mbalia

    n 2(R2)

    Keada

    an 1

    (S1)

    Keputu

    san 1

    (D1)

    Penge

    mbalia

    n 1

    (R1)

    Penge

    mbalia

    n Total

    (R)

    5 1 3 150 2 1 90 2400 0 0 5 2 180 180

    4 1 3 150 1 0 0 150

    0 0 0 4 2 180 180

    3 1 3 150 0 0 0 1500 0 0 3 1 90 90

    2 0 0 0 2 1 90 90

    1 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

  • 5/22/2018 Pemrograman Dinamis

    22/34

    Contoh Problem Knapsack (6)

    Tahap 2 : Keputusan Y (Opt)

    Keadaa

    n 2 (S2)

    Keput

    usan

    2

    (D2)

    Kebutu

    han

    Ruang

    Penge

    mbalia

    n 2(R2)

    Keada

    an 1

    (S1)

    Keputu

    san 1

    (D1)

    Penge

    mbalia

    n 1

    (R1)

    Penge

    mbalia

    n Total

    (R)

    5 1 3 150 2 1 90 2400 0 0 5 2 180 180

    4 1 3 150 1 0 0 150

    0 0 0 4 2 180 180

    3 1 3 150 0 0 0 1500 0 0 3 1 90 90

    2 0 0 0 2 1 90 90

    1 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

  • 5/22/2018 Pemrograman Dinamis

    23/34

    Contoh Problem Knapsack (7)

    Tahap 3 : Keputusan Z

    Keadaa

    n 3 (S3)

    Keput

    usan

    3

    (D3)

    Kebutu

    han

    Ruang

    Penge

    mbalia

    n 3(R3)

    Keada

    an 2

    (S2)

    Keputu

    san 2

    (D2)

    Penge

    mbalia

    n 2

    (R2)

    Penge

    mbalia

    n Total

    (R)

    5 5 5 150 0 0 0 1504 4 120 1 0 0 120

    3 3 90 2 0 90 180

    2 2 60 3 1 150 210

    1 1 30 4 0 180 2100 0 0 5 1 240 240

  • 5/22/2018 Pemrograman Dinamis

    24/34

    Contoh Problem Knapsack (8)

    Tahap 3 : Keputusan Z

    Keadaa

    n 3 (S3)

    Keput

    usan

    3

    (D3)

    Kebutu

    han

    Ruang

    Penge

    mbalia

    n 3(R3)

    Keada

    an 2

    (S2)

    Keputu

    san 2

    (D2)

    Penge

    mbalia

    n 2

    (R2)

    Penge

    mbalia

    n Total

    (R)

    5 5 5 150 0 0 0 1504 4 120 1 0 0 120

    3 3 90 2 0 90 180

    2 2 60 3 1 150 210

    1 1 30 4 0 180 2100 0 0 5 1 240 240

  • 5/22/2018 Pemrograman Dinamis

    25/34

    Contoh Problem Knapsack (9)

    Keputusan Optimal

    Keadaan

    (Barang)

    Jumlah

    Barang

    Kebutuhan

    Ruang

    Pengem

    balian

    X 1 2 90

    Y 1 3 150

    Z 0 0 0

    Total 5 240

  • 5/22/2018 Pemrograman Dinamis

    26/34

    Problema Stagecoach

    Suatu jaringan pengarahan perjalanan

    dimana seorang pengarah jalan (abad 19)

    ingin menentukan rute terpendek antara dua

    kota (1 dan 7) berdasarakan rute alternatifyang tersedia.

  • 5/22/2018 Pemrograman Dinamis

    27/34

    Problema Stagecoach (1)

    Tahap 1

    Keadaan 1 (S1):

    Lokasi Truk

    Keputusan 1

    (D1): Rute

    Pengembalian 1

    (R1): Waktu

    Tempuh

    5 57 8

    6 67 14

  • 5/22/2018 Pemrograman Dinamis

    28/34

    Problema Stagecoach (1)

    Tahap 1 (Opt)

    Keadaan 1 (S1):

    Lokasi Truk

    Keputusan 1

    (D1): Rute

    Pengembalian 1

    (R1): Waktu

    Tempuh

    5 57 8

    6 67 14

  • 5/22/2018 Pemrograman Dinamis

    29/34

    Problema Stagecoach (1)

    Tahap 2

    Keadaa

    n 2 (S2)

    Keputus

    an 2

    (D2)

    Penge

    mbalian

    2 (R2)

    Keadaa

    n 1 (S1)

    Pengem

    balian 1

    (R1)

    Pengem

    balian

    Total (R)

    2 25 25 5 8 33

    26 17 6 14 31

    3 35 14 5 8 22

    36 17 6 14 31

    4 45 26 5 8 34

    46 22 6 14 36

  • 5/22/2018 Pemrograman Dinamis

    30/34

    Problema Stagecoach (1)

    Tahap 2 (Opt)

    Keadaa

    n 2 (S2)

    Keputus

    an 2

    (D2)

    Penge

    mbalian

    2 (R2)

    Keadaa

    n 1 (S1)

    Pengem

    balian 1

    (R1)

    Pengem

    balian

    Total (R)

    2 25 25 5 8 33

    26 17 6 14 31

    3 35 14 5 8 22

    36 17 6 14 31

    4 45 26 5 8 34

    46 22 6 14 36

  • 5/22/2018 Pemrograman Dinamis

    31/34

    Problema Stagecoach (1)

    Tahap 3

    Keadaa

    n 3 (S3)

    Keputus

    an 3

    (D3)

    Penge

    mbalian

    3 (R3)

    Keadaa

    n 2 (S2)

    Pengem

    balian 2

    (R2)

    Pengem

    balian

    Total (R)

    1 12 16 2 31 47

    13 35 3 22 57

    14 9 5 34 43

  • 5/22/2018 Pemrograman Dinamis

    32/34

    Problema Stagecoach (1)

    Tahap 3 (Opt)

    Keadaa

    n 3 (S3)

    Keputus

    an 3

    (D3)

    Penge

    mbalian

    3 (R3)

    Keadaa

    n 2 (S2)

    Pengem

    balian 2

    (R2)

    Pengem

    balian

    Total (R)

    1 12 16 2 31 47

    13 35 3 22 57

    14 9 5 34 43

  • 5/22/2018 Pemrograman Dinamis

    33/34

    Problema Stagecoach (1)

    Keputusan Optimal

    Rute yang diambil 1 457 dengan

    jarak tempuh 43.

  • 5/22/2018 Pemrograman Dinamis

    34/34

    Terima kasih