PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PROGRAM LINEAR BILANGAN BULAT DUAL SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains (S.Si) Program Studi Matematika Oleh: Bernadeta Widiasih NIM : 013114017 PROGRAM STUDI MATEMATIKA JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SANATA DHARMA YOGYAKARTA 2007 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI ii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI iii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI HALAMAN PERSEMBAHAN Terima kasih Telah mengajariku membedakan yang benar dan yang salah Mendorongku untuk mempertahankan mimpi­mimpiku Menunjukkan padaku untuk tidak terpengaruh oleh rintangan Dan untuk mengubah kebingunganku menjadi senyuman Telah mengatakan bahwa kalian menyayangiku Menunjukkan betapa istimewanya cinta itu Menghapuskan air mataku kala aku sedih Dan untuk menenangkanku saat aku ingin marah Telah membantu sesama dengan perbuatan baik kalian Mengajariku bahwa aku pun mesti menolong sesama Memelukku ketikaaku merasa sunyi Dan membisikkan padaku AKU SAYANG PADAMU Terima kasih keluargaku atas segala yang kalian lakukan Entah bagaimana jadinya diriku tanpa kalian Kupersembahkan karya ini untuk: Tuhan Yesus Kristus dan Bunda Maria Almarhum Bapak, Ibu, Mba eta, Lia dan Semua Keluarga Besarku. iv PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI v PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI ABSTRAK Program linear bilangan bulat merupakan bagian dari program linear di mana menginginkan penyelesaian dalam bentuk bilangan bulat. Dalam program linear bilangan bulat terdapat dua model, yakni program linear bilangan bulat fraksional dual dan program linear bilangan bulat dual. Program linear bilangan bulat fraksional dual memungkinkan adanya nilai variabel berupa bilangan pecahan dalam perhitungannya, sedangkan dalam program linear bilangan bulat dual semua nilai variabel dalam perhitungan haruslah berupa bilangan bulat. Masalah program linear bilangan bulat dapat diselesaikan dengan menggunakan beberapa metode, seperti metode bidang pemotong, metode cabang dan batas, dan metode enumerasi. Pada penulisan ini masalah program linear bilangan bulat akan diselesaikan dengan metode bidang pemotong. Penyelesaian masalah program linear bilangan bulat dengan metode bidang pemotong dimulai dengan mengubah bentuk baku menjadi bentuk kanonik, dan menyusun tabel awal. Setelah itu dilanjutkan dengan mencari baris sumber dan kolom pivot serta menentukan bentuk kendala bidang pemotong. Bentuk kendala bidang pemotong tersebut kemudian ditambahkan ke dalam tabel, yang selanjutnya diselesaikan dengan metode simpleks. Proses iterasi ini diulang hingga penyelesaian optimum dicapai. vi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI ABSTRACT Integer programming is a part of linear programming where its solutions are integer. There are two models of integer programming, dual fractional integer programming and dual all-integer integer programming. The value of variables in calculations of dual fractional integer programming can be in the form of fractional, while in dual all-integer integer programming all of variable values in calculations must be in the form of integer. Some methods, such as cutting plane method, branch and bound method and enumeration method can solve the integer programming problem. In this paper, we use cutting plane method to solve integer programming problem. The first step in solving integer programming problem by cutting plane method is changing standard form to canonic form, and arranging the beginning table. After that, we choose the source row and pivot column, and then determine the form of the Gomory Cut. We will add the Gomory Cut into the table and solve it by dual simplex method. We repeat this iteration process until optimum integer solution. vii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI KATA PENGANTAR Puji syukur penulis panjatkan kepada Tuhan Yesus atas segala kasih dan perlindungan-Nya sehingga penulisan skripsi ini dapat terselesaikan. Skripsi ini disusun dalam rangka melengkapi salah satu syarat untuk memperoleh gelar Sarjana Sains pada Program Studi Matematika, Jurusan Matematika, Fakultas Matematika dan Ilmu Alam, Universitas Sanata Dharma Yogyakarta. Penulisan skripsi ini tidak lepas dari bantuan dan dukungan dari berbagai pihak. Oleh karena itu, pada kesempatan ini penulis ingin menyampaikan ucapan terima kasih kepada: 1. Ibu Lusia Krismiyati, S.Si, M.Si sebagai dosen pembimbing yang penuh perhatian dan kesabaran telah membimbing serta memberi saran dan kritik kepada penulis selama proses penulisan skripsi ini. 2. Bapak Ir. Ig. Aris Dwiatmoko, M.Sc selaku Dekan fakultas MIPA yang telah memberi dukungan dalm penulisan skripsi ini. 3. Bapak Y.G. Hartono, S.Si, M.Sc selaku Ketua Program Studi Matematika, dan dosen penguji yang memberikan dukungan, saran dan kritik dalam skripsi ini. 4. Ibu Any Herawati, S.Si, M.Si selaku dosen penguji yang telah memberikan saran dan kritik dalam skripsi ini. 5. Bapak dan Ibu dosen di Fakultas MIPA yang telah membimbing dan mendidik penulis selama menuntut ilmu di Universitas Sanata Dharma. 6. Bapak dan Ibu karyawan Universitas Sanata Dharma, khususnya sekretariat fakultas MIPA dan perpustakaan Universitas Sanata Dharma atas segala bantuan dan fasilitas yang telah diberikan. 7. Almarhum Bapak (pak aku belum bisa buat bapak bahagia dengan kelulusan ini tapi aku tau bapak selalu menyertai hidupku, makasih pak aku sayang bapak), viii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Ibu, Mba eta, Lia dan semua keluargaku tercinta atas kasih sayang, doa, semangat, dukungan dan kesabarannya menanti kelulusan ini. 8. Sahabat-sahabatku seperjuangan angkatan 2001: Maria(jangan lupain masa2 qta nunggu 21 ya!!!), Indah, Erika, Ajeng(tunggu aku dijakarta ya), Very, Upik, Yuli, Dani, Tabita, Fanya(makasih laptopnya), Andre, Ariel, Agnes, Wiwit, Rita+Alam (makasih semangat n bantuannya), Vrysca, Daniel, Tedy, Ray, April, Ardi, serta kakak-kakak angkatan 1998, 1999, 2000 dan adik-adik angkatan 2002, 2003, 2004 yang telah membantu dan mendukung penulis. 9. Untuk seseorang yang selama ini mengisi hatiku yang telah memberi dukungan, semangat, nasehat, doa, cinta dan rasa sayangnya. 10. Untuk saudara-saudaraku yang menemaniku dijogja: Wahyu(makasih dah mau anter aku n pinjemin komputernya), Nita, Wiwit, mas Lus dan keluargaku yang telah memberi dukungan, semangat, saran dan doanya. 11. Anak-anak kost gang endro no 8 : Mba lina(makasih atas perhatiannya hingga ku bisa mengerti arti hidup), Mba rini, Mba armi, Ayu, Tia, Mery, F3, Cu2, Weni, Rini, Ika, Lia, Ratna, Riska, Winda,Beni dan teman-teman kost dari awal sampai akhir aku kuliah yang telah memberi dukungan, semangat, doa dan candanya. 12. Semua pihak yang telah membantu penulis baik secara langsung maupun tidak langsung hingga selesainya penulisan skripsi ini. Penulis menyadari bahwa skripsi ini masih banyak kekurangannya. Oleh karena itu, penulis mengucapkan terima kasih bila ada kritik dan saran yang dapat membangun penulis. Penulis berharap semoga skripsi ini dapat bermanfaat dan menjadi referensi bagi pembaca. ix PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI Halaman HALAMAN JUDUL ………………………………………………………..…… i HALAMAN PERSETUJUAN PEMBIMBING …………………………………. ii HALAMAN PENGESAHAN …………………………………………………… iii HALAMAN PERSEMBAHAN …………………………………………..…….. iv PERNYATAAN KEASLIAN KARYA …………………………………….…... v ABSTRAK ………………………………………………………………….…… vi ABSTRACT ………………………………………………….………………..... vii KATA PENGANTAR …………………………………………………….…….. viii DAFTAR ISI ……………………………………………………………….……. x DAFTAR GAMBAR ……………………………………………………….……. xii DAFTAR TABEL ………………………………………………………….……. xiii BAB I PENDAHULUAN ……………………………………………..……. 1 A. Latar Belakang Masalah …………………………………….…… 1 B. Rumusan Masalah ………………………………………...…….. 2 C. Pembatasan Masalah ………………………………………...….. 2 D. Tujuan Penulisan …………………………………………………. 3 E. Manfaat Penulisan ……………………………………………….. 3 F. Metode Penulisan ……………………………..…………..……... 3 G. Sistematika Penulisan ……………………….…………………… 4 x PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB II PROGRAM LINEAR DENGAN DUAL……………………..……... 5 A. Program Linear ……………………………………………….…… 5 B. Metode Grafik ……………………………………………….…… 9 C. Metode simpleks…………………………………...……………... 10 D. Metode Simpleks Dual ……………………………………..…….. 16 E. Program Linear Bilangan Bulat ..…………………………...…… 21 BAB III PROGRAM LINEAR BILANGAN BULAT FRAKSIONAL DUAL 25 A. Masalah Program Linear Bilangan Bulat........…………………... 25 B. Penyelesaian Masalah Program Linear Bilangan Bulat Fraksional Dual ……………………………………………………….….…… 29 BAB IV PROGRAM LINEAR BILANGAN BULAT DUAL ......................... 60 A. Masalah Program Linear Bilangan Bulat Dual Dengan Metode Bidang Pemotong...................................................................…… 60 B. Penyelesaian Masalah Program Linear Bilangan Bulat Dual......... 68 BAB IV PENUTUP .....................................................................................….. 81 A. Kesimpulan ……………......................................................…….. 81 B. Saran ………………………………………………………...…… 82 DAFTAR PUSTAKA ……………………………………………………………. 83 xi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR GAMBAR Halaman Gambar 2.1.Ilustrasi Penyelesaian Masalah Program Linear dengan metode grafik……………………………………………………………… 10 Gambar 3.1.Ilustrasi Penyelesaian Masalah Program Linear Bilangan Bulat dengan metode bidang pemotong …………..……....……………............... 26 Gambar 3.2.Penyelesaian Masalah Program Linear Bilangan Bulat Fraksional Dual……………………………………………………………….. 51 Gambar 4.1. Penyelesaian Masalah Program Linear Bilangan Bulat Dual……... 80 xii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR TABEL Halaman Tabel 2.1 Tabel Awal Simpleks…………………………………………………………… 14 Tabel 2.2 Tabel Awal Simpleks Dual………………………………………………...…… 19 Tabel 3.1 Tabel Awal Program Linear Bilangan Bulat Fraktional Dual.......…………..... 30 Tabel 3.2. Tabel Dengan Bentuk Kendala Bidang Pemotong........ ………………………. 32 Tabel 3.3. Tabel Awal Pada Contoh Masalah Program Linear Bilangan Bulat………… 40 Tabel 3.4. Tabel Setelah Operasi Baris Elementer Pada Iterasi 1.…………………...…. 41 Tabel 3.5. Tabel Setelah Operasi Baris Elementer Pada Iterasi 2……………………….. 42 Tabel 3.6. Tabel Dengan Bentuk Pembatas Sekunder Pada Iterasi 1………………...…. 45 Tabel 3.7. Tabel Setelah Dilakukan Operasi Baris Elementer Pada Iterasi 1.........…….. 46 Tabel 3.8. Tabel Dengan Bentuk Pembatas Sekunder Pada Iterasi 2................................ 48 Tabel 3.9. Tabel Setelah Dilakukan Operasi Baris Elementer Pada Iterasi 2.................... 49 Tabel 3.10. Tabel Dengan Bentuk Pembatas Sekunder Pada Iterasi 3............................. 54 Tabel 3.11. Tabel Setelah Dilakukan Operasi Baris Elementer Pada Iterasi 3................ 55 Tabel 3.12. Tabel Dengan Bentuk Pembatas Sekunder Pada Iterasi 4............................ 57 Tabel 3.13. Hasil setelah dilakukan operasi baris elementer pada iterasi 4..................... 58 Tabel 4.1. Tabel Awal Program Linear Bilangan Bulat.................................................. 65 Tabel 4.2. Tabel Awal Pada Contoh Masalah Program Linear Bilangan Bulat............. 73 Tabel 4.3. Tabel Bentuk Kendala Bidang Pemotong Pada Iterasi 1............................... 75 Tabel 4.4. Tabel Setelah Dilakukan Operasi Baris Elementer Pada Iterasi 1.................. 75 Tabel 4.5. Tabel Dengan Bentuk Kendala Bidang Pemotong Pada Iterasi 2.................. 78 Tabel 4.6. Tabel Setelah Dilakukan Operasi Baris Elementer Pada Iterasi 2................. 78 xiii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 1 BAB I P ENDAHULUAN A. Latar Belakang Masalah Program linear adalah teknik optimasi yang bertujuan untuk menentukan pemecahan masalah dari suatu program matematika yang linear sehingga dapat ditemukan nilai sasaran yang optimal. Hasil akhir penyelesaian masalah program linear bisa dapat berupa bilangan pecahan atau bilangan bulat. Dalam penyelesaian masalah yang berupa bilangan bulat diperlukan suatu penyelesaian khusus untuk menjawabnya, yaitu program linear bilangan bulat. Program linear bilangan bulat merupakan salah satu bentuk dari program linear dengan satu variabel atau lebih. Dalam masalah program linear bilangan bulat ini variabel masukannya bernilai bilangan bulat. Banyak sekali ditemukan permasalahan program linear bilangan bulat dalam kehidupan sehari-hari dan industri. Permasalahan tersebut tidak dapat diselesaikan hanya dengan program linear biasa, misalnya masalah produksi, masalah transportasi, masalah penjadwalan para pekerja dan mesin-mesin kantor, desain jaringan telekomunikasi dan masalah salesmen yang berpergian (traveling salesman). Dalam program linear bilangan bulat terdapat dua model, yakni program linear bilangan bulat fraksional dual dan program linear bilangan bulat dual. Program linear bilangan bulat fraksional dual memungkinkan adanya nilai variabel berupa bilangan pecahan dalam perhitungannya, sedangkan dalam PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2 program linear bilangan bulat dual semua nilai variabel dalam perhitungan haruslah berupa bilangan bulat. Masalah program linear bilangan bulat dapat diselesaikan dengan menggunakan beberapa metode, seperti metode bidang pemotong, metode cabang dan batas, dan metode enumerasi. Pada penulisan ini masalah program linear bilangan bulat akan diselesaikan dengan metode bidang pemotong. Metode bidang pemotong untuk pertama kalinya diaplikasikan pada masalah program linear bilangan bulat fraktional dual kemudian diperbaiki menjadi masalah program linear bilangan bulat dual. Penyelesaian kedua masalah program linear bilangan bulat tersebut menggunakan metode simpleks dual. B. Rumusan Masalah Pokok permasalahan yang akan dibahas dalam skripsi ini dapat dituliskan dengan beberapa pertanyaan sebagai berikut : 1. Bagaimana menyelesaikan masalah program linear bilangan bulat fraksional dual dengan metode bidang pemotong ? 2. Bagaimana menyelesaikan masalah program linear bilangan bulat dual dengan metode bidang pemotong ? C. Pembatasan Masalah Dalam skripsi ini hanya akan dibahas tentang program linear bilangan bulat, yakni program linear bilangan bulat fraksional dual dan program linear bilangan bulat dual yang diselesaikan dengan metode bidang pemotong yang PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3 menggunakan metode simpleks dual dan landasan teori yang berkaitan dengan aljabar linear seperti sistem persamaan linear, matriks dan ruang vektor yang telah dipelajari pada saat kuliah tidak akan dibahas dalam skripsi ini. D. Tujuan Penulisan Sesuai dengan latar belakang di atas, penulisan skripsi ini bertujuan untuk dapat menyelesaikan masalah program linear bilangan bulat khususnya tentang masalah program linear bilangan bulat fraksional dual dan masalah program linear bilangan bulat dual dengan metode bidang pemotong dan dapat dipertanggungjawabkan langkah demi langkah. E. Manfaat Penulisan 1. Dapat menyelesaikan masalah program linear bilangan bulat fraksional dual 2. Dapat menyelesaikan masalah program linear bilangan bulat dual F. Metode Penulisan Metode penulisan yang digunakan dalam penulisan skripsi ini adalah metode studi pustaka, yaitu dengan membaca dan mempelajari materi dari buku buku acuan yang berkaitan dengan topik skripsi ini, sehingga tulisan ini tidak ada penemuan hal-hal yang baru. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4 G. Sistematika Penulisan Sistem penulisan skripsi ini terdiri dari 5 bab dengan urutan sebagai berikut: Bab I PENDAHULUAN Bab ini menjelaskan uraian mengenai hal-hal yang menjadi dasar dalam pembahasan skripsi ini. Uraian tersebut berisi latar belakang masalah, perumusan masalah, pembatasan masalah, tujuan penulisan, manfaat penulisan, metode penulisan dan sistematika penulisan. BAB II PROGRAM LINEAR DENGAN DUAL Bab ini memberikan penjelasan secara singkat beberapa dasar pengetahuan, yaitu tentang program linear, metode grafik, metode simpleks, metode simpleks dual dan program linear bilangan bulat. BAB III PROGRAM LINEAR BILANGAN BULAT FRAKSIONAL DUAL Bab ini membahas tentang langkah-langkah penyelesaian masalah program linear bilangan bulat fraksional dual menggunakan metode bidang pemotong. BAB IV PROGRAM LINEAR BILANGAN BULAT DUAL Bab ini membahas tentang langkah-langkah penyelesaian masalah program linear bilangan bulat dual menggunakan metode bidang pemotong. BAB V Penutup Bab ini berisi beberapa kesimpulan dan saran berdasarkan hasil pembahasan dan keseluruhan proses penyusunan skripsi. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5 BAB II PROGRAM LINEAR DENGAN DUAL A. Program Linear Penerapan program linear untuk pertama kalinya adalah di bidang perencanaan militer, yakni pada perang dunia II oleh angkatan bersenjata Amerika Serikat dan Inggris. Kemudian pada tahun1930-an ahli matematika seperti Von Neuman dan Leontief melahirkan teknik-teknik penyelesaian masalah program linear dengan menggunakan pendekatan aljabar linear (aljabar matriks). Karya Leontif yang terkenal adalah model input-output. Setelah itu ahli matematika Dr George B. Dantzig, seorang anggota dari pasukan Angkatan Udara tersebut, memformulasikan masalah program linear secara umum dan menemukan penyelesaian dengan metode simpleks pada tahun 1947. Program linear adalah suatu metode optimasi yang digunakan untuk menyelesaikan masalah dengan fungsi sasaran dan kendala-kendala berbentuk linear. Secara umum masalah program linear dapat dinyatakan sebagai berikut : 1. Bentuk Baku Masalah Program Linear : Minimumkan ( atau maksimumkan) : z = c1 x1 + c2 x2 + K + cn xn (2.1) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 6 dengan kendala-kendala : a 11 x 1 + a 12 x 2 + K + a 1 n x n { ≤ , = , ≥ }b1 ⎫ a 21 x 1 + a 22 x 2 + K + a 2 n x n { ≤ , = , ≥ }b 2 ⎪⎪ ⎬ M O O M ⎪ a m 1 x 1 + a m 2 x 2 + K + a mn x n { ≤ , = , ≥ }b m ⎪⎭ (2.2) x j ≥ 0, j = 1,2, K, n (2.3) Rumus di atas dapat diringkas sebagai berikut : Minimumkan ( atau maksimumkan) : n z = ∑cjxj (2.4) j =1 dengan kendala n ∑a j =1 ij x j (≤, =, ≥) bi xj ≥ 0 , i = 1,2, K , m , j = 1,2,K , n (2.5) (2.6) 2. Bentuk Matriks Masalah Program linear : Minimumkan (atau maksimumkan) : z = cx (2.7) dengan kendala-kendala : Ax{≤, =, ≥}b x≥0 dengan : ⎡a11 ⎢a A = ⎢ 21 ⎢M ⎢ ⎣a m1 a12 K a1n ⎤ ⎡ x1 ⎤ ⎡b1 ⎤ ⎥ ⎢ ⎢b ⎥ ⎥ a 22 K a 2 n ⎥ x2 ⎥ ⎢ ,x = , b = ⎢ 2 ⎥ , c = (c1 , c 2 , K , c n ) ⎢M ⎥ ⎢M ⎥ O M ⎥ ⎥ ⎢ ⎥ ⎢ ⎥ a m 2 K a mn ⎦ ⎣ xn ⎦ ⎣bn ⎦ (2.8) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7 Definisi 2.1 Fungsi sasaran atau fungsi tujuan Fungsi sasaran masalah program linear berbentuk p z = ∑cjxj j =1 dengan p merupakan banyaknya variabel, x j merupakan variabel ke- j , dan c j merupakan koefisien ongkos dari variabel ke- j . Definisi 2.2 Kendala utama dan kendala tak negatif Persamaan atau pertidaksamaan dalam masalah program linear n ∑a j =1 i, j x j (≤, =, ≥ )bi , i = 1,2,..., m disebut kendala utama, dengan m merupakan banyaknya kendala, dan ai , j (koefisien teknis) merupakan koefisien kendala ke- i dari variabel ke- j dan bi menyatakan konstanta di ruas kanan untuk kendala ke- i . Sedangkan x j ≥ 0; j = 1,2,..., p disebut kendala tak negatif Untuk mengembangkan suatu metode penyelesaian, secara umum harus sesuai dengan karakter dari masalah program linear. Karakter tersebut dinyatakan dalam bentuk baku sebagai berikut : 1. Fungsi sasarannya berpola minimum atau maksimum. 2. Semua kendalanya berbentuk persamaan. Bentuk ini disebut bentuk kanonik dari masalah program linear. 3. Semua variabel keputusan xi adalah tak negatif. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8 Definisi 2.3 Penyelesaian layak Penyelesaian layak adalah penyelesaian yang memenuhi semua kendala yakni kendala utama dan kendala tak negatif. Definisi 2.4 Penyelesaian optimum Penyelesaian optimum adalah penyelesaian layak yang takhingga banyak yang mengoptimumkan fungsi sasaran. Definisi 2.5 Penyelesaian basis Suatu vektor x merupakan penyelesaian basis, jika: (i) x memenuhi persamaan kendala utama dalam program linear. (ii) kolom-kolom matriks kendala yang bersesuaian dengan vektor tak nol x adalah bebas linear. Definisi 2.6 Penyelesaian layak basis Suatu vektor x disebut penyelesaian layak basis jika x adalah penyelesaian basis dan memenuhi kendala tak negatif x ≥ 0 . Definisi 2.7 Penyelesaian layak basis optimum Suatu vektor x disebut penyelesaian layak basis optimum jika x adalah penyelesaian layak basis yang juga mengoptimumkan fungsi sasaran. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9 Masalah program linear biasanya diselesaikan dengan dua metode penyelesaian, yaitu metode grafik dan metode simpleks. Masalah program linear dapat diselesaikan dengan menggunakan metode grafik bila masalah tersebut hanya memiliki dua variabel keputusan. Tetapi untuk masalah yang memiliki variabel keputusan lebih dari dua tidak mungkin menggunakan metode grafik. Lalu pada tahun 1947 George Dantzig dan pakar-pakar lainnya mengembangkan metode simpleks yang dapat menyelesaikan masalah program linear yang memuat tiga variabel keputusan atau lebih. B. Metode Grafik Masalah program linear dengan dua variabel dapat diselesaikan menggunakan metode grafik. Meskipun masalah program linear jarang yang hanya memuat dua variabel tetapi metode grafik memudahkan dalam penyelesaian masalah tersebut. Masalah program linear dapat diilustrasikan dengan melihat Gambar 2.1, yakni Pasangan (x1 , x 2 ) yang memenuhi semua kendala disebut penyelesaian layak (feasible solution). Titik-titik dalam daerah layak disebut titik layak. Himpunan titik layak yang terlihat dalam Gambar 2.1, yakni daerah OABCD adalah daerah layak yang diperoleh dari perpotongan kendala-kendala utama. Grafik fungsi sasaran ini berupa garis lurus z dan disebut garis selidik karena menggambarkan pasangan-pasangan ( x1 , x 2 ) yang memberikan nilai z yang sama. Pada masalah program linear yang memaksimumkan fungsi sasaran z maka akan ditemukan penyelesaian optimum titik B, yakni titik yang memaksimumkan fungsi sasaran. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10 x 2 D C B 0 z x1 A Gambar 2.1. Ilustrasi Penyelesaian Masalah Program Linear dengan metode grafik C. Metode simpleks Untuk menyelesaikan masalah program linear dengan metode simpleks, kendala yang masih berbentuk pertidaksamaan ini harus diubah dahulu ke bentuk persamaan dengan penambahan variabel slack atau variabel pengetat yang mempunyai koefisien ongkos nol. Jika kendala berpola kurang dari (≤) , yakni kendala berbentuk pertidaksamaan : a k1 x1 + a k 2 x 2 + K + a kn x n ≤ bk maka kendala tersebut dapat diubah ke bentuk persamaan dengan menambah variabel pengetat x n +1 dengan x n +1 > 0 . Dengan demikian , persamaan untuk kendala tersebut adalah a k1 x1 + a k 2 x 2 + K + a kn x n + x n +1 = bk , x n +1 > 0 . PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11 Dengan cara yang sama, kendala berpola lebih besar dari (≥) , yakni kendala berbentuk pertidaksamaan : a k1 x1 + a k 2 x 2 + K + a kn x n ≥ bk dapat diubah ke bentuk persamaan dengan mengurangi pertidaksamaan tersebut dengan variabel pengetat x n +1 dengan x n +1 > 0 a k1 x1 + a k 2 x 2 + K + a kn x n − x n +1 = bk , x n +1 > 0 Untuk menyesuaikan dengan bentuk kendala baru, fungsi sasaran yang semula berbentuk z = c1 x1 + c2 x2 + K + cn xn diubah menjadi z = c1 x1 + c 2 x 2 + K + c n x n + c j ( x n +1 + K + x p ) , j = n + 1, n + 2, K , p c n +1 = c n + 2 = K = c p = 0 dengan dan xi , i = n + 1, n + 2, K, p adalah variabel pengetat. Dengan demikian masalah yang telah diubah kedalam bentuk kanonik akan menjadi seperti ini : Minimumkan ( atau maksimumkan ) : n z = ∑cjxj (2.9) j =1 dengan kendala n ∑a j =1 ij x j = bi xj ≥ 0 , i = 1,2, K , m , j = 1,2, K , n (2.10) (2.11) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12 Definisi 2.8 Bentuk kanonik Bentuk pertidaksamaan yang sudah diubah dalam bentuk persamaan disebut bentuk kanonik dari masalah program linear. Berikut ini akan diberikan contoh masalah program linear yang diubah ke bentuk kanonik Contoh 2.1 Ubah soal dibawah ini ke bentuk kanonik. Maksimumkan : z = 10 x1 − 20 x2 + 5 x3 dengan kendala x1 − x 2 + x3 ≤ 8 2 x1 − x 2 + x3 ≤ 10 Penyelesaian : Pada masing-masing kendala yang masih berbentuk pertidaksamaan ditambahkan satu variabel pengetat, misalkan x 4 dan x5 sehingga masala program linear di atas menjadi : Maksimumkan : z = 10 x1 − 20 x 2 + 5 x3 + 0 x 4 + 0 x5 Dengan kendala : x1 − x 2 + x3 + x 4 2 x1 − x 2 + x3 =8 + x5 = 10 Soal ini sudah berbentuk kanonik dan berpola maksimum, dengan x1 , x 2 , x3 variabel asli dan x 4 , x5 adalah variabel pengetat. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13 Jika masalah program linear yang telah diubah ke dalam bentuk persamaan berpola maksimum maka masalah sudah dapat diselesaikan dengan metode simpleks. Bila masalah program linear berpola maksimum atau berpola minimum dan mempunyai penyelesaian basis yang tidak layak, karena memuat nilai negatif untuk variabel pengetat, maka masalah program linear tersebut belum bisa diselesaikan dengan metode simpleks. Masalah program linear yang masih memuat nilai negatif pada variabel pengetatnya memerlukan variabel semu, yaitu variabel yang ditambahkan kedalam persamaan kendala-kendala. Jika a adalah variabel semu yang disisipkan pada persamaan yang memuat variabel pengetat bernilai negatif maka masalah program linear tersebut sudah memuat suatu penyelesaian layak basis. Variabel semu ini bersifat sebagai katalisator (penghubung) dan mempunyai nilai nol supaya masalah semula mempunyai penyelesaian optimum. Bila ada variabel semu yang dipakai maka fungsi sasaran yang baru untuk pola maksimum berbentuk z = z − Ma , sedangkan fungsi sasaran yang baru untuk pola minimum berbentuk z = z + Ma dengan M bilangan positif yang cukup besar. Salah satu cara untuk menyelesaikan masalah program linear dengan menggunakan metode simpleks adalah melalui tabel simpleks. Langkah-langkah penyelesaian masalah program linear dengan menggunakan metode simpleks melalui tabel simpleks adalah sebagai berikut : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14 Langkah 1: Membentuk masalah program linear menjadi bentuk kanonik yaitu kendalanya harus berbentuk persamaan, dengan menambahkan variabel pengetat, variabel semu dan bi ≥ 0 sehingga memenuhi bentuk baku program linear. Langkah 2 : Menyusun tabel awal seperti dalam tabel berikut ( Tabel 2.1 ) Tabel 2.1 Tabel Awal Simpleks cj c1 c2 K cn ci xi \ x j x1 x2 K xn bi Ri c1 x1 a11 a12 K a1n b1 R1 c2 x2 a 21 a 22 K a2n b2 R2 M M cm xm M a m1 O am2 K M a mn M bm M Rm zj z1 z2 K zn z zj −cj z1 − c1 z 2 − c2 K z n − cn z Keterangan : xj : variabel-variabel keputusan aij : koefisien teknis bi : suku tetap (tak negatif) cj : koefisien ongkos xi : variabel yang menjadi basis dalam tabel yang ditinjau PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15 ci : koefisien ongkos milik variabel basis xi zj : z : m ∑c a i =1 i ij m ∑c b i =1 i i zj −cj : selisih z j Ri : dengan c j bi hanya untuk a a ik i ≥ 0 Langkah 3 : Menguji keoptimuman, dengan memperhatikan nilai z j − c j . Untuk masalah dengan pola maksimum, tabel dikatakan optimum bila nilai z j − c j ≥ 0 untuk semua j. Sedangkan untuk masalah dengan pola minimum tabel dikatakan optimum bila nilai z j − c j ≤ 0 untuk semua j. Bila sudah optimum berarti sudah didapatkan penyelesaiannya. Jika belum optimum maka dilanjutkan ke Langkah 4. Langkah 4 : Memperbaiki tabel. Dalam hal ini artinya memilih variabel baru yang masuk menjadi variabel basis. Untuk masalah yang berpola maksimum adalah dengan memilih kolom pivot, yaitu kolom dengan nilai z j − c j terkecil atau paling minimum. Untuk masalah yang berpola maksimum adalah dengan memilih nilai z j − c j terbesar atau paling maksimum. Setelah ditemukan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16 kolom pivot maka selanjutnya dicari nilai rasio ( Ri ) untuk setiap baris, yaitu bi dibagi unsur-unsur pada kolom pivot yang bernilai positif. Tidak berbeda untuk pola maksimum dan pola minimum, dipilih nilai Ri ⎛b atau Ri = min ⎜⎜ i ⎝ aik terkecil ⎞ ⎟⎟ . Baris dengan Ri terkecil kemudian menjadi baris ⎠ pivot. Setelah baris pivot dan kolom pivot terpilih, maka perpotongan antara baris pivot dan kolom pivot (a rs ) disebut sebagai elemen pivot dimana variabelnya akan menjadi variabel basis baru yang akan menggantikan variabel basis lama dan selanjutnya menuju ke Langkah 5. Langkah 5 : Pada tabel selanjutnya elemen a rs diubah supaya bernilai satu dan semua elemen pada kolom yang bersesuaian diubah menjadi nol dengan melakukan operasi baris elementer. Variabel basis baru dan koefisien ongkos menyesuaikan dengan variabel basis baru tersebut. Selanjutnya kembali ke langkah 3. D. Metode Simpleks Dual Masalah program linear memiliki dua macam metode simpleks, yaitu metode simpleks primal dan metode simpleks dual. Untuk setiap masalah program linear dapat diubah ke bentuk dual dimana kendala dan variabelnya adalah kebalikan dari primal, yakni koefisien variabel dalam masalah primal menjadi koefisien kendala dalam masalah dual. Jika dalam masalah primal mempunyai n PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17 variabel dan m kendala maka masalah dualnya akan menjadi m variabel dan n kendala. Dapat dikatakan bahwa jumlah kendala dalam masalah primal sama dengan jumlah variabel dalam masalah dual. Bila masalah primal memaksimumkan fungsi sasaran maka masalah dualnya pasti meminimumkan fungsi sasaran, dan begitu sebaliknya. Berikut akan diberikan contoh bentuk dual dari bentuk primal pada masalah program linear Contoh 2.2 Masalah primal Minimumkan z = 6 x1 + 2 x 2 − x3 + 2 x 4 dengan kendala 4 x1 + 3 x 2 − 2 x3 + 2 x 4 ≥ 10 8 x1 + x 2 + 2 x3 + 4 x 4 ≥ 18 dan x1 , x2 , x3 , x4 ≥ 0 Penyelesaian : Masalah dual Maksimumkan g = 10 y1 + 18 y 2 dengan kendala 4 y1 + 8 y 2 ≤ 6 3 y1 + y 2 ≤ 2 − 2 y1 + 2 y 2 ≤ −1 2 y1 + 4 y2 ≤ 2 dan y1 , y 2 ≥ 0 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18 Dalam metode simpleks dual penyelesaiannya dimulai dari penyelesaian basis yang tidak layak dan memenuhi ciri optimum sedangkan metode simpleks primal penyelesaiannya dimulai dari penyelesaian layak basis tetapi tidak harus optimum. Masalah program linear yang akan dicari dualnya harus berpola maksimum baku atau minimum baku yang memiliki bentuk baku sebagai berikut : Pola maksimum baku : Maksimumkan z = cx memenuhi Ax ≤ b ( semua berbentuk ≤ ) Pola minimum baku : Minimumkan z = cx memenuhi Ax ≥ b ( semua berbentuk ≥ ) Untuk dapat menyusun suatu masalah primal kedalam bentuk dual maka harus dibuat kedalam bentuk kanonik sebagai berikut : Pola maksimum (atau pola minimum): Maksimumkan (atau minimumkan) z = cx (2.12) Ax = b (2.13) yang memenuhi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19 Langkah-langkah metode simpleks dual adalah sebagai berikut : Langkah 1 : Membentuk masalah program linear menjadi bentuk kanonik, yaitu kendalanya harus berbentuk persamaan, dengan menambahkan variabel pengetat, variabel semu dan bi ≥ 0 sehingga memenuhi bentuk baku program linear. Langkah 2 : Menyusun tabel awal dual simpleks yang disajikan sebagai berikut Tabel 2.2 Tabel Awal Simpleks Dual ci c1 c2 K cn cj xi \ x j x1 x2 K xn bi c1 x1 a11 a12 K a1n b1 c2 x2 a 21 a 22 K a2n b2 M M cm xm M a m1 O am2 K M a mn M bm zj z1 z2 K zn z zj −cj z1 − c1 z 2 − c2 K z n − cn z Ri R1 R2 Keterangan : Ri = zj −cj aij , hanya untuk a ij < 0 K Rn PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20 Langkah 3 : Memilih baris pivot, yakni dengan memilih baris i yang mempunyai nilai bi paling minimum dengan ( bi < 0 ) Jika ada nilai bi yang sama maka dipilih sembarang bi . Langkah 4 : Memilih kolom pivot, yakni mencari nilai rasio. Nilai rasio Ri diperoleh dengan membagi z j − c j dan nilai mutlak dari koefisien teknis yang ⎛ zj − cj berkoefisien negatif atau Ri = ⎜ ⎜ a ij ⎝ ⎞ ⎟ dengan a ij < 0 . Untuk masalah ⎟ ⎠ yang berpola minimum dipilih nilai rasio yang terkecil atau ⎛ zj −cj = min ⎜ ⎜ a ij ⎝ rasio a ij Ri ⎞ ⎟ , sedangkan masalah yang berpola maksimum dipilih nilai ⎟ ⎠ ⎛ zj −cj yang terkecil atau Ri = min ⎜ ⎜ a ij ⎝ ⎞ ⎟ . Jika koefisien teknis a ij ⎟ ⎠ bernilai positif atau nol maka masalah program linear tersebut tidak ada penyelesaian yang layak. Langkah 5 : Melakukan operasi baris elementer agar perpotongan antara baris pivot dan kolom pivot ( a rs ) yang disebut elemen pivot ini bernilai 1 dan yang lainnya bernilai 0. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21 Langkah 6 : Menguji keoptimuman. Jika semua bi ≥ 0 maka penyelesaian sudah optimum, jadi iterasi harus dihentikan. Jika belum optimum maka harus dilanjutkan ke Langkah 2. Perbedaan masalah program linear dengan menggunakan metode simpleks primal dan metode simpleks dual adalah sebagai berikut : 1. Jika masalah program linear dalam primal memiliki pola maksimum maka dalam dualnya masalah program linear tersebut akan memiliki pola minimum. 2. Jumlah variabel primal sama dengan jumlah kendala pada bentuk dualnya. 3. Dalam masalah primal, matriks koefisien teknis adalah (aij ) tetapi dalam masalah dualnya berbentuk tranpose dari matriks tersebut, yakni (aij ). t 4. bi dalam masalah program linear yang berbentuk primal disebut suku tetap tetapi dalam bentuk dualnya bi menjadi koefisien ongkos. 5. c j dalam masalah program linear yang berbentuk primal disebut koefisien ongkos tetapi dalam bentuk dualnya c j menjadi suku tetap. 6. Dalam masalah dual, koefisien kendala ke-i berasal dari koefisien variabel ke-i masalah primal. 7. Dalam masalah dual, koefisien variabel ke-j berasal dari koefisien kendala ke-j masalah primal. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22 D. Program Linear Bilangan Bulat Program linear bilangan bulat merupakan bagian dari program linear dengan tambahan kendala, dimana beberapa atau semua variabel keputusannya memiliki nilai-nilai bilangan bulat. Masalah-masalah program linear bilangan bulat menyangkut masalah-masalah yang harus diselesaikan dengan bentuk bilangan bulat. Program linear bilangan bulat ada dua model, yaitu program linear bilangan bulat murni atau biasa disebut program linear bilangan bulat (integer programming) dan program linear bilangan bulat campuran (mixed integer programming). Program linear bilangan bulat murni adalah suatu model program linear yang semua variabelnya adalah bilangan bulat, sedangkan program bilangan bulat campuran adalah suatu model program linear dengan beberapa variabelnya berupa bilangan bulat . Secara umum bentuk masalah program linear bilangan bulat murni dan campuran adalah sebagai berikut : 1. Bentuk baku masalah program linear bilangan bulat murni. Maksimumkan (atau minimumkan ) : Z = c1 x1 + c 2 x2 + K + c n x n (2.14) dengan kendala-kendala : a 11 x 1 + a 12 x 2 + K + a 1 n x n { ≤ , = , ≥ }b1 ⎫ a 21 x 1 + a 22 x 2 + K + a 2 n x n { ≤ , = , ≥ }b 2 ⎪⎪ ⎬ M O O M ⎪ a m 1 x 1 + a m 2 x 2 + K + a mn x n { ≤ , = , ≥ }b m ⎪⎭ x j ≥ 0, j = 1,2, K , n dan x j bilangan bulat. (2.15) (2.16) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23 Rumus di atas dapat diringkas sebagai berikut : Maksimumkan (atau minimumkan) n Z = ∑cj xj (2.17) j =1 dengan kendala : n ∑ a x (≤ , =, ≥ ) b j =1 ij j (2.18) i x j ≥ 0, x j bilangan bulat i = 1,2,K , m , (2.19) j = 1,2, K , n. 2. Bentuk baku masalah program linear bilangan bulat campuran. Maksimumkan (atau minimumkan) : n p j =1 k =1 Z = ∑ c j x j + ∑ d k yk (2.20) dengan kendala : n p j =1 k =1 ∑ aij x j ∑ g ik y k ≤ atau ≥ bi xj ≥ 0 , y k ≥ 0 , x j bilangan bulat i = 1,2,K , m , j = 1,2, K , n , (2.21) k = 1,2, K , p. Dalam tulisan ini hanya akan dibahas program linear bilangan bulat murni (integer programming). Masalah program linear bilangan bulat dapat diselesaikan dengan menggunakan beberapa metode, seperti metode bidang pemotong (cutting plane method), metode cabang dan batas (branch and bound method), dan metode enumerasi (enumerative methods). Secara umum, langkah pertama dalam menyelesaikan masalah program linear bilangan bulat adalah dengan mengabaikan kendala bilangan bulat. Jika sudah ditemukan penyelesaian yang PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24 merupakan bilangan bulat maka penyelesaian program linear bilangan bulat sudah dicapai. Jika ternyata masih terdapat penyelesaian yang merupakan bilangan pecahan maka dilakukan suatu proses untuk menentukan penyelesaian bilangan bulat dari masalah tersebut. Dalam tulisan ini hanya akan dibahas menggunakan metode bidang pemotong untuk menyelesaikan masalah program linear bilangan bulat. Pada tahun 1958 Ralph Gomory mengembangkan metode bidang pemotong (cutting plane method) yang untuk pertama kalinya diaplikasikan pada masalah program linear bilangan bulat fraktional dual (dual fractional integer programming) adalah penyelesaian metode bidang pemotong yang menggunakan metode simpleks dual dan memungkinkan adanya bilangan pecahan dalam perhitungannya. Lalu pada tahun 1960 Ralph Gomory memperbaiki metode bidang pemotong tersebut, yakni menjadi masalah program linear bilangan bulat dual (dual all-integer integer programming) yang dalam perhitungannya harus berupa bilangan bulat. Metode bidang pemotong dalam kedua masalah program linear bilangan bulat ini menggunakan metode simpleks dual. Uraian untuk kedua masalah program linear bilangan bulat tersebut akan dijelaskan pada bab-bab berikutnya. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25 BAB III PROGRAM LINEAR BILANGAN BULAT FRAKSIONAL DUAL A. Masalah Program Linear Bilangan Bulat Salah satu langkah yang dilakukan dalam penyelesaian masalah program linear bilangan bulat yang menggunakan metode bidang pemotong adalah dengan menambahkan kendala baru. Penambahan kendala baru dalam metode ini diperoleh dengan menyusun suatu persamaan yang memenuhi setiap penyelesaian layak dari masalah program linear bilangan bulat yang semula. Penambahan kendala tersebut memungkinkan diperolehnya penyelesaian yang optimum dari masalah program linear yang berupa bilangan bulat. Masalah program linear bilangan bulat yang diselesaikan dengan metode bidang pemotong dapat diilustrasikan dengan melihat Gambar 3.1. ABCDE adalah daerah layak yang diperoleh dari perpotongan kendala-kendala utama. Penyelesaian dari masalah program linear bilangan bulat dapat digambarkan sebagai titik-titik layak pada daerah layak tersebut dan titik D adalah penyelesaian optimum program linear yang pertama kali diperoleh. Sebuah kendala baru x ′ ≥ 0 ditambahkan sehingga titik D terbuang dari daerah layak dan jika dilakukan optimisasi kembali akan didapat penyelesaian optimum program linear yang baru, yakni titik F sehingga daerah layak yang baru adalah ABCGFE. Sebuah kendala baru kedua x ′′ ≥ 0 ditambahkan agar menghapus titik F dari daerah layak sehingga diperoleh daerah layak yang baru adalah ABCGHIE. Dalam PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26 m menyelesaik kan kembali masalah prrogram lineaar bilangan bulat akan ditemukan p penyelesaian n optimum bilangan b bulaat, yakni titiik H. G Gambar 3.1. Ilustrasi Penyyelesaian Masaalah Program Linear Bilanggan Bulat den ngan metode bidang b pemotoong Perbedaan metodde simpleks dual yang suudah dibahass pada bab sebelumnya d dengan masaalah program m linear bilaangan bulat adalah a pada elemen pivo otnya yaitu b bernilai -1. Perhatikan kemb bali pada bbab sebelum mnya mengeenai masalahh program l linear bilang gan bulat. Secara umum m masalah prrogram lineaar bilangan bulat yang b berpola mak ksimum dappat dinyatakaan dalam beentuk kanonnik dan benttuk matriks s sebagai berik kut : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27 1. Bentuk kanonik masalah program linear bilangan bulat : Maksimumkan : z = c1 x1 + c 2 x 2 + K + c n x n (3.1) dengan kendala-kendala : a 11 x1 + a 12 x 2 + K + a 1 n x n + x n +1 = b1 ⎫ a 21 x1 + a 22 x 2 + K + a 2 n x n + x n + 2 = b 2 ⎪⎪ ⎬ M O O M ⎪ a m 1 x1 + a m 2 x 2 + K + a mn x n + x n + m b m ⎪⎭ (3.2) x j ≥ 0, j = 1,2, K , n (3.3) dan x j bilangan bulat. 2. Bentuk matriks masalah program linear bilangan bulat : Maksimumkan : cx = z (3.4) dengan kendala-kendala : Ax ≤ b (3.5) x ≥ 0 dan komponen-komponen x adalah bilangan bulat. (3.6) dengan A = (aij ) matriks kendala berukuran m x n. Bentuk kanonik pada masalah program linear bilangan bulat disusun ke dalam bentuk seperti dibawah ini : Maksimumkan : z = (− c1 (− x1 ) ) + (− c 2 (− x 2 )) + K + (− c n (− x n )) (3.7) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28 dengan kendala-kendala : (− a11 (− x1 )) + (− a12 (− x 2 )) + K + (− a1n (− x n )) + x n +1 = b1 (− a 21 (− x1 )) + (− a 22 (− x 2 )) + K + (− a 2 n (− x n )) + x n+ 2 = b2 M O O M M M (− a m1 (− x1 )) + (− a m 2 (− x 2 )) + K + (− a mn (− x n )) + x n + m = bm (3.8) x j ≥ 0, j = 1,2, K , n dan x j bilangan bulat. Bentuk kanonik di atas dapat diubah ke dalam bentuk seperti dibawah ini : Maksimumkan : x0 = a 00 + a 01 (− x1 ) + a02 (− x 2 ) + K + a0n (− x n ) (3.9) ⎫ ⎪ ⎪ ⎬ ⎪ −1(− xn )⎪⎭ (3.10) dengan kendala-kendala : x1 = −1(− x1 ) x2 = M xn = −1(− x2 ) O xn+1 = an+1,0 + an+1,1 (− x1 ) + an+1,2 (− x2 ) + K+ an+1,n (− xn ) ⎫ ⎪ M O O O O M ⎬ xn+m = an+m,0 + an+m,1 (− x1 ) + an+m,2 (− x2 ) + K+ an+m,n (− xn )⎪⎭ (3.11) dengan x j ≥ 0, j = 1,2, K , n + m dan x j bilangan bulat untuk j = 0,1, K , n + m . Persamaan (3.10) merupakan persamaan kendala untuk variabel keputusan (original variables), yakni variabel awal pada masalah program linear bilangan bulat. Persamaan (3.11) merupakan persamaan kendala untuk kendala utama (original constraints) yang ada pada masalah program linear bilangan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29 bulat. Pada bentuk di atas, n dan m masing-masing menunjukkan banyaknya variabel keputusan dan variabel slack yang muncul dari kendala utama. Dengan membandingkan persamaan (3.7), (3.8), (3.10) dan (3.11) dapat didefinisikan x0 = z , a 00 = 0 , c j = − a 0 j , ( j = 1, K , n ), (i = 1,K, m ) , dan aij = a n +i , j (i = 1, K , m ; j = 1 = 1, K , n ) . bi = a n +i , 0 B. Penyelesaian Masalah Program Linear Bilangan Bulat Fraksional Dual Metode yang digunakan untuk mencari penyelesaian program linear bilangan bulat fraksional dual merupakan perluasan dari metode simpleks dual, yakni dengan menambah kendala baru pada masalah tersebut. Langkah-langkah masalah program linear bilangan bulat fraksional dual adalah sebagai berikut : 1. Mengubah bentuk baku menjadi bentuk kanonik seperti persamaan (3.2) 2. Menyusun tabel awal dari masalah program linear bilangan bulat. Pada persamaan (3.2) tabel awal tersebut disajikan sebagai berikut : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30 Tabel 3.1 Tabel Awal Program Linear Bilangan Bulat Fraktional Dual. 1 (− x1 ) K (− x j ) K (− xn ) x0 = a 00 a 01 K a0 j K a0n x1 = 0 −1 0 M xj = M K O L M xn = M M 0 M 0 K O L 0 M 0 M 0 0 O K M −1 M 0 x n +1 = a n +1,0 a n +1,1 K a n +1, j M xn+ m = M a n+ m,0 O M a n + m ,1 K M a n+ m, j O K K O K −1 a n +1,n M a n + m,n Keterangan : x0 = z , a 00 = 0 , c j = − a 0 j , ( j = 1, K, n ), bi = a n +i , 0 ( i = 1, K , m ), dan aij = a n +i , j (i = 1, K , m ; j = 1 = 1, K , n ) , xi ≥ 0 ( i = 1, K , n + m) . 3. Masalah program linear bilangan bulat ini diselesaikan dahulu sebagai masalah program linear, yakni dengan menggunakan metode simpleks dual. Dengan langkah-langkah sebagai berikut : Langkah 1: Memilih baris pivot, yakni dengan memilih baris v yang mempunyai nilai a v 0 paling minimum dengan a v 0 < 0 , v ≠ 0 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31 Langkah 2 : Memilih kolom pivot, yakni kolom dengan nilai rasio yang ⎧⎪ a 0 j ⎫⎪ paling minimum dan nilai rasio = min ⎨ ⎬ ⎪⎩ a vj ⎪⎭ Langkah 3 : Mengganti variabel nonbasis pada kolom pivot dengan variabel xv , yakni variabel pada baris pivot. Langkah 4 : Melakukan operasi kolom agar elemen-elemen baris xv pada kolom pivot bernilai -1 dan yang lain bernilai 0. Langkah 5 : Bila nilai a v 0 masih ada yang bernilai negatif maka kembali ke langkah 1. Jika sudah tidak ada lagi yang bernilai negatif maka langkah dihentikan dan penyelesaian masalah program linear bilangan bulat sudah optimum. 4. Menguji keoptimuman. Bila penyelesaian optimum yang diperoleh pada langkah sebelumnya adalah bilangan bulat maka masalah program linear bilangan bulat sudah selesai. Jika penyelesaian optimumnya belum berupa bilangan bulat maka langkah-langkah penyelesaian dilanjutkan lagi menggunakan metode bidang pemotong dengan menambahkan kendala bidang pemotong yang baru yang memuat variabel pengetat x n + m + k . Lalu kendala bidang pemotong yang baru ditambahkan pada tabel yang ditulis pada baris terakhir maka bentuk tabel akan menjadi : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32 Tabel 3.2. Tabel Dengan Bentuk Kendala Bidang Pemotong 1 (− x1 ) K (− x j ) K (− xn ) x0 = a 00 a 01 K a0 j K a0n x1 = 0 −1 0 M xj = M K O L M xn = M M 0 M 0 K O L 0 M 0 M 0 0 O K M −1 M 0 x n +1 = a n +1,0 a n +1,1 K a n +1, j M xn+m = M a n+ m,0 O M a n + m ,1 K M a n+ m, j xn+ m + k = a n+m+ k ,0 O K K O K −1 a n +1,n M a n + m,n a n + m+ k ,1 K a n + m+ k , j K a n + m + k ,n Dalam menentukan kendala bidang pemotong harus ditentukan dahulu baris sumber. Berikut ini akan dijelaskan bagaimana cara menentukan bentuk kendala bidang pemotong dan cara memilih baris sumber : a. Memilih baris sumber Cara memilih baris sumber adalah dengan memilih baris yang memuat variabel-variabel basis yang nilainya belum berupa bilangan bulat. Dalam hal ini variabel yang akan terpilih harus memberikan ketaksamaan yang kuat yaitu nilai dengan bilangan pecahan terbesar supaya dapat mempercepat pencapaian penyelesaian program linear bilangan bulat yang optimum. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33 Jika variabel basis xi pada persamaan ke-i bukan merupakan bilangan bulat maka variabel tersebut dapat dinyatakan sebagai : xi − ∑ aij (− x J ( j ) ) = ai 0 n (3.12) j =1 Keterangan : ai 0 bukan bernilai bilangan bulat aij dapat berbentuk bilangan bulat J adalah himpunan indeks variabel nonbasis J(j) adalah elemen j di dalam J x J ( j ) adalah variabel nonbasis j di dalam J Persamaan (3.12) dapat ditulis sebagai berikut xi = ai 0 + ∑ aij (− x J ( j ) ) n (3.13) j =1 Setiap persamaan seperti di atas dinyatakan sebagai baris sumber (source row). Misalkan : ai 0 = [ai 0 ] + f i dan [ ] aij = aij + f ij dengan : (3.14) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34 [ai 0 ] adalah bilangan bulat terbesar yang kurang dari atau sama dengan ai 0 , dan [a ] adalah bilangan bulat terbesar yang kurang dari atau sama dengan ij aij maka 0 < f i < 1 dan 0 ≤ f ij < 1 Ada dua cara untuk memilih baris sumber yaitu : 1. Baris dengan nilai f i 0 yang paling maksimum. ⎧ ⎫ ⎪ f ⎪ ⎪ ⎪ 2. Baris dengan nilai ⎨ n i 0 ⎬ yang paling maksimum. ⎪ ∑ f ij ⎪ ⎪⎩ j =1 ⎪⎭ Jika nilai f i 0 ⎧ ⎫ ⎪ f ⎪ ⎪ ⎪ atau ⎨ n i 0 ⎬ untuk setiap baris selalu sama maka dapat dipilih ⎪ ∑ f ij ⎪ ⎪⎩ j =1 ⎪⎭ sebarang baris untuk menjadi baris sumber. b. Menentukan bentuk kendala bidang pemotong Dari uraian pemilihan baris sumber, dengan persamaan (3.13) akan menjadi : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35 [ ] xi = [a i 0 ] + f i + ∑ ( a ij + f ij )(− x J ( j ) ) n j =1 [ ] = [a i 0 ] + f i + ∑ a ij (− x J ( j ) ) + ∑ f ij (− x J ( j ) ) n n j =1 j =1 atau [ ] f i + ∑ f ij (− x J ( j ) ) = xi − [ai 0 ] − ∑ aij (− x J ( j ) ) n n j =1 j =1 (3.15) Supaya nilai xi dan (− x J ( j ) ) adalah bilangan bulat, maka ruas kanan dari persamaan (3.15) harus bernilai bilangan bulat yang mengakibatkan ruas kiri persamaan (3.15) haruslah bernilai bilangan bulat. Karena (− x ( ) ) ≤ 0 untuk setiap nilai i dan J j f ij ≥ 0 dan j , maka ∑ f (− x ( ) ) ≤ 0 n j =1 dengan demikian J j ij f i + ∑ f ij (− x J ( j ) ) ≤ f i . n j =1 Karena f i < 1 maka f i + ∑ f ij (− x J ( j ) ) < 1 n j =1 atau f i < 1 − ∑ f ij (− x J ( j ) ) n j =1 (3.16) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36 Karena ruas kiri persamaan (3.15) harus bernilai bilangan bulat, maka berdasarkan persamaan (3.15), haruslah f i + ∑ f ij (− x J ( j ) ) ≤ 0 n j =1 Jika bentuk di atas ditambahkan dengan variabel pengetat x n + m + k dengan x n + m + k ≥ 0 bilangan bulat, maka didapat : f i + ∑ f ij (− x J ( j ) ) + x n + m + k = 0 n j =1 atau x n + m + k = −∑ f ij (− x J ( j ) ) − f i n (3.17) j =1 Persamaan (3.17) merupakan bagian pecahan (fractional cut) atau disebut juga pembatas sekunder. Jika pembatas sekunder ini sudah dimasukkan ke dalam tabel yang berada pada baris terakhir dalam tabel dan dilakukan operasi kolom maka tabel terakhir didapat (− x ( ) ) = 0 J j sehingga x n + m + k = f i , yang berarti tidak layak. Hal ini berarti pembatas sekunder yang baru tersebut tidak dipenuhi oleh penyelesaian yang diperoleh karena mengakibatkan nilai yang didapat belum berupa bilangan bulat sehingga untuk mengatasi ketidaklayakan ini dapat digunakan metode simpleks dual, yang pada dasarnya sama dengan memotong daerah layak ke arah penyelesaian optimum yang berupa bilangan bulat. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37 Dari penjelasan yang sudah dijabarkan di atas dan cara-cara memilih baris sumber serta menentukan pembatas sekunder, secara umum langkah pertama yang dilakukan dalam menyelesaikan masalah program linear bilangan bulat fraksional dual adalah mengubah masalah ke dalam bentuk kanonik dan menyusun tabel awal, menyelesaikan masalah program linear bilangan bulat dengan cara simpleks biasa dan dilanjutkan dengan langkah-langkah sebagai berikut : Langkah 1 : Memilih baris sumber x v dengan dua cara di bawah ini : 1. Baris dengan nilai f v 0 yang paling maksimum. ⎧ ⎫ ⎪ f ⎪ ⎪ ⎪ 2. Baris dengan nilai ⎨ n v ⎬ yang paling maksimum. ⎪ ∑ f vj ⎪ ⎪⎩ j =1 ⎪⎭ Langkah 2 : Menentukan bentuk kendala bidang pemotong yang baru, yakni pembatas sekunder seperti persamaan (3.17) x n + m + k = −∑ f vj (− x J ( j ) ) − f v n j =1 Langkah 3 : Tambahkan bentuk pembatas sekunder yang baru dalam tabel simpleks. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38 Langkah 4 : Mencari baris pivot dengan melihat nilai koefisien a v 0 yang bernilai negatif dan dipilih yang paling minimum Langkah 5 : Mencari kolom pivot dengan melihat niali R= a0 j a vj yang terkecil. Langkah 6 : Menggantikan variabel non basis pada kolom pivot dengan Variabel x v . Langkah 7 : Melakukan operasi kolom agar elemen-elemen baris xv pada kolom pivot bernilai -1 dan yang lainnya bernilai 0. Langkah 8 : Jika masih ada nilai xv yang nilainya belum berupa bilangan bulat maka dilanjutkan ke Langkah 1. Jika sudah tidak ada maka proses dihentikan dan diperoleh tabel optimum. Masalah program linear bilangan bulat fraksional dual tidak membedakan antara variabel keputusan dan variabel pengetat yakni bahwa semua variabel harus berupa bilangan bulat. Adanya koefisien yang tidak bulat dalam kendala tidak PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39 memungkinkan untuk variabel pengetat berupa bilangan bulat. Dalam hal ini, masalah program linear bilangan bulat fraksional dual dapat menyatakan bahwa tidak terdapat penyelesaian layak, sekalipun masalah tersebut mempunyai penyelesaian layak yang bernilai bilangan bulat dalam bentuk bukan variabel pengetat. Berikut akan diberikan contoh penyelesaian masalah program linear bilangan bulat menggunakan metode bidang pemotong Contoh 3.1 Selesaikan masalah program linear bilangan bulat berikut: Maksimumkan: z = −4 x1 − 5 x 2 Dengan kendala: − x1 − 4 x 2 ≤ −5 − 3 x1 − 2 x 2 ≤ −7 x1 , x 2 ≥ 0 dan Penyelesaian : Masalah program linear di muka dapat dibuat ke bentuk kanonik sebagai berikut : Maksimumkan: z = −4 x1 − 5 x 2 Dengan kendala: − x1 − 4 x 2 + x3 − 3 x1 − 2 x 2 dan x1 , x 2 , x3 , x 4 ≥ 0 = −5 + x 4 = −7 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40 1. Menyusun tabel awal simpleks. Tabel 3.3. Tabel Awal Pada Contoh Masalah Program Linear Bilangan Bulat 1 (− x1 ) (− x 2 ) x0 0 4 5 x1 0 0 −5 −7 −1 0 0 −1 −1 −4 −3 −2 x2 x3 x4 2. Menyelesaikan dengan metode simpleks dual. ITERASI 1 Langkah 1 : Memilih baris pivot Dari tabel awal diperoleh nilai a30 = −5 dan a 40 = −7 maka nilai min {a30 , a 40 } = min {− 5,−7} = −7 . Jadi baris empat sebagai baris pivot. Langkah 2 : Memilih kolom pivot Dengan memilih nilai rasio terkecil yakni ⎧⎪ a a R4 = min ⎨ 01 , 02 ⎪⎩ a 41 a 42 ⎫⎪ ⎬ ⎪⎭ ⎧⎪ 4 5 ⎫⎪ 4 = min ⎨ , ⎬ = . Jadi kolom pertama akan terpilih sebagai kolom ⎪⎩ − 3 − 2 ⎪⎭ 3 pivot. Langkah 3 : Menggantikan variabel x1 dengan variabel x 4 Langkah 4 : Melakukan operasi kolom, sehingga diperoleh tabel baru berikut PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41 Tabel 3.4. Tabel Setelah Operasi kolom Pada Iterasi 1 x0 − (− x4 ) (− x 2 ) 28 3 4 3 7 3 1 3 2 3 7 3 x1 x2 x3 1 0 − x4 8 3 − 0 − 1 3 -1 − 10 3 0 -1 0 8 Langkah 5 : Karena masih ada nilai a30 = − maka kembali ke Langkah 1 3 ITERASI 2 Langkah 1 : Memilih baris pivot 8⎫ 8 ⎧7 Dari tabel diatas diperoleh nilai min {a10 , a 30 } = min = ⎨ , − ⎬ = − 3⎭ 3 ⎩3 jadi baris ketiga sebagai bari pivot. Langkah 2 : Memilih kolom pivot ⎧⎪ a a ⎫⎪ Dengan memilih nilai rasio terkecil yakni R4 = min ⎨ 01 , 02 ⎬ =min ⎪⎩ a31 a32 ⎪⎭ ⎧⎪ 4 3 7 3 ⎫⎪ 7 , maka kolom kedua akan terpilih sebagai kolom ⎨ ⎬= ⎪⎩ − 1 3 − 10 3 ⎭⎪ 3 pivot. Langkah 3 : Menggantikan variabel x 2 dengan variabel x3 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42 Langkah 4 : Melakukan operasi kolom, sehingga diperoleh tabel baru sebagai berikut Tabel 3.5. Tabel Setelah Operasi kolom Pada Iterasi 2 1 x0 − (− x4 ) (− x3 ) 112 10 11 10 7 10 4 10 2 10 18 10 − x2 8 10 1 10 − x3 0 0 -1 x1 3 10 0 -1 0 x4 Langkah 5 : Karena sudah tidak ada a v 0 < 0 maka proses dihentikan. dengan nilai x1 = 18 8 dan x 2 = 10 10 3. Menguji keoptimuman. Dari iterasi kedua telah dapatkan penyelesaian optimum dari masalah program linear, yaitu x1 = 18 8 dan x 2 = , tetapi penyelesaian tersebut belum 10 10 bulat maka penyelesaian dilanjutkan dengan menggunakan metode bidang pemotong. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43 ITERASI 1 Langkah 1 : Memilih baris sumber Untuk x1 = 18 ⎡18 ⎤ 18 8 18 diperoleh f 10 = a10 − [a10 ] = −⎢ ⎥= −1 = 10 ⎣10 ⎦ 10 10 10 Untuk x 2 = 8 diperoleh f 10 Karena nilai f1 = f 2 = 20 = a 20 − [a 20 ] = 8 ⎡8⎤ 8 8 −⎢ ⎥= −0 = 10 ⎣10 ⎦ 10 10 8 maka tidak ada informasi untuk memilih baris 10 sumber, selanjutnya digunakan cara yang kedua. • Untuk baris pertama dapat dinyatakan sebagai berikut : 2 (− x3 ) − 4 (− x4 ) ≥ 18 10 10 10 Sehingga f12 = a12 − [a12 ] = − • f11 = a11 − [a11 ] = diperoleh 2 ⎡2⎤ 2 2 −⎢ ⎥ = −0 = 10 ⎣10 ⎦ 10 10 dan 4 ⎡ 4⎤ 4 6 − ⎢− ⎥ = − − (− 1) = 10 ⎣ 10 ⎦ 10 10 Untuk baris kedua dapat dinyatakan sebagai berikut : − Sehingga diperoleh f 22 = a 22 − [a 22 ] = 3 (− x3 ) + 1 (− x4 ) ≥ 8 10 10 10 f 21 = a21 − [a21] = − 3 ⎡ 3⎤ 3 7 − ⎢− ⎥ = − − (−1) = dan 10 ⎣ 10⎦ 10 10 1 ⎡1⎤ 1 1 −⎢ ⎥ = − (0) = 10 ⎣10 ⎦ 10 10 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44 Dengan demikian, 8 ⎫ ⎧ 8 ⎪⎪ ⎪⎪ 10 ⎧ f10 f 20 ⎫ maks ⎨ , 10 ⎬ , ⎬ = maks ⎨ 2 ⎩ f 11 + f12 f 21 + f 22 ⎭ ⎪ + 6 7 + 1⎪ ⎪⎩ 10 10 10 10 ⎪⎭ ⎧8 8⎫ ⎪⎪ ⎪⎪ = maks ⎨ 10 , 10 ⎬ ⎪8 8⎪ ⎪⎩ 10 10 ⎪⎭ =maks {1,1} =1 Dengan cara yang kedua, nilai maksimum dari rasio tersebut sama, yaitu 1, maka dari kedua persamaan tersebut diambil salah satu. Disini yang akan dipilih sebagai baris sumber adalah persamaan untuk x1 . Langkah 2 : Menentukan bentuk kendala baru, yakni pembatas sekunder Perhatikan kembali pertidaksamaan x1 : Dari Langkah 1 diperoleh f11 = 2 (− x3 ) − 4 (− x4 ) ≥ 18 10 10 10 2 6 8 , f12 = dan f 10 = 10 10 10 Maka persamaan pembatas sekunder yang baru adalah x5 = − 2 (− x3 ) − 6 (− x 4 ) − 8 ≥ 0 10 10 10 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45 Langkah 3 : Tambahkan bentuk pembatas sekunder yang baru dalam tabel simpleks. Tabel 3.6. Tabel Dengan Bentuk Pembatas Sekunder Pada Iterasi 1 (− x 4 ) (− x3 ) 1 x0 − 112 10 11 10 7 10 4 10 2 10 18 10 − x2 8 10 1 10 − x3 0 0 -1 x4 0 -1 0 8 10 − x1 x5 − 6 10 3 10 − 2 10 Langkah 4 :Mencari baris pivot Dari tabel koefisien a50 = − 8 pada baris kelima, maka baris kelima 10 menjadi baris pivot Langkah 5 : Mencari kolom pivot Dari tabel pada kolom pertama dilihat nilai R terkecil, yakni 11 a 01 10 = 11 = a51 6 −6 10 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46 Langkah 6 : Menggantikan variabel nonbasis x 4 pada kolom pivot dengan variabel x5 . Langkah 7 : Melakukan operasi kolom Tabel 3.7. Tabel Setelah Dilakukan Operasi kolom Pada Iterasi 1 1 x0 − (− x5 ) (− x3 ) 76 6 11 6 2 6 4 6 2 6 14 6 − x2 4 6 1 6 x3 0 0 x4 8 6 − 0 -1 x1 x5 10 6 − 2 6 -1 2 6 0 Langkah 8 : Karena nilai x1 = 14 4 dan x 2 = yang nilainya belum berupa bilangan 6 6 bulat maka di lanjutkan ke Langkah 1. ITERASI 2 Langkah 1 : Memilih baris sumber Untuk x1 = 14 2 14 ⎡14 ⎤ 14 −⎢ ⎥= diperoleh f 10 = −2= 6 6 6 ⎣6⎦ 6 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47 Untuk x 2 = 4 diperoleh f 6 20 = 4 4 ⎡4⎤ 4 − ⎢ ⎥ = −0 = 6 6 ⎣6⎦ 6 ⎧2 4⎫ 4 f = maks { f10 , f 20 } = maks ⎨ , ⎬ = ⎩6 6⎭ 6 Jadi baris kedua pada persamaan x 2 terpilih sebagai baris sumber Langkah 2 : Menentukan bentuk kendala baru, yakni pembatas sekunder Pada tabel untuk baris kedua dapat dinyatakan sebagai berikut − Sehingga f 22 diperoleh = a 22 − [a 22 ] = − 2 (− x3 ) + 1 (− x5 ) ≥ 4 6 6 6 f 21 = a 21 − [a 22 ] = 1 1 ⎡1⎤ 1 − ⎢ ⎥ = −0 = 6 6 ⎣6⎦ 6 dan 4 2 ⎡ 2⎤ 2 − ⎢− ⎥ = − − (− 1) = 6 6 ⎣ 6⎦ 6 Dari langkah sebelumnya didapat f 20 = 4 6 Maka persamaan pembatas sekunder yang baru adalah x6 = − 4 (− x3 ) − 1 (− x5 ) − 4 ≥ 0 6 6 6 Langkah 3 : Tambahkan bentuk pembatas sekunder yang baru dalam tabel simpleks. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48 Tabel 3.8. Tabel Dengan Bentuk Pembatas Sekunder Pada Iterasi 2 1 x0 (− x5 ) (− x3 ) 76 6 − 11 6 2 6 4 6 2 6 14 6 − x2 4 6 1 6 x3 0 0 x4 8 6 − 0 -1 x1 x5 x6 − 4 6 − − -1 10 6 1 6 2 6 2 6 0 − 4 6 Langkah 4 :Mencari baris pivot Dari tabel, koefisien a 60 = − 4 pada baris keenam, maka baris keenam 6 dipilih sebagai baris pivot. Langkah 5 : Mencari kolom pivot Dari tabel, pada kolom kedua dilihat nilai R terkecil, yakni c02 26 2 = = a62 −4 6 4 Langkah 6 : Menggantikan variabel non basis pada kolom pivot dengan variabel x6 . PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49 Langkah 7 : Melakukan operasi kolom Tabel 3.9. Tabel Setelah Dilakukan Operasi kolom Pada Iterasi 2 1 (− x5 ) (− x6 ) x0 − 13 x1 2 x2 1 1 4 − 2 4 x3 1 1 4 − 6 4 7 4 2 4 x4 7 4 2 4 3 4 2 4 − 1 − x5 0 -1 0 x6 0 0 -1 Langkah 8 : karena nilai a v 0 sudah berupa bilangan bulat maka tabel sudah optimum dengan nilai ( x1 , x 2 ) = (2,1) dengn nilai optimum= -13 Pada masalah program linear bilangan bulat dalam bentuk dualnya dapat diurakan bahwa kendala awal dengan variabel awal x1 dan x 2 adalah − x1 − 4 x 2 ≤ −5 atau x3 = −5 + x1 + 4 x 2 − 3 x1 − 2 x 2 ≤ −7 atau x 4 = −7 + 3 x1 + 2 x 2 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50 Kendala bidang pemotong yang didapat pada perhitungan diatas adalah (i) x5 = − 8 2 6 − (− x3 ) − (− x 4 ) 10 10 10 x5 = − 8 2 6 + x3 + x 4 10 10 10 x5 = − 6 8 2 + (− 5 + x1 + 4 x 2 ) + (− 7 + 3 x1 + 2 x 2 ) 10 10 10 x5 = − 8 10 2 8 42 18 12 − + x1 + x 2 − + x1 + x 2 10 10 10 10 10 10 10 x5 = −6 + 2 x1 + 2 x 2 4 4 1 (ii) x6 = − − (− x3 ) − (− x5 ) 6 6 6 4 4 1 x 6 = − + x3 + x5 6 6 6 1 4 4 x6 = − + (− 5 + x1 + 4 x 2 ) + (− 6 + 2 x1 + 2 x 2 ) 6 6 6 4 20 4 16 6 2 2 x6 = − − + x1 + x 2 − + x1 + x 2 6 6 6 6 6 6 6 x6 = −5 + x1 + 3 x 2 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51 Dari kendala awal dan kendala tambahan dapat digambarkan dengan grafik. x2 4• 3 • 2• • 1• • 1 • 2 x • 4 3 x5 • 4 x1 • 5 x6 x 3 Gambar 3.2. Penyelesaian Masalah Program Linear Bilangan Bulat Fraksional Dual Sifat tambahan tentang pembatas sekunder, yakni tabel yang sudah optimum bila diselesaikan kembali dengan metode bidang pemotong yang menggunakan metode simpleks dual akan diperoleh tabel optimum yang bernilai bilangan bulat, yakni semua nilai-nilai di dalam tabel akan berupa bilangan bulat tanpa mengubah nilai optimum dari penyelesaian optimum tersebut. Akan diperlihatkan bahwa suatu pembatas sekunder sama dengan pertaksamaan dalam variabel nonbasis. Diasumsikan tabel awal berpa bilangan bulat. Teorema 3.1 Setiap pembatas sekunder pada persamaan (3.17) akan menjadi pertaksamaan yang semua variabelnya bernilai bilangan bulat bila dinyatakan dalam suku-suku yang memuat variabel nonbasis pada iterasi sebelumnya. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52 Bukti : Misalkan baris untuk persamaan pertama menjadi xv = av 0 + ∑ avj (− x J ( j ) ) n j =1 maka pembatas sekunder yang dihasilkan adalah sebagai berikut x n + m +1 = − f v 0 − ∑ f vj (− x J ( j ) ) n j =1 [ ] [ ] dengan f vj = a vj − a vj atau − f vj = a vj − a vj , j = 0,1, K, n maka x n + m +1 = − f v 0 − ∑ f vj (− x J ( j ) ) n j =1 [ ] = ([a v 0 ] − a v 0 ) − ∑ ( a vj − a vj )(− x J ( j ) ) n j =1 n n ⎧ ⎫ ⎧ ⎫ = ⎨[av 0 ] + ∑ avj (− x J ( j ) )⎬ − ⎨av 0 + ∑ avj (− x J ( j ) )⎬ j =1 j =1 ⎩ ⎭ ⎩ ⎭ [ ] Sekarang setiap variabel nonbasis x J ( j ) adalah suatu variabel nonbasis ataupun variabel basis pada masalah awal. Pada kasus sebelumnya diketahui x J ( j ) = x g untuk g = 1,2, K, n suatu dan pada kasus selanjutnya persamaan x J ( j ) = a n +i , 0 + ∑ a n +i , j (− x j ) untuk suatu i = 1,2,K, m . Meskipun begitu koefisien n j =1 pada persamaan terakhir semuanya berupa bilangan bulat karena data awal dari masalah program linear bilangan bulat berupa bilangan bulat maka koefisiennya juga akan berupa bilangan bulat. Oleh karena itu x J ( j ) dapat ditulis sebagai suatu kombinasi linear dari x1 , K , x n . Jadi suku pada ruas kanan dalam tanda kurung pertama adalah suatu bilangan bulat bila dituliskan dalam suku-suku x1 , K , x n . PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53 Suku pada ruas kanan dalam tanda kurung kedua sama dengan xv . Variabel ini juga sebuah variabel nonbasis maupun sebagai kombinasi linear dari variabel nonbasis x1 , K , x n . Oleh karena itu x n + m +1 = − f v 0 − ∑ f vj (− x J ( j ) ) ≥ 0 menjadi pertaksamaan n j =1 yang berupa bilangan bulat bila dinyatakan dalam suku-suku dari variabel nonbasis.■ Akan diperlihatkan dari contoh (3.1) bahwa masalah program linear bilangan bulat yang sudah diperoleh penyelesaian optimum dapat dikerjakan kembali dengan metode bidang pemotong yang menggunakan metode simpleks dual sehingga diperoleh tabel optimum yang semua nilai-nilai dalam tabel berupa bilangan bulat tanpa mengubah nilai optimum dari penyelesaian optimum dari tabel (3.9). Dari iterasi kedua tabel (3.9) sudah ditemukan penyelesaian optimum. Maka contoh soal (3.1) diselesaikan kembali dengan uraian sebagai berikut : ITERASI 1 Langkah 1 : Memilih baris sumber Baris sumber yang akan diambil adalah baris ke-nol karena nilai a 00 = −13 dan memiliki nilai f 00 = 0 Langkah 2 : Menentukan bentuk kendala baru, yakni pembatas sekunder Pada tabel sebelumnya, untuk baris ke-nol dapat dinyatakan sebagai 7 (− x5 ) + 2 (− x6 ) ≥ −13 4 4 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54 3 2 7 ⎡7⎤ 7 2 ⎡2⎤ 2 − ⎢ ⎥ = − (1) = , f 02 = − ⎢ ⎥ = − 0 = 4 4 4 ⎣4⎦ 4 4 ⎣4⎦ 4 = 0 . Maka persamaan pembatas sekunder yang baru adalah Sehingga diperoleh f 01 = dan f 00 x7 = 0 − 7 (− x5 ) − 2 (− x6 ) ≥ 0 4 4 Langkah 3 : Tambahkan bentuk pembatas sekunder yang baru dalam tabel simpleks. Tabel 3.10. Tabel Dengan Bentuk Pembatas Sekunder Pada Iterasi 3 1 (− x5 ) (− x6 ) x0 − 13 x1 2 x2 1 1 4 − 2 4 x3 1 1 4 − 6 4 7 4 2 4 x4 7 4 2 4 3 4 2 4 − 1 − x5 0 -1 0 x6 0 0 -1 x7 0 3 4 − Langkah 4 :Mencari baris pivot − 2 4 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55 Dari tabel koefisien a 70 = 0 pada baris ketujuh, maka baris ketujuh dipilih sebagai baris pivot. Langkah 5 : Mencari kolom pivot Dari tabel, pada kolom kedua dilihat nilai R terkecil yakni c02 24 = =1 a72 −2 4 Langkah 6 : Menggantikan variabel non basis pada kolom pivot dengan variabel x7 . Langkah 7 : Melakukan operasi kolom Tabel 3.11. Tabel Setelah Dilakukan Operasi kolom Pada Iterasi 3 1 x0 − 13 x1 2 x2 x3 x4 (− x5 ) (− x7 ) 1 1 3 2 1 1 1 -1 1 5 2 −3 5 2 1 1 x5 0 x6 x7 − − -1 0 0 3 2 -2 0 0 -1 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 56 Langkah 8 : karena belum semua nilai berupa bilangan bulat maka kembali ke Langkah 1 ITERASI 2 Langkah 1 : Memilih baris sumber Sekarang yang diambil untuk baris sumber adalah baris pertama yakni a10 = 2 dan memiliki nilai f10 = 0 Langkah 2 : Menentukan bentuk kendala baru, yakni pembatas sekunder Pada tabel sebelumnya, untuk baris pertama dapat dinyatakan sebagai − 3 (− x5 ) + 1(− x7 ) ≥ 2 2 sehingga diperoleh f 01 = − 3 ⎡ 3⎤ 3 1 − ⎢− ⎥ = − − (− 2 ) = dan f 02 = 0 dengan 2 ⎣ 2⎦ 2 2 f 00 = 0 Maka persamaan pembatas sekunder yang baru adalah x8 = 0 − 1 (− x5 ) + 0(− x6 ) ≥ 0 2 Langkah 3 : Tambahkan bentuk pembatas sekunder yang baru dalam tabel simpleks. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 57 Tabel 3.12. Tabel Dengan Bentuk Pembatas Sekunder Pada Iterasi 4 1 x0 − 13 x1 2 x2 x3 x4 (− x5 ) (− x7 ) 1 1 3 2 1 1 1 -1 1 5 2 −3 5 2 1 1 x5 0 x6 − − -1 0 0 3 2 -2 x7 0 0 -1 x8 0 − 1 2 0 Langkah 4 :Mencari baris pivot Dari tabel, koefisien a80 = 0 pada baris kedelapan, maka baris kedelapan dipilih sebagai baris pivot. Langkah 5 : Mencari kolom pivot Dari tabel, pada kolom kesatu dilihat nilai R terkecil yakni c01 1 = =2 a81 −1 2 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 58 Langkah 6 : Variabel x8 akan menggantikan variabel non basis pada kolom pivot. Langkah 7 : Melakukan operasi kolom Tabel 3.13. Hasil setelah dilakukan operasi kolom pada iterasi 4 1 x0 − 13 x1 (− x8 ) (− x7 ) 2 1 2 -3 1 x2 1 2 -1 x3 1 5 −3 x4 1 -5 1 x5 0 -2 0 x6 0 3 -2 x7 0 0 -1 x8 0 -1 0 Langkah 8 : karena nilai-nilainya dalam tabel sudah berupa bilangan bulat, maka telah diperoleh penyelesaian optimum masalah program linear bilangan bulat fraksional dual dengan nilai , = (2,1) dengan nilai optimum = -13 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 59 Program linear bilangan bulat fraksional dual memiliki banyak kelemahan. Dalam menyelesaikan masalah program linear bilangan bulat, perhitungan dilakukan dalam dua tahap yang sangat rumit, yaitu menggunakan metode simpleks dual. Setelah ditemukan penyelesaian optimum harus dilihat dahulu apakah sudah memenuhi penyelesaian optimum bilangan bulat atau belum. Jika belum berupa bilangan bulat maka tabel harus diselesaikan kembali menggunakan metode bidang pemotong sampai ditemukan penyelesaian optimum bilangan bulat, yakni nilai variabelnya berupa bilangan bulat. Lalu pada tahun 1960 Ralph Gomory memperbaiki metode bidang pemotong tersebut, yakni menjadi masalah program linear bilangan bulat dual. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 60 BAB IV PROGRAM LINEAR BILANGAN BULAT DUAL A. Masalah Program linear Bilangan Bulat Dual Dengan Metode Bidang Pemotong Untuk mencari penyelesaian pada masalah program linear bilangan bulat akan digunakan metode bidang pemotong, yakni dengan menambahkan kendala bidang pemotong. Berikut akan diuraikan bagaimana cara menentukan bentuk kendala bidang pemotong. Jika variabel basis xi pada sembarang persamaan ke-i yang merupakan bilangan bulat maka variabel tersebut dapat dinyatakan sebagai : xi = ai 0 + ai1 (− x1 ) + ai 2 (− x 2 ) + K + ain (− x n ) atau xi = ai 0 + ∑ aij (− x J ( j ) ) n (4.1) j =1 dengan J ( j ) adalah elemen ke j di dalam J =(1,2,…,n), dan ai 0 < 0 maka baris tersebut disebut sebagai baris sumber. Jika tidak ada maka tabel simpleks sudah optimum. Misalkan a sembarang bilangan dan λ adalah sebuah bilangan positif. Bentuk f = ⎡a⎤ −⎢ ⎥ λ ⎣λ ⎦ a (4.2) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 61 a ⎡a⎤ dengan ⎢ ⎥ adalah bilangan bulat terbesar yang kurang dari atau sama dengan λ ⎣λ ⎦ maka 0 ≤ f < 1 . Didefinisikan r = λf maka diperoleh r λ = ⎡a⎤ ⎡a⎤ − ⎢ ⎥ atau a = ⎢ ⎥ λ + r . λ ⎣λ ⎦ ⎣λ ⎦ a (4.3) Karena 0 ≤ f < 1 dan λ > 0 , maka 0 ≤ λf < λ atau 0 ≤ r < λ . Dari persamaan (4.3) maka koefisien pada persamaan (4.1) dapat ditulis sebagai ⎡ aij ⎤ aij = ⎢ ⎥ λ + rij ⎣λ⎦ ( j = 0,1,...n ) ⎡1⎤ 1 = ⎢ ⎥λ + r ⎣λ ⎦ dan (4.4) (4.5) dengan λ > 0, 0 ≤ rij < λ dan 0 ≤ r < λ . Substitusikan persamaan (4.4) dan (4.5) ke dalam persamaan (4.1) sehingga diperoleh n ⎛ a ⎞ ⎡ ⎤ ⎡ ai 0 ⎤ ⎡1⎤ ⎜ ⎢ ij ⎥ λ + rij ⎟(− x J ( j ) ) + = λ x rx λ + r + ∑ i0 ⎢λ ⎥ ⎢⎣ λ ⎥⎦ ⎜ ⎟ ⎣ ⎦ j =1 ⎝ ⎣ λ ⎦ ⎠ n ⎛ a ⎞ ⎡ ij ⎤ ⎡a ⎤ = ⎢ i 0 ⎥ λ + ri 0 + ∑ ⎜⎜ ⎢ ⎥ λ (− x J ( j ) ) + rij (− x J ( j ) )⎟⎟ ⎣λ ⎦ j =1 ⎝ ⎣ λ ⎦ ⎠ n n ⎡ aij ⎤ ⎡a ⎤ = ⎢ i 0 ⎥ λ + ri 0 + ∑ ⎢ ⎥ λ (− x J ( j ) ) + ∑ rij (− x J ( j ) ) ⎣λ ⎦ j =1 ⎣ λ ⎦ j =1 atau n ⎡ aij ⎤ ⎡ ai 0 ⎤ ⎡1⎤ r x rx r λ + = + + ∑ ∑ ij J ( j ) i0 ⎢ ⎥ λ (− x J ( j ) ) + ⎢ ⎥ λ (− x) ⎢λ ⎥ ⎣λ ⎦ ⎣ ⎦ j =1 j =1 ⎣ λ ⎦ n n ∑r x j =1 ij J ( j) ⎧⎪⎡ a ⎤ n ⎡ aij ⎤ ⎫⎪ ⎡1⎤ + rx = ri 0 + λ ⎨⎢ i 0 ⎥ + ∑ ⎢ ⎥ (− x J ( j ) ) + ⎢ ⎥ (− x)⎬ ⎪⎩⎣ λ ⎦ j =1 ⎣ λ ⎦ ⎪⎭ ⎣λ ⎦ (4.6) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 62 Persamaan (4.6) dapat ditulis n ∑r x j =1 ij J ( j) + r x = ri 0 + λ x ′ (4.7) dengan ⎡a ⎤ n ⎡a j ⎤ ⎡1⎤ x' = ⎢ 0 ⎥ + ∑ ⎢ ⎥ (− x J ( j ) ) + ⎢ ⎥ (− x ) ⎣λ ⎦ ⎣ λ ⎦ j =1 ⎣ λ ⎦ (4.8) Teorema 4.1 : Untuk sembarang penyelesaian yang berupa bilangan bulat yang memenuhi persamaan (4.1) dan persamaan (4.7), maka x' haruslah sebuah bilangan bulat tak negatif. Bukti : x' bilangan bulat karena semua koefisien dalam (4.8) adalah bilangan bulat. Selanjutnya akan ditunjukan x' adalah tak negatif. Untuk sembarang penyelesaian layak maka ruas kiri persamaan (4.7) nilainya tak negatif. Andaikan x ' adalah bilangan bulat yang negatif. Karena ri 0 < λ maka ruas kanan pesamaan (4.7) yakni ri 0 + λ x ′ adalah negatif. Hal ini kontradiksi dengan pernyataan bahwa penyelesaian layak pada ruas kiri persamaan (4.7) nilainya tak negatif dengan demikian x' adalah bilangan bulat yang tak negatif PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 63 Jika λ > 1, maka ⎡1⎤ < 1 sehingga ⎢ ⎥ = 0 . Bila nilai tersebut dimasukan pada λ ⎣λ ⎦ 1 persamaan (4.8) akan didapat ⎡ a ⎤ n ⎡ aij ⎤ x' = ⎢ i 0 ⎥ + ∑ ⎢ ⎥ (− x J ( j ) ) ≥ 0 ⎣ λ ⎦ j =1 ⎣ λ ⎦ ⎡a ⎤ Karena ai 0 < 0 berarti ⎢ i 0 ⎥ < 0 . Tambahkan persamaan (4.9) ⎣λ ⎦ (4.9) pada tabel simpleks dan dapat dianggap sebagai baris sumber. Untuk λ yang cukup besar maka elemen pivot pada persamaan (4.9) yakni ai 0 ⎡ ai 0 ⎤ ⎢ λ ⎥ = −1 dengan − 1 ≤ λ < 0 . ⎣ ⎦ Metode yang digunakan dalam masalah program linear bilangan bulat dual hampir sama dengan yang digunakan dalam masalah program linear bilangan bulat fraksional dual. Prinsipnya adalah menggunakan metode simpleks dual lexicographic, yakni sebuah metode simpleks dual dengan menggunakan aturan lexicographic. Aturan lexicographic merupakan salah satu prosedur penyelesaian dalam masalah degenerasi, yakni iterasi-iterasinya tidak berulang dan banyaknya basis layak adalah berhingga, serta tidak ada basis yang berulang. Dengan demikian banyaknya iterasi pada metode simpleks adalah berhingga. Dalam aturan ini dibentuk kolom-kolom tabel yang positif secara lexicographic. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 64 Definisi 4.1 Positif secara lexicographic Sebuah vektor v adalah positif secara lexicographic jika v ≠ 0 dan elemen tak nol pertama dari v adalah positif dan sebaliknya disebut minimum secara lexicographic. Berikut ini akan diberikan contoh positif secara lexicographic Contoh 4.1 Misalkan tedapat vektor v 1 = (0 0 4 10) v 2 = (1 − 3 0 − 5) v 3 = (0 3 0 1) v 4 = (0 − 1 10 20) Maka v 1 , v 2 dan v 3 adalah positif secara lexicographic, sedangkan v 4 bukan positif secara lexicographic melainkan minimum secara lexicographic. Langkah-langkah metode bidang pemotong pada masalah program linear bilangan bulat dual dengan menggunakan metode simpleks dual adalah sebagai berikut : 1. Mengubah bentuk baku ke dalam bentuk kanonik pada masalah program linear bilangan bulat. 2. Dimulai dengan menyusun tabel awal simpleks untuk bilangan bulat yang berisi penyelesaian layak dual lexicographic. Tabel awal tersebut disajikan sebagai berikut : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 65 Tabel 4.1. Tabel Awal Program Linear Bilangan Bulat Kolom → α0 Variabel 1 α1 K αn (− x1 ) K (− xn ) ↓ x0 = x1 = M xn = x n +1 = M x n +m = a 00 0 M 0 a n +1, 0 a 01 K −1 K M O 0 K a n +1,1 K M M a n + m ,0 a n + m ,1 O K a0 n 0 M −1 a n +1,n M a n + m ,n Keterangan : ⎛ a0 j ⎞ ⎜ ⎟ α j : komponen n + m + 1 pertama dalam kolom ke – j, yakni α j = ⎜ M ⎟. ⎜ ⎟ ⎝ a n+ m, j ⎠ 3. Memilih baris sumber yang tidak layak v, yakni yang memenuhi a v 0 < 0 , v ≠ 0. Jika tidak ada maka penyelesaian masalah program linear bilangan bulat sudah optimum, dengan demikian langkah dihentikan. Jika ada baris yang tidak layak v maka dilanjutkan ke Langkah 3. 4. Tandai kolom pivot α p ( p = 1,K, n ) yang terkecil secara lexicographic diantara kolom-kolom yang mempunyai a vj < 0 dan elemen tak nol yang pertama adalah negatif. Jika tidak ada, yakni a vj ≥ 0 ,untuk j = 1,K, n , maka tidak ada penyelesaian layaknya. Jika ada maka dilanjutkan ke langkah berikutnya. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 66 Sebelum menentukan bentuk kendala bidang pemotong harus ditemukan sebuah λ yang diperoleh dari baris sumber dan kolom pivot. Jika koefisien baris sumber ditunjukkan dengan b j ( j = 0,1,K, n ) , maka kolom pivot α p dalam metode simpleks dual lexicographic memenuhi αp − bp L αj p−b (4.10) j setiap j (j ≠ 0) dengan b j < 0 untuk setiap iterasi pada masalah program linear bilangan bulat. Dengan b p adalah koefisien kolom α p pada baris v, yakni ⎡ aij ⎤ b p = −1 dan koefisien x pada baris v kolom ke-j adalah ⎢ ⎥ ⎣λ⎦ maka ⎡ aij ⎤ b j = ⎢ ⎥ . Dengan demikian dari persamaan (4.10), kolom pivot haruslah ⎣λ ⎦ memenuhi L αp p αj (4.11) ⎡ aij ⎤ −⎢ ⎥ ⎣λ⎦ ⎡ a ij ⎤ ⎡ aij ⎤ untuk setiap j (j ≠ 0) dengan ⎢ ⎥ < 0 . Karena − ⎢ ⎥ adalah bilangan bulat ⎣λ⎦ ⎣λ⎦ positif maka didapat L αp p αj ⎡ aij ⎤ −⎢ ⎥ ⎣λ⎦ L pα j (4.12) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 67 ⎡ aij ⎤ Karena λ>0, maka ⎢ ⎥ < 0 jika hanya jika a ij < 0 sehingga kolom pivot ⎣λ⎦ adalah kolom terkecil secara lexicographic yang memuat sebuah elemen negatif dalam baris sumber. Misalkan u p = 1 dan u j ( j ≠ p ) adalah bilangan bulat terbesar sehingga L αp p αj uj Karena u j adalah bilangan bulat terbesar, persamaan (4.13) (4.13) menunjukkan bahwa ⎡ aij ⎤ − ⎢ ⎥ ≤ uj ⎣λ⎦ (4.14) Nilai positif terkecil λ yang memenuhi (4.14) adalah λij = − aij uj (4.15) Maka untuk menjamin persamaan (4.11), atau dengan kata lain untuk mempertahankan kolom positif secara lexicographic α j ( j = 1,K, n ) , maka ⎧⎪ − aij ⎫⎪ haruslah memiliki λ ≥ maks ⎨λij = ⎬. u j ⎪⎭ ⎪⎩ 5. Tentukan kendala bidang pemotong yang merupakan pertidaksamaan bilangan bulat dari baris v, yakni PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 68 ⎡ a ⎤ n ⎡ aij ⎤ xv = ⎢ i 0 ⎥ + ∑ ⎢ ⎥ (− x J ( j ) ) ≥ 0 ⎣ λ ⎦ j =1 ⎣ λ ⎦ Tambahkan kendala bidang pemotong dalam tabel, yakni pada baris paling bawah. Kemudian dilakukan operasi kolom agar elemen-elemen pada baris xv bernilai -1 untuk elemen pada kolom pivot dan yang lainnya bernilai 0. Kemudian lanjutkan ke Langkah 3. B. Penyelesaian Masalah Program Linear Bilangan Bulat Dual Dari langkah-langkah yang sudah dijabarkan di atas, yaitu cara memilih kolom pivot, aturan memilih λ dan bentuk kendala bidang pemotong, secara umum langkah pertama yang dilakukan dalam menyelesaian masalah program linear bilang bulat adalah mengubah bentuk baku menjadi bentuk kanonik dan menyusun tabel awal kemudian dilanjutkan dengan langkah-langkah sebagai berikut : Langkah 1 : Memilih baris utama atau baris sumber v, yakni baris dengan a v 0 < 0 , v ≠ 0 dipilih yang paling minimum. Langkah 2 : Memilih kolom pivot α p , yakni kolom dengan koefisien a vj ( j ≥ 1) dengan elemen tak nol pertama dari baris v adalah negatif dan dipilih yang paling minimum. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 69 Langkah 3 : Menentukan nilai λ dengan langkah-langkah sebagai berikut : i. Untuk setiap a vj < 0 ( j ≠ 0) dan misalkan u p = 1 untuk α p kolom pivot yang dipilih dalam langkah di atas, tentukan u j ( j ≠ p ) , yakni bilangan ⎛ 1 bulat terbesar yang memenuhi ⎜ ⎜u ⎝ j L ⎞ L ⎟α j f α p dengan u j ≥ 1 dan α p f 0 . ⎟ ⎠ ii. Untuk setiap a vj < 0 ( j ≥ 1) , hitung λij dengan λij = − avj uj . ⎧⎪ − aij ⎫⎪ iii. Pilih λ= maks ⎨λij = ⎬ u j ⎪⎭ ⎪⎩ Langkah 4 : Menentukan bentuk kendala bidang pemotong yakni ⎡ a ⎤ n ⎡ a vj ⎤ xv = ⎢ v 0 ⎥ + ∑ ⎢ ⎥ (− x J ( j ) ) ≥ 0 ⎣ λ ⎦ j =1 ⎣ λ ⎦ Langkah 5: Tambahkan bentuk kendala bidang pemotong yang baru ke dalam tabel simpleks untuk menjadi baris sumber yang baru. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 70 Langkah 6 : Variabel xv pada baris sumber yang baru akan menggantikan variabel non basis pada kolom pivot. Langkah 7 : Melakukan operasi kolom agar elemen-alemen pada baris x v bernilai -1 untuk elemen pada kolom pivot dan yang lainnya bernilai 0. Langkah 8 : Jika masih ada nilai a v 0 < 0 , v ≠ 0 maka dilanjutkan ke Langkah 2. Jika sudah tidak ada maka proses dihentikan dan diperoleh tabel optimum. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 71 Algoritma masalah program linear bilangan bulat dual diperlihatkan sebagai berikut : Mulai Menyusun tabel Pilih baris sumber v dengan a v 0 < 0 Pilih kolom pivot α p , yakni minimum a vj yang positif secara lexicographic Menentukan nilai λ=maks ⎛ ⎜λ ⎜ ⎝ j = − a vj ⎞ ⎟ u j ⎟⎠ Menentukan bentuk kendala bidang pemotong, yakni ⎡ a ⎤ n ⎡ a vj ⎤ x v = ⎢ v 0 ⎥ + ∑ ⎢ ⎥ (− x J ( j ) ) ≥ 0 ⎣ λ ⎦ j =1 ⎣ λ ⎦ Tambahkan bentuk kendala bidang pemotong kedalam tabel Mengganti variabel nonbasis dengan variabel xv Melakukan operasi kolom nilai av 0 < 0 TIDAK Penyelesaian sudah optimum Selesai YA PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 72 Berikut akan diberikan contoh penyelesaian masalah program linear bilangan bulat yang menggunakan metode bidang pemotong Contoh 4.2 Selesaikan masalah program linear bilangan bulat berikut : Maksimumkan: z = −4 x1 − 5 x 2 Dengan kendala: − x1 − 4 x 2 ≤ −5 ( x3 ) − 3 x1 − 2 x 2 ≤ −7 (x4 ) x1 , x 2 ≥ 0 dan Penyelesaian : Masalah program linear di atas dapat dibuat ke bentuk kanonik sebagai berikut : Maksimumkan: z = −4 x1 − 5 x 2 Dengan kendala: − x1 − 4 x 2 + x3 − 3 x1 − 2 x 2 dan = −5 + x 4 = −7 x1 , x 2 , x3 , x 4 ≥ 0 Menyusun tabel awal simpleks Tabel 4.2. Tabel Awal Pada Contoh Masalah Program Linear Bilangan Bulat PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 73 Kolom → α0 Variabel 1 (− x1 ) (− x2 ) x0 = 0 4 5 x1 = 0 −1 0 x2 = 0 0 −1 x3 = −5 −1 −4 x4 = −7 −3 −2 α1 α2 ↓ ITERASI 1 Langkah 1 : Memilih baris sumber. Dalam tabel dilihat koefisien a 40 = −7 adalah nilai yang paling minimum maka baris x 4 adalah baris sumber yang dipilih. Langkah 2 : Memilih kolom pivot. Dalam tabel dapat diperoleh a 41 = −3 dan koefisien a 42 = −2 . Karena nilai a 41 = −3 yang paling minimum maka kolom α 1 adalah kolom pivot yang dipilih. Langkah 3 : Menentukan nilai λ i. Karena kolom pivot yang dipilih adalah kolom pertama maka nilai p yang dipilih adalah 1. Jadi nilai u1 = 1 kemudian akan ditentukan u 2 , yakni ⎛ 1 ⎞ L bilangan bulat terbesar yang memenuhi ⎜⎜ ⎟⎟α 2 f α 1 . Dalam tabel terlihat ⎝ u2 ⎠ PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 74 bahwa komponen pertama α 1 = 4 dan ⎛ 1 α 2 = 5 . Jadi ⎜⎜ ⎝ u2 ⎞ L ⎟⎟ 5 f 4 maka ⎠ nilai u 2 yang akan didapat adalah 1. ii. Lihat nilai a vj < 0 pada baris sumber adalah a 41 = −3 dan a 42 = −2 maka nilai λ1 dan λ 2 masing-masing adalah sebagai berikut : dan λ1 = − a 41 − (−3) 3 = = =3 u1 1 1 λ2 = − a 42 − (−2) 2 = = =2 u2 1 1 iii. Memiilih λ = maksimum ( λ1 , λ 2 ) = maksimum ( 3,2) =3 Langkah 4 : Menentukan bentuk kendala bidang pemotong yang baru yakni ⎡ − 7 ⎤ ⎡ − 3⎤ ⎡− 2⎤ x5 = ⎢ ⎥ + ⎢ ⎥ (− x1 ) + ⎢ ⎥ (− x 2 ) ≥ 0 ⎣ 3 ⎦ ⎣ 3 ⎦ ⎣ 3 ⎦ atau x5 = −3 − 1(− x1 ) − 1(− x 2 ) ≥ 0 Langkah 5 : Tambahkan bentuk kendala bidang pemotong yang baru ke dalam tabel simpleks. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 75 Tabel 4.3. Tabel Bentuk Kendala Bidang Pemotong Pada Iterasi 1 Kolom → α0 α1 Variabel 1 (− x1 ) x1 = x2 = x3 = x4 = 0 0 0 −5 −7 4 −1 0 −1 −3 5 0 −1 −4 −2 x5 = −3 −1 −1 α2 (− x 2 ) ↓ x0 = Langkah 6 : Variabel x5 akan menggantikan variabel x1 . Langkah 7 : Melakukan operasi kolom. Sehingga tabel baru yang diperoleh adalah Tabel 4.4. Tabel Setelah Dilakukan Operasi kolom Pada Iterasi 1 → Kolom Variabel α0 α1 α2 1 (− x5 ) (− x2 ) 4 −1 0 −1 −3 −1 1 1 −1 −3 1 0 ↓ x0 = x1 = x2 = x3 = x4 = x5 = − 12 3 0 −2 2 0 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 76 Langkah 8 : Karena masih ada nilai a v 0 < 0 , v ≠ 0 , yakni a30 = −2 maka dilanjutkan ke Langkah 2. ITERASI 2 Langkah 1 : Memilih baris sumber. Dalam tabel dilihat koefisien a30 = −2 adalah nilai yang paling minimum maka baris x3 adalah baris sumber yang dipilih. Langkah 2 : Memilih kolom pivot. Dalam tabel diperoleh a31 = −1 dan koefisien a32 = −3 . Karena nilai a32 = −3 yang paling minimum maka kolom α 2 adalah kolom pivot yang dipilih. Langkah 3 : Menentukan nilai λ i. Karena kolom pivot yang dipilih adalah kolom kedua maka nilai p yang dipilih adalah 2, jadi nilai u 2 = 1 . Kemudian ditentukan u1 , yakni bilangan ⎛1⎞ L bulat terbesar yang memenuhi ⎜⎜ ⎟⎟α 1 f α 2 . Dalam tabel terlihat bahwa ⎝ u1 ⎠ ⎛1⎞ L komponen pertama α1 = 4 dan α 2 = 1 . Jadi ⎜⎜ ⎟⎟ 4 f 1 maka nilai u1 ⎝ u1 ⎠ yang akan didapat adalah 3. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 77 ii. Lihat nilai a vj < 0 pada baris sumber adalah a31 = −1 dan a32 = −3 maka diperoleh dan λ1 = − a 41 − (−1) 1 = = u1 3 3 λ2 = − a 42 − (−3) 3 = = =3 u2 1 1 iii. Memiilih λ = maksimum ( λ1 , λ 2 ) = maksimum ( 1 ,3) 3 =3 Langkah 4 : Menentukan bentuk kendala bidang pemotong yang baru yakni ⎡ − 2 ⎤ ⎡ − 1⎤ ⎡ − 3⎤ x6 = ⎢ ⎥ + ⎢ ⎥ (− x5 ) + ⎢ ⎥ (− x 2 ) ≥ 0 ⎣ 3 ⎦ ⎣3⎦ ⎣ 3 ⎦ atau x6 = −1 − 1(− x5 ) − 1(− x 2 ) ≥ 0 Langkah 5 : Tambahkan bentuk kendala bidang pemotong yang baru ke dalam tabel simpleks. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 78 Tabel 4.5. Tabel Dengan Bentuk Kendala Bidang Pemotong Pada Iterasi 2 Kolom → α0 Variabel 1 α1 α2 (− x5 ) (− x2 ) ↓ x0 = x1 = x2 = x3 = x4 = x5 = − 12 3 0 −2 2 0 x6 = −1 4 −1 0 −1 −3 −1 −1 1 1 −1 −3 1 0 −1 Langkah 6 : Variabel x6 akan menggantikan variabel x 2 . Langkah 7 : Melakukan operasi kolom. Sehingga tabel baru yang diperoleh adalah Tabel 4.6. Tabel Setelah Dilakukan Operasi kolom Pada Iterasi 2 Kolom Variabel → α0 1 α1 α2 (− x5 ) (− x6 ) ↓ x0 = x1 = x2 = x3 = x4 = x5 = x6 = − 13 2 1 1 1 0 0 3 −2 1 2 −4 −1 0 1 1 −1 −3 1 0 −1 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 79 Langkah 8 : Karena sudah tidak ada nilai a v 0 < 0 , v ≠ 0 maka tabel sudah optimum dengan nilai ( x1 , x 2 ) = (2,1) dan nilai optimum = -13 Pada masalah program linear bilangan bulat dalam bentuk dualnya dapat diurakan bahwa dalam kendala utama yang memiliki variabel awal x1 dan x 2 adalah − x1 − 4 x 2 ≤ −5 − 3 x1 − 2 x 2 ≤ −7 Kendala bidang pemotong yang didapat pada perhitungan diatas adalah x5 = −3 − 1(− x1 ) − 1(− x 2 ) ≥ 0 atau x1 + x 2 ≤ −3 dan x6 = −1 − 1(− x5 ) − 1(− x 2 ) ≥ 0 x6 = −1 − 1(− (− 3 − 1(− x1 ) − 1(− x 2 ))) − 1(− x 2 ) ≥ 0 x6 = −4 − 1(− x1 ) − 2(− x2 ) ≥ 0 atau x1 + 2 x 2 ≤ −4 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 80 Dari kendala-kendala di atas dapat diilustrasikan ke dalam gambar dibawah ini : x2 4• 3• 2• • 1 • • 1 • 2 • • 4 3 x4 x5 • 5 x 6 x1 x3 Gambar 4.1. Penyelesaian Masalah Program Linear Bilangan Bulat Dual Dari contoh dimuka terlihat bahwa program linear bilangan bulat dual adalah cara lebih efisien bila dibandingkan dengan masalah program linear bilangan bulat fraktional dual yang menggunakan metode bidang pemotong karena dalam perhitungan lebih cepat mencapai penyelesaian optimum. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 81 BAB V PENUTUP A. Kesimpulan Masalah program linear bilangan bulat dikategorikan menjadi dua masalah, yakni program linear bilangan bulat fraksional dual yang memungkinkan adanya bilangan pecahan dalam perhitungannya, dan program linear bilangan bulat dual dimana dalam perhitungannya harus berupa bilangan bulat. Kedua masalah tersebut dapat diselesaikan dengan metode bidang pemotong yang menggunakan metode simpleks dual. Langkah-langkah metode program linear bilangan bulat fraksional dual adalah sebagai berikut : 1. Mengubah bentuk baku menjadi bentuk kanonik. 2. Menyusun tabel awal dari masalah program linear bilangan bulat. 3. Masalah program linear bilangan bulat ini diselesaikan dahulu sebagai masalah program linear biasa, yakni dengan menggunakan menggunakan metode simpleks dual sampai ditemukan penyelesaian optimum tetapi penyelesaian yang didapat belum tentu berupa bilangan bulat. 4. Uji optimum. Jika penyelesaian optimum pada langkah sebelumnya belum berupa bilangan bulat maka langkah-langkah penyelesaian dilanjutkan lagi menggunakan metode bidang pemotong dengan menambahkan kendala bidang pemotong yang baru yang memuat variabel pengetat. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 82 Langkah-langkah metode program linear bilangan bulat dual adalah sebagai berikut : 1. Mengubah bentuk baku menjadi bentuk kanonik. 2. Menyusun tabel awal dari masalah program linear bilangan bulat. 3. Masalah program linear bilangan bulat diselesaikan menggunakan metode bidang pemotong dengan menambahkan kendala bidang pemotong yang baru yang memuat variabel pengetat. Dalam menyelesaikan masalah program linear bilangan bulat fraksional dual akan ditemukan kesulitan karena tidak cukup hanya menyelesaikan dengan metode bidang pemotong yang menggunakan metode simpleks dual tetapi harus dicari dahulu penyelesaian menggunakan metode simpleks dual. Tetapi dalam menyelesaikan masalah program linear bilangan bulat dual dengan menggunakan metode bidang pemotong penghitungannya dilakukan secara langsung dengan menambahkan betuk kendala bidang pemotong tanpa harus diselesaikan dengan metode simpleks dual dahulu. Dengan demikian penyelesaian masalah program linear bilangan bulat dual akan lebih efisien dan lebih cepat mendapatkan penyelesaian optimum. B. Saran Dari pembahasan tentang program linear bilangan bulat dengan metode bidang pemotong, apabila mendapatkan masalah program linear bilangan bulat akan lebih baik bila masalah tersebut dibawa kedalam masalah program linear bilangan bulat dual. Namun hendaknya metode ini dibandingkan dengan metode enumerasi atau metode cabang dan batas. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 83 DAFTAR PUSTAKA Bronson, R (1991) Teori dan Soal-soal Operation Research. Penerbit : Erlangga Chvatal, V. (1983). Linear Programming. Mac Graw Hill Book Company, Inc. Ignizio, J.P. & Cavalier, T.M. (1994). Linear Programming. Mac Graw Hill Book Company, Inc. Salkin, H.M. (1975) Integer Programming. Addison-Wesley Publishing Company, Inc. Salkin, H.M. dan Mathur kamlesh (1989) Foundations of Integer Programming. North-Holland. Supranto, J. M. A. (1980). Linear Programming. Jakarta: Penerbit Fakultas Ekonomi Universitas Indonesia. Susanta, B. (1994). Program Linear. Jakarta: LPTK Depdikbud. Taha, H. A (1996). Riset Operasi. Jakarta: Penerbit Binarupa Aksara Wolsey, L.A (1998) Integer Programming. John Wiley & Sons, New York. Wu, N. & Coppins, R. (1981). Linear Programming And Extensions. Mac Graw Hill Book Company, Inc.