Anda di halaman 1dari 16

Tugas Personal ke-2

(Minggu 7 / Sesi 11)

1. [Knapsack Problem] Berikut ini merupakan permasalahan Knapsack tentukan kombinasi


barang yang dapat diambil yang mampu memberikan keuntungan maksimum dengan
menggunakan konsep metode Dynamic Programming apabila diketahui barang terbatas dan
tak dapat dipecah dimana kapasitas maksimum dari tas adalah 27 Kg.

Barang Nilai (Rp) Berat (Kg)


A 15 Juta 4
B 28 Juta 3
C 14 Juta 2
D 40 Juta 5
E 50 Juta 10
F 30 Juta 5
G 75 Juta 7

2. [Multistage Graph] Carilah jalur terpendek dari node A ke node L pada multistage graph
dibawah menggunakan metode dynamic programming (backward)!

COMP6742- Algorithm Design and Analysis


3. [Travelling Salesman Problem] Carilah jalur terpendek dengan metode dynamic
programming, dari kota A mengunjungi kota B, C, dan D dan kembali ke A jika diketahui
jarak antar kota seperti table berikut

Dari kota Ke kota Jarak (km)


A B 6
A C 2
B A 5
B D 5
C A 4
C B 3
C D 3
D A 4
D C 7

4. [Coin Change Problem] Dengan menggunakan metode dynamic programming carilah


kombinasi jumlah uang pecahan minimum yang dapat dibentuk dari nominal uang 284
dengan menggunakan pecahan uang dengan nominal 1, 5, 10, 25, 50 dan 100!

COMP6742- Algorithm Design and Analysis


Jawaban Tugas Personal ke-2

(Minggu 7 / Sesi 11)

1. Knapsack

Barang Nilai (Rp) Berat (Kg)


A 15 Juta 4
B 28 Juta 3
C 14 Juta 2
D 40 Juta 5
E 50 Juta 10
F 30 Juta 5
G 75 Juta 7

2. [Multistage Graph]

jalur terpendek dari node A ke node L

 cost(4,I) = c(I,L) = 9

 cost(4,J) = c(J,L) = 8

 cost(4,K) = c(K,L) = 7

 cost(3,F) = min { c(F,I) + cost(4,I) | c(F,J) + cost(4,J) }

 cost(3,F) = min { 13 + 9 | 17 + 8 } = 22

COMP6742- Algorithm Design and Analysis


 cost(3,G) = min { c(G,I) + cost(4,I) | c(G,J) + cost(4,J) }

 cost(3,G) = min { 12 + 9 | 16 + 8 } = 21

 cost(3,H) = min { c(H,J) + cost(4,J) | c(H,K) + cost(4,K) }

 cost(3,H) = min { 14 + 8 | 15 + 7 } = 22

 cost(2,B) = min { c(B,F) + cost(3,F) | c(B,G) + cost(3,G) | c(B,H) + cost(3,H) }

 cost(2,B) = min { 22 + 22 | 23 + 21 | 21 + 22 } = 43

 cost(2,C) = min { c(C,F) + cost(3,F) | c(C,G) + cost(3,G) }

 cost(2,C) = min { 28 + 22 | 27 + 21 } = 48

 cost(2,D) = min { c(D,H) + cost(3,H) }

 cost(2,D) = min { 25 + 22 } = 47

 cost(2,E) = min { c(E,G) + cost(3,G) | c(E,H) + cost(3,H) }

 cost(2,E) = min { 26 + 21 | 24 + 22 } = 46

 cost(1,A) = min { c(A,B) + cost(2,B) | c(A,C) + cost(2,C) | c(A,D) + cost(2,D) |


c(A,E) + cost(2,E) }

 cost(1,A) = min { 17 + 43 | 19 + 48 | 18 + 47 | 20 + 46 } = 60

Jalur terpendek adalah A-B-H-J/K-L

3. [Travelling Salesman Problem]

4. [Coin Change Problem]

Dengan menggunakan metode dynamic programming, dan menggunakan Bahasa javascript,


berikut kodingan dan hasil yang saya peroleh:

// [Coin Change Problem] Dengan menggunakan metode dynamic programming carilah


kombinasi jumlah uang pecahan minimum yang dapat dibentuk dari nominal uang
284 dengan menggunakan pecahan uang dengan nominal 1, 5, 10, 25, 50 dan 100!

let iNilaiCari = 284;


let iMaxCari = 300;
let iJumlahKoin = 6;
let koin = [1, 5, 10, 25, 50, 100];
let C = [];
let iJumKoinMinimal;

COMP6742- Algorithm Design and Analysis


let bBisaDicari = false;
for (let i = 0; i < iMaxCari; i++) {
  C[i] = 0;
}
for (let j = 0; j < iJumlahKoin; j++) {
  C[koin[j]] = 1;
}
for (let n = 0; n < iMaxCari; n++) {
  for (let j = 0; j < iJumlahKoin; j++) {
    if (n - koin[j] >= 1 && C[n - koin[j]] > 0) {
      if (C[n] == 0 || C[n] > 1 + C[n - koin[j]]) {
        C[n] = 1 + C[n - koin[j]];
      }
    }
  }
}
if (C[iNilaiCari] > 0) {
  bBisaDicari = true;
  iJumKoinMinimal = C[iNilaiCari];
} else {
  bBisaDicari = false;
}

