• Tidak ada hasil yang ditemukan

ANALISIS ALGORITMA BRANCH AND CUT UNTUK MENYELESAIKAN PERSOALAN PROGRAM INTEGER KUADRAT

N/A
N/A
Protected

Academic year: 2022

Membagikan "ANALISIS ALGORITMA BRANCH AND CUT UNTUK MENYELESAIKAN PERSOALAN PROGRAM INTEGER KUADRAT"

Copied!
35
0
0

Teks penuh

(1)

ANALISIS ALGORITMA BRANCH AND CUT UNTUK MENYELESAIKAN PERSOALAN PROGRAM

INTEGER KUADRAT

TESIS

Oleh PETRUS GEA 147021015/MT

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2016

(2)

ANALISIS ALGORITMA BRANCH AND CUT UNTUK MENYELESAIKAN PERSOALAN PROGRAM

INTEGER KUADRAT

T E S I S

Diajukan Sebagai Salah Satu Syarat

untuk Memperoleh Gelar Magister Sains dalam Program Studi Magister Matematika pada Fakultas Matematika dan Ilmu Pengetahuan Alam

Universitas Sumatera Utara

Oleh PETRUS GEA 147021015/MT

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2016

(3)

Judul Tesis : ANALISIS ALGORITMA BRANCH AND CUT UNTUK MENYELESAIKAN PERSOALAN PROGRAM INTEGER KUADRAT

Nama Mahasiswa : Petrus Gea Nomor Pokok : 147021015

Program Studi : Magister Matematika

Menyetujui, Komisi Pembimbing

(Prof. Dr. Herman Mawengkang) (Dr. Marwan Ramli, M.Si)

Ketua Anggota

Dekan

(Dr. Kerista Sebayang, MS)

Tanggal lulus : 18 Mei 2016

(4)

Telah diuji pada

Tanggal : 18 Mei 2016

PANITIA PENGUJI TESIS

Ketua : Prof. Dr. Herman Mawengkang

Anggota : 1. Dr. Marwan Ramli, M.Si 2. Prof. Dr. Saib Suwilo, M.Sc 3. Dr. Syahril Efendi, M.IT

(5)

PERNYATAAN

ANALISIS ALGORITMA BRANCH AND CUT UNTUK MENYELESAIKAN PERSOALAN PROGRAM INTEGER

KUADRAT

TESIS

Saya mengakui bahwa tesis ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing dituliskan sumbernya

Medan, 18 Mei 2016 Penulis,

Petrus Gea

i

(6)

ABSTRAK

PSuatu model pemrograman matematika yang fungsi objektifnya berbentuk kua- dratik dan kendala linier dengan peubah keputusan bernilai bilangan bulat yang sering dikenal sebagai quadratic integer programming. Quadratic integer pro- gramming dapat menyelesaikan banyak persoalan matematika yaitu untuk menen- tukan fungsi optimal dalam permasalahan terhadap perubahan parameter. Qua- dratik integer programming mempunyai penggunaan yang cukup luas terutama dalam bidang penjadwalan, proses kimia, bidang financial, dan rancangan jaring- an.

Algoritma branch and cut merupakan gabungan dari algoritma branch and bound dan cutting plane, Metode Branch and Cut merupakan salah satu metode yang digunakan untuk menyelesaikan masalah linear programming yang menghen- daki penyelesaian dalam bentuk bilangan bulat, tetapi biasanya digunakan pada masalah linear programming yang memiliki tujuan tunggal, algoritma ini meru- pakan metode yang dipakai dalam menyelesaikan persoalan integer programming, dimana konsep penyelesaiannya mengarah pada suatu titik penyelesaian layak bulat. Dalam thesis ini akan ditunjukkan bagaimana persoalan quadratic integer programming dapat diselesaikan dengan algoritma branch and cut.

Kata kunci: : Pemrograman kuadrat, Branch and bound, Cutting planes

(7)

ABSTRACT

A mathematical programming model quadratic objective function and linear con- straints with integer valued decision variables are often known as quadratic inte- ger programming. Quadratic integer programming can solve many mathematical problem is to determine the optimal function of the problem to change the param- eters. Quadratic integer programming has fairly wide use, especially in the areas of scheduling, chemical process, in financial and network design.

The algorithm branch and cut is a combination of algorithm branch and bound and cutting plane, Methods Branch and Cut is one method used to solve linear programming problem that requires settlement in the form of an integer, but is usually used in a linear programming problem that has the sole purpose of this algorithm is a method used in solving the problem of integer programming, where the concept of the solution leads to a completion point of the decent round. In this thesis will be shown how integer quadratic programming problems can be solved with the branch and cut algorithm.

Keywords: Quadratik programming, Branch and bound, Cutting plane,

iii

(8)

KATA PENGANTAR

Puji Syukur kehadirat Tuhan yang maha kuasa yang selalu memberikan rahmat dan berkatNya sehingga penulis dapat menyelesaikan tesis yang berjudul ANALISIS ALGORITMA BRANCH AND CUT UNTUK MENYELE- SAIKAN PERSOALAN PROGRAM KUADRATIK INTEGER. Tesis ini merupakan salah satu syarat untuk menyelesaikan studi pada Program Studi Magister Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam (FMI- PA) Universitas Sumatera Utara. Pada kesempatan ini, penulis ingin menyam- paikan terimakasih kepada :

Prof. Dr. Runtung, SH, M.Hum, selaku Rektor Universitas Sumatera Utara.

Dr. Kerista Sebayang, MS selaku Dekan Fakultas Matematika dan Ilmu Penge- tahuan Alam (FMIPA) Universitas Sumatera Utara.

Prof. Dr. Herman Mawengkang selaku Ketua Program Studi Magister Mate- matika FMIPA USU dan selaku Pembimbing I yang telah banyak memberikan bimbingan dan arahan serta motivasi kepada penulis dalam penulisan tesis ini.

Prof. Dr. Saib Suwilo, M.Sc selaku Sekretaris Program Studi Magister Mate- matika FMIPA USU dan selaku Pembanding I yang telah banyak memberikan masukan dan arahan serta motivasi kepada penulis dalam penulisan tesis ini.

Dr. Marwan Ramli, M.Si selaku Pembimbing II yang telah banyak memberikan bimbingan, arahan dan motivasi kepada penulis dalam penulisan tesis ini.

