• Tidak ada hasil yang ditemukan

BAB VI ANALISIS PEMECAHAN MASALAH

3.2. Pemrograman Integer

3.2.2. Algoritma Branch And Bound 3)

Integer Linier Programming (ILP) memulai dengan sejumlah titik

pemecahan yang terbatas, tetapi sifat variabel yang berbentuk bilangan bulat mempersulit perancangan sebuah algoritma yang efektif untuk mencari secara langsung diantara titik integer yang layak dari ruang pemecahan. Mengingat kesulitan ini, para peneliti telah mengembangkan sebuah prosedur pemecahan yang didasari oleh pemanfaatan keberhasilan besar dalam memecahkan masalah- masalah linier programming (LP). Strategi untuk prosedur ini dapat diringkas dalam tiga langkah, antara lain:

1. Longgarkan ruang pemecahan dari masalah Integer yang bersangkutan dengan mengabaikan batasan integer sama sekali. Langkah ini mengkonversikan ILP menjadi LP biasa.

2. Pemecahan model LP “yang longgar” yang dihasilkan dan identifikasi titik optimum (kontinyu) dari LP tersebut.

3. Dengan dimulai dengan titik optimum kontinyu, tambahkan batasan khusus yang akan secara berulang-ulang memaksa titik ekstrim optimum dari model LP yang dihasilkan untuk bergerak ke arah batasan integer yang diinginkan.

Marnangkok B. : Evaluasi Kecukupan Jumlah Armada Tanker PT. Burung Laut Dengan Menggunakan Pemrograman Intege,. 2009.

USU Repository © 2009

Alasan kita memulai pencarian pemecahan optimum ILP di pemecahan optimum LP adalah bahwa terdapat kemungkinan yang lebih besar bahwa kedua pemecahan itu akan berdekatan satu sama lain, sehingga meningkatkan kemungkinan untuk menemukan pemecahan integer tersebut secara cepat. Inti dari prosedur yang diajukan ini adalah pendekatan ini memecahkan masalah- masalah LP yang berturut-turut, yang lebih dapat dikelola dari segi perhitungan dibangdingkan memecahkan masalah-masalah ILP secara langsung.

Untuk mempermudah pengertian penggunaan dan langkah-langkah dari algoritma ini akan dibuat dalam sebuah contoh numerik. Pertimbangkan LP berikut ini :

Max : Z = 5x1 + 4x2 ;

Subject To : x1 + x2 ≤5 10x1 + 6x2 ≤45

x1, x2 ≥0 dan integer

Ruang pemecahan ILP ini diperlihatkan dengan titik-titik solusi linier yang layak. Ruang pemecahan LP yang berkaitan, LP0, didefinisaikan Z = 5x1 + 4x2

dengan mengabaikan batasan integer tersebut. Pemecahan optimum LP0 ini adalah x1 = 3.75, x2 = 1.25, dan z = 23.75.

Prosedur branch And Bound (B&B) didasari oleh penanganan masalah LP saja. Karena pemecahan LP optimum tidak memenuhi persyaratan integer, algoritma B&B menuntut “modifikasi” terhadap ruang pemecahan LP ini dengan cara yang akan pada akhirnya memungkinkan kita untuk mengindentifikasi pemecahan ILP optimum. Pertama kita memilih salah satu variable yang nilainya

3) Riset Operasi Suatu pengantar, Edisi Kelima, Jilid I, Oleh Hamdy A Taha. 1996.Hal 325-332.

Marnangkok B. : Evaluasi Kecukupan Jumlah Armada Tanker PT. Burung Laut Dengan Menggunakan Pemrograman Intege,. 2009.

USU Repository © 2009

saat ini dalam pemecahan LP0 optimum melanggar persyaratan integer tersebut. Dengan memilih x1 (=3,75) secara sembarang, kita mengamati bahwa bidang (3 <

x1 < 4) dari ruang pemecahan LP0, berdasarkan defenisinya, tidak akan memuat

pemecahan ILP yang layak. Karena itu kita memodifikasi ruang pemecahan LP tersebut dengan menyingkirkan bidang yang tidak menjanjikan pemecahan ini, yang pada intinya adalah setara dengan mengganti ruang LP0 semula dengan dua ruang LP, LP1 dan LP2, yang didefenisikan sebagai berikut:

1. Ruang LP1 = ruang LP0 + (x1≤ 3)

2. Ruang LP2 = ruang LP0 + (x1≥ 4)

