• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI 2.1 Perencanaan Produksi - Aplikasi Metode Branch And Cut Dalam Optimasi Produksi Pot Bunga (Studi Kasus: UD. Pot Bunga Mukhlis Rangkuti, Gelugur)

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB 2 LANDASAN TEORI 2.1 Perencanaan Produksi - Aplikasi Metode Branch And Cut Dalam Optimasi Produksi Pot Bunga (Studi Kasus: UD. Pot Bunga Mukhlis Rangkuti, Gelugur)"

Copied!
19
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 Perencanaan Produksi

Produksi yang dalam bahasa inggris disebut production adalah keseluruhan proses

yang dilakukan untuk menghasilkan produk atau jasa. Produk yang dihasilkan

sebagai output dari proses tersebut dapat berupa produk akhir (finished product) yang sering disebut juga produk jadi, produk setengah jadi (work-in-process) atau

bahan baku (raw materials) yang semuanya bersifat tangible (berwujud fisik).

Jasa (services) adalah output yang bersifat intangible (berwujud non-fisik).

Aktifitas produksi sebagai suatu bagian dari fungsi organisasi perusahaan

bertanggung jawab terhadap pengolahan bahan baku menjadi produk jadi yang

dapat dijual. Untuk melaksanakan fungsi produksi tersebut diperlukan rangkaian

kegiatan yang akan membentuk suatu sistim produksi.

Sistim produksi merupakan kumpulan dari sub-sistim yang saling

berinteraksi dengan tujuan mentransformasi input produksi menjadi output

produksi. Input produksi ini dapat berupa bahan baku, mesin, tenaga kerja, modal

dan informasi sedangkan output produksi merupakan produk yang dihasilkan

berikut hasil sampingannya seperti limbah, informasi, dan sebagainya. Sub-sistim

dari sistim produksi tersebut antara lain adalah perencanaan dan pengendalian

produksi, pengendalian kualitas, penentuan standar-standar operasi, penentuan

fasilitas produksi, perawatan fasilitas produksi dan penentuan harga pokok

produksi.

Tujuan akhir dari suatu perusahaan adalah untuk memperoleh keuntungan

disamping tercapainya kelanjutan dan pengembangan usaha. Salah satu fungsi

yang terpenting dalam mendukung usaha untuk mencapai tujuan tersebut adalah

perencanaan produksi. Perencanaan produksi dapat didefinisikan sebagai proses

(2)

produksi atau operasi sehingga permintaan pasar dapat dipenuhi dengan jumlah

yang tepat.

The American Production and Inventory Control Society mendefinisikan perencanaan produksi sebagai suatu kegiatan yang berkenaan dengan penentuan

apa yang harus diproduksi, berapa banyak diproduksi, kapan diproduksi, dan apa

sumber daya yang dibutuhkan untuk mendapatkan produk yang telah ditetapkan

(Sinulingga, 2009).

Perencanaan produksi dilakukan dengan tujuan menentukan arah awal dari

tindakan-tindakan yang harus dilakukan di masa mendatang, apa yang harus

dilakukan, berapa banyak melakukannya, dan kapan harus melakukan. Karena

perencanaan ini berkaitan dengan masa mendatang, maka perencanaan disusun

atas dasar perkiraan yang dibuat berdasarkan data masa lalu dengan menggunakan

beberapa asumsi.

Kegunaan dari pelaksanaan perencanaan produksi adalah:

1. Suatu perencanaan meliputi usaha untuk menetapkan tujuan yang dipilih

untuk dicapai sehingga dengan adanya perencanaan produksi dapat

memberikan arah bagi setiap kegiatan produksi. Dengan adanya kejelasan

arah tersebut maka kegiatan akan dapat dilaksanakan dengan efektif.

2. Dengan perencanaan produksi yang berisi formulasi tujuan yang hendak

dicapai maka akan memungkinkan untuk mengetahui apakah tujuan tersebut

telah tercapai atau tidak. Dengan demikian, koreksi-koreksi terhadap

penyimpangan dari tujuan yang telah ditetapkan dapat diketahui secepatnya

sehingga pemborosan dan usaha yang tidak menunjang pencapaian tujuan

dapat dihindari.

3. Memudahkan pelaksanaan kegiatan untuk mengidentifikasi

hambatan-hambatan yang mungkin muncul dalam usaha pencapaian tujuan tersebut.

4. Menghindarkan pertumbuhan dan perkembangan yang tidak terkendali.

(3)

selalu menambah jumlah dan jenis tenaga kerja yang sudah dimiliki untuk

memperbaiki mutu serta jumlah output.

2.2 Program Linier

Konsep linear programming ditemukan dan diperkenalkan pertama kali oleh George Dantzig. Program linier merupakan suatu metode untuk membuat

keputusan di antara berbagai aternatif kegiatan dibatasi oleh kendala tertentu.

Keputusan yang diambil dinyatakan sebagai fungsi tujuan sedangkan

