Penyelesaian Program Bilangan Bulat Campuran Dua Kriteria dengan Menggunakan Metode Branch and Cut

(1)

PENYELESAIAN PROGRAM BILANGAN BULAT CAMPURAN

DUA KRITERIA DENGAN MENGGUNAKAN

METODE BRANCH AND CUT

SKRIPSI

TAUFIK HIDAYAT RITONGA

110803028

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2014


(2)

PENYELESAIAN PROGRAM BILANGAN BULAT CAMPURAN

DUA KRITERIA DENGAN MENGGUNAKAN

METODE BRANCH AND CUT

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat untuk mencapai gelar Sarjana Sains

TAUFIK HIDAYAT RITONGA

110803028

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2014


(3)

PERSETUJUAN

Judul : Penyelesaian Program Bilangan Bulat Campuran Dua Kriteria dengan Menggunakan Metode

Branch and Cut

Kategori : Skripsi

Nama : Taufik Hidayat Ritonga

Nomor Induk Mahasiswa : 110803028

Program Studi : Sarjana (S1) Matematika

Departemen : Matematika

Fakultas : Matematika Dan Ilmu Pengetahuan Alam (FMIPA) Universitas Sumatera Utara

Disetujui di Medan, Januari 2015

Komisi Pembimbing:

Pembimbing 2, Pembimbing 1,

Prof. Dr. Drs. Iryanto, M.Si Dr. Sawaluddin, M.IT

NIP. 19460404 197107 1 001 NIP. 19591231 199802 1 001

Disetujui oleh

Departemen Matematika FMIPA USU Ketua,

Prof. Dr. Tulus, M.Si


(4)

PERNYATAAN

PENYELESAIAN PROGRAM BILANGAN BULAT CAMPURAN DUA KRITERIA DENGAN MENGGUNAKAN

METODE BRANCH AND CUT

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri. Kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Januari 2015

Taufik Hidayat Ritonga 110803028


(5)

PENGHARGAAN

Puji dan syukur penulis ucapkan kepada Allah SWT Yang Maha Esa dan Kuasa atas limpahan rahmat dan karuniaNYA sehingga skripsi ini dapat diselesaikan. Pada skripsi ini, penulis mengangkat judul Penyelesaian Program Bilangan Bulat Campuran Dua Kriteria dengan Menggunakan Metode Branch and Cut.

Terimakasih penulis sampaikan kepada Bapak Dr. Sawaluddin, M.IT selaku pembimbing 1 dan Bapak Prof. Dr. Drs. Iryanto, M.Si selaku pembimbing 2 yang berkenan dan rela mengorbankan waktu, tenaga dan pikiran guna memberikan petunjuk dan bimbingannya dalam penulisan skripsi ini. Bapak Dr. Suyanto, M.Kom dan Bapak Dr. Faigiziduhu Bu’ulolo, M.Si selaku dosen penguji yang telah memberikan kritik dan saran yang membangun dalam penyempurnaan skripsi ini. Terimakasih kepada Bapak Prof. Dr. Tulus, M.Si dan Ibu Dr. Mardiningsih, M.Si selaku Ketua dan Sekretaris Departemen Matematika FMIPA USU. Terimakasih kepada Bapak Dr. Sutarman, M.Sc selaku Dekan FMIPA USU, Pembantu Dekan FMIPA USU, seluruh Staff dan Dosen Matematika FMIPA USU, pegawai FMIPA USU, untuk orang–orang tersayang khususnya sahabat penulis Franklin, Joe, Nana, Amik, Endang, Lely, Bang Andi, Kak Rizkika, Kak Mila, Kak Retno, Kak Huide dan seluruh rekan-rekan Matematika 2011 yang tidak bisa diucapkan satu per satu serta semua abang dan kakak senior stambuk 2010 keatas dan adik-adik junior stambuk 2012, stambuk 2013, stambuk 2014 yang selama ini selalu memberi semangat dan mendo’akan dalam menyelesaikan skripsi ini. Akhirnya tidak terlupakan kepada Ayahanda tercinta Zulkifli Ritonga, Ibunda tercinta Hj. Asmi Derimi Dongoran, serta saudara– saudara penulis yang tersayang Erlina Ritonga, Amd, Safrizal Ritonga, Siti Paisah Ritonga, Erwinsyah Rambe, Abdul Rahman Tambak, Hari Abdi Rambe dan Habib Rahman Rambe serta keluarga dari Ayah dan Mama atas segala perhatian, pengertian, kesabaran, do’a, dukungan dan kasih sayang yang telah diberikan kepada penulis selama di bangku perkuliahan hingga akhirnya menyelesaikan skripsi ini.


(6)

Penulis juga menyadari masih banyak kekurangan dalam skripsi ini, baik dalam teori maupun penulisannya. Oleh karena itu, penulis mengharapkan saran dari pembaca demi perbaikan bagi penulis. Semoga segala bentuk bantuan yang telah diberikan kepada penulis mendapatkan balasan yang lebih baik dari Allah SWT. Akhir kata penulis berharap semoga tulisan ini bermanfaat bagi para pembaca.


(7)

PENYELESAIAN PROGRAM BILANGAN BULAT CAMPURAN DUA KRITERIA DENGAN MENGGUNAKAN

METODE BRANCH AND CUT

ABSTRAK

Metode branch and cut merupakan suatu metode yang digunakan untuk menyelesaikan masalah linear programming yang menghasilkan berupa penyelesaian dalam bentuk bilangan bulat (integer), metode ini merupakan perpaduan metode branch and bound dengan metode cutting plane. Metode ini selalu digunakan dalam menyelesaikan permasalahan single objective linear

integer programming. Dalam tulisan ini akan ditunjukkan suatu permasalahan dua

kriteria (bicriteria) yang diselesaikan dengan metode branch and cut. Permasalahan tersebut disebut bicriteria linear programming. Dalam menyelesaikan permasalahan ini penulis menggunakan parametric simplex

algorithm kemudian diiringi dengan metode branch and cut apabila tidak

diperoleh suatu penyelesaian yang tidak berupa bilangan bulat (integer).

Kata Kunci: Branch and cut, branch and bound, cutting plane, bicriteria linear

programming, parametric simplex algorithm


(8)

SOLVING BICRITERIA MIXED INTEGER PROGRAMMING USING BRANCH AND CUT METHOD

ABSTRACT

Branch and cut method is a method that used to solve linear programming problems that deliver the solution in integer form, this method is a mix of branch and bound method with the cutting plane method. This method is always used in a single objective problem to solve integer linear programming. A bicriteria problems that solved by the branch and cut method will be shown in this paper. These problems are called bicriteria linear programming. The writer use simplex parametric algorithm to solving this problem then followed by the branch and cut method, if not obtained a solution that is not an integer.

Keyword: Branch and cut, branch and bound, cutting plane, bicriteria linear programming, parametric simplex algorithm


(9)

DAFTAR ISI

Halaman

PERSETUJUAN i

PERNYATAAN ii

PENGHARGAAN iii

ABSTRAK v

ABSTRACT vi

DAFTAR ISI vii

DAFTAR TABEL ix

DAFTAR GAMBAR x

DAFTAR LAMPIRAN xi

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Perumusan Masalah 2

1.3 Batasan Masalah 3

1.4 Tinjauan Pustaka 3

1.5 Tujuan Penelitian 6

1.6 Manfaat Penelitian 6

1.7 Metodologi Penelitian 7

BAB 2 LANDASAN TEORI 8

2.1 Program Linier 8

2.1.1 Syarat Utama Program Linier 9

2.1.2 Karakterisrik Program Linier 10

2.1.3 Asumsi dalam Program Linier 11

2.1.4 Metode Simpleks 12

2.2 Program Bilangan Bulat 14

2.2.1 Program Bilangan Bulat Murni

(Pure Integer Programming) 15

2.2.2 Program Bilangan Bulat Campuran

(Mixed Integer Programming) 15

2.2.3 Program Bilangan Bulat Biner

(Binary Integer Programming) 16

2.3 Metode Penyelesaian Masalah Program Bilangan Bulat 17

2.3.1 Metode Pendekatan Grafik 17

2.3.2 Metode Cutting Plane 18

2.3.3 Metode Branch and Bound 25

BAB 3 HASIL DAN PEMBAHASAN 36

3.1 Program Linier Dua Kriteria 36

3.2 Metode Branch and Cut 38


(10)

dengan Menggunakan Metode Branch and Cut 40 3.4 Penyelesaian Contoh Kasus Program Bilangan Bulat

Dua Kriteria dengan Menggunakan Metode Branch and Cut 45

BAB 4 KESIMPULAN DAN SARAN 61

4.1 Kesimpulan 61

4.2 Saran 61

DAFTAR PUSTAKA 62


(11)

DAFTAR TABEL

Nomor Judul Halaman

Tabel

2.1 Bentuk Tabel Simpleks Program Linier 13

2.2 Solusi Optimum Masalah Program Linier 19

2.3 Penambahan Kendala Gomory 21

2.4 Solusi Optimum Contoh 2.2 22

2.5 Penambahan Kendala Gomory Pertama 23

2.6 Solusi Optimum dengan Penambahan Kendala Gomory

Pertama 23

2.7 Penambahan Kendala Gomory Kedua 24

2.8 Solusi Optimum dengan Penambahan Kendala Gomory

Kedua 24

2.9 Solusi Optimum Contoh 2.3 26

2.10 Solusi Optimum pada Bagian A 28

2.11 Solusi Optimum pada Bagian C 29

2.12 Solusi Optimum pada Bagian D 30

2.13 Solusi Optimum pada Bagian E 31

2.14 Solusi Optimum pada Bagian G 33

2.15 Solusi Optimum pada Bagian H 34

3.1 Bentuk Tabel Simpleks Program Linier Dua Kriteria 38

3.2 Bahan Baku dan Jumlah Persediaan Bahan Baku 46

3.3 Bahan Baku Pembuatan Satu Bungkus dan Jumlah Persediaan

Bahan Baku Tipang 46

3.3 Waktu Proses Produksi Satu Jenis Tipang 47 3.3 Pendapatan Penjualan dan Biaya Produksi pada Pembuatan


(12)

DAFTAR GAMBAR

Nomor Judul Halaman

Gambar

2.1 Penyelesaian Program Bilangan Bulat dengan

Pendekatan Grafik 18

2.2 Diagram Prosedur Permasalahan dengan Metode

Branch and Bound 35

3.1 Diagram Penyelesaian Permasalahan Program Linier

Dua Kriteria dengan Metode Branch and Cut 45

3.2 Diagram Penyelesaian Contoh Kasus Permasalahan Program Linier Dua Kriteria dengan


(13)

DAFTAR LAMPIRAN

Nomor Judul Halaman

Lamp