Berdasarkan dari program yang saya buat, kombinasi untuk mencari pecahan koin 284 dari
nominal 1, 5, 10, 25, 50 dan 100 adalah sebanyak 9 kombinasi. Bisa dilihat dari tabel berikut
dibawah:

┌─────────┬────────┐

│ (index) │ Values │

├─────────┼────────┤

│ 0 │ 0 │

│ 1 │ 1 │

│ 2 │ 2 │

│ 3 │ 3 │

│ 4 │ 4 │

│ 5 │ 1 │

│ 6 │ 2 │

COMP6742- Algorithm Design and Analysis


│ 7 │ 3 │

│ 8 │ 4 │

│ 9 │ 5 │

│ 10 │ 1 │

│ 11 │ 2 │

│ 12 │ 3 │

│ 13 │ 4 │

│ 14 │ 5 │

│ 15 │ 2 │

│ 16 │ 3 │

│ 17 │ 4 │

│ 18 │ 5 │

│ 19 │ 6 │

│ 20 │ 2 │

│ 21 │ 3 │

│ 22 │ 4 │

│ 23 │ 5 │

│ 24 │ 6 │

│ 25 │ 1 │

│ 26 │ 2 │

│ 27 │ 3 │

│ 28 │ 4 │

│ 29 │ 5 │

│ 30 │ 2 │

│ 31 │ 3 │

│ 32 │ 4 │

│ 33 │ 5 │

│ 34 │ 6 │

COMP6742- Algorithm Design and Analysis


│ 35 │ 2 │

│ 36 │ 3 │

│ 37 │ 4 │

│ 38 │ 5 │

│ 39 │ 6 │

│ 40 │ 3 │

│ 41 │ 4 │

│ 42 │ 5 │

│ 43 │ 6 │

│ 44 │ 7 │

│ 45 │ 3 │

│ 46 │ 4 │

│ 47 │ 5 │

│ 48 │ 6 │

│ 49 │ 7 │

│ 50 │ 1 │

│ 51 │ 2 │

│ 52 │ 3 │

│ 53 │ 4 │

│ 54 │ 5 │

│ 55 │ 2 │

│ 56 │ 3 │

│ 57 │ 4 │

│ 58 │ 5 │

│ 59 │ 6 │

│ 60 │ 2 │

│ 61 │ 3 │

│ 62 │ 4 │

COMP6742- Algorithm Design and Analysis


│ 63 │ 5 │

│ 64 │ 6 │

│ 65 │ 3 │

│ 66 │ 4 │

│ 67 │ 5 │

│ 68 │ 6 │

│ 69 │ 7 │

│ 70 │ 3 │

│ 71 │ 4 │

│ 72 │ 5 │

│ 73 │ 6 │

│ 74 │ 7 │

│ 75 │ 2 │

│ 76 │ 3 │

│ 77 │ 4 │

│ 78 │ 5 │

│ 79 │ 6 │

│ 80 │ 3 │

│ 81 │ 4 │

│ 82 │ 5 │

│ 83 │ 6 │

│ 84 │ 7 │

│ 85 │ 3 │

│ 86 │ 4 │

│ 87 │ 5 │

│ 88 │ 6 │

│ 89 │ 7 │

│ 90 │ 4 │

COMP6742- Algorithm Design and Analysis


│ 91 │ 5 │

│ 92 │ 6 │

│ 93 │ 7 │

│ 94 │ 8 │

│ 95 │ 4 │

│ 96 │ 5 │

│ 97 │ 6 │

│ 98 │ 7 │

│ 99 │ 8 │

│ 100 │ 1 │

│ 101 │ 2 │

│ 102 │ 3 │

│ 103 │ 4 │

│ 104 │ 5 │

│ 105 │ 2 │

│ 106 │ 3 │

│ 107 │ 4 │

│ 108 │ 5 │

│ 109 │ 6 │

│ 110 │ 2 │

│ 111 │ 3 │

│ 112 │ 4 │

│ 113 │ 5 │

│ 114 │ 6 │

│ 115 │ 3 │

│ 116 │ 4 │

│ 117 │ 5 │

│ 118 │ 6 │

COMP6742- Algorithm Design and Analysis


│ 119 │ 7 │

│ 120 │ 3 │

│ 121 │ 4 │

│ 122 │ 5 │

│ 123 │ 6 │

│ 124 │ 7 │

│ 125 │ 2 │

│ 126 │ 3 │

│ 127 │ 4 │

│ 128 │ 5 │

│ 129 │ 6 │

│ 130 │ 3 │

│ 131 │ 4 │

│ 132 │ 5 │

│ 133 │ 6 │

│ 134 │ 7 │

│ 135 │ 3 │

│ 136 │ 4 │

│ 137 │ 5 │

│ 138 │ 6 │

│ 139 │ 7 │

│ 140 │ 4 │

│ 141 │ 5 │

│ 142 │ 6 │

