BAB 7 Penjadwalan Proyek, Flow Shop Problem, dan Job Shop Problem
7.3 Job Shop Problem
Tugas i 5 4 7 1 8 ti,2 6 5 2 2 1 Sehingga urutan tugas yang optimal adalah : {3, 2, 6, 5, 4, 7, 1, 8}.
Gantt chart untuk urutan tugas optimal adalah :
Gambar 7.2.1. Gantt Chart untuk Flow Shop Problem
7.3 Job Shop Problem
Model dari Job Shop Problem mirip dengan Flow Shop Problem yaitu : terdapat m mesin dan n tugas. Setiap tugas terdiri dari m operasi dan setiap operasi membutuhkan mesin yang berbeda.
Namun perbedaaannya adalah setiap tugas memiliki urutan pengoperasian mesin yang berbeda.
Waktu pemrosesan dari tugas i pada mesin j diberikan oleh ti,j(i = 1, 2, . . . , n; j = 1, 2, . . . , m).
Obyektif dari job shop problem adalah menemukan urutan tugas yang meminimumkan arus mak-simum.
Contoh :
Diketahui waktu pemrosesan tiga tugas dengan tiga mesin sebagai berikut :
Tugas i 1 2 3 ti,1 3 3 2 ti,2 1 3 5 ti,3 3 2 3
Urutan mesin yang digunakan pada masing-masing tugas adalah : Tugas 1 : 1 → 2 → 3
Tugas 2 : 1 → 3 → 2 Tugas 3 : 2 → 1 → 3
Tentukan urutan tugas yang optimal.
Jawab :
Gantt chart untuk urutan tugas yang optimal adalah :
Gambar 7.3. Gantt Chart untuk Job Shop Problem
Tiga digit pada gantt chart dapat dinotasikan dengan notasi ”ioj”. Contoh angka 321 berarti tugas 3 dikerjakan pada mesin 1 dengan urutan nomor 2.
Bab 8
Pemrograman Bilangan Bulat (Integer Programming)
Pemrograman bilangan bulat menggunakan metode Simpleks dalam perhitungannya. Dalam metode Simpleks, ada kalanya solusi optimal yang dihasilkan berupa bilangan real pecahan. Namun dalam obyek yang bersifat diskrit misal jumlah pekerja, jumlah produksi, dan sebagainya, solusi yang di-hasilkan merupakan bilangan bulat positif sehingga metode Simpleks dapat dikembangkan menjadi pemrograman bilangan bulat.
8.1 Metode Branch and Bound
Dalam memecahkan permasalahan pemrograman bilangan bulat, metode Branch and Bound pal-ing serpal-ing digunakan. Metode ini menggunakan tiga tahapan yaitu percabangan (branching), pengikatan (bounding), dan penguasaan (fathoming).
8.1.1 Tahap Awal (Inisialisasi)
Pada masalah optimisasi maksimalisasi nilai Z, tetapkan Z∗= −∞.
8.1.2 Tahap Optimisasi
1. Percabangan (Branching ). Misalkan x∗i adalah variabel dari solusi optimal yang bukan himpunan bilangan bulat. Buatlah cabang menjadi xi≤ [x∗i] dan xi≥ [x∗i] + 1.
2. Pembatasan (Bounding ). Tentukan batas dari Z menggunakan metode grafis (jika hanya terdiri dari dua peubah) atau metode Simpleks.
3. Penguasaan (Fathoming ). Syarat-syarat jika solusi optimal tersebut keadaan fathom se-hingga kita tidak perlu membuat cabang lagi adalah :
(a) JIka Znew ≤ Zold∗
(b) Tidak memiliki solusi optimal.
(c) Telah memiliki solusi optimal berupa bilangan bulat.
137
8.1.3 Tahap Pemberhentian
Tahap pemberhentian terjadi ketika semua solusi dalam keadaan fathom sehingga kita tidak bisa membuat cabang lagi.
8.1.4 Komputasi Contoh :
Diketahui masalah program linear sebagai berikut :
max Z = −x1+ 4x2 dengan kendala
−10x1+ 20x2 ≤ 22 5x1+ 10x2 ≤ 49 x1 ≤ 5 x1, x2≥ 0 x1, x2 ∈ B Tentukan solusi optimalnya.
Jawab :
Pertama-tama buatlah grafik kendalanya seperti pada Gambar 8.1.4.
Gambar 8.1.4. Grafik Kendala Metode Branch and Bound
Cabang 1
Kemudian hitung titik potongnya. Dari hasil perhitungan, diperoleh titik potongnya adalah : (0; 0), (0; 1, 1), (3, 8; 3), (5; 2, 4), (5; 0). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2) =
8.1. METODE BRANCH AND BOUND 139
−x1+ 4x2.
f (0; 0) = −0 + 4(0) = 0 f (0; 1, 1) = −0 + 4(1, 1) = 4, 4 f (3, 8; 3) = −3, 8 + 4(3) = 8, 2 f (5; 2, 4) = −5 + 4(2, 4) = 4, 6
f (5; 0) = −5 + 4(0) = 5
Dari hasil perhitungan di atas, terlihat bahwa titik (x1, x2) = (3, 8; 3) menghasilkan nilai Z paling besar yaitu sebesar 8,2.
Karena x1 = 3, 8 bukan termasuk elemen bilangan bulat, maka nilai x1harus dibagi menjadi x1 ≤ 3 dan x1≥ 4.
Cabang 1.1
Dari cabang 1, untuk kasus x1 ≤ 3, diperoleh program linear sebagai berikut :
max Z = −x1+ 4x2
dengan kendala
−10x1+ 20x2 ≤ 22 5x1+ 10x2 ≤ 49 x1 ≤ 5 x1 ≤ 3
x1, x2 ≥ 0 x1, x2∈ B
Kemudian hitung titik potongnya. Dari hasil perhitungan, diperoleh titik potongnya adalah : (0; 0), (0; 1, 1), (3; 0), (3; 2, 6). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2) = −x1+ 4x2.
f (0; 0) = −0 + 4(0) = 0 f (0; 1, 1) = −0 + 4(1, 1) = 4, 4
f (3; 0) = −3 + 4(0) = −3 f (3; 2, 6) = −3 + 4(2, 6) = 7, 4
Dari hasil perhitungan di atas, terlihat bahwa titik (x1, x2) = (3; 2, 6) menghasilkan nilai Z paling besar yaitu sebesar 7,4.
Gambar 8.1.4. Branch and Bound Cabang 1.1
Karena x2= 2, 6 bukan termasuk elemen bilangan bulat, maka nilai x2 harus dibagi menjadi x2 ≤ 2 dan x2 ≥ 3.
Cabang 1.2
Dari cabang 1, untuk kasus x1≥ 4, diperoleh program linear sebagai berikut : max Z = −x1+ 4x2
dengan kendala
−10x1+ 20x2 ≤ 22 5x1+ 10x2 ≤ 49 x1 ≤ 5 x1 ≥ 4 x1, x2≥ 0 x1, x2 ∈ B
Kemudian hitung titik potongnya. Dari hasil perhitungan, diperoleh titik potongnya adalah : (4; 0), (5; 0), (5; 2, 4), (4; 2, 9). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2) = −x1+ 4x2.
f (4; 0) = −4 + 4(0) = −4 f (5; 0) = −5 + 4(0) = −5 f (5; 2, 4) = −5 + 4(2, 4) = 4, 6 f (4; 2, 9) = −4 + 4(2, 9) = 7, 6
Dari hasil perhitungan di atas, terlihat bahwa titik (x1, x2) = (4; 2, 9) menghasilkan nilai Z paling besar yaitu sebesar 7,6.
8.1. METODE BRANCH AND BOUND 141
Gambar 8.1.4. Branch and Bound Cabang 1.2
Karena x2 = 2, 9 bukan termasuk elemen bilangan bulat, maka nilai x2harus dibagi menjadi x2 ≤ 2 dan x2≥ 3.
Gambar 8.1.4. Branch and Bound Cabang 1.1 dan 1.2
Cabang 1.1.1
Dari cabang 1.1, untuk kasus x2 ≤ 2, diperoleh program linear sebagai berikut : max Z = −x1+ 4x2
dengan kendala
−10x1+ 20x2 ≤ 22 5x1+ 10x2 ≤ 49 x1 ≤ 5 x1 ≤ 3 x2 ≤ 2 x1, x2≥ 0 x1, x2 ∈ B
Kemudian hitung titik potongnya. Dari hasil perhitungan, diperoleh titik potongnya adalah : (0; 0), (0; 1, 1), (1, 8; 2), (3; 2), (3; 0). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2) =
−x1+ 4x2.
f (0; 0) = −0 + 4(0) = 0 f (0; 1, 1) = −0 + 4(1, 1) = 4, 4 f (1, 8; 2) = −1, 8 + 4(2) = 6, 2
f (3; 2) = −3 + 4(2) = 5 f (3; 0) = −3 + 4(0) = −3
Dari hasil perhitungan di atas, terlihat bahwa titik (x1, x2) = (1, 8; 2) menghasilkan nilai Z paling besar yaitu sebesar 6,2.
Gambar 8.1.4. Branch and Bound Cabang 1.1.1
Karena x1= 1, 8 bukan termasuk elemen bilangan bulat, maka nilai x1 harus dibagi menjadi x1 ≤ 1 dan x1 ≥ 2.
Cabang 1.1.2
Dari cabang 1.1, untuk kasus x2 ≥ 3, diperoleh program linear sebagai berikut : max Z = −x1+ 4x2
8.1. METODE BRANCH AND BOUND 143 dengan kendala
−10x1+ 20x2 ≤ 22 5x1+ 10x2 ≤ 49 x1 ≤ 5 x1 ≤ 3 x2 ≥ 3 x1, x2 ≥ 0 x1, x2∈ B
Kemudian hitung titik potongnya. Dari hasil perhitungan, pertidaksamaan x2 ≥ 3 berada di luar feasible area sehingga pada cabang ini tidak ada solusi optimal.
Gambar 8.1.4. Branch and Bound Cabang 1.1.2
Cabang 1.2.1
Dari cabang 1.2, untuk kasus x2 ≤ 2, diperoleh program linear sebagai berikut : max Z = −x1+ 4x2
dengan kendala
−10x1+ 20x2 ≤ 22 5x1+ 10x2 ≤ 49 x1 ≤ 5 x1 ≥ 4 x2 ≤ 2 x1, x2 ≥ 0 x1, x2∈ B
Kemudian hitung titik potongnya. Dari hasil perhitungan, diperoleh titik potongnya adalah :
(4; 0), (5; 0), (4; 2), (5; 2). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2) = −x1+ 4x2. f (4; 0) = −4 + 4(0) = −4
f (5; 0) = −5 + 4(0) = −5 f (4; 2) = −4 + 4(2) = 4 f (5; 2) = −5 + 4(2) = 3
Dari hasil perhitungan di atas, terlihat bahwa titik (x1, x2) = (4; 2) menghasilkan nilai Z paling besar yaitu sebesar 4.
Gambar 8.1.4. Branch and Bound Cabang 1.2.1
Cabang 1.2.2
Dari cabang 1.2, untuk kasus x2 ≥ 3, diperoleh program linear sebagai berikut : max Z = −x1+ 4x2
dengan kendala
−10x1+ 20x2 ≤ 22 5x1+ 10x2 ≤ 49 x1 ≤ 5 x1 ≥ 4 x2 ≥ 3
x1, x2≥ 0 x1, x2 ∈ B
Kemudian hitung titik potongnya. Dari hasil perhitungan, pertidaksamaan x2 ≥ 3 berada di luar feasible area sehingga pada cabang ini tidak ada solusi optimal.
8.1. METODE BRANCH AND BOUND 145
Gambar 8.1.4. Branch and Bound Cabang 1.2.2
Gambar 8.1.4. Branch and Bound Cabang 1.1.1, 1.1.2, 1.2.1, 1.2.2
Cabang 1.1.1.1
Dari cabang 1.1.1, untuk kasus x1≤ 1, diperoleh program linear sebagai berikut : max Z = −x1+ 4x2
dengan kendala
−10x1+ 20x2 ≤ 22 5x1+ 10x2 ≤ 49 x1 ≤ 5 x1 ≤ 3 x2 ≤ 2 x1 ≤ 1 x1, x2 ≥ 0 x1, x2∈ B
Kemudian hitung titik potongnya. Dari hasil perhitungan, diperoleh titik potongnya adalah : (0; 0), (0; 1, 1), (1; 1, 6), (1; 0). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2) = −x1+
4x2.
f (0; 0) = −0 + 4(0) = 0 f (0; 1, 1) = −0 + 4(1, 1) = 4, 4 f (1; 1, 6) = −1 + 4(1, 6) = 5, 4
f (1; 0) = −1 + 4(0) = −1
Dari hasil perhitungan di atas, terlihat bahwa titik (x1, x2) = (1; 1, 6) menghasilkan nilai Z paling besar yaitu sebesar 5,4.
Gambar 8.1.4. Branch and Bound Cabang 1.1.1.1
Karena x2= 1, 6 bukan termasuk elemen bilangan bulat, maka nilai x2 harus dibagi menjadi x2 ≤ 1 dan x2 ≥ 2.
Cabang 1.1.1.2
Dari cabang 1.1.1, untuk kasus x1 ≥ 2, diperoleh program linear sebagai berikut : max Z = −x1+ 4x2
dengan kendala
−10x1+ 20x2 ≤ 22 5x1+ 10x2 ≤ 49 x1 ≤ 5 x1 ≤ 3 x2 ≤ 2 x1 ≥ 2 x1, x2≥ 0 x1, x2 ∈ B
Kemudian hitung titik potongnya. Dari hasil perhitungan, diperoleh titik potongnya adalah :
8.1. METODE BRANCH AND BOUND 147 (2; 0), (3; 0), (2; 2), (3; 2). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2) = −x1+ 4x2.
f (2; 0) = −2 + 4(0) = −2 f (3; 0) = −3 + 4(0) = −3 f (2; 2) = −2 + 4(2) = 6 f (3; 2) = −3 + 4(2) = 5
Dari hasil perhitungan di atas, terlihat bahwa titik (x1, x2) = (2; 2) menghasilkan nilai Z paling besar yaitu sebesar 6.
Gambar 8.1.4. Branch and Bound Cabang 1.1.1.2
Cabang 1.1.1.1.1
Dari cabang 1.1.1.1, untuk kasus x2 ≤ 1, diperoleh program linear sebagai berikut : max Z = −x1+ 4x2
dengan kendala
−10x1+ 20x2 ≤ 22 5x1+ 10x2 ≤ 49 x1 ≤ 5 x1 ≤ 3 x2 ≤ 2 x1 ≤ 1 x2 ≤ 1 x1, x2 ≥ 0 x1, x2∈ B
Kemudian hitung titik potongnya. Dari hasil perhitungan, diperoleh titik potongnya adalah :
(0; 0), (0; 1), (1; 1), (1; 0). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2) = −x1+ 4x2. f (0; 0) = −0 + 4(0) = 0
f (0; 1) = −0 + 4(1) = 4 f (1; 1) = −1 + 4(1) = 3 f (1; 0) = −1 + 4(0) = −1
Dari hasil perhitungan di atas, terlihat bahwa titik (x1, x2) = (0; 1) menghasilkan nilai Z paling besar yaitu sebesar 4.
Gambar 8.1.4. Branch and Bound Cabang 1.1.1.1.1
Cabang 1.1.1.1.2
Dari cabang 1.1.1.1, untuk kasus x2 ≥ 2, diperoleh program linear sebagai berikut : max Z = −x1+ 4x2
dengan kendala
−10x1+ 20x2 ≤ 22 5x1+ 10x2 ≤ 49 x1 ≤ 5 x1 ≤ 3 x2 ≤ 2 x1 ≤ 1 x2 ≥ 2 x1, x2≥ 0 x1, x2 ∈ B
Kemudian hitung titik potongnya. Dari hasil perhitungan, pertidaksamaan x2 ≥ 2 berada di luar feasible area sehingga pada cabang ini tidak ada solusi optimal.
8.2. PEMROGRAMAN BINER 149
Gambar 8.1.4. Branch and Bound Cabang 1.1.1.1.2
Gambar 8.1.4. Branch and Bound Cabang 1.1.1.1, 1.1.1.2, 1.1.1.1.1, 1.1.1.1.2
Kesimpulan :
Dari hasil perhitungan, pada cabang 1.1.1.2 menghasilkan nilai Z paling besar, yaitu Z = 6 dengan x1 = 2 dan x2= 2.
8.2 Pemrograman Biner
Pemrograman biner adalah model optimisasi dengan kendala, dan variabel keputusan dari model berupa bilangan 0 atau 1. Metode yang digunakan dalam pemrograman biner mirip dengan Branch and Bound yang menggunakan tiga tahapan yaitu percabangan (branching), pengikatan (bound-ing), dan penguasaan (fathoming).
8.2.1 Tahap Awal (Inisialisasi)
Pada masalah optimisasi maksimalisasi nilai Z, tetapkan Z∗= −∞.
8.2.2 Tahap Optimisasi
1. Percabangan (Branching ). Misalkan x∗i adalah variabel dari solusi optimal yang bukan bilangan 0 atau 1. Buatlah cabang menjadi xi= 0 dan xi = 1.
2. Pembatasan (Bounding ). Tentukan batas dari Z menggunakan metode grafis (jika hanya terdiri dari dua peubah) atau metode Simpleks.
3. Penguasaan (Fathoming ). Syarat-syarat jika solusi optimal tersebut keadaan fathom se-hingga kita tidak perlu membuat cabang lagi adalah :
(a) JIka Znew≤ Zold∗
(b) Tidak memiliki solusi optimal.
(c) Telah memiliki solusi optimal berupa bilangan 0 atau 1.
8.2.3 Tahap Pemberhentian
Tahap pemberhentian terjadi ketika semua solusi dalam keadaan fathom sehingga kita tidak bisa membuat cabang lagi.
8.2.4 Komputasi Contoh :
Diketahui masalah program linear sebagai berikut :
max Z = 9x1+ 5x2+ 6x3+ 4x4
dengan kendala
6x1+ 3x2+ 5x3+ 2x4 ≤ 10 x3+ x4 ≤ 1
−x1+ x3 ≤ 0
−x2+ x4 ≤ 0 0 ≤ x1, x2, x3, x4 ≤ 1 x1, x2, x3, x4 ∈ {0, 1}
Tentukan solusi optimalnya.
Jawab : Cabang 1
Dengan menggunakan metode Simpleks, diperoleh nilai (x1, x2, x3, x4) = (5
6; 1; 0; 1). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2, x3, x4) = 9x1+ 5x2+ 6x3+ 4x4.
f (5
6; 1; 0; 1) = 9(5
6) + 5(1) + 6(0) + 4(1) = 16, 5
8.2. PEMROGRAMAN BINER 151
Karena x1 = 5
6 bukan termasuk elemen {0, 1}, maka nilai x1 harus dibagi menjadi x1 = 0 dan x1 = 1.
Cabang 1.1
Dari cabang 1, untuk kasus x1 = 0, diperoleh program linear sebagai berikut : max Z = 5x2+ 6x3+ 4x4
Dengan menggunakan metode Simpleks, diperoleh nilai (x2, x3, x4) = (1; 0; 1). Gabungkan dengan nilai x1 = 0 sehingga diperoleh nilai (x1, x2, x3, x4) = (0; 1; 0; 1). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2, x3, x4) = 9x1+ 5x2+ 6x3+ 4x4.
f (0; 1; 0; 1) = 9(0) + 5(1) + 6(0) + 4(1) = 9 Cabang 1.2
Dari cabang 1, untuk kasus x1 = 1, diperoleh program linear sebagai berikut : max Z = 9 + 5x2+ 6x3+ 4x4
5). Gabungkan dengan nilai x1 = 1 sehingga diperoleh nilai (x1, x2, x3, x4) = (1;4
5; 0;4
5). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2, x3, x4) = 9x1+ 5x2+ 6x3+ 4x4.
5 bukan termasuk elemen bilangan bulat, maka nilai x2 harus dibagi menjadi x2= 0 dan x2= 1.
Karena x4= 4
5 bukan termasuk elemen bilangan bulat, maka nilai x4 harus dibagi menjadi x4 = 0 dan x4 = 1.
Cabang 1.2.1
Dari cabang 1.2, untuk kasus x2 = 0, diperoleh program linear sebagai berikut : max Z = 9 + 6x3+ 4x4
Dengan menggunakan metode Simpleks, diperoleh nilai (x3, x4) = (4
5; 0). Gabungkan dengan nilai x1 = 1, x2 = 0 sehingga diperoleh nilai (x1, x2, x3, x4) = (1; 0;4
5; 0). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2, x3, x4) = 9x1+ 5x2+ 6x3+ 4x4.
f (1; 0;4
5; 0) = 9(1) + 5(0) + 6(4
5) + 4(0) = 13, 8 Karena x3= 4
5 bukan termasuk elemen bilangan bulat, maka nilai x3 harus dibagi menjadi x3 = 0 dan x3 = 1.
Cabang 1.2.2
Dari cabang 1.2, untuk kasus x2 = 1, diperoleh program linear sebagai berikut : max Z = 14 + 6x3+ 4x4
Dengan menggunakan metode Simpleks, diperoleh nilai (x3, x4) = (0;1
2). Gabungkan dengan nilai x1 = 1, x2 = 1 sehingga diperoleh nilai (x1, x2, x3, x4) = (1; 1; 0;1
2). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2, x3, x4) = 9x1+ 5x2+ 6x3+ 4x4.
f (1; 1; 0;1
2) = 9(1) + 5(1) + 6(0) + 4(1 2) = 16
8.2. PEMROGRAMAN BINER 153
Karena x4 = 1
2 bukan termasuk elemen bilangan bulat, maka nilai x4 harus dibagi menjadi x4= 0 dan x4= 1.
Cabang 1.2.3
Dari cabang 1.2, untuk kasus x4 = 0, diperoleh program linear sebagai berikut : max Z = 9 + 5x2+ 6x3
Dengan menggunakan metode Simpleks, diperoleh nilai (x2, x3) = (0;4
5). Gabungkan dengan nilai x1 = 1, x4= 0 sehingga diperoleh nilai (x1, x2, x3, x4) = (1; 0;4
5; 0). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2, x3, x4) = 9x1+ 5x2+ 6x3+ 4x4.
f (1; 0;4
5; 0) = 9(1) + 5(0) + 6(4
5) + 4(0) = 13, 8 Karena x3 = 4
5 bukan termasuk elemen bilangan bulat, maka nilai x3 harus dibagi menjadi x3= 0 dan x3= 1.
Cabang 1.2.4
Dari cabang 1.2, untuk kasus x4 = 1, diperoleh program linear sebagai berikut : max Z = 13 + 5x2+ 6x3
Dengan menggunakan metode Simpleks, diperoleh nilai (x2, x3) = (2
3; 0). Gabungkan dengan nilai x1 = 1, x4= 1 sehingga diperoleh nilai (x1, x2, x3, x4) = (1;2
3; 0; 1). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2, x3, x4) = 9x1+ 5x2+ 6x3+ 4x4.
f (1; 1; 0;1
2) = 9(1) + 5(1) + 6(0) + 4(1
2) = 16, 3
Karena x2= 2
3 bukan termasuk elemen bilangan bulat, maka nilai x2 harus dibagi menjadi x2 = 0 dan x2 = 1.
Gambar 8.2.4. Pemrograman Biner Cabang 1.2.1, 1.2.2, 1.2.3, 1.2.4
Cabang 1.2.1.1
Dari cabang 1.2.1, untuk kasus x3 = 0, diperoleh program linear sebagai berikut : max Z = 9 + 4x4
dengan kendala
2x4 ≤ 4 x4 ≤ 1 x4 ≤ 0 0 ≤ x4 ≤ 1 x4 ∈ {0, 1}
Dengan menggunakan metode Simpleks, diperoleh nilai (x4) = (0). Gabungkan dengan nilai x1 = 1, x2 = 0, x3 = 0 sehingga diperoleh nilai (x1, x2, x3, x4) = (1; 0; 0; 0). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2, x3, x4) = 9x1+ 5x2+ 6x3+ 4x4.
f (1; 0; 0; 0) = 9(1) + 5(0) + 6(0) + 4(0) = 9 Cabang 1.2.1.2
Dari cabang 1.2.1, untuk kasus x3 = 1, diperoleh program linear sebagai berikut : max Z = 15 + 4x4
dengan kendala
2x4 ≤ −1 x4 ≤ 0
1 ≤ 1 x4 ≤ 0
8.2. PEMROGRAMAN BINER 155 0 ≤ x4 ≤ 1
x4 ∈ {0, 1}
Dari hasil perhitungan, pertidaksamaan 2x4≤ −1 berada di luar feasible area sehingga pada cabang ini tidak ada solusi optimal.
Cabang 1.2.2.1
Dari cabang 1.2.2, untuk kasus x4= 0, diperoleh program linear sebagai berikut : max Z = 14 + 6x3
dengan kendala
5x3 ≤ 1 x3 ≤ 1 x3 ≤ 1 0 ≤ 1 0 ≤ x3 ≤ 1 x3 ∈ {0, 1}
Dengan menggunakan metode Simpleks, diperoleh nilai (x3) = (1
5). Gabungkan dengan nilai x1 = 1, x2 = 1, x4 = 0 sehingga diperoleh nilai (x1, x2, x3, x4) = (1; 1;1
5; 0). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2, x3, x4) = 9x1+ 5x2+ 6x3+ 4x4.
f (1; 1;1
5; 0) = 9(1) + 5(1) + 6(1
5) + 4(0) = 15, 2 Karena x3 = 1
5 bukan termasuk elemen bilangan bulat, maka nilai x3 harus dibagi menjadi x3= 0 dan x3= 1.
Cabang 1.2.2.2
Dari cabang 1.2.2, untuk kasus x4= 1, diperoleh program linear sebagai berikut : max Z = 18 + 6x3
dengan kendala
5x3 ≤ −1 x3 ≤ 0 x3 ≤ 1 1 ≤ 1 0 ≤ x3 ≤ 1 x3 ∈ {0, 1}
Dari hasil perhitungan, pertidaksamaan 5x3≤ −1 berada di luar feasible area sehingga pada cabang ini tidak ada solusi optimal.
Gambar 8.2.4. Pemrograman Biner Cabang 1.2.1.1, 1.2.1.2, 1.2.2.1, 1.2.2.2
Cabang 1.2.3.1
Dari cabang 1.2.3, untuk kasus x3 = 0, diperoleh program linear sebagai berikut : max Z = 9 + 5x2
dengan kendala
3x2 ≤ 4 0 ≤ 1 0 ≤ 1 x2 ≤ 0 0 ≤ x2 ≤ 1 x2 ∈ {0, 1}
Dengan menggunakan metode Simpleks, diperoleh nilai (x2) = (0). Gabungkan dengan nilai x1 = 1, x3 = 0, x4 = 0 sehingga diperoleh nilai (x1, x2, x3, x4) = (1; 0; 0; 0). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2, x3, x4) = 9x1+ 5x2+ 6x3+ 4x4.
f (1; 0; 0; 0) = 9(1) + 5(0) + 6(0) + 4(0) = 9 Cabang 1.2.3.2
Dari cabang 1.2.3, untuk kasus x3 = 1, diperoleh program linear sebagai berikut : max Z = 15 + 5x2
dengan kendala
3x2 ≤ −1 1 ≤ 1 1 ≤ 1 x2 ≤ 0
8.2. PEMROGRAMAN BINER 157 0 ≤ x2 ≤ 1
x2 ∈ {0, 1}
Dari hasil perhitungan, pertidaksamaan 3x2≤ −1 berada di luar feasible area sehingga pada cabang ini tidak ada solusi optimal.
Cabang 1.2.4.1
Dari cabang 1.2.4, untuk kasus x2= 0, diperoleh program linear sebagai berikut : max Z = 13 + 6x3
dengan kendala
5x3 ≤ 2 x3 ≤ 0 x3 ≤ 1 0 ≤ 1
0 ≤ x3 ≤ 1 x3 ∈ {0, 1}
Dengan menggunakan metode Simpleks, diperoleh nilai (x3) = (0). Gabungkan dengan nilai x1 = 1, x2 = 0, x4 = 1 sehingga diperoleh nilai (x1, x2, x3, x4) = (1; 0; 0; 1). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2, x3, x4) = 9x1+ 5x2+ 6x3+ 4x4.
f (1; 0; 0; 1) = 9(1) + 5(0) + 6(0) + 4(1) = 13 Cabang 1.2.4.2
Dari cabang 1.2.4, untuk kasus x2= 1, diperoleh program linear sebagai berikut : max Z = 18 + 6x3
dengan kendala
5x3 ≤ −1 x3 ≤ 0 x3 ≤ 1 1 ≤ 1 0 ≤ x3 ≤ 1 x3 ∈ {0, 1}
Dari hasil perhitungan, pertidaksamaan 5x3≤ −1 berada di luar feasible area sehingga pada cabang ini tidak ada solusi optimal.
Gambar 8.2.4. Pemrograman Biner Cabang 1.2.3.1, 1.2.3.2, 1.2.4.1, 1.2.4.2
Cabang 1.2.2.1.1
Dari cabang 1.2.2.1, untuk kasus x3 = 0, diperoleh program linear sebagai berikut : max Z = 14
dengan kendala
0 ≤ 1 0 ≤ 1 0 ≤ 1 0 ≤ 1
Dengan menggunakan metode Simpleks, diperoleh nilai (x1, x2, x3, x4) = (1; 1; 0; 0). Kemudian kita masukkan pada fungsi obyektif Z = f (x1, x2, x3, x4) = 9x1+ 5x2+ 6x3+ 4x4.
f (1; 1; 0; 0) = 9(1) + 5(1) + 6(0) + 4(0) = 14 Cabang 1.2.2.1.2
Dari cabang 1.2.2.1, untuk kasus x3 = 0, diperoleh program linear sebagai berikut : max Z = 20
dengan kendala
5 ≤ 1 1 ≤ 1 1 ≤ 1 0 ≤ 1
Dari hasil perhitungan, pertidaksamaan 5 ≤ 1 bernilai salah sehingga pada cabang ini tidak ada solusi optimal.
Kesimpulan :
Dari hasil perhitungan, pada cabang 1.2.2.1.1 menghasilkan nilai Z paling besar, yaitu Z = 14 dengan x1= 1, x2 = 1, x3 = 0, x4 = 0.
8.3. METODE CUTTING PLANE 159
8.3 Metode Cutting Plane
Metode Cutting Plane adalah metode yang memodifikasi daerah solusi dengan menambahkan garis potong (cut) yang akan menghasilkan solusi bilangan bulat optimal.
8.3.1 Tahap Awal (Inisialisasi)
1. Selesaikan masalah linear programming menggunakan metode Simpleks.
2. Modifikasi koefisien yang bukan bilangan bulat ke dalam nilai bilangan bulat dan komponen pecahan. Komponen pecahan harus bernilai positif. Pisahkan komponen pecahan berada pada ruas kanan persamaan.
3. Berilah tanda pada komponen pecahan dengan ≤ 0. Tambahkan variabel slack supaya menjadi persamaan.
8.3.2 Tahap Optimisasi
Pilih salah satu dari konstrain untuk menjadi source row. Tambahkan ke dalam baris baru pada tabel Simpleks. Lakukan operasi baris elementer (OBE) untuk menghasilkan solusi.
8.3.3 Tahap Pemberhentian
Tahap pemberhentian terjadi ketika semua solusi adalah bilangan bulat. Contoh : Diketahui masalah program linear sebagai berikut :
max Z = 7x1+ 10x2 dengan kendala
−x1+ 3x2 ≤ 6 7x1+ x2 ≤ 35
x1, x2 ≥ 0 x1, x2∈ B Tentukan solusi optimalnya.
Jawab :
Pertama-tama buatlah grafik kendalanya seperti pada Gambar 8.3.3.
Gambar 8.3.3. Grafik Kendala Metode Cutting Plane
Berdasarkan Gambar 8.3.3, penyelesaian metode Cutting Plane adalah : Z = 66, 5 x1 = 4, 5 x2 = 3, 5
Tambahkan cut I sehingga menjadi :
Z = 62 x1 = 447 x2 = 3 Tambahkan cut II sehingga menjadi :
Z = 58 x1 = 4 x2 = 3 Untuk perhitungannya adalah sebagai berikut :
Iterasi 1
No. Z x1 x2 s3 s4 Solusi B0 1 0 0 6322 3122 6612 B1 0 0 1 227 221 312 B2 0 1 0 −221 223 412
Dari tabel, terlihat bahwa solusi x1 = 412 dan x2 = 312 tidak berbentuk bilangan bulat. Nilai pada tabel Simpleks dapat dibentuk menjadi sistem persamaan berikut :
Z +63
22s3+31
22s4 = 661 2 0 x2+ 7
22s3+ 1
22s4 = 31
2 1
x1− 1
22s3+ 3
22s4 = 41
2 2
Dari baris 0, faktorkan persamaan menjadi : Z + 63
22s3+31
22s4 = 661 2 Z + (2 +19
22)s3+ (1 + 9
22)s4 = (66 +1 2) Z + 2s3+ s4− 66 = −19
22s3− 9
22s4+1 2
8.3. METODE CUTTING PLANE 161 Pada komponen pecahan, ubahlah menjadi pertidaksamaan.
−19
22s3− 9 22s4+1
2 ≤ 0 Dari baris 2, faktorkan persamaan menjadi :
x1− 1 Pada komponen pecahan, ubahlah menjadi pertidaksamaan.
−21
22s3− 3 22s4+1
2 ≤ 0 Dari baris 1, faktorkan persamaan menjadi :
x2+ 7 Pada komponen pecahan, ubahlah menjadi pertidaksamaan.
− 7
22s3− 1 22s4+1
2 ≤ 0
Kemudian ambil salah satu baris pertidaksamaan, misalkan baris 1.
− 7
22s3− 1 22s4+1
2 ≤ 0 Tambahkan variabel slack s5 sehingga menjadi persamaan.
−7
22s3− 1
22s4+ s5 = −1 2 Tambahkan ke dalam tabel simpleks.
No. Z x1 x2 s3 s4 s5 Solusi B0 1 0 0 6322 3122 0 6612 B1 0 0 1 227 221 0 312 B2 0 1 0 −221 223 0 412 B3 0 0 0 −227 −221 1 −12
Operasi Baris Elementer (OBE)
Bagi baris pivot dengan −227 supaya koefisien s3 bernilai 1. Supaya koefisien s3 yang lain bernilai 0, maka dapat dilakukan operasi baris elementer yaitu : kurangkan baris 0 dengan 6322 kali baris 3, kurangkan baris 1 dengan 227 kali baris 3, jumlahkan baris 2 dengan 221 kali baris 3.
Lebih jelasnya adalah mengubah kolom pivot
Operasi baris elementer (OBE) : −22 7 B3 Sehingga diperoleh tabel yang baru adalah :
No. Z x1 x2 s3 s4 s5 Solusi
B0 1 0 0 0 1 9 62
B1 0 0 1 0 0 1 3
B2 0 1 0 0 17 −17 447 B3 0 0 0 1 17 −227 147
8.3. METODE CUTTING PLANE 163 Dari tabel terlihat bahwa solusi x1 = 447 bukan bilangan bulat.
Kemudian ambil salah satu baris pertidaksamaan.
x1+1 Tambahkan variabel slack s6 sehingga menjadi persamaan.
−1 7s4−6
7s5+ s6 = −4 7 Tambahkan ke dalam tabel simpleks.
No. Z x1 x2 s3 s4 s5 s6 Solusi Operasi Baris Elementer (OBE)
Bagi baris pivot dengan −17 supaya koefisien s4 bernilai 1. Supaya koefisien s4 yang lain bernilai 0, maka dapat dilakukan operasi baris elementer yaitu : kurangkan baris 0 dengan baris 4, kurangkan baris 2 dengan 17 kali baris 4, kurangkan baris 3 dengan 17 kali baris 4.
Lebih jelasnya adalah mengubah kolom pivot
dengan cara sebagai berikut
: Operasi baris elementer (OBE) : −7B4
0 0 0 0 −17 −67 1 = −47 | × −7| 0 0 0 0 1 6 −7 = 4 Operasi baris elementer (OBE) : B0− B4
1 0 0 0 1 9 0 = 62 | × 1| 1 0 0 0 1 9 0 = 62
0 0 0 0 1 6 −7 = 4 | × −1| 0 0 0 0 −1 −6 7 = −4
1 0 0 0 0 3 7 = 58 Operasi baris elementer (OBE) : B2−17B4
0 1 0 0 17 −17 0 = 447 | × 1| 0 1 0 0 17 −17 0 = 447 0 0 0 0 1 6 −7 = 4 | × (−17)| 0 0 0 0 −17 −67 1 = −47
0 1 0 0 0 −1 1 = 4
Operasi baris elementer (OBE) : B3−17B4
0 0 0 1 17 −227 0 = 147 | × 1| 0 0 0 1 17 −227 0 = 147 0 0 0 0 1 6 −7 = 4 | × (−17)| 0 0 0 0 −17 −67 1 = −47
0 0 0 1 0 −4 1 = 1
Sehingga diperoleh tabel yang baru adalah :
No. Z x1 x2 s3 s4 s5 s6 Solusi
B0 1 0 0 0 0 3 7 58
B1 0 0 1 0 0 1 0 3
B2 0 1 0 0 0 -1 1 4
B3 0 0 0 1 0 -4 1 1
B4 0 0 0 0 1 6 -7 4
Dari tabel terlihat bahwa solusi x1= 4 dan x2 = 3 adalah bilangan bulat dengan nilai Z = 58.
Bab 9
Pemrograman Multiobyektif
Pemrograman multiobyektif yang banyak diterapkan pada masalah sehari-hari adalah Goal Pro-gramming dan Analytic Hierarchy Process (AHP). Goal ProPro-gramming digunakan ketika terdapat lebih dari obyektif dan diurutkan berdasarkan prioritas. AHP pada umumnya digunakan pada masalah pemilihan dengan mempertimbangkan kriteria.
9.1 Goal Programming
Goal Programming adalah teknik yang digunakan untuk menyelesaikan masalah optimisasi dengan kendala dimana terdapat prioritas urutan tujuan (obyektif) harus tercapai.
Bentuk matematika Goal Programming adalah sebagai berikut : lexmin{z1=Pm0
i=1(w1i+d+i + w1i−d−i ), ..., zp =Pm0
i=1(w+qid+i + w−qid−i )}
dengan kendala :
fi(x) + d−i − d+i = bi, i = 1, 2, ..., m0
gi(x) ≤ 0, i = m0+ 1, ..., m1 hi(x) = 0, i = m1+ 1, ..., m2 d−i , d+i ≥ 0,
dimana lexmin adalah lexikograf yang meminimumkan fungsi obyektif. Pada metode lexikograf, fungsi obyektif terdapat lebih dari satu dan diurutkan berdasarkan tingkat kepentingan. Solusi optimal ditentukan dengan meminimumkan fungsi obyektif yang dimulai dari yang paling penting secara berurutan tingkat kepentingan.
Parameter pada goal programming adalah :
d+i : variabel deviasi positif yang menyatakan kelebihan dari tujuan i.
d−i : variabel deviasi negatif yang menyatakan kekurangan dari tujuan i.
wki+ : bobot positif dari d+i . wki− : bobot negatif dari d−i .
fi : kendala tujuan (goal constraints)
165
gi : kendala pertidaksamaan hi : kendala persamaan bi : nilai target dari tujuan i
Dalam penyelesaian Goal Programming, terdapat dua metode, yaitu :
1. Metode Bobot. Terdapat satu fungsi obyektif yang merupakan jumlahan berbobot.
2. Metode Pre-emptive. Terdapat banyak (multiple) fungsi obyektif berdasarkan prioritas kepentingan.
Contoh :
Suatu perusahaan periklanan (radio dan televisi) akan mempromosikan suatu produk dengan kendala sebagai berikut :
4x1+ 8x2 ≥ 45 8x1+ 24x2 ≤ 100
x1+ 2x2 ≤ 10 x1 ≤ 6
1. Ubahlah model di atas menjadi bentuk Goal Programming dengan mengubah kendala pertama dan kendala kedua menjadi kendala tujuan.
2. Selesaikan dengan metode bobot dengan asumsi kendala tujuan pertama dua kali lebih penting daripada kendala tujuan kedua.
3. Selesaikan dengan metode pre-emptive dengan asumsi kendala tujuan pertama lebih penting daripada kendala tujuan kedua.
Jawab : a.
Diketahui kendala pertama dan kendala kedua adalah : 4x1+ 8x2 ≥ 45 8x1+ 24x2 ≤ 100
Jika diubah menjadi kendala tujuan (goal constraint), maka menjadi : lexmin(s−1, s+2)
dengan kendala :
4x1+ 8x2+ s−1 − s+1 = 45 8x1+ 24x2+ s−2 − s+2 = 100
x1+ 2x2 ≤ 10 x1≤ 6
x1, x2, s−1, s+1, s−2, s+2 ≥ 0
9.1. GOAL PROGRAMMING 167 b.
Pada metode bobot, karena kendala tujuan pertama dua kali lebih penting daripada kendala tujuan kedua, maka bentuk Goal Programming menjadi :
min Z = 2s−1 + s+2 dengan kendala :
4x1+ 8x2+ s−1 − s+1 = 45 8x1+ 24x2+ s−2 − s+2 = 100
x1+ 2x2 ≤ 10 x1 ≤ 6
x1, x2, s−1, s+1, s−2, s+2 ≥ 0 Pertama-tama, tentukan solusi optimal dari kendala berikut :
x1+ 2x2 ≤ 10 x1 ≤ 6
Solusi optimal yang diperoleh adalah : x1 = 5 dan x2 = 2, 5. Kemudian masukkan nilai x1 dan x2 pada kendala tujuan pertama dan kendala tujuan kedua.
Kendala tujuan pertama :
4(5) + 2(2, 5) = 40
Karena kendala tujuan pertama dilanggar (40 < 45), maka nilai dari s−1 = 45 − 40 = 5.
Kendala tujuan kedua :
8(5) + 24(2, 5) = 100 Karena kendala tujuan kedua dipenuhi, maka nilai dari s+2 = 0.
Sehingga nilai Z = 2(5) + 0 = 10.
c.
Pada metode Pre-emptive, karena kendala tujuan pertama lebih penting daripada kendala tujuan kedua, maka bentuk Goal Programming menjadi :
lexmin(s−1, s+2) dengan kendala :
4x1+ 8x2+ s−1 − s+1 = 45 8x1+ 24x2+ s−2 − s+2 = 100
x1+ 2x2 ≤ 10 x1 ≤ 6
x1, x2, s−1, s+1, s−2, s+2 ≥ 0
Pertama-tama, tentukan solusi optimal dari kendala berikut : x1+ 2x2 ≤ 10
x1 ≤ 6
Solusi optimal yang diperoleh adalah : x1 = 5 dan x2= 2, 5. Kemudian masukkan nilai x1 dan x2
pada kendala tujuan pertama dan kendala tujuan kedua.
Kendala tujuan pertama :
4(5) + 2(2, 5) = 40
Karena kendala tujuan pertama dilanggar (40 < 45), maka nilai dari s−1 = 45 − 40 = 5.
Kendala tujuan kedua :
8(5) + 24(2, 5) = 100 Karena kendala tujuan kedua dipenuhi, maka nilai dari s+2 = 0.
Sehingga nilai Z = (5, 0).
9.2 Analytic Hierarchy Process (AHP)
Analytic Hierarchy Process (AHP) digunakan untuk menyelesaikan masalah pengambilan keputusan dengan banyak kriteria (multicriteria).
Langkah-langkah AHP adalah :
1. Menentukan matriks perbandingan pasangan (pairwise comparison maatrix) dengan nilai :
pij =
( c, Jika kriteria i lebih penting daripada kriteria j;
1
c, Jika kriteria j lebih penting daripada kriteria i.
2. Jumlahkan setiap kolom pada matriks perbandingan pasangan.
3. Bagi setiap elemen pij dengan nilai jumlah kolom yang bersesuaian sehingga menghasilkan matriks perbandingan pasangan dalam bentuk normal.
4. Hitung rata-rata setiap baris pada matriks perbandingan pasangan dalam bentuk normal.
Semakin tinggi nilai rata-ratanya, semakin penting kriterianya.
5. Untuk setiap jenis obyek, buatlah matriks perbandingan pasangan sesuai dengan langkah 1-3.
6. Buatlah ranking prioritas pemilihan obyek.
9.2. ANALYTIC HIERARCHY PROCESS (AHP) 169 Contoh :
Seorang pembeli ingin membeli sebuah mobil dengan mempertimbangkan kriteria : harga (x1), kehematan bahan bakar (x2), kenyamanan (x3), dan model (x4). Setelah proses seleksi, terdapat 3 mobil (mobil A, mobil B, mobil C) yang akan dipilih menjadi 1 mobil. Buatlah ranking prioritas pemilihan mobil yang akan dibeli.
Jawab :
Tentukan nilai c dari prioritas.
Kriteria Nilai Tentukan prioritas dari kombinasi kriteria pemilihan mobil.
Perbandingan pasangan Kriteria paling penting Prioritas c
x1− x2 x1 7
Buatlah matriks perbandingan pasangan sebagai berikut :
(x1) (x2) (x3) (x4)
Jumlah 1,476 24 13,125 7,295
Bagi setiap elemen pij dengan nilai jumlah kolom yang bersesuaian sehingga menghasilkan matriks perbandingan pasangan dalam bentuk normal.
(x1) (x2) (x3) (x4) (x1) 0,677 0,292 0,457 0,823 (x2) 0,097 0,042 0,010 0,017 (x3) 0,113 0,333 0,076 0,023 (x4) 0,113 0,333 0,457 0,137 Hitunglah rata-rata setiap baris dan tentukan peringkat pada prioritas.
(x1) (x2) (x3) (x4) Rata-rata Peringkat (x1) 0,677 0,292 0,457 0,823 0,562 1 (x2) 0,097 0,042 0,010 0,017 0,041 4 (x3) 0,113 0,333 0,076 0,023 0,136 3 (x4) 0,113 0,333 0,457 0,137 0,260 2 Untuk setiap mobil, buatlah matriks perbandingan pasangan.
Kriteria : Harga (x1)
Mobil A Mobil B Mobil C
Mobil A 1 1
3
1 4
Mobil B 3 1 1
Mobil C 4 2 21
Kriteria : Kehematan bahan bakar (x2)
Mobil A Mobil B Mobil C
Mobil A 1 1
4
1 6
Mobil B 4 1 1
Mobil C 6 3 31
Kriteria : Kenyamanan (x3)
Mobil A Mobil B Mobil C
Mobil A 1 2 8
Mobil B 1
2 1 6
Mobil C 1
8
1
6 1
Kriteria : Model (x4)
9.2. ANALYTIC HIERARCHY PROCESS (AHP) 171 Mobil A Mobil B Mobil C
Mobil A 1 1
3 4
Mobil B 3 1 7
Mobil C 1
4
1
7 1
Sehingga diperoleh rata-rata kriteria sebagai berikut :
Harga (x1) Kehematan bahan bakar (x2) Kenyamanan (x3) Model (x4)
Mobil A 0,123 0,087 0,593 0,265
Mobil B 0,320 0,274 0,341 0,656
Mobil C 0,557 0,639 0,065 0,080
Gunakan AHP untuk menentukan prioritas pada masing-masing obyek.
Mobil A : 0,562(0,123)+0,041(0,087)+0,136(0,593)+0,260(0,265)=0,223 Mobil B : 0,562(0,320)+0,041(0,274)+0,136(0,341)+0,260(0,656)=0,408 Mobil C : 0,562(0,557)+0,041(0,639)+0,136(0,065)+0,260(0,080)=0,369
Dari hasil perhitungan, dapat disimpulkan : mobil B adalah prioritas pertama, mobil C adalah prioritas kedua, dan mobil A adalah prioritas ketiga.
Bab 10
Pengantar Pemrograman Dinamis
Pemrograman dinamis merupakan suatu teknik untuk membuat urutan suatu keputusan secara sistematis. Pada buku ini akan dibahas sekilas penggunaan pemrograman dinamis pada pencarian rute terpendek pada Stagecoach Problem dan Bounded Knapsack Problem.
10.1 Stagecoach Problem
Contoh :
Seorang pengembara melakukan perjalanan dari titik A ke titik J untuk mencari emas. Jaringan pada Stagecoach Problem dapat dilihat pada Gambar ??, dimana pada jaringan tersebut dapat dibagi menjadi empat stage mulai dari titik awal A ke titik tujuan J. Angka yang tertera pada gambar adalah biaya perjalanan. Tentukan rute yang manakah yang harus diambil pengembara tersebut supaya biaya perjalanan minimum.
Gambar 10.1. Jaringan pada Stagecoach Problem
10.1.1 Rekursif Maju
Dari jaringan tersebut dapat dibentuk empat stage sehingga dapat dibentuk empat matriks jarak sebagai berikut :
173
Gambar 10.1.2. Empat Stage pada Stagecoach Problem
A
B 2
C 4
D 3
B C D
E 7 3 4
F 4 2 1
G 6 4 5
E F G
H 1 6 3
I 4 3 3
H I
J 3 4
Stage 1
Hitung jarak menuju titik B, C, D dari titik A.
s f1(s, x1) f1∗(s) x∗1 A
B 2 2 A
C 4 4 A
D 3 3 A
Stage 2
Hitung jarak menuju titik E, F, G dari titik B, C, D. Kemudian tentukan jarak minimumnya secara kumulatif.
10.1. STAGECOACH PROBLEM 175 s f2(s, x2) f2∗(s) x∗2
B C D
E 2+7=9 4+3=7 3+4=7 7 C,D
F 2+4=6 4+2=6 3+1=4 4 D
G 2+6=8 4+4=8 3+5=8 8 B,C,D
Stage 3
Hitung jarak menuju titik H, I dari titik E, F, G. Kemudian tentukan jarak minimumnya secara kumulatif.
s f3(s, x3) f3∗(s) x∗3
E F G
H 7+1=8 4+6=10 8+3=11 8 E
I 7+4=11 4+3=7 8+3=11 7 F
Stage 4
Hitung jarak menuju titik J dari titik H, I. Kemudian tentukan jarak minimumnya secara kumulatif.
s f4(s, x4) f4∗(s) x∗4
H I G
J 8+3=11 7+4=11 11 H,I Jadi rute yang terpilih ada 3 yaitu :
1. Perhatikan stage 4. Untuk menuju s = J , maka harus melewati x∗4 = H. Lompat ke stage 3.
Untuk menuju s = H, maka harus melewati x∗3 = E. Lompat ke stage 2.
Untuk menuju s = E, maka harus melewati x∗2 = C. Lompat ke stage 1.
Untuk menuju s = C, maka harus melewati x∗1 = A.
Jadi rutenya adalah A → C → E → H → J dengan jarak 4 + 3 + 1 + 3 = 11.
2. Perhatikan stage 4. Untuk menuju s = J , maka harus melewati x∗4 = H. Lompat ke stage 3.
Untuk menuju s = H, maka harus melewati x∗3 = E. Lompat ke stage 2.
Untuk menuju s = E, maka harus melewati x∗2 = D. Lompat ke stage 1.
Untuk menuju s = D, maka harus melewati x∗1 = A.
Jadi rutenya adalah A → D → E → H → J dengan jarak 3 + 4 + 1 + 3 = 11.
3. Perhatikan stage 4. Untuk menuju s = I, maka harus melewati x∗4= I. Lompat ke stage 3.
Untuk menuju s = I, maka harus melewati x∗3 = F . Lompat ke stage 2.
Untuk menuju s = I, maka harus melewati x∗3 = F . Lompat ke stage 2.