1 Pembahasan Masalah Program Linier Dua Kriteria

Menggunakan Parametric Simplex Algorithm 64

2 Pembahasan Masalah Program Linier Dua Kriteria

dengan Menerapkan Percabangan (Branch) 67

3 Pembahasan Masalah Program Linier Dua Kriteria

dengan Menerapkan Percabangan (Branch) 70 4 Pembahasan Masalah Program Linier Dua Kriteria

dengan Menerapkan Pemotongan (Cut) 73 5 Pembahasan Masalah Program Linier Dua Kriteria

dengan Menerapkan Pemotongan (Cut) 76 6 Pembahasan Contoh Kasus Program Linier Dua Kriteria

Menggunakan Parametric Simplex Algorithm 79 7 Pembahasan Contoh Kasus Program Linier Dua Kriteria

dengan Menerapkan Percabangan (Branch) 87 8 Pembahasan Contoh Kasus Program Linier Dua Kriteria

dengan Menerapkan Percabangan (Branch) 95 9 Pembahasan Contoh Kasus Program Linier Dua Kriteria


(14)

PENYELESAIAN PROGRAM BILANGAN BULAT CAMPURAN DUA KRITERIA DENGAN MENGGUNAKAN

METODE BRANCH AND CUT

ABSTRAK

Metode branch and cut merupakan suatu metode yang digunakan untuk menyelesaikan masalah linear programming yang menghasilkan berupa penyelesaian dalam bentuk bilangan bulat (integer), metode ini merupakan perpaduan metode branch and bound dengan metode cutting plane. Metode ini selalu digunakan dalam menyelesaikan permasalahan single objective linear

integer programming. Dalam tulisan ini akan ditunjukkan suatu permasalahan dua

kriteria (bicriteria) yang diselesaikan dengan metode branch and cut. Permasalahan tersebut disebut bicriteria linear programming. Dalam menyelesaikan permasalahan ini penulis menggunakan parametric simplex

algorithm kemudian diiringi dengan metode branch and cut apabila tidak

diperoleh suatu penyelesaian yang tidak berupa bilangan bulat (integer).

Kata Kunci: Branch and cut, branch and bound, cutting plane, bicriteria linear

programming, parametric simplex algorithm


(15)

SOLVING BICRITERIA MIXED INTEGER PROGRAMMING USING BRANCH AND CUT METHOD

ABSTRACT

Branch and cut method is a method that used to solve linear programming problems that deliver the solution in integer form, this method is a mix of branch and bound method with the cutting plane method. This method is always used in a single objective problem to solve integer linear programming. A bicriteria problems that solved by the branch and cut method will be shown in this paper. These problems are called bicriteria linear programming. The writer use simplex parametric algorithm to solving this problem then followed by the branch and cut method, if not obtained a solution that is not an integer.

Keyword: Branch and cut, branch and bound, cutting plane, bicriteria linear programming, parametric simplex algorithm


(16)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Dalam kehidupan sehari-hari, ilmu mengenai operasi riset banyak digunakan dan diterapkan oleh manusia, terutama diterapkan pada bidang ekonomi yaitu pada dunia usaha. Setiap pelaku usaha atau pelaku ekonomi pasti melakukan apa yang disebut dengan prinsip ekonomi, yaitu dengan usaha atau modal yang sedikit mampu menghasilkan keuntungan yang banyak, sehingga muncullah masalah optimisasi. Masalah optimisasi tersebut meliputi meminimumkan biaya atau memaksimumkan keuntungan dengan kapasitas sumber daya yang ada agar mampu mendapatkan hasil yang optimal.

Program linier klasik pertama kali diperkenalkan oleh George Dantzig yang pada awalnya banyak dipakai pada bidang perencanaan militer, khususnya dalam perang dunia II oleh angkatan bersenjata Amerika Serikat dan Inggris metode pengerjaan program linier umumnya menggunakan metode grafik dan metode simpleks. Program linier merupakan sebagai instrumen pengambilan keputusan yang berkaitan dengan pengalokasian sumber daya dalam mencapai tujuan tertentu. Sumber daya berupa uang, tenaga kerja, material, mesin, fasilitas, ilmu pengetahuan, teknologi, keahlian, waktu dan ruang. Sumber daya ini sifatnya terbatas. Dengan demikian, program linier berperan sebagai alat untuk membantu dalam pengambilan keputusan manajemen dengan cara mengidentifikasi kombinasi sumber daya yang tersedia sehingga tujuan yang diinginkan dapat tercapai dengan optimal. Sejak diperkenalkan di akhir dasawarsa pada tahun 1940 program linier telah terbukti merupakan salah satu alat operasi riset yang efektif. Keberhasilannya berakar dari keluasannya dalam menjabarkan berbagai situasi kehidupan nyata seperti di bidang militer, industri dan bidang yang lain.


(17)

Dalam pengambilan suatu keputusan, permasalahan dalam dunia nyata memiliki lebih dari satu tujuan. Hal ini menandakan bahwa program linier standar yang hanya mengoptimalkan satu tujuan atau satu kriteria (single-criteria) tidak selalu efektif dalam pengambilan suatu keputusan.

Bicriteria Linear Programming (BLP) merupakan suatu kasus khusus dari multi-objective linear programming di mana pada bicriteria linear programming

terdapat dua tujuan (biobjective), bicriteria disebut juga dengan biobjective. Program bilangan bulat campuran dua kriteria (bicriteria mixed integer

programming) dapat dilihat sebagai bentuk pengembangan dari integer programming yang dapat digunakan dalam pengambilan keputusan di dalam

kehidupan sehari-hari, misalnya perencanaan, logistik, alokasi barang, penjadwalan, routing dan sebagainya. Program bilangan bulat campuran dua kriteria (bicriteria mixed integer programming) memungkinkan si pembuat keputusan untuk mempertimbangkan tidak hanya satu tujuan (single-objective) melainkan dua tujuan (biobjective) secara bersamaan, seperti biaya pengeluaran, keuntungan, kerusakan mesin, waktu kerja dan sebagainya.

Banyak metode yang bisa digunakan untuk menyelesaikan masalah program bilangan bulat campuran dua kriteria (bicriteria mixed integer

programming) yang masing-masing mempunyai kelebihan dan kelemahan.

Memperhatikan hal ini maka penulis mencoba mempelajari metode branch and

cut dalam menyelesaikan masalah program bilangan bulat campuran dua kriteria

(bicriteria mixed integer programming).

1.2 Perumusan Masalah

Berdasarkan latar belakang di atas maka yang menjadi rumusan masalah yang akan dibahas adalah bagaimana menyelesaikan persoalan program bilangan bulat campuran dua kriteria (bicriteria mixed integer programming) dengan menggunakan metode branch and cut.


(18)

1.3 Batasan Masalah

Dalam penulisan ini, penulis hanya membatasi pada persoalan program bilangan bulat campuran dua kriteria (bicriteria mixed integer programming) dengan menggunakan metode branch and cut.

1.4 Tinjauan Pustaka

Ernawati (2010) dalam makalahnya yang berjudul “Analisis Perubahan Koefisien Fungsi Tujuan Secara Simpleks pada Masalah Program Linier Bilangan Bulat” mengatakan bahwa program linier bilangan bulat merupakan suatu program linier dengan variabel keputusannya merupakan bilangan bulat, sehingga pada bentuk umum program linier terdapat tambahan syarat bahwa variabel keputusannya harus bilangan bulat. Pada masalah program linier bilangan bulat untuk pola memaksimumkan nilai tujuan dari program linier bilangan bulat tidak akan pernah melebihi nilai tujuan dari program linier. Terdapat tiga macam permasalahan dalam program linier bilangan bulat, yaitu sebagai berikut:

1. Program bilangan bulat murni (pure integer programming), yaitu program linier bilangan bulat yang menghendaki semua variabel keputusan harus merupakan bilangan bulat tidak negatif.

2. Program bilangan bulat campuran (mixed integer programming), yaitu program linier bilangan bulat yang menghendaki beberapa variabel keputusan harus merupakan bilangan bulat tidak negatif.

3. Program bilangan bulat biner (zero one integer programming), yaitu program linier bilangan bulat yang menghendaki semua variabel keputusan harus bernilai nol atau satu.

Genova dan Guliashki (2011) dalam jurnalnya yang berjudul “Linear

Integer Programming Methods and Approaches – A Survey” mengatakan bahwa

program linier bilangan bulat mengacu pada kelas permasalahan optimisasi kombinatorial yang berkendala dengan memperoleh variabel keputusannya berupa bilangan bulat, di mana fungsi tujuan adalah fungsi linier dan fungsi


(19)

kendalanya juga merupakan fungsi linier dengan tanda persamaan atau pertidaksamaan. Program linier bilangan bulat pada permasalahan optimasi dapat dinyatakan sebagai berikut:

maks/min: Z =

kendala: ≤, =, ≥

≥ 0, semua bilangan bulat di mana: $ = fungsi tujuan

= koefisien dari variabel keputusan dalam fungsi tujuan = variabel keputusan

= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala

Sari (2013) dalam tulisannya yang berjudul “Analisis Metode Branch and

Bound dalam Mengoptimalkan Jumlah Produksi Roti” menerangkan bahwa

metode branch and bound merupakan salah satu metode dari konsep integer

programming. Pada dasarnya adalah strategi “mencabangkan dan membatasi”.

Metode branch and bound adalah metode umum untuk mencari solusi optimal dari berbagai permasalahan optimasi. Metode ini juga merupakan teknik solusi yang tidak terbatas hanya untuk permasalahan integer programming saja. Tetapi juga merupakan pendekatan solusi yang dapat diterapkan untuk berbagai macam permasalahan yang berbeda. Prinsip yang mendasari metode branch and bound yaitu total set solusi yang layak dapat dibagi menjadi subset solusi yang lebih kecil. Subset ini selanjutnya dapat dievaluasi secara sistematis sampai solusi yang terbaik ditemukan, penerapan metode branch and bound pada masalah integer

programming digunakan bersama-sama dengan metode simpleks.

Alannuariputri dan Sumarminingsih (2009) dalam jurnalnya yang berjudul “Integer Programming dengan Pendekatan Metode Branch and Bound dan Metode Cutting Plane untuk Optimasi Kombinasi Produk” menjelaskan bahwa metode cutting plane membahas masalah program linier yang belum memperoleh


(20)

solusi optimal berupa bilangan bulat. Misalnya, tabel optimal terakhir untuk program linier diperoleh, maka pilih sembarang baris tabel optimal simpleks yang dalam kolom B (solusi) yang memuat pecahan. Misalkan baris ke-i adalah baris yang terpilih, kemudian pisahkan dan menjadi bagian yang bulat dan bagian pecah.

Sarkar (2010) dalam makalahnya yang berjudul ”Branch and Cut