Dr. Syahril Efendi, M.IT selaku Pembanding II yang telah banyak memberikan masukan dan arahan serta motivasi kepada penulis dalam penulisan tesis ini.

Seluruh Staf Pengajar di Program Studi Magister Matematika FMIPA USU yang telah banyak memberikan ilmu pengetahuan kepada penulis selama masa perku- liahan.

Kak Misiani, S.Si selaku Staf Administrasi Program Studi Magister Matematika FMIPA USU yang telah banyak memberikan pelayanan yang baik kepada penulis selama mengikuti perkuliahan.

(9)

Ibunda Atiria Nazara (Alm) dan Ayahanda Sofuaro Gea, sosok orang tua yang mencurahkan seluruh kasih sayang dan dukungan kepada penulis, yang telah mem- beri tauladan, membimbing, mengajarkan kesabaran, kerendahan hati dan selalu bersyukur, serta senantiasa memanjatkan doa yang tulus dan ikhlas bagi keber- hasilan anak-anaknya.

Kakakku A/I. Niska Gea, A/I Joy Gea, KLena Gea, S.Th, KMary Gea, A/I Janis Hulu, A/I Nico Gea. Keluarga Besar Orangtua saya A/I Sati Hulu beserta adek adek di Botombawo terimakasih atas doa dan motivasinya. Teristimewa buat istriku tercinta Satimurni Karisnila Hulu, S.Pd yang memberikan support melalui doa dan motivasi, dukungan selama menjalani studi kepada penulis sam- pai dapat menyelesaikan tesis ini.

Seluruh rekan-rekan Mahasiswa Program Studi Magister Matematika FMI- PA USU tahun 2014 Ganjil yang telah memberikan bantuan moril dan dorongan kepada penulis dalam penulisan tesis ini.

Semua pihak yang telah banyak membantu, baik langsung maupun tidak langsung yang tidak dapat penulis sebutkan namanya satu persatu, hanya Tuhan yang maha kuasa yang mampu memberikan balasan terbaik. Semoga tesis ini dapat memberi sumbangan yang berharga bagi perkembangan dunia ilmu dan bermanfaat bagi orang banyak. Semoga Tuhan yang maha kuasa senantiasa mem- beri rahmat dan berkatNya kepada kita semua. Amin.

Penulis menyadari bahwa tesis ini masih jauh dari sempurna, untuk itu penulis mengharapkan kritik saran untuk penyempurnaan tesis ini. Semoga tesis ini dapat bermanfaat bagi pembaca dan pihak-pihak lain yang memerlukannya.

Terima kasih.

Medan, 18 Mei 2016 Penulis,

Petrus Gea

v

(10)

RIWAYAT HIDUP

Petrus Gea dilahirkan di Hilidundra pada tanggal 19 Agustus 1985 dari pasangan Ibu Atiria Nazara (Alm) dan Bapak Sofuaro Gea. Penulis menamatkan pendidikan Sekolah Dasar di SD Inpres No. 071042 Tuhemberua pada tahun 1998, Sekolah Menengah Pertama (SMP) Negeri I Tuhemberua lulus pada tahun 2001, Sekolah Menengah Atas (SMA) Negeri I Tuhemberua lulus pada tahun 2004.

Kemudian, pada tahun yang sama memasuki Perguruan Tinggi Universitas Negeri Medan Fakultas MIPA Jurusan Matematika pada Strata Satu (S-1) dan lulus pada Maret 2009. Kemudian, pada tahun 2014, penulis melanjutkan pendidikan pada Program Studi Magister (S-2) Matematika Universitas Sumatera Utara dan lulus pada 18 Mei 2016.

(11)

DAFTAR ISI

Halaman

PERNYATAAN i

ABSTRAK ii

ABSTRACT iii

KATA PENGANTAR iv

RIWAYAT HIDUP vi

DAFTAR ISI vii

DAFTAR TABEL ix

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Perumusan Masalah 3

1.3 Tujuan Penelitian 3

1.4 Manfaat penelitian 3

1.5 Metodologi Penelitian 3

BAB 2 BRANCH AND CUT 5

2.1 Branch And Bound 5

2.2 Cutting Plane 8

BAB 3 QUADRAT INTEGER PROGRAMMING 10

3.1 Bentuk Umum Quadratik Programming 10

vii

(12)

3.2 Langkahlangkah Algoritma Branch And Cut Dalam Quadrat

Integer Programming 13

BAB 4 HASIL DAN PEMBAHASAN 16

4.1 Analisis Algoritma Branch and Cut dalam penyelesaian masa-

lah Quadrat Integer programming 16

BAB 5 KESIMPULAN 21

DAFTAR PUSTAKA 22

(13)

DAFTAR TABEL

Nomor Judul Halaman

1.1 Kelebihan dan kekurangan algoritma branch and cut 2

2.1 Optimum masalah program linier 8

2.2 Setelah penambahan pemotongan fraksional 9

ix

(14)

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Beragam masalah dalam bidang ekonomi, industry, teknik, dan militer yang dapat dinyatakan sebagai model matematika. Masalahmasalah ini antara lain dapat diformulasikan sebagai model matematika dimana peubah keputusan me- ngambil nilai bilangan bulat. Quadrat Integer Programming (QIP) merupakan bagian dari Pemrograman Linier (LP). Masalah pemrograman kuadratik sangat penting dalam berbagai bidang praktis yang relevan, seperti: seleksi portofolio.

QIP mencakup masalah nonlinear, termasuk aplikasi dalam penjadwalan, peren- canaan dan perhitungan serta dapat menyelesaikan persoalan optimasi kombi- natorial. Beberapa masalah yang secara alami yang dapat dinyatakan sebagai masalah kuadrat misalnya pada rekayasa mesin, teori permainan, desain dan con- trol, masalah yang melibatkan skala ekonomi, alokasi fasilitas dan masalah lokasi, dan masalah-masalah pada mikro ekonomi lainnya (Cruz et al., 2009), serta secara matematika model umum QIP dapat ditulis sebagai:

min f (x) − 1

2xTQx+ cTx

dengan kendala Ax = b, x ∈ Z+n dimana c ∈ Zn, Q ∈ Zn×n merupakan matriks simetri semidefinit positif dan A ∈ Zn×n adalah matriks dengan rank penuh.