kendala-kendala yang dihadapi dalam membuat keputusan tersebut dinyatakan dalam

bentuk fungsi-fungsi kendala. Fungsi tujuan dan fungsi kendala tersebut berupa

fungsi linier, baik dalam bentuk persamaan maupun pertidaksamaan pada

variabel-variabel keputusannya.

Bentuk umum dari permasalahan LP adalah:

Maximum 𝑐𝑐𝑇𝑇𝑥𝑥

Kendala: 𝐴𝐴𝑥𝑥 ≤ 𝑏𝑏 2.1

Beberapa contoh aplikasi LP yang telah berhasil diterapkan dalam bidang

militer, industri, dan sosial adalah:

1. Mengembangkan jadwal produksi yang bertujuan memuaskan konsumen

terhadap produk yang dikonsumsikan dan pada saat yang sama dapat

meminimalisasi biaya produksi dan persediaan.

2. Penentuan kombinasi produk (product-mix), yaitu menentukan produk mana

dari sejumlah alternatif kemungkinan produksi yang dapat memaksimalkan

keuntungan.

3. Penentuan sistim distribusi yang akan meminimalisasi biaya total pengiriman

dengan menggunakan mobil box dari gudang ke berbagai pasar.

4. Menganalisis portofolio investasi dari berbagai alternatif investasi dalam

saham dan obligasi sehingga seorang investor dapat menentukan portofolio

(4)

5. Menentuan penjadwalan untuk melakukan aktifitas produksi bagi tenaga kerja

di perusahaan.

2.2.1 Unsur – Unsur Program Linier

Adapun unsur-unsur dalam program linier adalah:

a. Variabel Keputusan

Variabel keputusan adalah variabel yang menguraikan secara lengkap

keputusan-keputusan yang akan dibuat. Variabel keputusan ini tidak negatif.

b. Fungsi Tujuan

Adapun tujuan dalam program linier adalah masalah optimasi yakni tujuan

memaksimumkan atau meminimumkan sesuatu di mana tingkat pencapaian

tujuan ini dibatasi oleh kendala yang mencerminkan keterbatasan yang

dimiliki.

c. Kendala Tujuan

Kendala merupakan batasan-batasan yang harus diperhatikan dalam

penyelesaian program linier. Kendala tersebut dibuat dalam fungsi linier.

2.2.2 Asumsi Dasar Program Linier

Dalam model program linier terdapat asumsi-asumsi yang harus dipenuhi agar

permasalahan program linier menjadi absah, adapun asumsi program linier adalah

sebagai berikut:

1. Asumsi kesebandingan (proposionality)

a. Kontribusi setiap variabel keputusan terhadap fungsi tujuan adalah

sebanding dengan nilai variabel keputusan.

b. Kontribusi suatu variabel keputusan terhadap ruas kiri dari setiap

pembatas juga sebanding dengan nilai variabel keputusan itu.

2. Asumsi penambahan (additivity)

a. Kontribusi setiap variabel keputusan terhadap fungsi tujuan tidak

(5)

b. Kontribusi suatu variabel keputusan terhadap ruas kiri dari setiap

pembatas bersifat tidak bergantung pada nilai dari variabel keputusan

yang lain.

3. Asumsi pembagian (divisibility)

Dalam persoalan program linier, variabel keputusan boleh diasumsikan

berupa bilangan pecahan.

4. Asumsi kepastian (certainty)

Setiap parameter, yaitu koefisien fungsi tujuan, ruas kanan, dan koefisien

teknologi, diasumsikan dapat diketahui secara pasti.

2.3 Program Bilangan Bulat Linier

Program bilangan bulat linier (Integer Linear Programming / ILP) adalah bentuk

khusus dari permasalahan program linier di mana pada solusi optimalnya

beberapa atau seluruh variabelnya dibatasi harus berupa bilangan bulat (integer)

tak negatif. ILP digunakan untuk memodelkan permasalahan yang mengandung

variabel keputusan yang harus bernilai integer, misalnya variabel yang

menggambarkan jumlah orang atau jumlah unit produk yang akan diproduksi.

Permasalahan di mana seluruh variabelnya dibatasi harus berupa integer

tak negatif disebut permasalahan program integer linier murni (Pure Integer

Linear Programming / PILP). Jika hanya beberapa variabel saja yang harus bernilai integer, permasalahan ini disebut sebagai permasalahan integer linier

campuran (Mixed Integer Linear Programming / MILP). Dalam suatu kondisi

khusus di mana seluruh variabel keputusan dalam suatu masalah harus bernilai 0

atau 1 maka permasalahan tersebut disebut Binary Integer Linear Programming

(BILP).

Bentuk umum dari ILP adalah:

𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑎𝑎𝑀𝑀𝑎𝑎𝑀𝑀𝑀𝑀𝑛𝑛 ∶ 𝑍𝑍= � 𝑐𝑐𝑗𝑗𝑥𝑥𝑗𝑗

𝑛𝑛