Algorithms for Combinatorial Optimization Problems” mengatakan bahwa

metode branch and cut memodifikasi strategi dasar branch and bound dengan mencoba menguatkan Linear Programming Relaxation (LPR) dari permasalahan

Integer Programming (IP) dengan pertidaksaman baru sebelum melakukan

mencabangan solusi bagian, branch and bound murni dapat dipercepat dengan menggunakan cutting plane baik di awal diagram pohon branch and bound maupun di tiap-tiap bagian percabangannya, karena cutting plane mampu mengurangi banyak diagram pohon tersebut. Branch and cut dapat digunakan dalam penyambungan dengan heuristic untuk memperoleh batas yang lebih rendah pada nilai optimal dengan menggunakan metode branch and bound.

Albert (2011) dalam makalahnya yang berjudul “Solving Mixed Integer

Linear Programs Using Branch and Cut Method” menjelaskan bahwa metode branch and cut menggabungkan keuntungan dari metode branch and bound murni

dan metode gomory cutting plane. Menyelesaikan masalah dengan metode branch

and cut akan lebih cepat dibandingkan dengan metode branch and bound saja.

Ralphs et al. (2005) dalam makalahnya yang berjudul “An Improved

Algorithm for Solving Biobjective Integer Programs” mengatakan bahwa bentuk

umum dari Bicriterion Integer Programming (BIP) dapat dituliskan sebagai berikut:

min: % = &% , %' (

kendala: ≤, =, ≥


(21)

di mana: % = fungsi tujuan kriterianya () = 1, 2) = variabel keputusan

= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala

1.5 Tujuan Penelitian

Tujuan dari penelitian ini adalah untuk mendapatkan penyelesaian program bilangan bulat campuran dua kriteria (bicriteria mixed integer programming) dengan menggunakan metode branch and cut.

1.6 Manfaat Penelitian

Manfaat dari penelitian ini adalah sebagai berikut:

1. Bahan referensi dalam menambah wawasan penulis dan pembaca dalam bidang operasi riset yang berhubungan dengan pembahasan program bilangan bulat campuran dua kriteria (bicriteria mixed integer programming), khususnya dalam metode branch and cut.

2. Informasi kepada pembaca bahwa permasalahan program bilangan bulat campuran dua kriteria (bicriteria mixed integer programming) dapat diselesaikan dengan menggunakan metode branch and cut.

3. Bahan pertimbangan bagi pembaca dalam menyelesaikan masalah program bilangan bulat campuran dua kriteria (bicriteria mixed integer programming) dengan menggunakan metode lainnya yang ada pada pembahasan program bilangan bulat campuran dua kriteria (bicriteria mixed integer programming).


(22)

1.7 Metodologi Penelitian

Penelitian ini adalah penelitian literatur yang disusun dengan langkah-langkah sebagai berikut:

1. Mencari literatur dari beberapa buku, jurnal, situs dan karya tulis lainnya yang berhubungan dengan metode branch and cut serta program bilangan bulat campuran dua kriteria (bicriteria mixed integer programming).

2. Menjelaskan definisi linear programming dan klasifikasinya serta memaparkan definisi integer programming, klasifikasinya dan metode yang digunakan dalam menyelesaikannya.

3. Mejelaskan contoh penyelesaian single objective integer programming dengan menggunakan metode grafik, metode cutting plane dan metode

branch and bound.

4. Menjelaskan definisi dari program linier dua kriteria (bicriteria linear

programming).

5. Memaparkan serta menjelaskan dalam penyelesaian program bilangan bulat campuran dua kriteria (bicriteria mixed integer programming) menggunakan

parametric simplex algorithm diiringi dengan metode branch and cut.

6. Memberi contoh program bilangan bulat campuran dua kriteria (bicriteria

mixed integer programming) yang diambil dari buku, jurnal, situs ataupun

karya tulis lainnya untuk diselesaikan dengan metode branch and cut.

7. Menyimpulkan hasil dan informasi dari penyelesaian permasalahan yang telah diselesaikan.


(23)

BAB 2

LANDASAN TEORI

2.1 Program Linier

Program linier adalah suatu cara untuk menyelesaikan persoalan pengalokasian sumber-sumber yang terbatas di antara beberapa aktivitas yang bersaing, dengan cara terbaik yang mungkin dilakukan. Pokok pikiran utama dalam menggunakan program linier adalah merumuskan masalah dengan jelas dengan menggunakan sejumlah informasi yang tersedia. Sesudah masalah terumuskan dengan baik, maka langkah berikut ialah menerjemahkan masalah ke dalam bentuk model matematika (Siagian, 2006).

Program linier berkaitan dengan maksimalisasi atau minimalisasi dari fungsi tujuan linier dengan beberapa variabel yang memiliki kesamaan dan ketaksamaan fungsi kendala. Program linier menggunakan model matematis untuk menjelaskan persoalan yang dihadapinya. Sifat “linier” memberi arti bahwa seluruh fungsi matematis dalam model merupakan fungsi yang linier, demikian kata “program” merupakan sinonim untuk perencanaan. Dengan demikian program linier adalah perencanaan aktivitas-aktivitas untuk memperoleh suatu hasil yang optimum, yaitu suatu hasil yang mencapai tujuan terbaik di antara alternatif yang fisibel (Dantzig & Thapa, 1997).

Formulasi model matematis dari persoalan pengalokasian sumber-sumber pada permasalahan program linier adalah sebagai berikut (Sitorus, 1997):

maks/min: Z =

kendala: ≤, =, ≥


(24)

di mana: $ = fungsi tujuan

= koefisien dari variabel keputusan dalam fungsi tujuan = variabel keputusan

= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala

Dalam kehidupan sehari-hari, program linier merupakan bagian yang sangat penting dalam area matematika yang disebut teknik optimasi. Program linier umumnya diaplikasikan dalam permasalahan yang dapat dimodelkan ke dalam suatu model matematika, misalnya dalam mencari keuntungan suatu usaha, pengoptimalan persediaan, juga dalam beberapa masalah industri maupun ekonomi. Adakalanya dalam situasi tertentu solusi yang diinginkan haruslah dalam bilangan bulat, misalnya pada perusahaan manufaktur, perusahaan tidak bisa memproduksi barang setengah, sepertiga, ataupun seperempat dan sebagainya, jadi masalah ini disebut dengan integer linear programming (Syahputra, 2012).

2.1.1 Syarat Utama Program Linier

Agar dapat menyusun dan merumuskan suatu persoalan atau permasalahan yang dihadapi ke dalam model program linier, maka ada lima syarat yang harus dipenuhi (Sitorus, 1997):

1. Tujuan

Apa yang menjadi tujuan permasalahan yang dihadapi yang ingin dipecahkan dan dicari jalan keluarnya. Tujuan ini harus jelas dan tegas yang disebut fungsi tujuan.

2. Alternatif Perbandingan

Harus ada sesuatu atau berbagai alternatif yang ingin diperbandingkan, misalnya antara kombinasi waktu tercepat dan biaya tertinggi dengan waktu terlambat dan biaya terendah.


(25)

Sumber daya yang dianalisis harus berada dalam keadaan yang terbatas. 4. Perumusan Kuantitatif

Fungsi tujuan dan kendala harus dapat dirumuskan secara kuantitatif sesuai dengan yang disebut dalam model matematika.

5. Keterkaitan Peubah

Peubah-peubah yang membentuk fungsi tujuan dan kendala tersebut harus memiliki hubungan fungsional atau hubungan keterkaitan.

2.1.2 Karakteristik Program Linier

Karakteristik-karakteristik dalam program linier yang biasa digunakan untuk memodelkan suatu masalah dan memformulasikannya secara matematik, yaitu (Siswanto, 2006):

1. Variabel Keputusan

Variabel keputusan adalah variabel yang secara lengkap menguraikan keputusan-keputusan yang akan dibuat.

2. Fungsi Tujuan

Fungsi tujuan merupakan suatu hubungan linier dari variabel keputusan yang berupa fungsi maksimum atau minimum.

3. Fungsi Kendala

Fungsi kendala merupakan batasan-batasan dalam penyelesaian program linier yang harus diperhatikan. Kendala diekspresikan dalam persamaan dan pertidaksamaan yang juga merupakan hubungan linier dari variabel keputusan yang mencerminkan keterbatasan sumber daya dalam suatu masalah.


(26)

2.1.3 Asumsi dalam Program Linier

Dalam membangun model dari formulasi suatu persoalan akan digunakan karakteristik-karakteristik yang biasa digunakan dalam persoalan program linier, yaitu (Syahputra, 2012):

1. Linieritas (Linearity)

Fungsi tujuan (objective function) dan kendala – kendalanya (constraints ) dibuat

dalam fungsi linier. Sifat linearitas suatu kasus dapat ditentukan dengan menggunakan beberapa cara, misalnya dengan menggunakan grafik.

2. Kesetaraan (Propotionality)

a. Kontribusi setiap variabel keputusan terhadap fungsi tujuan adalah sebanding dengan nilai variabel keputusan.

b. Kontribusi suatu variabel keputusan terhadap ruas kiri dari setiap pembatas juga sebanding dengan nilai variabel keputusan itu.

3. Penambahan (Addivity)

Sifat penambahan mengasumsikan bahwa tidak terdapat bentuk perkalian silang pada model, baik bagi fungsi tujuan maupun kendala.

4. Pembagian (Divisibility)

Solusi dapat berupa bilangan bulat (integer) atau bilangan pecahan. 5. Ketidaknegatifan (Nonnegativity)

Nilai variabel keputusan harus lebih besar atau sama dengan nol. 6. Kepastian (Certainty)

Koefisien pada fungsi tujuan ataupun fungsi kendala merupakan suatu nilai pasti, bukan merupakan suatu nilai dengan peluang tertentu.

Asumsi-asumsi di atas harus dipenuhi apabila ingin menyelesaikan masalah model program linier. Jika asumsi-asumsi tersebut tidak dapat terpenuhi, persoalan dapat diselesaikan dengan program matematika lain seperti integer

programming, nonlinear programming, goal programming dan dynamic programming.


(27)

2.1.4 Metode Simpleks

Cara yang paling sederhana untuk menyelesaikan permasalahan program linier adalah dengan pendekatan grafik. Namun cara tersebut hanya bisa diterapkan untuk program linier dengan dua variabel keputusan. Pada kenyataannya sebagian besar permasalahan program linier mempunyai lebih dari dua variabel keputusan. Hal ini tentu sulit untuk menerapkan pendekatan grafik untuk memperoleh penyelesaian dari permasalahan tersebut.