Pandang

P = {x ∈ Rn|Ax = b, x ≥ 0}

min ∇f x0T x (Atkinson dan Vaidya, 1995)

Kendala Ax= b, x ∈ Z+n

dimana f (x0) menunjukkan gradien f di x0 yang memiliki set diskrit P = {x ∈ Rn|Ax = b, x ≥ 0}

Metode Branch And Cut (BAC) untuk permasalahan LP merupakan ga-

(15)

2

branch and cut dapat digunakan untuk menyelesaikan persoalan LP dengan cara melakukan relaksasi terhadap persoalan yang berhubungan dengan LP sampai diperoleh penyelesaian persoalan yang optimal serta solusi yang layak. Jika so- lusi optimal dari LP terpenuhi dari QIP maka penyelesaian QIP terselesaikan dengan baik. Penyelesaian LP dapat diselesaikan dengan menggunakan penam- bahan kolom sebagai kendala untuk memperoleh solusi optimal sebagai solusi yang layak (Goffin dan Vial, 1990).

Algoritma BAC merupakan algoritma antara branch and bound dan cutting plane, algoritma Branch and Bound adalah sebuah teknik penyelesaian langkah- langkah untuk semua kemungkinan solusi tanpa mempertimbangkannya satu demi satu sedangkan algoritma Cutting Plane adalah algoritma yang dikembangkan dari masalah program integer linier yang berawal optimal.

Berikut adalah sedikit gambaran tentang kelebihan dan kekurangan bebe- rapa algoritma yang digunakan untuk menyelesaikan permasalahan QIP:

Tabel 1.1 Kelebihan dan kekurangan algoritma branch and cut

Algoritma Kelebihan Kekurangan

Branch and Bound Solusi yang dihasilkan merupakan solusi optimal

Memakan waktu lama un- tuk proses pengerjaanya.

Tingkat kesulitan cukup tinggi.

Memiliki kompleksitas wak- tu (n − 1)!

Cutting Plane Solusi yang dihasilkan merupakan solusi optimal

Proses pengerjaanya sangat lama.

Harus menguasai salah satu pemrograman computer.

Metode branch and cut menggabungkan keuntungan dari skema branch and bound dan skema gomory cutting plane. Dalam penyelesaian masalah dengan metode branch and cut akan lebih cepat dibandingkan dengan branch and bound saja. Gomory cutting plane cepat, tetapi tidak dapat diandalkan. Branch and bound dapat diandalkan, tetapi lambat. Akibatnya kedua metode dapat diga- bung menjadi satu yaitu dinamakan branch and cut (Albert, 1999). Pertama

(16)

3

ditambahkan beberapa cut dari menggunakan skema gomory kemudian mengap- likasikan sisanya menggunakan branch and bound, algoritma tersebut tidak hanya dapat diandalkan hasilnya, tetapi juga lebih cepat.

Dengan demikian dalam penelitian ini akan digunakan algoritma branch and cut dalam menyelesaikan persoalan quadrat integer programming.

1.2 Perumusan Masalah

Perumusan masalah dalam penelitian ini adalah bagaimana mencari atau menyelesaikan persoalan quadratic integer programming dengan menggunakan algoritma branch and cut

1.3 Tujuan Penelitian

Tujuan dari penelitian ini adalah untuk menganalisis Algoritma Branch and Cut dalam menyelesaikan permasalahan Quadrat Integer Programming.

1.4 Manfaat penelitian

Penelitian ini diharapkan dapat memberikan kontribusi teoritis khususnya dalam bidang operasi riset serta bermanfaat untuk memperkaya literature algo- ritma branch and cut untuk menyelesaikan persoalan QIP.

1.5 Metodologi Penelitian

Penelitian ini menganalisis penyelesaian masalah Quadratik Integer Pro- gramming dengan menggunakan bantuan algoritma branch and cut.

Dengan demikian, prosedur yang dilakukan pada penelitian ini dapat ditulis:

1. Mengumpulkan segala informasi dari berbagai referensi literatur yang ada, seperti dari buku, artikel, paper, jurnal mengenai masalah quadratic integer programming dengan penyelesaian algoritma branch and cut;

(17)

4

2. Memahami dan menganalisis penelitian-penelitian yang pernah dilakukan oleh peneliti lain terdahulu yang berhubungan dengan penelitian yang di- lakukan;

3. Mempelajari quadrat integer programming;

4. Mempelajari algoritma branch and cut;

5. Menganalis algoritma branch and cut dalam penyelesaian masalah quadrat integer programming.

(18)

BAB 2

BRANCH AND CUT

2.1 Branch And Bound

Metode Branch and Bound merupakan kerangka umum untuk memecahkan integer dan masalah kombinatorial, branch and bound memberikan pendekatan untuk masalah IP dengan memeriksa solusi x untuk IP. Relaksasi kemudian mem- bagi masalah menjadi tiga bagian inilah yang di sebut dengan branch (perca- bangan) dan perlu diingat bahwa solusi awal menjadi batas atas (upper bound) dalam (Thoai, 1998). Berikut adalah ketiga tahapan branch and bound:

1. Untuk xj ≥ x0j+ 1 2. Untuk xj = x0j

3. Untuk xj ≤ x0j+ 1, jika xj ≥ 1

Algoritma branch and bound secara kontinu memecahkan dan menghasilkan submasalah baru dengan menambahkan pohon untuk mencari node dari pohon sesuai submasalah IP. Jika solusi salah satu submasalah IP yang muncul adalah bilangan bulat maka diperoleh titik yang memecahkan bagian yang sesuai dari program integer, seandainya salah satu program linear adalah tidak layak maka bagian yang sesuai dari program integer juga tidak layak. Nilai dari submasalah IP memberikan batas bawah pada nilai nol.

Konsep dasar metode branch and bound adalah pengamatan terhadap tiap- tiap nilai xj, diberikan [xj] ≤ xj ≤ [xj] + 1 dimana [xj] adalah bilangan bulat terdekat yang lebih kecil dari xj. Sebagai contoh, misalkan dicari nilai xj yang bulat dan dengan metode simpleks diperoleh nilai xj = 4, 3. Kemudian dicari solusi bilangan bulat, sehingga dapat dibuat pencabangan masalah menjadi dua masalah terpisah dan himpunan yang lengkap, yang memenuhi xj ≤ 5, 0 dan 4, 0 ≤ xj.

