Back to IF2211 Strategi Algoritma

Topic

Questions/Cues

  • Persoalan Integer Knapsack
  • Knapsack: Karakteristik & Rekurens
  • Knapsack: Perhitungan Tabel Tahap 1
  • Knapsack: Perhitungan Tabel Tahap 2
  • Knapsack: Perhitungan Tabel Tahap 3
  • Knapsack: Rekonstruksi Solusi
  • Persoalan Capital Budgeting
  • CB: Karakteristik & Rekurens
  • CB: Perhitungan Tabel Tahap 1
  • CB: Perhitungan Tabel Tahap 2
  • CB: Perhitungan Tabel Tahap 3
  • CB: Rekonstruksi Solusi Optimal

Persoalan 2: Integer Knapsack

  • Deskripsi Persoalan:
    • Diberikan sebuah tas (knapsack) dengan kapasitas M. Terdapat n buah objek, di mana setiap objek i memiliki bobot dan keuntungan .
    • Tujuan: Memilih objek-objek untuk dimasukkan ke dalam tas sehingga total keuntungan maksimal, dengan syarat total bobot tidak melebihi kapasitas M.
  • Langkah 1 & 2: Karakteristik dan Hubungan Rekursif
    • Tahap (k): Proses mempertimbangkan objek ke-k.
    • Status (y): Kapasitas knapsack yang tersisa, dengan y berkisar dari 0 hingga M.
    • Keputusan (): Apakah objek ke-k dimasukkan () atau tidak ().
    • Fungsi Tujuan: Misalkan adalah keuntungan maksimum yang bisa didapat dari k objek pertama dengan kapasitas y.
    • Hubungan Rekursif: Untuk setiap objek k dan kapasitas y, kita punya dua pilihan:
      1. Tidak Masukkan Objek k: Keuntungan sama dengan tahap sebelumnya: .
      2. Masukkan Objek k: (Hanya jika ). Keuntungan adalah ditambah keuntungan dari kapasitas sisa pada tahap sebelumnya: .
    • Formula:
    • Basis: untuk semua y (keuntungan nol jika tidak ada objek).
  • Langkah 3: Hitung Nilai Solusi Optimal (Contoh n=3, M=5)
    • O1: (), O2: (), O3: ()

Tahap 1 (Objek 1: w=2, p=65):

yKeputusan ()
00-∞0Tidak ambil
10-∞0Tidak ambil
206565Ambil
306565Ambil
406565Ambil
506565Ambil

Tahap 2 (Objek 2: w=3, p=80):

yKeputusan ()
00-∞0Tidak ambil
10-∞0Tidak ambil
265-∞65Tidak ambil
36580Ambil
46580Ambil
565145Ambil

Tahap 3 (Objek 3: w=1, p=30):

yKeputusan ()
00-∞0Tidak ambil
1030Ambil
26565Tidak ambil
38095Ambil
480110Ambil
5145145Tidak ambil
  • Langkah 4: Rekonstruksi Solusi Optimal
    • Keuntungan maksimum untuk kapasitas M=5 adalah .
    1. Tahap 3 (y=5): Nilai 145 berasal dari , bukan dari . Artinya, Objek 3 tidak diambil (). Kita sekarang melihat status y=5 pada tahap sebelumnya.
    2. Tahap 2 (y=5): Nilai 145 berasal dari , bukan dari . Artinya, Objek 2 diambil (). Kapasitas sisa yang perlu diperiksa di tahap sebelumnya adalah y = 5 - w_2 = 5 - 3 = 2.
    3. Tahap 1 (y=2): Nilai 65 berasal dari . Artinya, Objek 1 diambil ().
    • Solusi Akhir: Objek yang diambil adalah {Objek 1, Objek 2}. Vektor solusi X = (1, 1, 0).
    • Verifikasi: Total bobot = (sesuai M). Total keuntungan = .

Persoalan 3: Penganggaran Modal (Capital Budgeting)

  • Deskripsi Persoalan:
    • Sebuah perusahaan memiliki anggaran total M untuk diinvestasikan pada n buah pabrik. Setiap pabrik mengajukan beberapa proposal proyek, di mana setiap proposal memiliki biaya dan menghasilkan keuntungan .
    • Tujuan: Memilih satu proposal dari setiap pabrik untuk memaksimalkan total keuntungan tanpa melebihi total anggaran M.
  • Langkah 1 & 2: Karakteristik dan Hubungan Rekursif
    • Tahap (k): Proses alokasi dana untuk Pabrik ke-k.
    • Status (): Jumlah modal kumulatif yang telah dialokasikan dari tahap 1 hingga tahap k.
    • Keputusan (): Proposal proyek yang dipilih untuk Pabrik ke-k.
    • Hubungan Rekursif: Misalkan adalah keuntungan maksimum dari k pabrik pertama dengan total alokasi modal sebesar .
    • Logika: Keuntungan maksimum di tahap k dengan modal adalah hasil dari memilih proposal terbaik (yang biayanya tidak melebihi ) ditambah keuntungan maksimum yang bisa didapat dari sisa modal () untuk k-1 pabrik sebelumnya.
  • Langkah 3: Hitung Nilai Solusi Optimal (Contoh M=5, n=3)

Tahap 1 (Pabrik 1):

(Keuntungan Maks) (Proposal yg Dipilih)
001
152
263
363
463
563

Tahap 2 (Pabrik 2):

001
151
282
3132
4142 atau 3
5174

Tahap 3 (Pabrik 3):

5171 atau 2
  • Langkah 4: Rekonstruksi Tiga Solusi Optimal
    • Keuntungan maksimum total adalah milyar. Ini bisa dicapai melalui dua pilihan untuk Pabrik 3.
    • Kasus 1: Pabrik 3 memilih (Biaya=0, Untung=0)
      • Modal untuk tahap sebelumnya: .
      • Di tabel Tahap 2, dicapai dengan (Biaya=4).
      • Modal untuk tahap awal: .
      • Di tabel Tahap 1, dicapai dengan (Biaya=1).
      • Solusi #1: Proyek {2, 4, 1}. Biaya: 1+4+0=5. Keuntungan: 5+12+0=17.
    • Kasus 2: Pabrik 3 memilih (Biaya=1, Untung=3)
      • Modal untuk tahap sebelumnya: .
      • Di tabel Tahap 2, dicapai dengan (Biaya=2) atau (Biaya=3).
      • Sub-kasus 2a: Pabrik 2 memilih
        • Modal untuk tahap awal: .
        • Di tabel Tahap 1, dicapai dengan (Biaya=2).
        • Solusi #2: Proyek {3, 2, 2}. Biaya: 2+2+1=5. Keuntungan: 6+8+3=17.
      • Sub-kasus 2b: Pabrik 2 memilih
        • Modal untuk tahap awal: .
        • Di tabel Tahap 1, dicapai dengan (Biaya=1).
        • Solusi #3: Proyek {2, 3, 2}. Biaya: 1+3+1=5. Keuntungan: 5+9+3=17.

Summary

Dynamic programming sangat efektif untuk masalah alokasi sumber daya terbatas. Baik pada persoalan Knapsack maupun Capital Budgeting, polanya serupa: mendefinisikan state sebagai jumlah sumber daya yang tersedia (kapasitas atau modal), lalu pada setiap tahap, membuat keputusan optimal (ambil/tidak, atau pilih proyek mana) dengan mempertimbangkan keuntungan saat ini dan keuntungan optimal yang bisa didapat dari sisa sumber daya. Metode tabulasi memastikan semua kombinasi yang relevan dievaluasi untuk menjamin solusi optimal global.