(6)

𝐾𝐾𝐾𝐾𝑛𝑛𝐾𝐾𝑀𝑀𝐾𝐾𝑀𝑀: � 𝑀𝑀𝑀𝑀𝑗𝑗𝑥𝑥𝑗𝑗 𝑛𝑛

𝑗𝑗=1

=𝑏𝑏𝑀𝑀

𝑥𝑥𝑗𝑗 ≥ 0

𝑥𝑥𝑗𝑗 ∈ 𝑍𝑍+

𝑀𝑀 = 1,2,3, … ,𝑚𝑚;𝑗𝑗= 1,2,3, … ,𝑛𝑛 2.2 keterangan:

𝑍𝑍 = Fungsi tujuan 𝑥𝑥𝑗𝑗 = Variabel keputusan j

𝑐𝑐𝑗𝑗 = Koefisien dari variabel keputusan j

𝑀𝑀𝑀𝑀𝑗𝑗 = Koefisien dari variabel keputusan dalam kendala ke-i

𝑏𝑏𝑀𝑀 = Sumber daya yang tersedia dalam kendala ke-i

Banyak permasalahan yang dapat dimodelkan sebagai program integer,

misalnya dalam ilmu pengetahuan, teknologi, bisnis dan lingkungan, oleh karena

itu tidak mengherankan bahwa banyak metode penyelesaian dan kode yang

muncul untuk menyelesaikan program integer. Beberapa metode dapat digunakan

untuk seluruh tipe ILP dan beberapa metode hanya diperuntukkan untuk

menyelesaikan suatu masalah ILP tertentu.

Pada dasarnya, solusi integer optimal berada dekat dengan solusi program

linier. Titik-titik yang berada dalam daerah fisibel (feasible region) berupa

titik-titik yang fisibel sebagai koordinat yang bernilai integer disebut integer lattice points. Pemecahan persoalan LP biasa terletak pada batas luar dari daerah fisibelnya, khususnya pada titik-titik ekstrimnya yang disebut vertex.

Misalkan daerah fisibel tersebut dapat diciutkan menjadi convex hull of the

feasible lattice points, di mana convex hull merupakan daerah convex terkecil yang memuat semua titik-titik lattice. Convex hull diperoleh sebagai hasil modifikasi dari persoalan asli dengan jalan menambahkan kendala linier baru.

(7)

1. Mencakup setiap pemecahan integer yang fisibel terhadap persoalan asli. Jadi

pemecahan yang menghasilkan bilangan-bilangan bulat atau integer masih

merupakan penyelesaian dari persoalan LP yang asli.

2. Setiap pemecahan dasar dari persoalan baru merupakan pemecahan integer.

Pemecahan dasar optimal dari persoalan yang baru juga merupakan

pemecahan optimal dari permasalahan LP yang asli namun berupa integer.

Dalam prakteknya sukar untuk memotong daerah fisibel menjadi convex

hull of the feasible lattice points sehingga diperlukan metode yang terdiri dari urutan langkah-langkah dengan jalan selalu menambahkan kendala baru terhadap

persoalan asli sebagai kelanjutan dari hasil perhitungan sebelumnya. Konsep

inilah yang diterapkan dalam metode branch and bound, cutting plane dan metode

branch and cut.

2.4 Metode Simpleks

Masalah program linier berkembang pesat setelah ditemukan suatu metode

penyelesaian program linier yaitu metode simpleks yang ditemukan oleh George

Dantzig pada tahun 1947. Permasalahan linier sederhana yang mengandung dua

atau tiga variabel dapat diselesaikan dengan menggunakan metode grafik. Namun

untuk masalah program linier yang mengandung lebih dari tiga variabel, metode

grafik tidak dapat digunakan sehingga diperlukan metode yang dapat digunakan

untuk menyelesaiakan masalah program linier yang rumit. Metode simpleks

adalah metode yang dapat menyelesaiakan masalah program linier dengan jumlah

variabel yang besar.

Penyelesaian model program linier dengan menggunakan metode simpleks

memerlukan pengubahan model formulasi ke dalam bentuk standar dengan syarat

sebagai berikut:

(8)

variable. Untuk pertidaksamaan yang dibatasi oleh tanda lebih besar (≥)

diubah ke dalam bentuk persamaan dengan menambahkan surplus variable.

2. Nilai ruas kanan setiap kendala bertanda positif, jika nilai ruas kanan dari

suatu kendala bertanda negative maka harus diubah menjadi positif dengan

mengalikan pertidaksamaan dengan -1.

3. Semua variabel keputusan bernilai nonnegatif.

Ada beberapa istilah yang sangat sering digunakan dalam metode

simpleks, di antaranya:

1. Iterasi adalah tahapan perhitungan di mana nilai dalam perhitungan itu

tergantung dari nilai tabel sebelumnya.

2. Variabel nonbasis adalah variabel yang nilainya diatur menjadi nol pada