(19)

6

Dilakukan pengamatan, dibuat masalah awal menjadi dua masalah yang baru, inilah yang dinamakan Branch (pencabangan). Perlu diingat bahwa solusi awal menjadi batas atas (Upper bound) pada solusi optimal. Penambahan per- tidaksamaan sebagai pencabangan masalah akan mengakibatkan berkurangnya nilai dari solusi optimal awal. Lebih lanjut proses ini akan membentuk masa- lah baru dalam bentuk pohon untuk mencari alternatif-alternatif yangn mungkin sebagai solusi optimal yang merupakan integer.

Sebagai salah satu hasil pencabangan variabel yang belum bulat pada setiap cabang, satu dari dua kejadian akan berhasil. Yang pertama, solusi yang mungkin diperoleh tidak memenuhi syarat integer dari variabel yang dicabangkan, dan memperoleh nilai fungsi objektif yang kurang sesuai dibandingkan dengan pen- cabangan lain yang semua solusinya sudah integer, dalam kasus ini pencabangan dilanjutkan. Yang kedua, mungkin diperoleh solusi lain yang sudah memenuhi syarat integer, dalam kasus ini ditinggalkan pencabangan.

Setiap solusi layak yang diperoleh dapat mewakili batas bawah dari solusi optimal atau merupakan solusi optimal itu sendiri. Hal ini akan dapat dilihat pada proses pencabangan dan merupakan batas solusi optimal. Solusi layak yang me- menuhi batas mungkin diperoleh, satu hal yang sudah pasti bahwa solusi optimal akan diperoleh apabila semua proses pencabangan terlaksana. Apabila tidak dite- mukan solusi layak maka disimpulkan bahwa pencabangan tersebut berada diluar daerah layak. Terdapat dua tahap yang digunakan dalam algoritma pencabangan dan pembatasan (Wolsey, 1998) yaitu:

1. Pencabangan, yaitu dengan mempartisi masalah tersebut menjadi bagian dari subsub masalah dengan cara menambahkan kendala yang merupakan syarat perlu untuk mencari solusi integer fesibel tanpa mengubah himpunan solusi bilangan bulat semula.

2. Pembatasan, yaitu nilai fungsi obyektif dari suatu sub masalah yang mem- punyai solusi integer dipakai sebagai batas nilai fungsi obyektif dari sub ma- salah lainnya. Jadi, jika operasi pencabangan dan pembatasan dilakukan secara teliti, maka banyak submasalah yang mengandung satu atau lebih titik integer fesibel dapat dibuang secara otomatis.

(20)

7

Langkah-langkah dalam menggunakan metode branch and bound:

Langkah awal : tetapkan Z = −∞, gunakan langkah pembatasan, langkah penghentian, dan uji keoptimalan seperti rincian berikut ini. Jika masalah terse- but tidak terhenti, maka masalah dapat digolongkan sebagai suatu submasalah sisa untuk melakukan iterasi penuh pertama berikut ini :

i Pencabangan, diantara submasalah sisa (yang belum terhenti) pilih satu submasalah yang dibuat paling akhir, (jika lebih dari satu pilihan sub- masalah dengan batas lebih besar) diantara peubah-peubah yang dibatasi bulat yang mempunyai nilai bukan integer pada penyelesaian optimal untuk program linier relaksasi suatu submasalah, pilih satu peubah pertama da- lam urutan asli menjadi peubah pencabangan. Misalnya, xj adalah peubah ini,dan xj adalah nilai xj pada penyelesaian ini. Cabangkan dari simpul submasalah ini untuk membuat dua submasalah baru dengan menambahkan kendala xj ≤ [xj] dan xj ≤

xj + 1

ii. Pembatasan, untuk setiap submasalah baru dicari batas submasalahnya de- ngan menggunakan metode simpleks (atau metode simpleksa dual bila diper- lukan pengoptimisasian kembali) pada program linier relaksasi dan dengan menggunakan nilai Z untuk penyelesaian optimal yang dihasilkan.

iii. Penghentian, untuk setiap submasalah baru digunakan ketiga uji penghen- tian yang diberikan dibawah ini, dan buang submasalah yang dihentikan dengan suatu uji:

(a) Uji 1, batasnya = Z dengan Z adalah nilai Z untuk incumbent saat ini.

(b) Uji 2, program linier relaksasinya tidak mempunyai penyelesaian layak.

(c) Uji 3, penyelesaian optimal untuk LP relaksasinya mempunyai nilai integer untuk peubah-peubah yang dibatasi bulat. Jika penyelesaian ini menjadi incumbentnya makapenyelesaian ini menjadi incumbent baru dan uji 1 digunakan kembali untuk semua submasalah yang belum terselesaikan dengan Z baru yang lebih besar.

(21)

8

2.2 Cutting Plane

Metode cutting plane merupakan metode yang digunakan untuk menye- lesaikan 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 be- berapa ruang penyelesaian yang tidak berisi titik bilangan bulat yang layak, tetapi tidak pernah menyingkirkan satupun titik bilangan bulat yang layak.

Metode cutting plane digunakan untuk permasalahan yang variable kepu- tusannya 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 (Wolsey, 1998) diringkas seperti berikut:

(a) Selesaikan masalah program integer dengan menggunakan metode Sim- pleks. Jika masalah sederhana, gomory dapat diselesaikan dengan pen- dekatan grafik, sehingga pendekatan gomory kurang efisien.

(b) Periksa solusi optimum. Jika semua variabel basis memiliki nilai in- teger, solusi optimum integer telah diperoleh dan proses solusi telah berakhir. Jika satu atau lebih variabel basis masih memiliki nilai pe- cah, teruskan ke tahap 3.

(c) Buatlah suatu batasan gomory dan cari solusi optimum melalui prose- dur dual simpleks.

Tabel 2.1 Optimum masalah program linier

Basis x1 · · · xi · · · xm w1 · · · wj · · · wn Hasil Z 0 · · · 0 · · · 0 c1 · · · cj · · · cn β0

x1 1 · · · 0 · · · 0 λ11 · · · λj1 · · · λn1 β1