│ 143 │ 7 │

│ 144 │ 8 │

│ 145 │ 4 │

│ 146 │ 5 │

COMP6742- Algorithm Design and Analysis


│ 147 │ 6 │

│ 148 │ 7 │

│ 149 │ 8 │

│ 150 │ 2 │

│ 151 │ 3 │

│ 152 │ 4 │

│ 153 │ 5 │

│ 154 │ 6 │

│ 155 │ 3 │

│ 156 │ 4 │

│ 157 │ 5 │

│ 158 │ 6 │

│ 159 │ 7 │

│ 160 │ 3 │

│ 161 │ 4 │

│ 162 │ 5 │

│ 163 │ 6 │

│ 164 │ 7 │

│ 165 │ 4 │

│ 166 │ 5 │

│ 167 │ 6 │

│ 168 │ 7 │

│ 169 │ 8 │

│ 170 │ 4 │

│ 171 │ 5 │

│ 172 │ 6 │

│ 173 │ 7 │

│ 174 │ 8 │

COMP6742- Algorithm Design and Analysis


│ 175 │ 3 │

│ 176 │ 4 │

│ 177 │ 5 │

│ 178 │ 6 │

│ 179 │ 7 │

│ 180 │ 4 │

│ 181 │ 5 │

│ 182 │ 6 │

│ 183 │ 7 │

│ 184 │ 8 │

│ 185 │ 4 │

│ 186 │ 5 │

│ 187 │ 6 │

│ 188 │ 7 │

│ 189 │ 8 │

│ 190 │ 5 │

│ 191 │ 6 │

│ 192 │ 7 │

│ 193 │ 8 │

│ 194 │ 9 │

│ 195 │ 5 │

│ 196 │ 6 │

│ 197 │ 7 │

│ 198 │ 8 │

│ 199 │ 9 │

│ 200 │ 2 │

│ 201 │ 3 │

│ 202 │ 4 │

COMP6742- Algorithm Design and Analysis


│ 203 │ 5 │

│ 204 │ 6 │

│ 205 │ 3 │

│ 206 │ 4 │

│ 207 │ 5 │

│ 208 │ 6 │

│ 209 │ 7 │

│ 210 │ 3 │

│ 211 │ 4 │

│ 212 │ 5 │

│ 213 │ 6 │

│ 214 │ 7 │

│ 215 │ 4 │

│ 216 │ 5 │

│ 217 │ 6 │

│ 218 │ 7 │

│ 219 │ 8 │

│ 220 │ 4 │

│ 221 │ 5 │

│ 222 │ 6 │

│ 223 │ 7 │

│ 224 │ 8 │

│ 225 │ 3 │

│ 226 │ 4 │

│ 227 │ 5 │

│ 228 │ 6 │

│ 229 │ 7 │

│ 230 │ 4 │

COMP6742- Algorithm Design and Analysis


│ 231 │ 5 │

│ 232 │ 6 │

│ 233 │ 7 │

│ 234 │ 8 │

│ 235 │ 4 │

│ 236 │ 5 │

│ 237 │ 6 │

│ 238 │ 7 │

│ 239 │ 8 │

│ 240 │ 5 │

│ 241 │ 6 │

│ 242 │ 7 │

│ 243 │ 8 │

│ 244 │ 9 │

│ 245 │ 5 │

│ 246 │ 6 │

│ 247 │ 7 │

│ 248 │ 8 │

│ 249 │ 9 │

│ 250 │ 3 │

│ 251 │ 4 │

│ 252 │ 5 │

│ 253 │ 6 │

│ 254 │ 7 │

│ 255 │ 4 │

│ 256 │ 5 │

│ 257 │ 6 │

│ 258 │ 7 │

COMP6742- Algorithm Design and Analysis


│ 259 │ 8 │

│ 260 │ 4 │

│ 261 │ 5 │

│ 262 │ 6 │

│ 263 │ 7 │

│ 264 │ 8 │

│ 265 │ 5 │

│ 266 │ 6 │

│ 267 │ 7 │

│ 268 │ 8 │

│ 269 │ 9 │

│ 270 │ 5 │

│ 271 │ 6 │

│ 272 │ 7 │

│ 273 │ 8 │

│ 274 │ 9 │

│ 275 │ 4 │

│ 276 │ 5 │

│ 277 │ 6 │

│ 278 │ 7 │

│ 279 │ 8 │

│ 280 │ 5 │

│ 281 │ 6 │

│ 282 │ 7 │

│ 283 │ 8 │

│ 284 │ 9 │

│ 285 │ 5 │

│ 286 │ 6 │

COMP6742- Algorithm Design and Analysis


│ 287 │ 7 │

│ 288 │ 8 │

│ 289 │ 9 │

│ 290 │ 6 │

│ 291 │ 7 │

│ 292 │ 8 │

│ 293 │ 9 │

│ 294 │ 10 │

│ 295 │ 6 │

│ 296 │ 7 │

│ 297 │ 8 │

│ 298 │ 9 │

│ 299 │ 10 │

└─────────┴

COMP6742- Algorithm Design and Analysis

Anda mungkin juga menyukai