sembarang iterasi. Dalam terminologi umum, jumlah variabel nonbasis selalu

sama dengan derajat bebas dalam sistim persamaan.

3. Variabel basis merupakan variabel yang nilainya bukan nol pada sembarang

iterasi. Pada solusi awal, variabel basis merupakan variabel slack (jika fungsi

kendala merupakan pertidaksamaan ≤ ) atau variabel buatan (jika fungsi

kendala menggunakan pertidaksamaan ≥ atau =). Secara umum, jumlah

variabel basis selalu sama dengan jumlah fungsi pembatas (tanpa fungsi non

negatif).

4. Solusi atau nilai kanan merupakan nilai sumber daya pembatas yang masih

tersedia. Pada solusi awal, nilai kanan atau solusi sama dengan jumlah

sumber daya pembatas awal yang ada, karena aktivitas belum dilaksanakan.

5. Variabel slack adalah variabel yang ditambahkan ke model matematika kendala untuk mengkonversikan pertidaksamaan ≤ menjadi persamaan (=).

Penambahan variabel ini terjadi pada tahap inisialisasi. Pada solusi awal,

variabel slack akan berfungsi sebagai variabel basis.

6. Variabel surplus adalah variabel yang dikurangkan dari model matematika kendala untuk mengkonversikan pertidaksamaan ≥ menjadi persamaan (=).

Penambahan ini terjadi pada tahap inisialisasi. Pada solusi awal, variabel

(9)

7. Variabel buatan adalah variabel yang ditambahkan ke model matematika

kendala dengan bentuk ≥ atau = untuk difungsikan sebagai variab el basis

awal. Penambahan variabel ini terjadi pada tahap inisialisasi. Variabel ini

harus bernilai 0 pada solusi optimal, karena kenyataannya variabel ini tidak

ada. Variabel hanya ada di atas kertas.

8. Kolom pivot (kolom kerja) adalah kolom yang memuat variabel masuk.

Koefisien pada kolom ini akan menjadi pembagi nilai kanan untuk

menentukan baris pivot (baris kerja).

9. Baris pivot (baris kerja) adalah salah satu baris dari antara variabel basis yang

memuat variabel keluar.

10. Elemen pivot (elemen kerja) adalah elemen yang terletak pada perpotongan

kolom dan baris pivot. Elemen pivot akan menjadi dasar perhitungan untuk

tabel simpleks berikutnya.

2.4.1 Langkah-Langkah Metode Simpleks

Algoritma metode simpleks untuk persoalan maksimasi:

1. Konversikan formulasi model program linier ke dalam bentuk standar.

2. Cari Solusi Basis Feasible (BFS).

3. Jika seluruh variabel nonbasis (NBV) mempunyai koefisien nonnegatif

(artinya berharga positif atau nol) pada baris fungsi tujuan [baris persamaan 𝑍𝑍 yang biasa disebut baris 0 atau baris (𝑍𝑍𝑗𝑗 − 𝐶𝐶𝑗𝑗)], maka BFS sudah optimal.

Jika pada baris 0 masih ada variabel dengan koefisien negatif, pilihlah salah

satu variabel yang mempunyai paling negatif pada baris 0 itu. Variabel ini

akan memasuki status variabel basis, karena itu variabel ini disebut sebagai

variabel yang masuk basis (entering variable, disingkat EV).

4. Hitung rasio dari ruas kanan atau (koefisien EV) pada setiap baris di mana

EV mempunyai koefisien positif. Variabel basis pada baris pembatas dengan

rasio positif terkecil akan berubah status menjadi variabel nonbasis. Variabel