... ... ... ... ... ... ... ... x1 0 · · · 1 · · · 0 λ1i · · · λji · · · λn1 βi

... ... ... ... ... ... ... ... x1 0 · · · 0 · · · 1 λ1m · · · λjm · · · λnm βm

(22)

9

dimana:

Variabel xi adalah variable basis, i = 1, 2, · · · , m.

Variable wj adalah variable non basis, j = 1, 2, · · · , n.

Tentuk xi = βi−Pn

j=1λjiwj, βi tidak integer (baris sumber) xi

Batasannya dapat ditulis dalam bentuk:

Tabel 2.2 Setelah penambahan pemotongan fraksional

Basis x1 · · · xi · · · xm w1 · · · wj · · · wn Si Hasil Z 0 · · · 0 · · · 0 c1 · · · cj · · · cn 0 β0

x1 1 · · · 0 · · · 0 λ11 · · · λj1 · · · λn1 0 β1

... ... ... ... ... ... ... ...

x1 0 · · · 1 · · · 0 λ1i · · · λji · · · λn1 0 βi

... ... ... ... ... ... ... ...

x1 0 · · · 0 · · · 1 λ1m · · · λjm · · · λnm 0 βm

Si 0 0 0 fi1 fij fim 1 fi

Di mana Si adalah variabel slack nonnegatif yang berdasarkan definisinya haruslah integer. Persamaan batasan ini mendefinisikan pemotong fraksional.

Dari tabel 2.2, wj = 0 dan Si = fi tidak layak. Ini berarti bahwa batasan baru tersebut tidak dipenuhi oleh solusi yang diberikan. Metode dual simpleks dapat dipergunakan untuk mengatasi ketidaklayakan ini yang setara dengan memotong bidang solusi ke arah solusi integer optimal.

Jika solusi baru (setelah menerapkan metode dual simpleks) adalah integer, proses berakhir. Jika tidak, sebuah gomory baru ditambahkan dari tabel yang dihasilkan dan metode dual simpleks digunakan sekali lagi untuk mengatasi keti- daklayakan. Prosedur ini dilakukan sampai solusi integer dicapai. Tetapi, jika di salah satu iterasi metode dual simpleks menunjukkan bahwa tidak ada solusi layak, berarti masalah itu tidak memiliki solusi integer yang layak.

(23)

BAB 3

QUADRAT INTEGER PROGRAMMING

3.1 Bentuk Umum Quadratik Programming

Quadratic integer programming dapat menyelesaikan banyak persoalan ma- tematika yaitu untuk menentukan fungsi optimal dalam permasalahan terhadap perubahan parameter.

Pemrograman Quadratik merupakan optimasi linier dengan kendala dan fungsi objektif kuadratik. (Bard dan Jensen, 2003)

Bentuk umum dari Quadrat Integer Programming adalah sebagai berikut:

min f (x) − 1

2xTQx+ cTx (3.1)

(Pardalos dan Rodgers, 1990)

dengan kendala Ax = b, x ∈ Z+n dimana c ∈ Zn, Q ∈ Zn×n merupakan matriks simetri semidefinit positif dan A ∈ Zn×n adalah matriks dengan rank penuh.

dengan memberikan

P = {x ∈ Rn|Ax = b, x ≥ 0}

Kendala Ax= b, x ∈ Z+n

dimana f (x0) menunjukkan gradien f di x0 yang memiliki set diskrit P = {x ∈ Rn|Ax = b, x ≥ 0}

Polyhedron dari Linear Programming (LP) relaksasi

min ∇f (x0)Tx (3.2)

dengan kendala Ax = b, x ∈ Z+n

dimana f (x0) menunjukkan gradien f di x0 yang memiliki set diskrit

PI = {x ∈ Zn|Ax= b, x ≥ 0}

10

(24)

11

Definisi 1

(i). Sebuah ketidaksetaraan gTx ≥= g0 valid inequality untuk (3.1) jika gTx = g0 untuk keseluruhan x ∈ PI.

(ii). Sebuah valid inequality gTx ≥= g0 untuk (3.1) adalah cut untuk (3.1) jika P ∩ {x ∈ Rn|gTx ≥ g0} ⊂ P .

Dengan menggunakan algoritma branch and cut bekerja dengan merelaksasi pem- rograman linier (3.2) dari masalah integer programming (3.1) (di Q = 0), peme- cahan relaksasi kemudian jika perlu penyulingan relaksasi sehingga solusi untuk relaksasi semakin dekat dengan solusi dari masalah integer programming. Sehing- ga solusi diatas merupakan perluasan dari metode branch and cut sebagai solusi dari masalah Quadratik Integer Programming (pada Q 6= 0).

Untuk masalah (3.2), diberikan bentuk dual:

min bTw dengan kendalaATw + r = ∇f (x0, r ≥ 0 (3.3)

merupakan hasil utama dalam pemrograman linier.

Teorema 2 Salah satu alternatif untuk masalah (3.2) dan (3.3) yang digunakan:

(i.) Kedua masalah yang layak dan terdapat x ∈ P dan (w, r) ∈ D dengan

∇f (x0)Tx = bTy.

(ii.) (3.2) adalah tidak layak dan (3.3) adalah terbatas.

(iii). (3.3) adalah tidak layak dan (3.2) adalah terbatas.

(iv). Keduanya tidak layak.

Salah satu cara penulisan dalam kondisi optimal pada terema 2, adalah dengan menggunakan kondisi slack komplementer yaitu :

rTx = 0 (3.4)

(25)

12

Kondisi tersebut merupakan karakter kombinasi yang kuat dari masalah pemrograman linier yang dilakukan oleh algoritma pivot, himpunan solusi optimal dapat dibentuk sebagai himpunan solusi dari kedua system sebagai berikut:

Ax = b ATw + r = ∇f (x0) x, r ≥ 0 (3.5)

Dengan kondisi kelambanan komplementer (3.4).

Mempertimbangkan model kenaikan tujuan (3.2):

min x0 dengan kendala ¯A¯x= ¯b, ¯x ≥ 0 (3.6)

dimana, x0 menunjukkan kenaikan tujuan (3.2) dan

A =¯



1 ∇f x0T

0 A



, b =

 f x0 b



, x =

 x0

x



Notasi akan digantikan oleh ¯x tanpa diberikan tindakan apapun begitu ju- ga dengan notasi ¯A dan ¯b adalah sama. Untuk sepasang vector (x, r) dikatakan mempunyai kelayakan jika terdapat sebuah vector w ∈ Rm memenuhi (3.5). Ana- log, dengan hal itu di sebut optimal jika layak dan memenuhi kondisi kelambanan komplementer (3.4). Dengan nilai:

δ = rTx

Yang disebut kesenjangan dualitas. Dan nilai tersebut selalu lebih besar dari nol untuk sepasang nilai solusi yang layak (x, r) dan selalu diharapkan optimal.

Ide dari algoritma segi setara yaitu untuk membuat hasil menjadi nol. Karena konstriksi variabel layak primal, menemukan selisih tujuan x0yang sama sehingga memiliki kepuasan kesenjangan pada setiap langkah pivot, persamaannya yaitu:

bi− ai0x0 ≥ 0 i = 0, 1, . . . , m (3.7)

Himpunan solusi dari ketidaksetaraan internal ini jika tidak kosong. Jika ai0 > 0 memenuhi untuk indeks i, komponen terkait akan tetap layak untuk nilai δi = abi

i0.

(26)

13

Definisi 3 Nilai δi = abi

i0 disebut batas atas dari solusi pada saat x untuk indeks i jika ai0 adalah besar dari nol. Secara khusus, δi = +∞ disebut batas atas dari solusi pada saat x diberikan ai0= 0 dan bi > 0, untuk δi = −∞ disebut batas atas dari solusi pada saat x diberikan ai0= 0 dan bi< 0. Kadang-kadang disebut batas atas terikat sederhana.

Jika δi adalah batas atas dengan aij ≥ 0, j = 0, 1, . . . , n, disebut batas atas terikat kuat, jika tidak maka disebut batas atas terikat lemah.

Definisi 4 Berikut kendala baris

Xn j=1

aljxj = bl

(Fischetti dan Vigo, 1997)

dikatakan kendala ganda layak, jika alj ≥ 0 memenuhi untuk j = 0, 1, . . . , n

Sebuah batas atas mencerminkan kesenjangan antara dualitas masalah primal (3.2) dan masalah ganda (3.3) jika koefisien selisih x0 tujuannya tidak sama de- ngan nol pada baris yang sesuai untuk masalah (3.6). Bahkan, kendala ganda layak menyiratkan bahwa ada solusi ganda layak

r =

al1

al0

,al2

al0

, . . . ,aln

al0

T

untuk (3.3) hanya jika al0 > 0.

3.2 Langkahlangkah Algoritma Branch And Cut Dalam Quadrat Inte- ger Programming

Langkahlangkah algoritma branch and cut dalam penyelesaian masalah quadrat integer programming adalah sebagai berikut :

1. Initialization (inisialisasi) : menunjukkan awal masalah IP oleh ILP0 dan mengatur node aktif menjadi L = {ILP0}. Mengatur batas atas menjadi

(27)

14

2. Termination (pemutusan) : jika L = ∅, maka solusi x yang dapat meng- hasilkan nilai tujuan ¯z harus optimal. Jika tidak ada x yang di hasilkan (¯z = +∞) maka ILP adalah tidak layak.

3. Problem selection (pemilihan masalah) : pilih dan hapus masalah dari ILPl dari L.

4. Relaxation (relaksasi) : selesaikan relaksasi LP dari ILPl. Jika relaksasi tidak layak dan memperoleh zl = +∞ maka dilanjutkan ke langkah 6. Mi- salkan zl merupakan nilai obyektif optimal dari relaksasi dan terbatas serta memberikan xlR sebagai solusi optimal, jika tidak diatur oleh zl = −∞.

5. Add cutting planes (menambahkan pemotongan) : jika diperlukan, mencari dan memotong solusi dari xlR , jika ada yang ditemukan menambahkannya ke relaksasi dan kembali ke langkah 4.

6. Fathoming and Pruning (memahami dan pemangkasan) : a). Jika zl≥ ¯z maka dilanjutkan ke langkah 2

b). Jika zl < ¯z dan xlR adalah bagian layak integral, diberikan ¯z = zl, menghapus semua masalah dari L dengan zl = ¯z, dan kembali ke langkah 2.

7. Partitioning (partisi) : diberikan

Slj j=k

j=1 menjadi sebuah partisi dari ken- dala yang mengatur Slterhadap masalah ILPl. Memberikan masalah

ILPlj j=k

j=1

ke L, dimana ILPlj adalah ILPl dengan wilayah layak terbatas di Slj dan zlj untuk j = 1, . . . , k adalah diatur ke dalam nilai zl untuk masalah l.

Kembali ke langkah 2.

Selanjutnya, zlbatas bawah pada nilai optimal saat ini dan subproblem yang dipertimbangkan. Nilai dari relaksasi LP dari subproblem yang dapat digunakan untuk memperbarui zl. Dalam berbagai situasi, jumlah yang sangat besar mele- wati cutting planes dapat ditemukan pada langkah 5, dalam hal ini merupakan untuk umum bagaimana memisahkan cutting planes dan menambahkan dengan sebuah subset.

(28)

15

Submasalah tersebut di bentuk pada langkah 7 dan merupakan anak dari submasalah, dimana sebelumnya masalah ILP1 merupakan akar masalah sub- problem. Biasanya, bentuk partisi mengambil variabel disjungsi : xi ≤ a dengan xi ≥ a + 1 untuk beberapa variabel xi dan integer a, seperti dalam contoh.

Relaksasi dapat diselesaikan dengan menggunakan metode apapun untuk masalah LP. Biasanya, awal relaksasi diselesaikan dengan menggunakan meto- de simpleks, dan selanjutnya diselesaikan dengan metode ganda simpleks, karena solusi ganda untuk relaksasi dari akar masalah subproblem masih layak direlak- sasi dari subproblem anak. Selanjutnya, pada saat cutting planes ditambahkan pada langkah 5, dengan iterasi ganda layak sehingga sekali lagi relaksasi dapat diselesaikan dengan menggunakan metode ganda simpleks. Hal ini juga memung- kinkan menggunakan metode titik interior dan merupakan pilihan yang baik jika LP dalam relaksasi besar.