Anda akan melihat bahwa kedua ruang ini memuat titik-titik integer yang layak yang sama dengan model ILP ini. Ini berarti bahwa dari sudut pandang masalah ILP semula, menangani LP1 dan LP2 adalah sama menangani LP0 semula. Perbedaan utamanya adalah bahwa pemilihan batasan baru (x1 ≤ 3 dan x2

≥ 4) akan sekarang meningkatkan kemungkinan untuk memaksa titik ekstrim optimum dari LP1 dan LP2 ke arah memenuhi persyaratan integer tersebut. Pada kenyataannya, batasan tersebut berada di “sekitar pemecahan” LP0 yang kontinyu akan meningkatkan peluang mereka untuk menghasilkan pemecahan integer yang “baik”.

Karena batasan baru x1 ≤ 3 dan x2 ≥ 4 tidak dapat dipenuhi secara

bersamaan, LP1 dan LP2 harus ditangani sebagai dua program linier yang berbeda. Dikotomi ini menimbulkan konsep percabangan (Branching) dalam algoritma B&B. Akibatnya, percabangan menunjukkan pemisahan ruang pemecahan saat ini ke dalam beberapa bagian yang terpisah. Gambar 3.1 sebagai

Marnangkok B. : Evaluasi Kecukupan Jumlah Armada Tanker PT. Burung Laut Dengan Menggunakan Pemrograman Intege,. 2009.

USU Repository © 2009

ilustarasi menunjukkan pembuatan LP1 dan LP2 dari LP. Cabang tersebut didefenisikan dengan batasan x1 ≤ 3 dan x2 ≥ 4, dimana x1 disebut sebagai

variabel percabangan.

1

2 3

4 5

x1=3 x1=4

Gambar 3.1. Contoh Algoritma Branch And Bound Pada Contoh Diatas

Kita mengetahui bahwa ILP optimum akan berada di LP1 atau LP2. Tetapi dengan tidak adanya ruang pemecahan grafik, kita tidak memiliki cara untuk menentukan dimana optimum itu berada. Akibatnya, pilihan kita satu-satunya adalah meniliti kedua masalah ini. Kita melakukannya dengan mengerjakan masalah ini satu per satu (LP1 atau LP2). Anggaplah bahwa kita secara sembarangan memiliki LP1 yang berkaitan dengan x1 ≤ 3. jadi kita memecahkan

masalah berikut ini:

Max : Z = 5x1 + 4x2 ;

Subject To : x1 + x2 ≤5

10x1 + 6x2 ≤45

Marnangkok B. : Evaluasi Kecukupan Jumlah Armada Tanker PT. Burung Laut Dengan Menggunakan Pemrograman Intege,. 2009.

USU Repository © 2009

x1, x2 ≥0

Seperti dikatakan di atas, LP1 adalah sama dengan LP0 dengan tambahan batas atas x1 ≤ 3. Ini akan menghasilkan pemecahan optimum baru x1 = 3, x2 = 2,

dan z = 23.

Karena pemecahan ini secara kebetulan memenuhi persyaratan integer, kita mengatakan bahwa LP1 telah terukur, yang berarti bahwa LP1 tidak dapat menghasilkan ILP yang lebih baik dan karena itu tidak perlu diteliti lebih lanjut. Didapatnya pemecahan integer yang layak di tahap awal dari perhitungan adalah penting untuk meningkatkan efisiensi algoritma B&B. Pemecahan seperti ini menetapkan batas bawah terhadap nilai tujuan optimum dari masalah ILP tersebut, yang pada gilirannya dapat dipergunakan secara otomatis untuk menyingkirkan bagian-bagian masalah yang tidak diteliti (seperti LP2) yang tidak menghasilkan pemecahan integer yang lebih baik. Dalam contoh kita ini, LP1 menghasilkan batas bawah z = 23. Ini berarti bahwa setiap pemecahan integer yang lebih baik akan memiliki nilia z yang lebih tinggi dari 23. Tetapi, karena pemecahan optimum dari masalah LP0 memiliki nilai z = 23,75 dan karena semua koefisien dari fungsi tujuan kebetulan merupakan integer, disimpulkan bahwa tidak ada bagian masalah yang berasal dari LP0 dapat menghasilkan nilai z yang lebih baik dari 23. Sebagian hasilnya, tanpa meneliti lebih lanjut, kita dapat menyingkirkan LP2. dalam kasus ini, LP2 dikatakan terukur karena tidak dapat menghasilkan pemecahan integer yang lebih baik.

Dari pembahasan diatas, kita melihat bahwa sebuah bagian masalah menjadi terukur jika salah satu dari kondisi berikut ini dipenuhi, yaitu:

Marnangkok B. : Evaluasi Kecukupan Jumlah Armada Tanker PT. Burung Laut Dengan Menggunakan Pemrograman Intege,. 2009.

