1501142932
Kevin Christoper
1501143771
Andy Untoro
1501147744
Dimas Rizky Lazuardi
1501157215
Kenneth Halim
1501187142
Apriyando Haganta Singarimbun
TUGAS GSLC02 : PAA (T0034) 12 Desember 2012
Kelas 03PST
KETENTUAN :
1. Hard copy per kelompok tanpa di cover dikumpulkan di kelas, upload per
mahasiswa/widi binusmaya, jawaban harus lengkap, jelas dan sistematis
2. Nama anggota harus urut NIM, per kelompok maksimum 5 mahasiswa dan/wi 3. Mahasiswa/wi yang tidak aktif, agar ditolak menjadi anggota kelompok.
======================================================================
SOAL URAIAN
1. (bobot 10%) Jelaskan apa yang dimaksud atau prinsip kerja dari multistage ! Jawab :
Multistage graph merupakan salah satu jenis graph yang berguna untuk
menyelesaikan suatu permasalahan nyata dan bukan merupakan sebuah algoritma. Prinsip kerja dari multistage graph adalah menemukan jalur terpendek dari source ke sink dari beberapa kemungkinan jalur atau menemukan jalur untuk sampai ke sink dengan biaya terkecil dan masih banyak fungsi lainnya. Algoritma yang digunakan untuk menyelesaikan persoalan multistage graph adalah Dynamic Programming. Prinsip kerja dari Dynamic Programming adalah mulai dari 1 titik (sink/source) lalu bergerak per tahap dimana setiap bertemu node berikutnya dihitung cost minimal dari stage sebelumnya.
2. (bobot 10%) Diketahui Cost Matrix sebuah Graph TSP sebagai berikut :
Gambarkan Graph TSP nya !
∞ ∞ ∞ ∞ ∞ ∞ ∞ 19 7 15 13 10 19 12 10 9 16 8 14 11 15 10 12 8 17
Jawab:
3. (bobot 80%) Diketahui node kota dari Jakarta ke Jogyakarta dengan nilai biaya akomodasi dalam ribuan tertera pada gambar, sedangkan biaya transportasi menuju kota yang dimaksud diberikan dalam tabel dibawah ini.
Antar Kota Biaya
(dalam ribuan)
Antar Kota Biaya
(dalam ribuan)
Jakarta – Bogor 20 Jakarta – Cikampek 35
Bogor – Cianjur 24 Cikampek – Purwakarta 15
Bogor – Sukabumi 32 Purwakarta – Padalarang 12
Sukabumi - Cianjur 25 Purwakarta – Sumedang 21
Cianjur – Padalarang 17 Cikampek – Indramayu 27
Sukabumi – Padalarang 27 Indramayu – Cirebon 22
Padalarang – Bandung 12 Sumedang – Cirebon 28
Bandung – Sumedang 26 Cirebon – Tegal 18
Bandung – Tasikmalaya 21 Kuningan – Tegal 38
Tasikmalaya – Ciamis 23 Tegal – Pekalongan 15
Tasikmalaya – Kuningan 29 Tegal – Bumiayu 42
Cirebon – Kuningan 25 Pekalongan – Semarang 14
Tasikmalaya – Kuningan 30 Bumiayu – Wangon 21
Ciamis – Bumiayu 40 Semarang - Demak 20
Ciamis – Bajar 36 Semarang – Temanggung 18
Banjar - Wangon 32 Tamanggung – Magelang 16
Wangon – Magelang 53 Magelang - Purworejo 21
Wangon – Kebumen 33 Purworejo – Jogyakarta 25
Kebumen – Magelang 34 Semarang – Solotigo 26
Kebumen – Kutoarjo 27 Solotigo – Solo 28
Kutoarjo – Purworejo 20 Solo – Jogyakarta 27
Kutoarjo – Jogyakarta 22 Jogya - Wonosari 40
A B C D E 17 8 12 10 15 11 14 8 16 9 10 12 19 10 13 15 7 19
Jakarta 0 Purwakarta 24 Ciamis 23 Tasikmalaya 22 Bandung 45 Padalarang 30 Cianjur 41 Bogor 47 Pekalongan 34 Tegal 30 Cirebon 60 Indramayu 20 Sukabumi 45 Cikampek 25 Banjar 26 Semarang 37 Solotigo 33 Solo 36 Jogyakarta 46 Wagon 21 Kebumen 35 Kutoarjo 25 Temanggung 28 Magelang 31 Purworejo 32 Sumedang 27 Demak 29 Start Goal Kuningan 31 Bumiayu 29
Gambar jalur transportasi darat Jakarta – Yogjakarta (nilai tidak persis sama) Tentukan lintasan terpendek agar pengeluaran minimum, mengunakan algoritma : a. Multistage (low cost)
b. Best First Search c. A-star
Note : Algoritma multistage (low cost) memperhatikan cost untuk mencapai suatu simpul Algoritma Best First memperhatikan biaya di simpul tujuan
Algoritma A-star menjumlahkan kedua komponen cost tersebut. Jawab :
a. Algoritma Multistage (low cost)
cost (Solo, Jogjakarta) = 27 cost (Purworejo, Jogjakarta) = 25
cost (Kutoarjo, Jogjakarta) = min {cost (Kutoarjo, Jogjakarta) | cost (Kutoarjo, Purworejo) + cost (Purworejo, Jogjakarta)} = min {22|20+25} = 22
cost (Salatiga, Jogjakarta) = cost (Salatiga, Solo) + cost (Solo, Jogjakarta) = 28+27 = 55
cost (Magelang, Jogjakarta) = cost (Magelang, Purworejo) + cost (Purworejo, Jogjakarta) = 21 + 25 = 46
cost (Kebumen, Jogjakarta) = min {cost (Kebumen, Magelang) + cost (Magelang, Jogjakarta) | cost (Kebumen, Kutoarjo) + cost (Kutoarjo, Jogjakarta)} = min {34+46|27+45} = 72
cost (Temanggung, Jogjakarta) = cost (Temanggung, Magelang) + cost (Magelang, Jogjakarta) = 16+46 = 62
cost (Semarang, Jogjakarta) = min {cost (Kebumen, Magelang) + cost (Magelang, Jogjakarta) | cost (Semarang, Salatiga) + cost (Salatiga, Jogjakarta)} = min {18+62|26+55} = 80
cost (Wangon, Jogjakarta) = min {cost (Wangon, Kebumen) + cost (Kebumen, Jogjakarta) | cost (Wangon, Magelang) + cost (Magelang, Jogjakarta)} = min {33+72|53+46} = 99
cost (Banjar, Jogjakarta) = cost (Banjar, Wangon) + cost (Wangon, Jogjakarta) = 32+99 = 131
cost (Pekalongan, Jogjakarta) = cost (Pekalongan, Semarang) + cost (Semarang, Jogjakarta) = 14+80 = 94
cost (Bumiayu, Jogjakarta) = min {cost (Bumiayu, Pekalongan) + cost (Pekalongan, Jogjakarta) | cost (Bumiayu, Wangon) + cost (Wangon, Jogjakarta)} = min {30+94|21+99} = 120
cost (Tegal, Jogjakarta) = min {cost (Tegal, Pekalongan) + cost (Pekalongan, Jogjakarta) | cost (Tegal, Bumiayu) + cost (Bumiayu, Jogjakarta)} = min {15+94|42+120} = 109
cost (Ciamis, Jogjakarta) = min {cost (Ciamis, Banjar) + cost (Banjar, Jogjakarta) | cost (Ciamis, Bumiayu) + cost (Bumiayu, Jogjakarta)} = min
{36+131|40+120} = 160
cost (Kuningan, Jogjakarta) = cost (Kuningan, Tegal) + cost (Tegal, Jogjakarta) = 38+109 = 147
cost (Tasikmalaya, Jogjakarta) = min {cost (Tasikmalaya, Ciamis) + cost (Ciamis, Jogjakarta) | cost (Tasikmalaya, Kuningan) + cost (Kuningan, Jogjakarta)} = min {23+160|29+147} = 176
cost (Cirebon, Jogjakarta) = min {cost (Cirebon, Tegal) + cost (Tegal, Jogjakarta) + cost (Cirebon, Kuningan) + cost (Kuningan, Jogjakarta)} = min
{18+109|25+147} = 127
cost (Sumedang, Jogjakarta) = cost (Sumedang, Cirebon) + cost (Cirebon, Jogjakarta) = 28+127 = 155
cost (Indramayu, Jogjakarta) = cost (Indramayu, Cirebon) + cost (Cirebon, Jogjakarta) = 22+127 = 149
cost (Bandung, Jogjakarta) = min {cost (Bandung, Sumedang) + cost (Sumedang, Jogjakarta) | cost (Bandung, Tasikmalaya) + cost (Tasikmalaya,
Jogjakarta)} = min {26+155|21+176} = 181
cost (Padalarang, Jogjakarta) = cost (Padalarang, Bandung) + cost (Bandung, Jogjakarta) = 12+181 = 193
cost (Purwakarta, Jogjakarta) = min {cost (Purwakarta, Sumedang) + cost (Sumedang, Jogjakarta) | cost (Purwakarta, Padalarang) + cost (Padalarang, Jogjakarta)} = min {21+181|12+193} = 202
cost (Cikampek, Jogjakarta) = min {cost (Cikampek, Purwakarta) + cost
(Purwakarta, Jogjakarta) | cost (Cikampek, Indramayu) + cost (Indramayu, Jogjakarta)} = min {15+202|27+149} = 176
cost (Cianjur, Jogjakarta) = cost (Cianjur, Padalarang) + cost (Padalarang, Jogjakarta) = 17+193 = 210
cost (Sukabumi, Jogjakarta) = min {cost (Sukabumi, Cianjur) + cost (Cianjur, Jogjakarta) | cost (Sukabumi, Padalarang) + cost (Padalarang,
Jogjakarta)} = min (25+210|27+193} = 220
cost (Bogor, Jogjakarta) = min {cost (Bogor, Sukabumi) + cost (Sukabumi, Jogjakarta) | cost (Bogor, Cianjur) + cost (Cianjur, Jogjakarta)} = min {32+220|24+210} = 234
cost (Jakarta, Jogjakarta) = min {cost (Jakarta, Bogor) + cost (Bogor, Jogjakarta) | cost (Jakarta, Cikampek) + cost (Cikampek, Jogjakarta)} = min
{20+234|35+176) = 211
Lintasan terpendek : Jakarta -> Cikampek -> Indramayu -> Cirebon -> Tegal
-> Pekalongan -> Semarang -> Temanggung -> Magelang -> Purworejo -> Jogjakarta
b. Algoritma Best First Search
cost (Solo, Jogjakarta) = cost (Solo) + cost (Jogjakarta) = 36+46 = 82
cost (Purworejo, Jogjakarta) = cost (Purworejo) + cost (Jogjakarta) = 32+46 = 78 cost (Kutoarjo, Jogjakarta) = min {cost (Kutoarjo) + cost (Purworejo) | cost
cost (Salatiga, Jogjakarta) = cost (Salatiga) + cost (Solo, Jogjakarta) = 33+82 = 115 cost (Magelang, Jogjakarta) = cost (Magelang) + cost (Purworejo, Jogjakarta) =
31+78 = 109
cost (Kebumen, Jogjakarta) = min {cost (Kebumen) + cost (Kutoarjo, Jogjakarta) | cost (Kebumen) + cost (Magelang, Jogjakarta)} = min {35+71|35+109} = 106
cost (Temanggung, Jogjakarta) = cost (Temanggung) + cost (Magelang, Jogjakarta) = 28+109 = 137
cost (Wangon, Jogjakarta) = min {cost (Wangon) + cost (Magelang, Jogjakarta) | cost (Wangon) | cost (Kebumen, Jogjakarta)} = min {21+109|21+106} = 127
cost (Semarang, Jogjakarta) = min {cost (Semarang) + cost (Temanggung, Jogjakarta) | cost (Semarang) + cost (Salatiga, Jogjakarta)} = min {37+137|37+115} = 152
cost (Pekalongan, Jogjakarta) = cost (Pekalongan) + cost (Semarang, Jogjakarta) = 34+152 = 186
cost (Bumiayu, Jogjakarta) = min {cost (Bumiayu) + cost (Pekalongan, Jogjakarta) | cost (Bumiayu) + cost (Wangon, Jogjakarta)} = min {29+186|29+127} = 156
cost (Banjar, Jogjakarta) = cost (Banjar) + cost (Wangon, Jogjakarta) = 26+127 = 153
cost (Ciamis, Jogjakarta) = min {cost (Ciamis) + cost (Banjar, Jogjakarta) | cost (Ciamis) + cost (Bumiayu, Jogjakarta)} = min {23+153|23+156} = 176 cost (Tegal, Jogjakarta) = min {cost (Tegal) + cost (Pekalongan, Jogjakarta) | cost
(Tegal) + cost (Bumiayu, Jogjakarta)} = min {30+186|30+156} = 186 cost (Kuningan, Jogjakarta) = cost (Kuningan) + cost (Tegal, Jogjakarta) = 31+186
= 217
cost (Cirebon, Jogjakarta) = min {cost (Cirebon) + cost (Tegal, Jogjakarta) | cost (Cirebon) + cost (Kuningan, Jogjakarta)} = min {60+186|60+217} = 246 cost (Tasikmalaya, Jogjakarta) = min {cost (Tasikmalaya) + cost (Kuningan,
Jogjakarta) | cost (Tasikmalaya) + cost (Ciamis, Jogjakarta)} = min {22+217|22+176} = 198
cost (Sumedang, Jogjakarta) = cost (Sumedang) + cost (Cirebon, Jogjakarta) = 27+246 = 273
cost (Indramayu, Jogjakarta) = cost (Indramayu) + cost (Cirebon, Jogjakarta) = 20+246 = 266
cost (Bandung, Jogjakarta) = min {cost (Bandung) + cost (Sumedang, Jogjakarta) | cost (Bandung) + cost (Tasikmalaya, Jogjakarta)} = min {45+273|45+198} = 243
cost (Padalarang, Jogjakarta) = cost (Padalarang) + cost (Bandung, Jogjakarta) = 30+243 = 273
cost (Purwakarta, Jogjakarta) = min {cost (Purwakarta) + cost (Sumedang, Jogjakarta) | cost (Purwakarta) + cost (Padalarang, Jogjakarta)} = min {24+273|24+273} = 297
cost (Cikampek, Jogjakarta) = min {cost (Cikampek) + cost (Indramayu, Jogjakarta) | cost (Cikampek) + cost (Purwakarta, Jogjakarta)} = min {25+266|25+297} = 291
cost (Cianjur, Jogjakarta) = cost (Cianjur) + cost (Padalarang, Jogjakarta) = 41+273 = 314
cost (Sukabumi, Jogjakarta) = min {cost (Sukabumi) + cost (Cianjur, Jogjakarta) | cost (Sukabumi) + cost (Padalarang, Jogjakarta)} = min {45+314|45+273} = 318
cost (Bogor, Jogjakarta) = min {cost (Bogor) + cost (Sukabumi, Jogjakarta) | cost (Bogor) + cost (Cianjur, Jogjakarta)} = min {47+318|47+314} = 361 cost (Jakarta, Jogjakarta) = min {cost (Jakarta) + cost (Bogor, Jogjakarta) | cost
(Jakarta) + cost (Cikampek, Jogjakarta)} = min {0+361|0+291} = 291 Lintasan terpendek : Jakarta -> Cikampek -> Indramayu -> Cirebon -> Tegal
-> Bumiayu -> Wangon -> Kebumen -> Kutoarjo -> Jogjakarta c.Algoritma A-star
cost (Solo, Jogjakarta) = 27+46 = 73 cost (Purworejo, Jogjakarta) = 25+46 = 71
cost (Kutoarjo, Jogjakarta) = min {cost (Kutoarjo, Jogjakarta) | cost (Purworejo, Jogjakarta)} = min {22+46|20+32+71} = 68
cost (Salatiga, Jogjakarta) = cost (Salatiga, Solo) + cost (Solo, Jogjakarta) = 28+36+73 = 137
cost (Magelang, Jogjakarta) = cost (Magelang, Purworejo) + cost (Purworejo, Jogjakarta) = 21+32+71 = 124
cost (Kebumen, Jogjakarta) = min {cost (Kebumen, Magelang) + cost (Magelang, Jogjakarta) | cost (Kebumen, Kutoarjo) + cost (Kutoarjo, Jogjakarta)} = min {34+31+124|27+25+68} = 120
cost (Temanggung, Jogjakarta) = cost (Temanggung, Magelang) + cost (Magelang, Jogjakarta) = 16+31+124 = 171
cost (Semarang, Jogjakarta) = min {cost (Semarang, Temanggung) + cost (Temanggung, Jogjakarta) | cost (Semarang, Salatiga) + cost (Salatiga, Jogjakarta)} = min {18+28+171|26+33+137} = 196
cost (Wangon, Jogjakarta) = min {cost (Wangon, Kebumen) + cost (Kebumen, Jogjakarta) | cost (Wangon, Magelang) + cost (Magelang, Jogjakarta)} = min {33+35+120|53+31+124} = 188
cost (Banjar, Jogjakarta) = cost (Banjar, Wangon) + cost (Wangon, Jogjakarta) = 32+21+188 = 241
cost (Pekalongan, Jogjakarta) = cost (Pekalongan, Semarang) + cost (Semarang, Jogjakarta) = 14+37+196 = 247
cost (Bumiayu, Jogjakarta) = min {cost (Bumiayu, Pekalongan) + cost (Pekalongan, Jogjakarta) | cost (Bumiayu, Wangon) + cost (Wangon, Jogjakarta)} = min {30+34+247|21+21+188} = 230
cost (Tegal, Jogjakarta) = min {cost (Tegal, Pekalongan) + cost (Pekalongan, Jogjakarta) | cost (Tegal, Bumiayu) + cost (Bumiayu, Jogjakarta)} = min {15+34+247|42+29+230} = 296
cost (Ciamis, Jogjakarta) = min {cost (Ciamis, Banjar) + cost (Banjar, Jogjakarta) | cost (Ciamis, Bumiayu) + cost (Bumiayu, Jogjakarta)} = min {36+26+241| 40+29+296} = 303
cost (Kuningan, Jogjakarta) = cost (Kuningan, Tegal) + cost (Tegal, Jogjakarta) = 38+30+296 = 364
cost (Tasikmalaya, Jogjakarta) = min {cost (Tasikmalaya, Ciamis) + cost (Ciamis, Jogjakarta) | cost (Tasikmalaya, Kuningan) + cost (Kuningan, Jogjakarta)} = min {23+23+303|29+31+364} = 349
cost (Cirebon, Jogjakarta) = min{cost (Cirebon, Tegal) + cost (Tegal, Jogjakarta) + cost (Cirebon, Kuningan) + cost (Kuningan, Jogjakarta)} = min
{18+30+296|25+30+364} = 344
cost (Sumedang, Jogjakarta) = cost (Sumedang, Cirebon) + cost (Cirebon, Jogjakarta) = 28+60+344 = 432
cost (Indramayu, Jogjakarta) = cost (Indramayu, Cirebon) + cost (Cirebon, Jogjakarta) = 22+60+344 = 426
cost (Bandung, Jogjakarta) = min {cost (Bandung, Sumedang) + cost (Sumedang, Jogjakarta) | cost (Bandung, Tasikmalaya) + cost (Tasikmalaya,
Jogjakarta)} = min {26+27+432|21+22+349} = 392
cost (Padalarang, Jogjakarta) = cost (Padalarang, Bandung) + cost (Bandung, Jogjakarta) = 12+45+392 = 449
cost (Purwakarta, Jogjakarta) = min {cost (Purwakarta, Sumedang) + cost (Sumedang, Jogjakarta) | cost (Purwakarta, Padalarang) + cost (Padalarang, Jogjakarta)} = min {21+27+432|12+30+449} = 480 cost (Cikampek, Jogjakarta) = min {cost (Cikampek, Purwakarta) + cost
(Purwakarta, Jogjakarta) | cost (Cikampek, Indramayu) + cost (Indramayu, Jogjakarta)} = min {15+24+480|27+20+426} = 473
cost (Cianjur, Jogjakarta) = cost (Cianjur, Padalarang) + cost (Padalarang, Jogjakarta) = 17+30+449 = 496
cost (Sukabumi, Jogjakarta) = min {cost (Sukabumi, Cianjur) + cost (Cianjur, Jogjakarta) | cost (Sukabumi, Padalarang) + cost (Padalarang,
Jogjakarta)} = min (25+41+496|27+30+449} = 506
cost (Bogor, Jogjakarta) = min {cost (Bogor, Sukabumi} + cost (Sukabumi, Jogjakarta) | cost (Bogor, Cianjur) + cost (Cianjur, Jogjakarta)} = min {32+45+506|24+41+496} = 561
cost (Jakarta, Jogjakarta) = min {cost (Jakarta, Bogor) + cost (Bogor, Jogjakarta) | cost (Jakarta, Cikampek) + cost (Cikampek, Jogjakarta)} = min
{20+47+561|35+25+473) = 533
Lintasan terpendek : Jakarta -> Cikampek -> Indramayu -> Cirebon -> Tegal