(29)

BAB 4

HASIL DAN PEMBAHASAN

4.1 Analisis Algoritma Branch and Cut dalam penyelesaian masalah Quadrat Integer programming

Berikut ini merupakan penyelesaian quadrat integer programming dengan algoritma branch and cut yang diberikan dalam sebuah contoh soal. (Lee et al., 2005)

Diberikan:

H = 6 −2 1

−2 2 −1

1 −1 5



, g = −20

−30

−10



dan

4x1+ 2x2+ x3 ≤ 23, x1, x2, x3 ∈ Z+

Dimulai dengan solusi awal primal yang layak dan integral x0 = (0, 0, 0) dengan arah linier

∇f (x0) = Qx0+ c = (−20, −30, −10)T Akan diperoleh relaksasi linier programming

min x0 = −20x1− 30x2n − 10x3

kendala 4x1+ 2x2+ x3≤ 23, x1, x2, x3 ≥ 0

Kemudian akan dilakukan pemecahan dengan langkah poros pertama, memil- ih salah satu dari lima ukuran langkah yang ada yaitu:

20, 40, 60, 80atau100

Sehingga solusi baru yang diperoleh bernilai integer. Diperoleh bahwa f (x0) =

−33 minimum di x0 = (3, 0, 0)T dengan membandingkan dari lima nilai tujuan yang berbeda dari masalah (3.1). Sehingga, persamaan atau bentuk baru yang diperoleh adalah :

x1− 1

20x0+3

2x2+ 1 2 = 3 16

(30)

17

x4+ 1

5x0− 4x2− x3 = 11

Selanjutnya, di berikan dua pilihan: yang pertama adalah suatu cara untuk menghasilkan relaksasi linier programming (3.2) terhadap solusi baru (3, 0, 0)T dan kedua adalah cara untuk terus memecahkan relaksasi linier programming asal. Di sini kita akan memilih dengan menggunakan cara yang terakhir dan dari baris x4 akan menghasilkan cut:

−x0+ x2 + s1 = 3

Dimana pilihan dari µ = a1

02 = 234 memberikan hasil bahwa koefisien x2ada- lah positif. Kemudian dilakukan cut dan ditambahkan ke tabel simpleks dengan langkah poros dua, sehingga menghasilkan bentuk berikut:

x4 + 1

15x0+ 8

3x1 +1

3x3 = 1 x2− 1

30x0+ 2

3x1+ 1

3x3= 11

Dengan memilih, x0 = (0, 10, 0)T dan nilai maksimum tujuan f (x0) = −209, salah satu dari sepuluh solusi layak dan integral keseluruhan komponen yang diharapkan nol untuk x2 yang dimulai dari 2 ke 11. Perhatikan bahwa baris s1 dihapus karena variabel s1 menjadi variabel dasar pada langkah berikutnya.

Selanjutnya, baris x4 akan dilakukan cut dan diperoleh:

−29

30x0+1

3x1−1

3x3+ s2 = (µ = 3 2)

Berikutnya akan ditambahkan ke tabel simpleks dan berputar tiga langkah, sehingga di hasilkan:

x2+ 1

10x0− 2x1 − x4= 10 x3+1

5x0+ 8x1+ 3x4= 3

Dan diperoleh nilai x0 yang baru adalah (0, 10, 3)T dengan keuntungan f (x0) menjadi −4752 . Perhatikan bahwa baris s2 juga dihapus karena variabel s2 menjadi variabel dasar pada langkah kedua.

(31)

18

Selanjutnya, akan diulangi untuk membuat relaksasi linier programming (3.2) pada titik x0. Kemudian, membuat segi arus kesetaraan yang baru di x0 ditempat segi kesetaraan sebelumnya yaitu pada titik awal. Untuk poros di x0, di pilih baris dengan konstanta nol di sisi kanan. Jika semua konstanta pada setiap sisi yang tidak sama dengan nol akan dilakukan cut dari baris x3 seperti berikut:

−4

5x0+ 7x1+ 2x4+ s4= 2(µ = −1 8)

Karena, sisi kanan konstan 2 masih tidak sama dengan nol sehingga dari pemotongan ini akan diperoleh cut berikutnya yaitu :

−1

5x0+ x1+ s5 = 0(µ = 5 4)

Hal ini juga dipotong pada tahap kedua dari baris x8 dan menambahkannya ke tabel simpleks dalam poros x0 pada tempat s5 (baris x0 dihapus), sehingga diperoleh bentuk berikut:

x2− 5

2x1 − x4− 1

2s5 = 10 x3+ 9x1+ 3x4+ s5 = 3

Pada titik x0 dengan arah linier:

∇f (x0) = Qx0 + c = (−37, −11, −5)T

Yang dapat menghasilkan segi setara:

x0− 49

2 x1+ 2x4− 3 2s5 = 0

Dengan menambahkannya ke tabel simpleks dan membuat s5 menjadi tem- pat dasar di x0, setelah menghapus baris s5 , akan diperoleh:

x2− 1

3x0+ 17

3 x1− 5

3x4= 10 x3+2

3x0− 22

3 x1+ 13

3 x4 = 3

(32)

19

Dari baris x3, akan diperoleh sebuah cut:

−1

3x0 −11

3x1+5

3x4+ s6 = 1(µ = 3 2)

Serta menambahkan ke tabel simpleks dengan poros putar dalam x1, dipe- roleh:

x2+ 2

11x0+ 10

11x4+ 17

11S6 = 9 x3+ x4− 2S6 = 1 x1− 1

11x0− 5

11x4− 3

11S6 = 1

Sehingga diperoleh nilai x0 yang baru adalah (1, 9, 1) dan keuntungan dari f0 adalah −4792 .

Akhirnya, dapat dipertimbangkan penggunaan algoritma BAC dimulai de- ngan x0 = (1, 9, 1)T dan batas atas ¯f = −239.5. Oleh karena, arah linier:

∇f (x0) = (−31, −15, −13)T

Mungkin akan dipartisi P berdasarkan x1, yang merupakan bagian dari vari- abel integer. Hal ini dilakukan dengan memberikan tiga submasalah yang dipe- roleh dari (3.1) dengan menambahkan tiga set terikat sederhana berikut ini:

S1 = {x ∈ Rn|x1 ≤ 0}, S2 = {x ∈ Rn|x1 = 1}, S3 = {x ∈ Rn|x1 ≥ 2}.

Solusi dari (3.1) diperoleh dari daerah layak dari salah satu dari tiga sub- masalah baru yang diberikan. Setelah relaksasi linier programming dipecahkan dengan metode optimasi nonlinier, diperoleh:

min f (x), dengan kendala x ∈ P ∩ Si, i = 1, 2, 3 (4.1)

(33)

20

seperti metode set aktif, diberikan tiga solusi optimal dengan nilai-nilai tujuan masing-masing seperti berikut:

Solusi Nilai Objektif Kendala (0, 10.1154, 2.7692)T -237.6731 P ∩ S1

(1, 8.5769, 1.8462)T -242.8269 P ∩ S2 (2, 7.0385, 0.9231)T -222.5192 P ∩ S3

Tentu saja, memecahkan percabangan tengah dan melangkahi dua branching yang lain. Karena branch and bound merupakan klasik dan akan di akuisisi dua solusi yang optimal dari submasalah (1, 8, 3)T dengan nilai objektif 237.5 serta (1, 9, 1)T dengan nilai objektif 239.5. Sehingga, permasalahan (3.1) dari bentuk QIP dapat diselesaikan dengan menggunakan algoritma BAC.

(34)

BAB 5 KESIMPULAN

Model Quadratik Integer Programming (QIP) merupakan salah satu pengem- bangan dari Quadratik Programming yaitu dengan adanya persyaratan terhadap variabel keputusan yang harus mengambil nilai bilangan bulat. Dengan demikian model QIP termasuk dalam problema sulit non-polynomial.

Algoritma Branch and Cut merupakan gabungan dari metode branch and bound dan cutting plane, algoritma Branch and Bound adalah sebuah teknik penyelesaian langkah-langkah untuk semua kemungkinan solusi tanpa memper- timbangkannya satu demi satu sedangkan algoritma Cutting Plane adalah algo- ritma yang dikembangkan dari masalah program integer linier yang berawal op- timal. Sehingga gabungan dari algoritma tersebut dapat di pergunakan dalam penyelesaian masalah QIP yang membawa pada suatu titik penyelesaian kontinu (tak bulat) menuju ke suatu titik yang merupakan penyelesaian layak bulat.

(35)

DAFTAR PUSTAKA

Albert, S. (1999). Solving Mixed Integer Linear Programs Using Branch and Cut Algorithm. Tesis tidak diterbitkan. North Carolina: North Carolina State University.

Atkinson D. S., dan Vaidya P. M. (1995). A cutting plane algorithm for convex programming that uses analytic centers. Mathematical Programming, Volume 69,pp 1-43.

Bard J. F., dan Jensen, P. A. (2003). Operations Research Model and Methods.

USA: John Wiley and Sons Inc.

Cruz C., Silva R C., Verdegay J L dan Yamakami, A. (2009). Aparametric approach to solve quadratic programming problems with fuzzy environment in the set of constraints. IFSA-EUSFLAT, pp 1158-1163.

Fischetti M dan Vigo, D. (1997). A Branch-and-Cut Algorithm for the Resource- Constrained Minimum-Weight Arborescence Problem. Networks,Volume 29, pp 55-67.

Fletcher R., dan Leyffer, S (1998) Numerical Experience With Lower Bounds For Miqp Branch-And-Bound. Society for Industrial and Applied Mathematics, Volume 8, No. 2, pp. 604-616.

Goffin, J. L., dan Vial, J.P. (1990). Cutting Planes and Column Generation Tech- niques with the Projective Algorithm. Journal of optimization theory and applications: vol 65, pp 409-429.

Hillier, F S. (2001). Introduction To Operations Research (7nd ed). New York:

McGraw-Hill.

Lee G M., Tam N N., dan Yen, N N. (2005). Quadratic Programming And Affine Variational Inequalities: A Qualitative Study. New York: Springer.

Pardalos, P M., dan Rodgers, G.P. (1990). Computational Aspects of a Branch and Bound Algorithm for Quadratic Zero-One Programming. Computing, Vol 45:

pp 131-144.

Sherali H D., dan Smith J C. (2007). An Improved Linearization Strategy For Zero-One Quadratic Programming Problems. Optimization Letter, Volume 1 : pp 33-47

Thoai N V. (1998). Global Optimization Techniques for Solving the General Quadratic Integer Programming Problem. Computational Optimization and Applications, Volume 10 : pp 149-163.

Wolsey L A. (1998). Integer Programming. Canada: John Wiley and Sons.

22

Gambar

Tabel 1.1 Kelebihan dan kekurangan algoritma branch and cut
Tabel 2.1 Optimum masalah program linier
Tabel 2.2 Setelah penambahan pemotongan fraksional

Referensi

Dokumen terkait

Alhamdulillahirobbil’alamin, puji syukur penulis panjatkan kehadirat Alloh SWT, yang telah memberikan rakhmat dan hidayah-Nya sehingga penulis dapat menyelesaikan Tugas

Results showed that the combination of different data using weights of evidence model in land cover classification produced significantly higher accuracy (both overall accuracy

banyak anggota  suatu kumpulan  objek 4.1   Menyajikan  bilangan cacah  sampai dengan 99  yang bersesuaian  dengan banyak  anggota kumpulan  objek yang 

PEMERINTAH KOTA BANDAR LAMPUNG DINAS PEKERJAAN UMUM PANITIA PENGADAAN JASA KONSULTANSI.. Jalan Pulau Sebesi Nomor 68

Persentase Penurunan Jumlah Siswa yang Miskonsepsi Tiap Konsep Untuk mengetahui persentase penurunan jumlah miskonsepsi siswa tiap konsep setelah dilakukan remediasi menggunakan

[r]

Direktorat Jenderal Pendidikan Dasar dan Menengah bertugas menyelenggarakan perumusan dan pelaksanaan kebijakan di bidang pendidikan dasar dan menengah

Karakterisasi s ampel yang terbentuk un tuk mengetahui mikrostruktur, kekuatan tekan, dan kekerasan bahan semen gigi baik sebelum maupun s etelah pe nambahan nanopartikel ZnO ke