Oleh karen itu, pada tahun 1947 George Dantzig mengajukan suatu metode yang tepat untuk menyelesaiakn permasalahan program linier yang disebut metode simpleks. Metode simpleks merupakan prosedur aljabar yang bersifat iteratif yang bergerak selangkah demi selangkah, dimulai dari titik ekstrim pada daerah feasible menuju titik ekstrim optimum (Siagian, 2006).

Berikut langkah-langkah dalam menyelesaikan permasalahan program linier dengan metode simpleks:

1. Konversikan formulasi persoalan ke dalam bentuk standar.

Agar persamaan garis batasan memenuhi persyaratan penyelesaian daerah kelayakan (feasible) maka semua pertidaksamaan diubah menjadi persamaan dengan cara menambahkan slack variable, surplus variable dan variabel buatan (artifisial variabel) pada tiap batasan (constraint) serta memberi harga nol pada setiap koefisien tujuannya. Batasan dapat dimodifikasi sebagai berikut:

a. Untuk batasan bernotasi ≤ diubah ke dalam bentuk persamaan dengan menambahkan variabel slack.

b. Untuk batsan bernotasi ≥ atau = deselesaikan dengan menambahkan variabel surplus dan variabel buatan. Dengan penambahan variabel buatan ini akan merusak sistem batasan, hal ini dapat diatasi dengan membuat suatu bilangan penalty M (M bilangan positif yang sangat besar) sebagai harga dari variabel buatan tersebut dalam fungsi tujuan. Untuk kasus maksimasi maka dibuat –M sebagai harga dari variabel buatan dan untuk


(28)

kasus minimasi dibuat +M sebagai harga dari variabel buatan. Cara pendekatan ini dikenal dengan metode M besar (Big M method).

2. Susun persamaan-persamaan ke dalam tabel simpleks

Tabel 2.1 Bentuk Tabel Simpleks Program Linier

' ... ... ... ... ...

Solusi Variabel

Basis

Harga

Basis ' ... , ,' ... ,

, - ' ... ... ... ... ...

,' -' ' '' ... ... ... ... ... ' '

⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮

, - ' ... ... ... ... ...

$ − 0 ... ... ... ... ... ... ... ... 0

-3. Pilih kolom kunci, yaitu kolom yang memiliki nilai 1$ − 0 2 yang paling positif untuk kasus maksimasi atau yang memiliki nilai 1$ − 0 2 yang paling negatif untuk kasus minimasi.

4. Pilih baris kunci yang memiliki nilai indeks terkecil. Nilai indeks adalah perbandingan nilai kanan dengan kolom kunci,

5. Tentukan nilai elemen cell, yaitu nilai perpotongan antara kolom kunci dan baris kunci.

6. Lakukan iterasi dengan menentukan baris kunci baru, baris Z baru dan baris variabel-variabel slack baru.

a. Baris kunci baru ditentukan dengan membagi baris kunci lama dengan elemen cell.

b. Baris Z baru dan baris-baris lainnya ditentukan dengan cara:

Baris lama – (nilai kolom kunci baris yang sesuai × baris kunci baru) c. Letakkan nilai-nilai baris yang baru diperoleh ke dalam tabel.

7. Lakukan uji optimalisasi. Jika semua koefisien pada baris 1$ − 0 2 sudah tidak ada lagi yang bernilai positif (untuk kasus maksimasi) atau sudah tidak


(29)

ada lagi yang bernilai negatif (untuk kasus minimasi) berarti sudah optiamal. Jika kriteria belum terpenuhi, diulangi dari langkah 3.

2.2 Program Bilangan Bulat

Program bilangan bulat (integer programming) merupakan bentuk perluasan dari program linier. Persoalan program bilangan bulat menginginkan solusi yang didapat berupa bilangan bulat, bukan berupa bilangan pecahan. Contoh persoalan yang sering ditemui misalnya menentukan banyaknya mobil yang harus diproduksi, banyaknya unit rumah yang akan dibangun pada suatu proyek perumahan, banyaknya orang yang diperlukan untuk mengerjakan suatu proyek, dan sebagainya. Program bilangan bulat memiliki model matematis yang sama dengan model program linier pada umumnya, tetapi ditambah batasan bahwa variabelnya harus bilangan bulat sebagai berikut (Syahputra, 2012):

maks/min: Z =

kendala: ≤, =, ≥

≥ 0, semua bilangan bulat di mana: $ = fungsi tujuan

= koefisien dari variabel keputusan dalam fungsi tujuan = variabel keputusan

= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala

Berdasarkan jenis keputusan yang akan diperoleh, persoalan integer

programming dapat dibedakan atas tiga jenis, yaitu:

1. Pemrograman Bilangan Bulat Murni (Pure Integer Programming) 2. Pemrograman Bilangan Bulat Campuran (Mixed Integer Programming) 3. Pemrograman Bilangan Bulat Biner (Binary Integer Programming)


(30)

2.2.1 Program Bilangan Bulat Murni (Pure Integer Programming)

Pure Integer Programming (PIP) merupakan pemrograman bilangan bulat di

mana semua nilai variabel keputusan haruslah bilangan bulat. Bentuk umum pure

integer programming yaitu (Syahputra, 2012):

maks/min: Z =

kendala: ≤, =, ≥

≥ 0, semua bilangan bulat di mana: $ = fungsi tujuan

= koefisien dari variabel keputusan dalam fungsi tujuan = variabel keputusan

= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala

2.2.2 Program Bilangan Bulat Campuran (Mixed Integer Programming)

Mixed Integer Programming (MIP) merupakan pemrograman bilangan bulat di

mana nilai variabel keputusannya berupa campuran antara bilangan bulat dan bilangan desimal atau pecahan. Bentuk umum mixed nteger programming yaitu (Syahputra, 2012):

maks/min: Z = + 4565

7 5

kendala: + 8565

7 5

≤, =, ≥

≥ 0, semua bilangan bulat 65≥ 0


(31)

di mana: $ = fungsi tujuan

= koefisien dari variabel keputusan dalam fungsi tujuan = variabel keputusan

= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala 45 = nilai kontribusi dari variabel keputusan 65

65 = variabel keputusan tidak harus berupa bilangan bulat

85 = koefisien dari variabel keputusan 69 dalam fungsi kendala

2.2.3 Program Bilangan Bulat Biner (Binary Integer Programming)

Bentuk lain dari masalah program bilangan bulat adalah binary integer

programming (BIP). Dalam persoalan binary integer programming nilai variabel

keputusannya berupa bilangan biner (0 atau 1). Dalam aplikasi sehari-hari, masalah binary integer programming menyangkut masalah pengambilan keputusan, di mana jika solusi yang didapat berupa angka 1 berarti menyatakan “ya” atau angka 0 berarti menyatakan “tidak”. Bentuk umum dari binary integer

programming, yaitu (Syahputra, 2012):

maks/min: Z =

kendala: ≤, =, ≥

= 0 : ; 1 di mana: $ = fungsi tujuan

= koefisien dari variabel keputusan dalam fungsi tujuan = variabel keputusan

= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala


(32)

2.3 Metode Penyelesaian Masalah Program Bilangan Bulat

Dapat kita lihat bahwasanya cukup untuk mendapatkan solusi bulat dari masalah program linier dengan menggunakan metode simpleks biasa dan kemudian membulatkan nilai pecahan pada solusi optimum. Akan tetapi bukan tugas mudah untuk membulatkan nilai pecahan dalam variabel basis yang menjamin tetap memenuhi semua kendala dan tidak menyimpang cukup jauh dari solusi bulat yang tepat. Akibatnya diperlukan prosedur yang sistematis untuk mendapatkan solusi optimum yang berupa bilangan bulat terhadap suatu masalah. Beberapa metode yang dapat digunakan untuk menyelesaikan masalah program bilangan bulat antara lain (Syahputra, 2012):

1. Metode Pendekatan Grafik 2. Metode Cutting Plane 3. Metode Branch and Bound

2.3.1 Metode Pendekatan Grafik

Masalah program bilangan bulat yang melibatkan dua variabel dapat diselesaikan dengan metode pendekatan grafik. Metode ini sama dengan metode grafik yang biasa digunakan dalam program linier. Metode grafik relatif lebih mudah untuk menyelesaikan masalah program bilangan bulat dengan dua variabel yaitu dengan menggambar grafik di atas kertas grafik kemudian menggambarkan sekumpulan titik-titik bilangan bulat dalam ruang solusi layak (Syahputra, 2012).

Dalam hal ini ada masalah berikut yang akan diselesaikan dengan pendekatan grafik sebagai berikut:

contoh 2.1:

carilah nilai bilangan bulat dan ' dari ketentuan berikut (Wolff, 1985): maks: $ = 3 + 20 '

kendala: + 8 ' ≤ 32

2 + ' ≤ 14


(33)

Model ini serupa dengan model program linier biasa. Perbedaannya terletak pada kendala terakhir yang menginginkan solusi bernilai bilangan bulat positif, solusi grafik untuk masalah ini ditunjukkan pada gambar di bawah:

Gambar 2.1 Penyelesaian dengan Pendekatan Grafik

Solusi optimum masalah program linier di atas adalah = 5,3333,

' = 3,3333 dan $ = 82,6666. Untuk mencari solusi optimum yang bernilai

bilangan bulat pada masalah ini, garis Z digeser secara sejajar dari titik yang menunjukkan solusi optimum menuju titik asal. Solusi optimum berupa bilangan bulat adalah titik bilangan bulat pertama yang bersinggungan dengan garis Z yaitu

= 0, ' = 4 dan $ = 80.

2.3.2 Metode Cutting Plane

Metode cutting plane merupakan metode yang digunakan untuk menyelesaikan program linier bilangan bulat, baik bilangan bulat murni maupun campuran dengan penambahan batasan baru yang disebut gomory. Batasan gomory diberikan jika nilai dari variabel keputusan belum bulat (bernilai pecahan). Batasan-batasan tersebut secara efektif akan menyingkirkan beberapa ruang penyelesaian yang tidak berisi titik bilangan bulat yang layak, tetapi tidak pernah menyingkirkan satupun titik bilangan bulat yang layak (Taha, 1996).


(34)

Metode cutting plane dikembangkan untuk menemukan solusi optimum bagi program bilangan bulat. Metode ini dilakukan dengan menambahkan suatu kendala yang dinamakan kendala gomory. Penambahan kendala gomory dilakukan pada tabel optimal sehingga dapat mempersingkat perhitungan (Siagian, 2006).

Metode cutting plane digunakan untuk permasalahan yang variabel keputusannya harus bulat. Program linier tidak efektif untuk menyelesaikan permasalahan tersebut sehingga dikembangkan metode cutting plane yang lebih efektif dan memberikan hasil yang lebih baik. Langkah-langkah prosedur gomory diringkas seperti berikut:

1. Selesaikan masalah program bilangan bulat dengan menggunakan metode simpleks. Jika masalah sederhana, gomory dapat diselesaikan dengan pendekatan grafik, sehingga pendekatan gomory kurang efisien.

2. Periksa solusi optimum. Jika semua variabel basis memiliki nilai bilangan bulat, solusi optimum yang berupa bilangan bulat telah diperoleh dan proses solusi telah berakhir. Jika satu atau lebih variabel basis masih memiliki nilai pecah, teruskan ke tahap 3.

3. Buatlah suatu batasan gomory dan cari solusi optimum melalui prosedur dual simpleks. Kembali ke tahap 2 (Taha, 1996).

Tabel 2.2 Solusi Optimum Masalah Program Linier

' ... ... ... ... ...

Solusi Variabel

Basis

Harga

Basis ' ... , ,' ... ,

, - ' ... ... ... ... ...

,' -' ' '' ... ... ... ... ... ' '

⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮

, - ' ... ... ... ... ...

$ − 0 ... ... ... ... ... ... ... ... 0

di mana: = variabel basis , = variabel nonbasis


(35)

Perhatikan persamaan ke A di mana variabel diasumsikan bernilai tidak bilangan bulat sebagai berikut:

= − ,

di mana: = variabel basis

, = variabel nonbasis

= koefisien dari variabel keputusan dalam fungsi kendala yang berupa noninteger

= sumber daya yang tersedia dalam fungsi kendala yang berupa

noninteger

kemudian pisahkan dan menjadi bagian yang bulat dan bagian pecah non negatif seperti berikut:

= C + %B

sehingga % = − CB, di mana 0 ≤ % ≤ 1

=EEEE + %DB

sehingga % = −EEEEDB, di mana 0 ≤ % ≤ 1 dapat kita lihat contoh berikut:

B

C % EEEEDB %

3

2 1 12 −73 −3 23

7

8 0 78 −1 −1 0

7

3 2 13 −25 −1 35

sehingga adapun kendala gomory yang diinginkan sebagai berikut:

,G − % , = −%

di mana: ,G = slack gomory variable

% = bagian pecahan dari % = bagian pecahan dari , = variabel nonbasis


(36)

Pada umumnya, persamaan kendala yang berhubungan dengan solusi pecah dipilih untuk menghasilkan suatu kendala gomory. Namun, sebagai aturan main biasanya dipilih persamaan yang memiliki % maksimum. Adapun tabel baru setelah penambahan kendala gomory disajikan pada tabel berikut:

Tabel 2.3 Penambahan Kendala Gomory

' ... ... ... ... ... ...

Solusi Variabel

Basis

Harga

Basis ' ... , ,' ... ,

,8A

, - ' ... ... ... ... ... 0

,' -' ' '' ... ... ... ... ... ' 0 '

⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ 0 ⋮

, - ' ... ... ... ... ... 0

,8A 0 0 0 … 0 −% −%' ... −% 1 −%

$ − 0 ... ... ... ... ... ... ... ... ... 0

-Karena diperoleh solusi primal optimum tetapi tidak layak maka digunakan metode dual simpleks. Proses pembentukan kendala gomory berakhir jika solusi baru semua berupa bilangan bulat. Jika tidak, suatu kendala gomory baru dibuat lagi dari tabel yang dihasilkan dan metode dual simpleks digunakan lagi untuk mengatasi ketidaklayakan. Jika pada setiap iterasi metode dual simpleks menunjukkan bahwa tidak ada solusi layak, berarti masalah itu tidak memiliki solusi integer yang layak. Metode cutting plane ini mempunyai dua kelemahan sebagai berikut:

1. Kesalahan pembulatan yang muncul dalam perhitungan otomatis akan mendistorsi data semula terutama dengan bertambahnya ukuran masalah. 2. Solusi masalah tetap tidak layak, artinya tidak ada solusi integer yang dapat

diperoleh sampai solusi integer optimal dicapai. Ini berarti bahwa tidak ada solusi integer yang baik jika perhitungan dihentikan sebelum mencapai solusi

integer yang optimal (Taha, 1996).

Kelemahan pertama dapat diatasi dengan penggunaan integer murni. Metode ini dimulai dengan tabel awal yang semuanya terdiri dari integer yang


(37)

sesuai dengan metode dual simpleks. Kemudian dilakukan penambahan gomory sehingga penambahannya ke tabel akan mempertahankan sifat integer dari semua koefisien. Dan kelemahan kedua dapat menggunakan metode cutting plane yang dimulai dengan integer dan layak, tetapi tidak optimal. Iterasi yang berlanjut tetap layak dan integer sampai solusi optimum dicapai (Taha, 1996).

Dalam hal ini ada masalah diselesaikan dengan metode cutting plane sebagai berikut:

contoh 2.2:

carilah nilai bilangan bulat dan ' dari ketentuan berikut (Syahputra,2012): maks: $ = 7 + 9 '

kendala: − + 3 ' ≤ 6

7 + ' ≤ 35

, ' ≥ 0 adalah bilangan bulat

dari permasalahan di atas maka diperoleh solusi optimumnya sebagai berikut berikut:

Tabel 2.4 Solusi Optimum Contoh 2.2

7 9 0 0

Solusi

Variabel Basis Harga Basis ' , ,'

' 9 0 1 0,3282 0,0455 3,5000

7 1 0 -0,0455 0,1364 4,5000

$ − 0 0 0 2,5455 1,3636 63

sehingga dapat diperoleh solusi optimum sebagai berikut:

= 4,5000, ' = 3,5000 dan $ = 63