USU Repository © 2009

1. Bagian masalah tersebut menghasilkan pemecahan integer yang layak bagi masalah ILP tersebut.

2. Bagian masalah tersebut tidak dapat menghasilkan pemecahan yang lebih baik daripada batas bawan (nilai z) terbaik yang tersedia dari masalah ILP tersebut.(Satu kasus khusus dari kondisi ini adalah ketika bagian masalah tersebut tidak memiliki pemecahan yang layak sama sekali)

Dalam contoh ini, LP1 dan LP2 adalah terukur berdasarkan kondisi 1 dan 2, secara berturut-turut. Karena tidak ada lagi bagian masalah yang harus diteliti, prosedur ini berakhir dan pemecahan integer optimum dari masalah ILP tersebut adalah yang berkaitan dengan batas bawah saat ini, yaitu x1 = 3, x2 = 2, dan z =

23. Jika anda meneliti prosedur yang digariskan diatas, anda akan menemukan sejumlah pertanyaan yang tetap tidak terjawab, yaitu:

1. Di LP0, dapatkah kita memilih x2 sebagai variabel pencabangan sebagai

pengganti x1?

2. Ketika memilih bagian masalah berikutnya untuk diteliti, dapatkah kita memecahkan LP2 sebagai pengganti LP1?

Jawaban untuk kedua pertanyaan tersebut adalah “ya,” tetapi perincian perhitungan yang mengikutinya dapat berbeda secara dramatis. Kesalahan pemilihan variabel yang menjadi dasar penelitian merupakan kelemahan dalam metode algoritma B&B. Yaitu, di satu bagian masalah tertentu, bagaimana kita memilih variabel percabangan, dan diantara seluruh bagian masalah yang belum diteliti, bagian masalah mana yang harus diteliti berikutnya?. Kasus kesalahan pemilihan variabel awal tidaklah luar biasa dan dapat ditemukan dalam situasi

Marnangkok B. : Evaluasi Kecukupan Jumlah Armada Tanker PT. Burung Laut Dengan Menggunakan Pemrograman Intege,. 2009.

USU Repository © 2009

nyata. Walaupun terdapat banyak heuristik untuk menigkatkan kemampuan algoritma B&B untuk “melihat ke depan” dan membuat “terkaan” terbaik tentang apakah sebuah cabang akan mengarah pada pemecahan ILP yang lebih baik, tetap terdapat fakta bahwa tidak ada teori yang kuat yang dapat menyatakan diri memberikan hasil yang konsisten secara seragam untuk pemecahan masalah ILP umum.

Secara ringkas, langkah-langkah algoritma Branch And Bound dengan asumsi masalah maximisasi, defenisikan z sebagai batas bawah dari pemecahan ILP integer yang optimum. Langkah-langkah algoritma ini adalah sebagai berikut:

Langkah 1: Ukur/batasi. Pilih LPi sebagai bagian dari masalah berikutnya untuk

diteliti. Pecahkan LPi dan coba ukur bagian masalah itu dengan

menggunakan kondisi yang sesuai.

(a) Jika LPi terukur (pemecahan inferior, tidak layak atau integer),

perbaharui batas bawah z jika pemecahan ILP yang lebih baik ditemui; jika tidak pilih bagian masalah baru i dan ulangi langkah 1. Jika semua bagian masalah telah diteliti, hentikan; ILP optimum berkaitan dengan batas bawah terakhir, jika ada. Jika tidak,

(b) Jika LPi tidak terukur, lanjutkan ke langkah 2 untuk melakukan

pencabangan LPi

Langkah 2: Pencabangan. Pilih salah satu variabel xj yang nilai optimumnya xj*

dalam pemecahan LPi tidak memenuhi batasan integer. Singkirkan

bidang

[ ] [ ]

x*jxjx*j +1(dimana

[ ]

A mendefinisikan integer terbesar

Marnangkok B. : Evaluasi Kecukupan Jumlah Armada Tanker PT. Burung Laut Dengan Menggunakan Pemrograman Intege,. 2009.

USU Repository © 2009

dengan dua batasan yang tidak dapat dipenuhi secara bersamaan ini:

[ ]

* ≥

[ ]

* +1 ≤ j j j j x dan x x x Kembali ke langkah 1. 3.3. Jenis-Jenis Kapal4)

Secara umum jenis-jenis kapal dapat dikelompokkan menjadi 2 kategori utama, yaitu:

1. Jenis kapal menurut bentuk lambung. 2. Jenis kapal menurut fungsinya.

Dokumen terkait