ini kemudian disebut sebagai variabel yang meninggalkan basis (leaving

(10)

5. Lakukan operasi baris elementer (ERO) untuk membuat koefisien EV pada

baris dengan rasio positif terkecil ini menjadi bernilai 1 dan bernilai 0 pada

baris-baris lainnya.

6. Kembali ke langkah 3.

2.5 Metode Dual Simpleks

Apabila pada suatu iterasi diperoleh persoalan program linier yang sudah

optimum (berdasarkan kondisi optimalitas), tetapi belum fisibel (ada pembatas

nonnegatif yang tidak terpenuhi), maka persoalan tersebut harus diselesaikan

dengan menggunakan metode dual Simpleks. Syarat digunakannya metode ini

adalah bahwa seluruh pembatas harus merupakan ketidaksamaan yang bertanda

(≤), sedangkan fungsi tujuan bisa berupa maksimasi atau minimasi.

Pada dasarnya metode dual Simpleks ini menggunakan tabel yang sama

seperti metode simpleks pada primal, tetapi leaving dan entering variable-nya ditentukan sebagai berikut:

1. Leaving variable (kondisi fisibilitas)

Yang menjadi leaving variable pada dual Simpleks adalah variabel basis yang

memiliki harga negatif terbesar. Jika semua variabel basis telah berharga

positif atau nol, berarti keadaan fisibel telah tercapai.

2. Entering variable (kondisi optimalitas)

a. Tentukan perbandingan (rasio) antara koefisien persamaan z dengan

koefisien persamaan leaving variable. Abaikan penyebut yang positif

atau nol. Jika semua penyebut berharga positif atau nol, berarti persoalan

yang bersangkutan tidak memiliki solusi fisibel.

b. Untuk persoalan minimasi, entering variable adalah variabel dengan

rasio terkecil, sedangkan persoalan maksimasi, entering variable adalah

(11)

2.6 Metode Branch and Bound

Metode branch and bound pertama kali dkembangkan pada tahun 1960 oleh Land

dan G. Doig yang digunakan untuk menyelesaikan masalah mixed integer linear programming dan pure integer linear programming secara umum. Selanjutnya pada tahun 1965 E. Balas mengembangkan algoritma tambahan untuk

menyelesaiakan masalah binary integer linear programming.

Metode branch and bound awalnya hanya digunakan untuk menyelesaikan

masalah program integer. Setelah diteliti lebih lanjut, ternyata metode ini juga

dapat digunakan untuk menyelesaikan masalah lainnya seperti traveling salesman

problem, scheduling dan sebagainya. Ide mendasar dari metode ini adalah membagi daerah layak menjadi beberapa sub-bagian yang mengandung titk-titik

fisibel dengan koordinat integer dengan menambahkan kendala tambahan

kemudian menyelesaikannya.

Untuk menyelesaikan suatu masalah program integer dengan

menggunakan metode branch and bound, langkah pertama adalah mengabaikan

kendala integer dari permasalahan awal sehingga terbentuk permasalahan LP

relaksasi kemudian diselesaikan. Banyak metode yang dapat digunakan untuk

menyelesaiakan permasalahan LP relaksasi. Namun, metode yang umum

digunakan adalah metode simpleks. Jika permasalahan tersebut tidak mempunyai

penyelesaian optimum yang bernilai integer, maka dua kendala baru dibentuk.

Kendala tersebut adalah batas atas dan bawah dari variabel yang dibatasi harus

bernilai integer namun belum bernilai integer.

Konsep dasar dari metode branch and bound adalah pengamatan terhadap

tiap-tiap nilai 𝑥𝑥𝑗𝑗, di mana 𝑥𝑥𝑗𝑗 adalah variabel yang dibatasi harus bernilai integer.

Jika nilai 𝑥𝑥𝑗𝑗 belum integer, maka masalah awal dibagi menjadi dua masalah baru

dengan menambahkan dua kendala baru yaitu, �𝑥𝑥𝑗𝑗� ≤ 𝑥𝑥𝑗𝑗 dan 𝑥𝑥𝑗𝑗 ≤ �𝑥𝑥𝑗𝑗�+ 1 di

mana �𝑥𝑥𝑗𝑗� adalah integer terdekat yang lebih kecil dari 𝑥𝑥𝑗𝑗. Proses inilah yang

(12)

pencabangan masalah akan mengakibatkan berkurangnya nilai fungsi tujuan pada

solusi optimal.

Sebagai salah satu hasil pencabangan variabel yang belum integer pada

setiap cabang, satu dari dua kejadian berikut akan terjadi. Yang pertama, solusi

yang diperoleh tidak memenuhi syarat integer dari variabel yang dicabangkan, dan

memperoleh nilai fungsi objektif yang kurang sesuai dibandingkan dengan

pencabangan 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 pencabangan dihentikan.

Terdapat dua tahap yang dipakai dalam algoritma branch and bound,

yaitu:

1. Pencabangan, yaitu mempartisi masalah tersebut menjadi beberapa

sub-masalah dengan cara menambahkan kendala yang merupakan syarat perlu

untuk mencari solusi integer fisibel tanpa mengubah himpunan solusi integer

semula.

2. Pembatasan, yaitu nilai fungsi objektif dari suatu sub-masalah yang

mempunyai solusi integer dipakai sebagai batas nilai fungsi objektif dari

sub-masalah lainnya.

Branch and bound adalah algoritma yang paling umum digunakan untuk menyelesaikan masalah integer programming. Algoritma branch and bound juga

telah banyak digunakan sebagai kode program computer, misalnya OSL,

LAMPU, dan LINDO.

Berikut ini adalah langkah-langkah penyelesaian suatu masalah

maksimisasi dengan metode branch and bound:

1. Selesaikan masalah program linier relaksasi dengan metode simpleks.

2. Teliti solusi optimalnya, jika variabel keputusan yang diharapkan adalah

integer, solusi optimum integer telah tercapai. Jika satu atau lebih variabel

(13)

3. Jadikan solusi pada penyelesaian langkah 1 menjadi batas atas dan untuk

batas bawahnya merupakan solusi yang variabel keputusannya telah

dibulatkan (rounded–down).

4. Pilih variabel yang mempunyai nilai pecahan terbesar (artinya bilangan

desimal terbesar) dari masing-masing variabel untuk dijadikan pencabangan

ke dalam sub-masalah. Tujuannya adalah untuk menghilangkan solusi yang

tidak memenuhi persyaratan integer dalam masalah itu. Pencabangan itu

dilakukan secara mutually exclusive untuk memenuhi persyaratan integer

dengan jaminan tidak ada solusi fisibel (layak) yang diikutsertakan.

5. Untuk setiap sub-masalah, nilai optimum fungsi tujuan ditetapkan sebagai

batas atas. Solusi optimum yang dibulatkan menjadi batas bawah (solusi yang

sebelumnya tidak bulat kemudian dibulatkan). Sub-masalah yang memiliki

batas atas kurang dari batas bawah yang ada, tidak diikutsertakan pada analisa

selanjutnya. Suatu solusi integer fisibel (layak) adalah sama baik atau lebih

baik dari batas atas untuk setiap sub-masalah yang dicari. Jika solusi yang

demikian terjadi, suatu sub-masalah dengan batas atas terbaik dipilih untuk

dicabangkan. Kembali ke langkah 4.

2.7 Metode Cutting Plane

Metode cutting plane yang digunakan untuk menyelesaikan masalah secara

umum, pertama kali dikemukakan oleh Gomory (1963). Metode cutting plane merupakan metode yang digunakan untuk menyelesaikan program integer linier,

baik integer murni maupun campuran dengan penambahan batasan baru yang

disebut gomory. Batasan gomory diberikan jika nilai dari variabel keputusan belum integer (bernilai pecahan). Batasan-batasan tersebut secara efektif akan

menyingkirkan beberapa ruang penyelesaian yang tidak berisi titik integer yang

layak, tetapi tidak pernah menyingkirkan satupun titik integer yang layak (Taha,

1996).

(14)

1. Selesaikan masalah program integer dengan menggunakan metode simpleks.

Masalah sederhana dapat diselesaikan dengan pendekatan grafik, sehingga

pendekatan gomory kurang efisien.

2. Periksa solusi optimum. Jika semua variabel basis memiliki nilai integer,

solusi optimum integer telah diperoleh dan proses solusi telah berakhir. Jika

satu atau lebih variabel basis masih meiliki nilai pecah, teruskan ke tahap 3.

3. Buatlah suatu batasan gomory dan cari solusi optimum melalui prosedur dual

Simpleks. Kembali ke tahap 2 (Taha, 1996).

Misalnya diberikan sebuah permasalahan integer programming berikut:

Tabel 2.1 Tabel Optimum Masalah Program Linier

Basis 𝑥𝑥1 … 𝑥𝑥𝑀𝑀 … 𝑥𝑥𝑚𝑚 𝑤𝑤1 … 𝑤𝑤𝑗𝑗 … 𝑤𝑤𝑛𝑛 Hasil

Tentukan baris sumber dengan menentukan baris variabel keputusan yang

akan dibulatkan. Jika lebih dari satu, dipilih nilai pecahan terbesar.

(15)

Disimpulkan bahwa 0 <𝑓𝑓𝑀𝑀 < 1 dan 0 <𝑓𝑓𝑀𝑀𝑗𝑗 < 1, yang mana 𝑓𝑓𝑀𝑀 dan 𝑓𝑓𝑀𝑀𝑗𝑗

adalah pecahan positif, sehingga:

𝑥𝑥𝑀𝑀 = 𝛽𝛽𝑀𝑀− � 𝛼𝛼𝑀𝑀𝑗𝑗𝑤𝑤𝑗𝑗

Persamaan 2.4 haruslah integer yang berakibat sisi kiri juga harus integer. Karena

𝑓𝑓𝑀𝑀𝑗𝑗 ≥0 dan 𝑤𝑤𝑗𝑗 ≥0 untuk semua i dan j maka:

batasannya dapat ditulis dalam bentuk:

𝑆𝑆𝑔𝑔𝑀𝑀 =� 𝑓𝑓𝑀𝑀𝑗𝑗𝑤𝑤𝑗𝑗

𝑛𝑛

𝑗𝑗=1

− 𝑓𝑓𝑀𝑀

(16)

atau,

Tabel 2.2 Setelah Penambahan Pemotongan Fraksional

Basis 𝑥𝑥1 … 𝑥𝑥𝑀𝑀 … 𝑥𝑥𝑚𝑚 𝑤𝑤1 … 𝑤𝑤𝑗𝑗 … 𝑤𝑤𝑛𝑛 𝑆𝑆𝑔𝑔𝑀𝑀 Hasil

di mana 𝑆𝑆𝑔𝑔𝑀𝑀 adalah variabel slack nonnegatif yang berdasarkan definisinya

haruslah integer. Persamaan batasan ini mendefinisikan pemotong fraksional. Dari

Tabel 2.2 𝑤𝑤𝑗𝑗 = 0 dan 𝑆𝑆𝑔𝑔𝑀𝑀 =−𝑓𝑓𝑀𝑀 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 kembali digunakan untuk mengatasi

ketidaklayakan. Prosedur ini dilakukan sampai solusi integer dicapai. Jika di salah

satu iterasi metode dual Simpleks menunjukkan bahwa tidak ada solusi layak,

(17)

2.8 Metode Branch and Cut

Banyak permasalahan optimisasi dapat diformulasikan sebagai masalah Integer Linear Programming (ILP). Masalah tersebut dapat diselesaikan dengan metode branch and bound dan metode branch and cut. Algoritma metode branch and cut dibuat dari kombinasi metode cutting-plane dengan metode branch and bound.

Prosedur metode branch and cut adalah menyelesaikan rangkaian relaksasi program linier dari masalah integer linear programming. Metode cutting plane

memperbaharui relaksasi dari masalah untuk lebih mendekati penyelesaian berupa

integer, dan metode branch and bound memproses dengan membagi dan menyelesaikan (devide and conquer) masalah.

Misalkan bahwa titik 𝑥𝑥∗ adalah solusi layak untuk linear programming. Jika 𝑥𝑥∗ berada pada daerah integral, maka 𝑍𝑍 merupakan solusi optimal untuk integer

linear programming sudah diperoleh. Jika tidak, maka nilai fungsi objektif merupakan batas atas dari nilai optimum, tetapi dibutuhkan penyelesaian lebih

lanjut untuk memperoleh nilai optimum berupa integer. Dengan penambahan

bidang pemotongan (cutting plane) atau membagi masalah tersebut menjadi

bagian-bagian masalah (branch).

Mitchell (1999) menjelaskan bahwa secara umum algoritma branch and

cut adalah sebagai berikut:

1. Inisialisasi: nyatakan persoalan awal ke dalam bentuk ILP0 dan titik-titik aktif

menjadi 𝐿𝐿= {𝐼𝐼𝐿𝐿𝐼𝐼0}. Tetapkan batas bawah menjadi 𝑧𝑧= −∞. Tetapkan 𝑧𝑧𝐾𝐾 = +∞ untuk sebuah persoalan 𝐾𝐾 ∈ 𝐿𝐿.

2. Penghentian proses: jika 𝐿𝐿= ∅ maka solusi 𝑥𝑥∗ yang menghasilkan nilai 𝑧𝑧

objektif yang terbaik merupakan solusi optimal. Jika tidak ditemukan 𝑥𝑥∗

(misalnya, 𝑧𝑧=−) maka ILP tidak layak.

3. Pemilihan masalah: pilih dan hilangkan masalah 𝐼𝐼𝐿𝐿𝐼𝐼𝐾𝐾 dari L.

4. Relaksasi: selesaikan relaksasi program linier dari 𝐼𝐼𝐿𝐿𝐼𝐼𝐾𝐾. Jika relaksasi tidak layak, tetapkan 𝑧𝑧𝐾𝐾 = − dan lanjut ke langkah 6. Misalkan 𝑧𝑧 merupakan nilai

(18)

5. Tambahkan bidang pemotongan: jika diinginkan carilah bidang pemotongan

yang akan memenuhi 𝑥𝑥𝐾𝐾𝑙𝑙, jika sudah ditemukan, tambahkan bidang

pemotongan tersebut pada relaksasi dan kembali ke langkah 4.

6. Pengukuran dan pemangkasan:

a. Jika 𝑧𝑧𝐾𝐾 ≤ 𝑧𝑧 kembali ke langkah 2.

b. Jika 𝑧𝑧𝐾𝐾 > 𝑧𝑧 dan 𝑥𝑥𝐾𝐾𝑙𝑙 adalah integer yang layak, perbaharui nilai 𝑧𝑧 dengan

melakukan teknik rounded down berdasarkan nilai 𝑧𝑧𝐾𝐾, kemudian buang

dari L seluruh masalah di mana 𝑧𝑧𝐾𝐾 ≤ 𝑧𝑧, dan lanjut ke langkah 2.

7. Pemilihan: misalkan �𝑆𝑆𝐾𝐾𝑗𝑗�

𝑗𝑗=1

𝑗𝑗=𝑀𝑀

adalah partisi dari kumpulan kendala 𝑆𝑆𝐾𝐾 dari

masalah 𝐼𝐼𝐿𝐿𝐼𝐼𝐾𝐾. Tambahkan permasalahan �𝐼𝐼𝐿𝐿𝐼𝐼𝐾𝐾𝑗𝑗�

𝑗𝑗=1

𝑗𝑗=𝑀𝑀

ke dalam L, di mana

𝐼𝐼𝐿𝐿𝐼𝐼𝐾𝐾𝑗𝑗 adalah 𝐼𝐼𝐿𝐿𝐼𝐼𝐾𝐾 dengan daerah layak yang terbatas pada 𝑆𝑆𝐾𝐾𝑗𝑗 dan 𝑧𝑧

𝐾𝐾𝑗𝑗 di mana

𝑗𝑗 = 1, … ,𝑀𝑀 ditetapkan ke dalam nilai 𝑧𝑧𝐾𝐾 untuk permasalahan induk.

di mana:

ILP0 = Bentuk ILP dari permasalahan awal

𝐼𝐼𝐿𝐿𝐼𝐼𝐾𝐾 = Bentuk ILP dari sebuah permasalahan lL

L = Himpunan titik-titik aktif dari persoalan ILP

𝑧𝑧𝐾𝐾 = Batas atas dari nilai fungsi tujuan suatu sub-masalah l∈L

z = Batas bawah dari nilai fungsi tujuan

x* = Solusi dari suatu sub-masalah

𝑥𝑥𝐾𝐾𝑙𝑙 = Solusi optimal dari suatu sub-masalah

𝑆𝑆𝐾𝐾 = Kendala dari masalah 𝐼𝐼𝐿𝐿𝐼𝐼𝐾𝐾

�SLj� J=1 J=k

= Partisi dari kumpulan kendala 𝑆𝑆𝐾𝐾 Dari masalah 𝐼𝐼𝐿𝐿𝐼𝐼𝐾𝐾

𝐼𝐼𝐿𝐿𝐼𝐼𝐾𝐾𝑗𝑗 = 𝐼𝐼𝐿𝐿𝐼𝐼𝐾𝐾 dengan daerah layak yang terbatas pada 𝑆𝑆𝐾𝐾𝑗𝑗 dan 𝑧𝑧

𝐾𝐾𝑗𝑗 di mana

j = 1, … , k

Pada algoritma branch and cut, diberikan L yang merupakan himpunan titik aktif pada pencabangan branch and cut. Nilai objektif terbaik yang diperoleh

dari titik layak dinotasikan sebagai 𝑧𝑧. Lebih lanjut, 𝑧𝑧𝐾𝐾 adalah batas atas nilai

(19)

memperbaharui 𝑧𝑧𝐾𝐾. Dalam beberapa kondisi, sejumlah cutting plane ditemukan pada langkah 5, biasanya cutting plane yang diperoleh dipilah dan yang ditambahkan pada persamaan adalah subsetnya. Sub-masalah yang terbentuk pada

langkah 7 disebut sub-masalah anak dan sub-masalah pada node sebelumnya

sebagai sub-masalah induknya. Biasanya pembagian masalah tersebut

menggunakan bentuk dari variabel penghubung 𝑥𝑥𝑀𝑀 ≤ 𝑀𝑀 dan 𝑥𝑥𝑀𝑀 ≥ 𝑀𝑀 untuk suatu variabel 𝑥𝑥𝑀𝑀 dan a merupakan integer. Kendala-kendala tersebut dapat diselesaikan

dengan berbagai metode untuk ILP. Secara khusus pada langkah awal

diselesaikan dengan metode simpleks, jawaban berikutnya diperoleh dengan

metode dual Simpleks. Solusi dual untuk jawaban sub-masalah akhir adalah layak

untuk sub-masalah awal. Lebih lanjut, ketika pemotongan (cut) ditambahkan pada

langkah 5, juga memanfaaatkan iterasi dual Simpleks untuk mendapatkan solusi

optimal yang integer. Cutting plane yang ditambahkan pada salah satu vertex dari

pohon branch and cut mungkin tidak berlaku untuk sub-masalah lain. Dalam hal

Gambar

Tabel 2.1 Tabel Optimum Masalah Program Linier
Tabel 2.2 Setelah Penambahan Pemotongan Fraksional

Referensi

Dokumen terkait

KEGI ATAN : PENI NGKATAN JALAN ( DAK PENUGASAN) PEKERJAAN : PERENCANAAN TEKNI S PENI NGKATAN JALAN UNI T KERJA : DI NAS PEKERJAAN UMUM DAN KOTA PAREPARE. LOKASI : TERSEBAR DALAM

Prestasi Belajar adalah merupakan hasil yang dicapai oleh seseorang dalam. kegiatan belajarnya (Tu’u dalam

Oleh kerana keluarga sebelah lelaki yang akan mencarikan calon isteri untuk anak lelaki mereka maka selain daripada hubungan kekeluargaan yang sudah terjalin, kriteria lain

kasih sayang yang begitu luar biasa sehingga saya bisa melanjutkan sekolah yang lebih tinggi hingga saya bisa berhasil mendapatkan gelar sarjana ekonomi ini di

General questions are going to answer are: (1) What is the concept of cooperative learning for English as a foreign language learning, (2) What are the

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

Strategi yang digunakan untuk mencapai tujuan penelitian pada adalah membagi proyek penelitian menjadi dua sub proyek yaitu (1) survai gayaberat, (3) pengumpulan data

Berkenaan dengan apa yang sedang terjadi pada diri anda, dan apa yang sedang terjadi pada hubungan antara orang-orang yang terlibat di dalam keterbukaan diri tersebut..