karena solusi tidak diperoleh bilangan bulat, suatu kendala gomory ditambahkan pada tabel tersebut. Kedua persamaan ( dan ') pada masalah ini memiliki nilai

% yang sama yaitu % = %' = 0,5000, sehingga salah satu dapat digunakan, misalkan yang digunakan persamaan ', maka dapat diperoleh sebagai berikut:

' + 0,3282, + 0,0455,' = 3,5000

kemudian kita pisahkan koefisien yang bernilai pecahan menjadi 2 bagian yaitu yang bernilai bilangan bulat dan bilangan pecahan


(38)

sehingga kendala gomory menjadi

,81− 0,3282, − 0,0455,' = −0,5000

sehingga dapat dibentuk tabel baru setelah penambahan kendala gomory sebagai berikut:

Tabel 2.5 Penambahan Kendala Gomory Pertama

7 9 0 0 0

Solusi Variabel

Basis

Harga

Basis ' , ,' ,81

' 9 0 1 0,3282 0,0455 0 3,5000

7 1 0 -0,0455 0,1364 0 4,5000

,81 0 0 0 -0,3282 -0,0455 1 -0,5000

$ − 0 0 0 2,5455 1,3636 0 63

kemudian permasalahan di atas setelah penambahan kendala gomory diselesaikan

dengan memakai metode dual simpleks, maka diperoleh hasilnya sebagai berikut:

Tabel 2.6 Solusi Optimum dengan Penambahan Kendala Gomory Pertama

7 9 0 0 0

Solusi Variabel

Basis

Harga

Basis ' , ,' ,81

' 9 0 1 0 0 1 3

7 1 0 0 0,1428 -0,1428 4,5714

,81 0 0 0 1 0,1428 3,1428 1,5714

$ − 0 0 0 0 1 8 59

sehingga dapat diperoleh solusi optimum sebagai berikut:

= 4,5714, ' = 1,5714 dan $ = 55

karena solusi tidak diperoleh bilangan bulat, suatu kendala gomory ditambahkan kembali pada tabel tersebut. Dapat dilihat bahwa persamaan memiliki % =

0,5714, sehingga persamaan dapat diperoleh sebagai berikut:

+ 0,1428,'− 0,1428,G = 4,5714

kemudian kita pisahkan koefisien yang bernilai pecahan menjadi 2 bagian yaitu yang bernilai bilangan bulat dan bilangan pecahan


(39)

+ 0 + 0,1428 ,' − 0 + 0,1428 ,G = 4 + 0,5714

sehingga kendala gomory menjadi

,82− 0,1428,'− 0,1428,81= −0,5714

sehingga dapat dibentuk tabel baru setelah penambahan kendala gomory yang baru sebagai berikut:

Tabel 2.7 Penambahan kendala Gomory Kedua

0 7 9 0 0 0 0

Solusi Variabel

Basis

Harga

Basis ' , ,' ,81 ,82

' 9 0 1 0 0 1 0 3

7 1 0 0 0,1428 -0,1428 0 4,5714

I81 0 0 0 1 0,1428 3,1428 0 1,5714

I82 0 0 0 0 -0,1428 -0,1428 1 -0,5714

$ − 0 0 0 0 1 8 0 59

kemudian permasalahan di atas setelah penambahan kendala gomory yang baru diselesaikan dengan memakai metode dual simpleks, maka diperoleh hasilnya sebagai berikut:

Tabel 2.8 Solusi Optimum dengan Penambahan Kendala Gomory Kedua

7 9 0 0 0 0

Solusi Variabel

Basis

Harga

Basis ' , ,' ,81 ,82

' 9 0 1 0 0 1 0 3

7 1 0 0 0 -1 1 4

,81 0 0 0 1 0 -4 1 1

,82 0 0 0 0 1 6 -7 4

$ − 0 0 0 0 0 2 7 55

sehingga dapat diperoleh solusi optimum dengan bilangan bulat sebagai berikut:


(40)

2.3.3 Metode Branch and Bound

Metode branch and bound adalah salah satu metode untuk mendapatkan penyelesaian optimal pada program linier yang menghasilkan variable-variabel keputusan bilangan bulat. Metode ini membatasi penyelesaian optimum yang akan menghasilkan bilangan pecahan dengan cara membuat cabang atas dan bawah bagi masing-masing variabel keputusan yang bernilai pecahan agar bernilai bulat sehingga setiap pembatasan akan menghasilkan cabang baru.

Metode branch and bound telah menjadi kode komputer standar untuk program bilangan bulat dan penerapan-penerapan dalam praktek tampaknya menyarankan bahwa metode ini lebih efisien dibanding dengan metode cutting

plane. Metode branch and bound dapat digunakan untuk menyelesaikan masalah pure maupun mixed integer programming (Syahputra, 2012).

Adapun langkah-langkah penyelesaian masalah maksimasi dengan metode

branch and bound sebagai berikut (Syahputra, 2012):

1. Selesaikan masalah program linier biasa tanpa pembatasan bilangan bulat dengan metode simpleks biasa.

2. Teliti solusi optimumnya. Jika semua variabel basis telah bernilai bulat, maka solusi optimum telah tercapai dan proses berakhir. Jika satu atau lebih variabel basis belum bernilai bulat, lanjut ke tahap 3.

3. Jadikan solusi pada penyelesaian tahap 1 (relaxed solution) menjadi batas atas dan sebagai batas bawahnya digunakan solusi yang variabel basisnya telah dibulatkan ke bawah (rounded down).

4. Pilih variabel yang mempunyai nilai pecahan yang terbesar untuk dijadikan pencabangan ke dalam sub-sub masalah. Tujuannya adalah untuk menghilangkan solusi kontinu yang tidak memenuhi persyaratan bulat dalam masalah itu. Pencabangan dilakukan secara mutually exclusive untuk memenuhi persyaratan bulat dengan jaminan tidak ada solusi bulat layak yang tidak diikut sertakan.

5. Untuk setiap sub masalah, nilai solusi optimum kontinu fungsi tujuan ditetapkan sebagai batas atas. Solusi bulat terbaik menjadi batas bawah (pada


(41)

awalnya, ini adalah solusi kontinu yang dibulatkan ke bawah). Sub-sub masalah yang memiliki batas atas kurang dari batas bawah yang ada, tidak diikut sertakan pada analisa selanjutnya. Suatu solusi bulat layak adalah sama baik atau lebih baik dari batas atas untuk setiap sub masalah yang dicari. Jika solusi yang demikian terjadi, suatu sub masalah dengan batas atas terbaik dipilih untuk dicabangkan. Kembali ke langkah 4.

Untuk masalah minimasi, solusi yang menjadi batas atas dibulatkan keatas, atau dengan kata lain batas atas dan bawah pada kasus minimasi berlawanan pada kasus maksimasi (Syahputa, 2012).

Dalam hal ini ada masalah berikut yang akan diselesaikan dengan metode

branch and bound sebagai berikut:

contoh 2.3:

carilah nilai bilangan bulat dan ' dari ketentuan berikut (Wolfe,1985): maks: $ = 5 + 2 '

kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24

, ' ≥ 0 adalah bilangan bulat

dari permasalahan tersebut maka diperoleh solusi optimumnya sebagai berikut berikut:

Tabel 2.9 Solusi Optimum Contoh 2.3

5 2 0 0 0

Solusi Variabel

Basis

Harga

Basis ' , ,' ,J

' 2 0 1 0,0400 0 -0,0400 1,8000

,' 0 0 0 -0,7000 1 0,2000 16,500

5 1 0 0,1000 0 0,0667 8,5000

$ − 0 0 0 0,5800 0 0,2533 46,100

sehingga dapat diperoleh solusi optimum sebagai berikut:


(42)

dan solusi tersebut belum diperoleh bilangan bulat maka diterapkan metode

branch and bound, kita ketahui bahwa dan ' belum berupa bilangan bulat, maka kita pilih variabel yang solusinya bernilai pecahan terbesar untuk dicabangkan, yang dalam hal ini merupakan nilai pecahan terbesar, jadi yang dicabangkan. Untuk menghilangkan bagian pecahan pada , dua kendala baru dibuat. Nilai bulat terdekat terhadap 8,5000 yaitu 8 dan 9. Sehingga diperoleh dua kendala baru yang saling mutually exclusive, yaitu ≤ 8 dan

≥ 9, kendala-kendala baru tersebut secara efektif akan menghilangkan semua nilai pecah yang mungkin ada pada . Kemudian akan diuraikan permasalahan tersebut kedalam bagian A dan bagian B sebagai berikut:

Bagian A:

maks: $ = 5 + 2 ' kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24 1 + 0 ' ≤ 8

, ' ≥ 0 Bagian B:

maks: $ = 5 + 2 ' kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24 1 + 0 ' ≥ 9

, ' ≥ 0

kemudian bagian A dan bagian B diselesaikan dengan metode simpleks tanpa pembatasan bilangan bulat, adapun solusi optimumnya sebagai berikut:


(43)

Tabel 2.10 Solusi Optimum pada Bagian A

5 2 0 0 0 0

Solusi Variabel

Basis

Harga

Basis ' , ,' ,J ,K

,J 0 0 0 1,5000 0 1 -15 7,5000

,' 0 0 0 -1,0000 1 1 3,0000 15

5 1 0 0 0 0 1 8

' 2 0 1 0,1000 0 0 -0,6000 2,1000

$ − 0 0 0 -0,2000 0 0,2533 3,8000 44,200

sehingga dapat diperoleh solusi optimum sebagai berikut:

= 8, ' = 2,1000 dan $ = 44,200

dan pada bagian B tidak diperoleh solusi yang layak. Dari solusi pada bagian A belum diperoleh bilangan bulat maka diterapkan metode branch and bound, kita ketahui bahwa ' belum berupa bilangan bulat maka 'yang dicabangkan. Untuk menghilangkan bagian pecahan pada ', dua kendala baru dibuat. Nilai bulat terdekat terhadap 2,1000 yaitu 2 dan 3. Sehingga diperoleh dua kendala baru yang saling mutually exclusive, yaitu ' ≤ 2 dan ' ≥ 3, kendala-kendala baru tersebut secara efektif akan menghilangkan semua nilai pecah yang mungkin ada pada '. Kemudian akan diuraikan permasalahan bagian A kedalam bagian C dan bagian D sebagai berikut:

Bagian C:

maks: $ = 5 + 2 ' kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24 1 + 0 ' ≤ 8 0 + 1 ' ≤ 2


(44)

Bagian D:

maks: $ = 5 + 2 ' kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24 1 + 0 ' ≤ 8 0 + 1 ' ≥ 3

, ' ≥ 0

kemudian bagian C dan bagian D diselesaikan dengan metode simpleks tanpa pembatasan bilangan bulat, adapun solusi optimumnya sebagai berikut:

Tabel 2.11 Solusi Optimum pada Bagian C

5 2 0 0 0 0 0

Solusi Variabel

Basis

Harga

Basis ' , ,' ,J ,K ,L

, 0 0 0 1 0 0 -6 -10 1

,' 0 0 0 0 1 0 -3 -10 16

5 1 0 0 0 0 1 0 8

' 2 0 1 0 0 0 0 1 2

,J 0 0 0 0 0 1 6 15 6

$ − 0 0 0 0 0 0 5 2 44

sehingga dapat diperoleh solusi optimum sebagai berikut:

= 8, ' = 2 dan $ = 44

dan terlihat bahwa solusi optimum pada bagian C sudah semua merupakan bilanagan bulat.


(45)

Tabel 2.12 Solusi Optimum pada Bagian D

5 2 0 0 0 0 0

Solusi Variabel

Basis

Harga

Basis ' , ,' ,J ,K ,L

5 0 0 0,1667 0 0 0 1,1667 6,5000

,' 0 0 0 -0,5000 1 0 0 5 10,500

,J 0 1 0 -1 0 1 0 -25 30

,J 0 0 1 -0,1667 0 0 1 -1,1667 1,5000

' 2 0 0 0 0 0 0 -1 3

$ − 0 0 0 0,8333 0 0 0 6,3333 38,500

sehingga dapat diperoleh solusi optimum sebagai berikut:

= 6,5000, ' = 3 dan $ = 38,5000

dan terlihat bahwa solusi optimum pada bagian D belum semua merupakan bilangan bulat. Dari solusi pada bagian belum diperoleh bilangan bulat maka diterapkan metode branch and bound, kita ketahui bahwa belum berupa bilangan bulat maka yang dicabangkan. Untuk menghilangkan bagian pecahan pada , dua kendala baru dibuat. Nilai bulat terdekat terhadap 6,5000 yaitu 6 dan 7. Sehingga diperoleh dua kendala baru yang saling mutually exclusive, yaitu

' ≤ 6 dan ' ≥ 7, kendala-kendala baru tersebut secara efektif akan menghilangkan semua nilai pecah yang mungkin ada pada . Kemudian akan diuraikan permasalahan bagian D kedalam bagian E dan bagian F sebagai berikut: Bagian E:

maks: $ = 5 + 2 ' kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24 1 + 0 ' ≤ 8 0 + 1 ' ≤ 2 1 + 0 ' ≤ 6


(46)

Bagian F:

maks: $ = 5 + 2 ' kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24 1 + 0 ' ≤ 8 0 + 1 ' ≤ 2 1 + 0 ' ≥ 7

, ' ≥ 0

kemudian bagian E dan bagian F diselesaikan dengan metode simpleks tanpa pembatasan bilangan bulat, adapun solusi optimumnya sebagai berikut:

Tabel 2.13 Solusi Optimum pada Bagian E

5 2 0 0 0 0 0 0 0

Solusi Variabel

Basis

Harga

Basis ' , ,' ,J ,K ,L ,M ,N

,L 0 0 0 0,1000 0 0 0 -1 1 -0,6000 0,3000

,' 0 0 0 -1 1 0 0 0 0 3 9

,J 0 0 0 1,5000 0 1 0 0 0 -1,5000 37,5000

,K 0 0 0 0 0 0 1 0 0 -1 2

' 5 0 1 0,1000 0 0 0 0 0 -0,6000 3,3000

2 1 0 0 0 0 0 0 0 1 6

$ − 0 0 0 0,200 0 0 5 0 0 3 36,600

sehingga dapat diperoleh solusi optimum sebagai berikut:

= 6, ' = 3,3000 dan $ = 36,6000

dan terlihat bahwa solusi optimum pada bagian E belum semua merupakan bilangan bulat, kemudian pada bagian F tidak diperoleh solusi yang layak. Jadi dari solusi pada bagian E belum diperoleh bilangan bulat maka diterapkan metode

branch and bound, kita ketahui bahwa ' belum berupa bilangan bulat maka


(47)

baru dibuat. Nilai bulat terdekat terhadap 3,3000 yaitu 3 dan 4. Sehingga diperoleh dua kendala baru yang saling mutually exclusive, yaitu ' ≤ 3 dan

' ≥ 4, kendala-kendala baru tersebut secara efektif akan menghilangkan semua

nilai pecah yang mungkin ada pada '. Kemudian akan diuraikan permasalahan bagian E kedalam bagian G dan bagian H sebagai berikut:

Bagian G:

maks: $ = 5 + 2 ' kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24 1 + 0 ' ≤ 8 0 + 1 ' ≤ 2 1 + 0 ' ≤ 6 0 + 1 ' ≤ 3

, ' ≥ 0 Bagian H:

Maks: $ = 5 + 2 ' kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24 1 + 0 ' ≤ 8 0 + 1 ' ≤ 2 1 + 0 ' ≤ 6 0 + 1 ' ≥ 4


(48)

bagian G dan bagian H diselesaikan dengan metode simpleks tanpa pembatasan bilangan bulat, adapun solusi optimumnya sebagai berikut:

Tabel 2.14 Solusi Optimum pada Bagian G

5 2 0 0 0 0 0 0 0 0

Solusi Variabel

Basis

Harga

Basis ' , ,' ,J ,K ,L ,M ,N ,O

, 0 0 0 1 0 0 0 0 0 -6 -10 3

,' 0 0 0 0 1 0 0 0 0 -3 -10 12

,J 0 0 0 0 0 1 0 0 0 -6 15 33

,K 0 0 0 0 0 0 1 0 0 -1 0 2

' 5 0 1 0 0 0 0 0 0 0 1 3

2 1 0 0 0 0 0 0 0 1 0 6

,M 0 0 0 0 0 0 -1 1 0 1 0

$ − 0 0 0 0 0 0 0 0 0 5 2 36

sehingga dapat diperoleh solusi optimum sebagai berikut:

= 6, ' = 3 dan $ = 36. Dan terlihat bahwa solusi optimum pada bagian G sudah semua merupakan bilanagan bulat.


(49)

Tabel 2.15 Solusi Optimum pada Bagian H

5 2 0 0 0 0 0 0 0 0 0

Solusi Variabel Basis Harga

Basis ' , ,' ,J ,K ,L ,M ,N ,O ,P

5 1 0 0,1667 0 0 0 0 0 0 -1,6667 1,6667 4,8333

,' 0 0 0 -0,5000 1 0 0 0 0 0 -5 5 5,5000

,J 0 0 0 -1 0 1 0 0 0 0 25 -25 55

,K 0 0 0 -0,1667 0 0 1 0 0 0 1,6667 -1,6667 3,1667

' 2 0 1 0 0 0 0 0 0 0 1 -1 4

,M 0 0 0 -0,1667 0 0 0 0 0 1 1,6667 -1,6667 1,1667

,L 0 0 0 0 0 0 -1 1 0 1 -1 1

$ − 0 0 0 0,8333 0 0 0 0 0 0 -6,3333 6,3333 36,1670

sehingga dapat diperoleh solusi optimum sebagai berikut:

= 4,8333, ' = 4 dan $ = 32,1670 terlihat bahwa solusi optimum pada bagian H belum semua merupakan bilanagan bulat, kita

ketahui bahwa solusi optimum pada bagian G dan bagian H memiliki nilai fungsi tujuan yang lebih rendah (buruk) dibandingkan solusi yang dihasilkan pada bagian E, maka proses pencabangan dihentikan. Sehingga solusi optimum yang menghasilkan berupa bilangan bulat terletak pada bagian C dengan = 8, ' = 2 dan $ = 44 .


(50)

36

Gambar 2.2. Diagram Prosedur Permasalahan dengan Metode Branch and Bound = 8,5000

'= 1,8000 $ = 46,1000

Solusi Awal

A B

≤ 8 ≥ 9

= 8 '= 2,1000 $ = 44,2000

TIDAK LAYAK

C D

'≤ 2 J≥ 3

= 8 '= 2 $ = 44

= 6,5000 '= 3 $ = 38,5000

E F

≤ 6 ≥ 7

= 6 ' = 3,3000 $ = 36,60000

TIDAK LAYAK

G H

'≤ 3 ' ≥ 4

= 3 ' = 6 $ = 36


(51)

BAB 3

HASIL DAN PEMBAHASAN

3.1 Program Linier Dua Kriteria

Masalah pengoptimalan dengan banyak fungsi tujuan memperhitungkan beberapa tujuan yang konflik secara simultan, secara umum multi-objective programming (MOP) memiliki bentuk umum sebagai berikut:

maks/min: % = Q% , %' , … , %7 S

kendala: T

≤, =, ≥

≥ 0

di mana: % = fungsi tujuan yang disebut multi-objective linear programming = variabel keputusan

= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala

Program linier dua kriteria (bicreteria linear programming) merupakan kasus khusus dari bentuk umum diatas dengan U = 2, adapun bentuk umum program linier dua kriteria dapat ditulis sebagai berikut (Ehrgott, 2005):

min: %7 = &% , %' (

kendala: ≤, =, ≥

≥ 0

di mana: %7 = fungsi tujuan kriteria (U = 1, 2) = variabel keputusan

= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala


(52)

Kemudian bentuk umum dari program linier dua kriteria dimodelkan ke dalam bentuk linear programming parametric yang memiliki bentuk umum sebagai berikut (Ehrgott, 2005):

min: V

kendala: ≤, =, ≥

≥ 0 di mana: = variabel keputusan

= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala c V = fungsi tujuan parameter dengan persamaan

c V = V X+ 1 − V 'X

V = parameter yang bermilai 0 ≤ V ≤ 1

penyelesaian efisien dari program linier dua kriteria akan sama dengan penyelesaian linear programming parametric (Ehrgott, 2005).

Definisi 3.1 Andaikan Y ∈ [ adalah solusi layak dari permasalahan program linier dua kriteria dan 6Y = 0 Y.

1. Solusi layak dari Y ∈ [ dikatakan efisien jika dan hanya jika tidak terdapat titik lain ∈ [ sehingga % ≤ % Y , jika Y adalah solusi efisien maka % Y dikatakan titik yang tidak terdominasi.

2. Solusi layak dari Y ∈ [ dikatakan efisien lemah atau jika dan hanya jika tidak terdapat titik lain ∈ [ sehingga % < % Y .

Langkah-langkah parametric simplex algorithm pada program linier dua kriteria sebagai berikut (Ehrgott, 2005):

1. Memodelkan data permasalahan ke dalam bentuk program linier dua kriteria. 2. Menambah variable slack pada fungsi kendala dalam permasalahan program

linier dua kriteria.

3. Membuat tabel simpleks program linier dua kriteria dimulai dengan V = 1, sebagai berikut:


(53)

Tabel 3.1 Bentuk Tabel Simpleks Program Linier Dua Kriteria

cE cE cE cE' ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯

cE' cE' cE

'' ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯

Variabel Basis ' ⋯ , ,' ⋯ , Solusi

, ' ⋯ ⋯ ⋯ ⋯ ⋯

,' ' '' ⋯ ⋯ ⋯ ⋯ ⋯ ' '

⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮

, ' ⋯ ⋯ ⋯ ⋯ ⋯

4. Menentukan nilai V dengan ketentuan dibawah:

V = ^ _A ∈ ` ∶ cE − cE−cE''b

5. Mendefinisikan variable nonbasis yang akan masuk (I) dengan ketentuan dibawah:

, = ^ _A ∈ ` ∶ cE − cE−cE''b

di mana ` ≠ ∅ dan jika ` = ∅ maka berhenti.

6. Mendefinisikan variabel basis yang akan keuar (B) dengan ketentuan dibawah:

e = ^)f _), A ∈ g ∶ , > 0b

7. Kembali ke tahap 4 jika hasil belum merupakan solusi yang optimum.

3.2 Metode Branch and Cut

Metode branch and cut merupakan kombinasi metode cutting plane dengan metode branch and bound. Prosedur metode branch and cut adalah menyelesaikan rangkaian relaksasi program linier dari masalah bicriteria mixed

integer programming. Berikut langkah-langkah dalam menyelesaikan

permasalahan program linier bilangan bulat campuran (bicriteria mixed integler


(54)

1. Memodelkan permasalahan ke dalam bentuk BMIP dan misalkan titik-titik aktif sebagai i = &gj`kl(.

2. Menyelesaikan LP relaksasi dari permasalahan BMIP. Jika i = ∅ maka nilai yang menghasilkan nilai m terbaik merupkan solusi optimum. Jika tidak diperoleh nilai maka BMIP tidak layak.

3. Jika nilai yang diperoleh tidak bernilai bilangan bulat lanjutkan ke langkah 4. Jika nilai yang diperoleh bernilai bilangan bulat maka solusi optimum diperoleh.

4. Branching: Andaikan bahwa merupakan variabel yang disyaratkan bernilai

integer dan misalkan diperoleh nilai variabel pada solusi optimum yang bernilai pecahan adalah ∗ maka ditambahkan kendala ≤ o ∗p atau

≥ o ∗p + 1 ke dalam permasalahan LP relaksasai dan kemudian

diselesaikan. Jika terdapat lebih dari satu variabel yang bernilai pecahan maka dipilih variabel dengan nilai pecahan terbesar.

5. Jika nilai yang diperoleh belum bernilai bilangan bulat lanjutkan ke langkah 6. Jika nilai yang diperoleh bernilai bilangan bulat maka solusi optimum diperoleh.

6. Cutting: Andaikan bahwa merupakan variabel yang disyaratkan bernilai integer dan misalkan diperoleh nilai variabel pada solusi optimum yang bernilai pecahan adalah ∗ maka ditambahkan kendala gomory berdasarkan tabel solusi optimum dengan ketentuan sebagai berikut:

IGq− % I = −%

Jika terdapat lebih dari satu variabel yang bernilai pecahan maka dipilih variabel dengan nilai pecahan terbesar. Kembali ke langkah 3.


(55)

3.3 Penyelesaian Masalah Program Bilangan Bulat Dua Kriteria dengan Menggunakan Metode Branch and Cut

Pada contoh berikut akan diberikan permasalahan program bilangan bulat dua kriteria (bicriteria linear programming) yang membutuhkan penyelesaian dalam bilangan bulat. Penyelesaian akan dilakukan dengan metode branch and cut sebagai berikut (Liu et al. 2011):

min: $ = −5 + 2 ' min: $' = 1 − 4 ' kendala: − + 2 ' ≤ 3

3 + 1 ' ≤ 8 5 + 0 ' ≤ 6 0 + 3 ' ≤ 4

, ' ≥ 0 adalah bilangan bulat

memodelkan bentuk program linier dua kriteria ke dalam bentuk linear

programming parametic sebagai berikut:

min: λ −5 + 2 ' + 1 − V − 4 ' −5λ + 2λ '+ − 4 ' − λ + 4λ ' −6λ + + 6λ ' − 4 '

−6V + 1 + 6V − 4 '

Kendala: −1 + 2 '+ 1, + 0,'+ 0,J+ 0,K = 3

3 + 1 ' + 0, + 1,'+ 0,J + 0,K = 8 5 + 0 ' + 0, + 0,'+ 1,J + 0,K = 6 0 + 3 ' + 0, + 0,'+ 0,J + 1,K = 4

, , ≥ 0, A = 1, 2, … , f , ' ≥ 0 adalah bilangan bulat kemudian permasalahan di atas kita buat ke dalam bentuk tabel simpleks program linier dua kriteria (bicriteria linear programming) dan diselesaikan dengan

parametric simplex algorithm tanpa pembatasan bilangan bulat, Sehingga dapat

diperoleh solusi optimum sebagai berikut:

= 1,2000, ' = 1,3334, $ = 3,3334 dan $' = 4,1334.


(56)

Solusi tersebut belum diperoleh bilangan bulat maka diterapkan percabangan (branch), kita ketahui bahwa dan ' belum diperoleh bilangan bulat, maka kita pilih variabel yang solusinya bernilai pecahan terbesar untuk dicabangkan, yang dalam hal ini ' merupakan nilai pecahan terbesar, jadi

' yang dicabangkan. Untuk menghilangkan bagian pecahan pada ' dua kendala

baru dibuat. Nilai bulat terdekat terhadap 1,3444 yaitu 1 dan 2. Sehingga diperoleh dua kendala baru yang saling mutually exclusive, yaitu ' ≤ 1 dan

' ≥ 2, kendala-kendala baru tersebut secara efektif akan menghilangkan semua

nilai pecah yang mungkin ada pada '. Sekarang akan diuraikan permasalahan tersebut ke dalam bagian A dan bagian B sebagai berikut:

Bagian A:

min: $ = −5 + 2 ' min: $' = 1 − 4 ' kendala: −1 + 2 ' ≤ 3

3 + 1 ' ≤ 8 5 + 0 ' ≤ 6 0 + 3 ' ≤ 4 0 + 1 ' ≤ 1

, ' ≥ 0 adalah bilangan bulat

memodelkan bentuk program linier dua kriteria (bicriteria linear programming) pada bagian A ke dalam bentuk linear programming parametric sebagai berikut: min: λ −5 + 2 ' + 1 − V − 4 '

−5λ + 2λ '+ − 4 ' − λ + 4λ '

−6λ + + 6λ ' − 4 ' −6V + 1 + 6V − 4 '

kendala: −1 + 2 '+ 1, + 0,' + 0,J+ 0,K+ 0,L = 3

3 + 1 '+ 0, + 1,' + 0,J+ 0,K+ 0,L = 8 5 + 0 '+ 0, + 0,' + 1,J+ 0,K+ 0,L = 6 0 + 3 '+ 0, + 0,' + 0,J+ 1,K+ 0,L = 4 0 + 1 '+ 0, + 0,' + 0,J+ 0,K+ 1,L = 1

, , ≥ 0, A = 1, 2, … , f , ' ≥ 0 adalah bilangan bulat


(1)

Lanjutan Tabel Simpleks Contoh Kasus Program Linier Dua Kriteria dengan Penambahan Kendala Gomory 1 pada Bagian A

Iterasi 2

s = u, w{€{

cE cE 0 0 -4097,2380 0 0 0 0 29818,7699 0 0 0 0 0 0 0 0 0 0 0 2287,2380 0 1059836,7239 cE' 0 0 8902,7620 0 0 0 0 -136838,4967 0 0 0 0 0 0 0 0 0 0 0 -7712,7620 0 3936732,0427 Variabel

Basis ' J , ,' ,J ,K ,L ,M ,N ,O ,P , l , , ' , J , K , L , M , N ,G Solusi

, K 0 0 0,5000 0 0 0 0 -8,3334 0 0 0 0 0 0 0 0 1 0 0 -0,5000 0 12350,1667 , L 0 0 0,5000 0 0 0 0 -8,3334 0 0 0 0 0 0 0 0 0 1 0 -0,5000 0 10550,1667

, M 0 0 0,5000 0 0 0 0 -8,3334 0 0 0 0 0 0 0 0 0 0 1 -0,5000 0 1550,1667

1 0 0,0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 333

,G 0 0 0,0000 0 0 0 0 -0,6667 0 0 0 0 0 0 0 0 0 0 0 0 1 -0,3333

Keterangan:

g = y, , ,

'

, ,

J

, ,

K

,

'

, ,

M

, ,

N

, ,

O

, ,

P

, ,

l

, , , ,

'

, ,

J

, ,

K

, ,

L

, ,

M

, , ,

G

z

` = &,

L

, ,

N

(

[

'

= }333, 166,6667, 0, 1000,9999, 0,6667, 999,9999, 300,3333, 0, 18650,0667, 5500,3333, 20001,6665, 18650,066720001,6665,

18650,0667, 258700,3333, 2000,1667, 2500,3333, 23750,1667, 12350,166710550,1667, 1550,1667, 333, −0,3333

~

V

'

= j &0,8211, 0,7713( = 0,8211


(2)

e = j)f } −20,0200, −0,0200, −9999, −18,02000, 10, −5595, 0088, −330, 0193, −240,0195, −5569, 0088,

−15521,9890, 240,0195, −150, 0197, −2850, 0143, −1482, 0170, −1266, 0175, −186,0196, ∞, 0,4999~ = 0,4999 = ,

G

Tabel Simpleks Contoh Kasus Program Linier Dua Kriteria dengan Penambahan Kendala Gomory 1 pada Bagian A Iterasi 3

s = u, {|tt

cE cE 0 0 -4097,2380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2287,2380 44725,9186 1044929 cE' 0 0 8902,7620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7712,7620 -205247,4827 3868323 Variabel

Basis ' J , ,' ,J ,K ,L ,M ,N ,O ,P , l , , ' , J , K , L , M , N ,G Solusi

, 0 0 3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3 -74,9964 1025,9962

,' 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 -49,9975 17,3309

,J 0 0 3 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0,0001 999,9999

,K 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 -24,9988 308,6654

' 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24,9988 158

,M 0 0 0,2000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -0,2000 -4,9997 18651,7331

,N 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 -24,9988 5508,6654

,O 0 0 5 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -5 -124,9940 20043,3270

,P 0 0 0,2000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -0,2000 -4,9997 18651,7331

, l 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 -24,9988 258708,6654

, 0 0 0,5000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -0,5000 -12,4995 2004,3327


(3)

Lanjutan Tabel Simpleks Contoh Kasus Program Linier Dua Kriteria dengan Penambahan Kendala Gomory 1 pada Bagian A

Iterasi 3

s = u, {|tt

cE cE 0 0 -4097,2380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2287,2380 44725,9186 1044929 cE' 0 0 8902,7620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7712,7620 -205247,4827 3868323 Variabel

Basis ' J , ,' ,J ,K ,L ,M ,N ,O ,P , l , , ' , J , K , L , M , N ,G Solusi

, J 0 0 0,5000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -0,5000 -12,4995 23754,3327 , K 0 0 0,5000 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -0,5000 -12,4995 12354,3327

, L 0 0 0,5000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 -0,5000 -12,4995 10554,3327

, M 0 0 0,5000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -0,5000 -12,4995 1554,3327

1 0 0,0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 333

,L 0 0 0,0000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1,4999 0,4999

Keterangan:

g = &, , ,

'

, ,

J

, ,

K

,

'

, ,

M

, ,

N

, ,

O

, ,

P

, ,

l

, , , ,

'

, ,

J

, ,

K

, ,

L

, ,

M

, , ,

L

(

` = &,

N

(

[

J

= }333, 158, 0, 1025,9962, 17,3309,999,9999,308,6654, 18651,7331, 5508,6654, 20043,3270, 18651,7331,

258708,6654, 2004,3327, 2508,6654, 23754,3327, 12354,3327, 10554,3327, 1554,3327, 0, 0

~

V

J

= j & 0,7713( = 0,7713


(4)

e = j)f }−341,9987, 8,6654, ∞, −308,6654, ∞, −93258,6653, −5508,6654, −4008,6654, −93258,6653, −258708,6654

, −4008,6655, −2508,6654, −47508,6655, −24708,6655, −21108,6655, −3108,6655, 333, ∞

~

= 8,6654 = ,

'

Tabel Simpleks Contoh Kasus Program Linier Dua Kriteria dengan Penambahan Kendala Gomory 1 pada Bagian A Iterasi 4

s = u, xxt•

cE cE 0 0 -4097,2380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2287,2380 44725,9186 1044929 cE' 0 0 8902,7620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7712,7620 -205247,4827 3868323 Variabel

Basis ' J , ,' ,J ,K ,L ,M ,N ,O ,P , l , , ' , J , K , L , M , N ,G Solusi

, 0 0 3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3 -74,9964 1025,9962

, N 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 -49,9975 17,3309

,J 0 0 3 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0,0001 999,9999

,K 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 -24,9988 308,6654

' 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24,9988 158

,M 0 0 0,2000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -0,2000 -4,9997 18651,7331

,N 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 -24,9988 5508,6654

,O 0 0 5 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -5 -124,9940 20043,3270

,P 0 0 0,2000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -0,2000 -4,9997 18651,7331


(5)

Lanjutan Tabel Simpleks Contoh Kasus Program Linier Dua Kriteria dengan Penambahan Kendala Gomory 1 pada Bagian A

Iterasi 4

s = u, {|tt

cE cE 0 0 -4097,2380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2287,2380 44725,9186 1044929 cE' 0 0 8902,7620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7712,7620 -205247,4827 3868323 Variabel

Basis ' J , ,' ,J ,K ,L ,M ,N ,O ,P , l , , ' , J , K , L , M , N ,G Solusi

, 0 0 0,5000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -0,5000 -12,4995 2004,3327

, ' 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 -24,9988 2508,6654

, J 0 0 0,5000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -0,5000 -12,4995 23754,3327

, K 0 0 0,5000 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -0,5000 -12,4995 12354,3327 , L 0 0 0,5000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 -0,5000 -12,4995 10554,3327 , M 0 0 0,5000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -0,5000 -12,4995 1554,3327

1 0 0,0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 333


(6)

Keterangan:

g = &, , ,

'

, ,

J

, ,

K

,

'

, ,

M

, ,

N

, ,

O

, ,

P

, ,

l

, , , ,

'

, ,

J

, ,

K

, ,

L

, ,

M

, , ,

L

(

` = &,

N

(

[

J

= } 333, 158, 0, 1025,9962, 0,999,9999,308,6654, 18651,7331, 5508,6654, 20043,3270, 18651,7331,

258708,6654, 2004,3327, 2508,6654, 23754,3327, 12354,3327, 10554,3327, 1554,3327, 17,3309, 0 ~

karena

` = &∅(

maka permasalahan telah optimum, diperoleh

= 333

,

'

= 158

,

J

= 0

,

, = 1025,9962

,

,

'

= 0

,

,

J

= 999,9999

,

,

K

= 308,6654

,

,

L

= 0

,

,

M

= 18651,7331

,

,

N

= 5508,6654

,

,

O

= 20043,3270

,

,

P

= 18651,7331

,

,

l

= 258708,6654

,

, =

2004,3327

,

,

'

= 2508,6654

,

,

J

= 23754,3327

,

,

K

= 12354,3327

,

,

L

= 10554,3327

,

,

M

= 1554,3327

,

,

M

= 17,3309

,

,

N

=

1554,3327

,

,

G

= 0

dengan

$ = 1044929

dan

$

'

= 3868323

terlihat hasil optimum pada bagian A setelah penambahan kendala

gomory sudah diperoleh bilangan bulat, maka permasalahannya diberhentikan.