0% menganggap dokumen ini bermanfaat (0 suara)
123 tayangan42 halaman

Pemrograman Bulat dalam Optimisasi

Dokumen ini membahas tentang integer programming yang merupakan model matematis dengan variabel keputusan yang harus bernilai bilangan bulat. Dokumen ini juga menjelaskan metode untuk menyelesaikan masalah integer programming seperti metode branch and bound.

Diunggah oleh

Rafly19
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
123 tayangan42 halaman

Pemrograman Bulat dalam Optimisasi

Dokumen ini membahas tentang integer programming yang merupakan model matematis dengan variabel keputusan yang harus bernilai bilangan bulat. Dokumen ini juga menjelaskan metode untuk menyelesaikan masalah integer programming seperti metode branch and bound.

Diunggah oleh

Rafly19
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Integer Programming

Integer Programming

Definisi :
Suatu model matematis dari Integer Programming
adalah Program linier dengan penambahan
batasan bahwa beberapa atau semua variabel
harus bernilai integer.
.
Kapan Model Integer Diperlukan ?
Dalam optimisasi seringkali ditemukan
permasalahan yang mengharuskan beberapa atau semua
variabel keputusan bernilai bulat (integer). Misal Produk
manufaktur: Kursi, Meja, Televisi, Kipas Angin Dll .

Permasalahan seperti ini tidak bisa diselesaikan secara


langsung dengan metode program linier atau metode
simpleks karena adanya beberapa atau semua variable
yang berupa bilangan bulat, melanggar salah satu asumsi
metode simpleks yaitu bahwa semua variable keputusan
adalah bilangan real (tidak harus bilangan bulat).
• Berdasarkan banyaknya variable keputusan yang
bernilai bulat, integer programming dapat
diklasifikasikan menjadi empat yaitu:
1) Pure Integer Programming

Permasalahan integer programming masuk dalam


kategori ini jika semua variable keputusan harus
bernilai bilangan bulat.

2)Mixed Integer Programming (MIP)

Permasalahan integer programming masuk dalam


kategori ini jika tidak semua variable keputusan
berupa bilangan bulat atau dengan kata lain
beberapa variable keputusan boleh memiliki nilai
tidak bulat atau bisa bilangan berbentuk pecahan.
[Link] Integer Programming(BIP)
Permasalahan integer programming masuk dalam
kategori ini jika semua variable keputusan
memiliki nilai berupa bilangan biner (0 atau 1).

4. Mixed Binary Integer Programming(MBIP)


Jika beberapa variable keputusan memiliki nilai
biner, beberapa variable keputusan memiliki nilai
integer dan sisanya memiliki nilai real ( boleh
pecahan).
Banyak aplikasi kegunaan dari integer programming,
misalnya dalam penghitungan produksi sebuah
perusahaan manufaktur, dimana hasil dari
perhitungannya haruslah bilangan bulat, karena
perusahaan tidak dapat memproduksi produknya
dalam bentuk setengah jadi.

• Misal perusahaan perkitan mobil tidak bisa merakit


5,3 mobil A dan 2,5 mobil B perhari, tetapi haruslah
bilangan bulat, dengan metode pembulatan, bisa kita
hasilkan misalnya 5 mobil A dan 2 mobil B per hari,
tetapi apakah metode pembulatan ini efisien?
• Model pemrograman bulat dapat juga
digunakan untuk memecahkan masalah
dengan jawaban ya atau tidak (yes or no
decision), untuk model ini variabel dibatasi
menjadi dua, misal 1 dan 0, jadi keputusan ya
atau tidak diwakili oleh variabel

• Model ini seringkali disebut sebagai model


pemrograman bulat biner
Metode Grafis
Contoh Soal:
Sebuah perusahaan manufaktur elektronik “The Flash”
memproduksi 2 buah produk kipas angin dan lampu gantung. Tiap-
tiap produk tersebut membutuhkan 2 tahapan produksi, yaitu
penyolderan (perakitan komponen elektronik) dan assembling
(perakitan komponen non-elektronik) penyolderan membutuhkan
waktu 2 jam untuk lampu dan 3 jam untuk kipas angin, sedangkan
assembling membutuhkan waktu 6 jam untuk lampu dan 5 jam
untuk kipas angin. Perusahaan tersebut hanya mempunyai waktu
untuk penyolderan 12 jam dan assembling 30 jam kerja per minggu-
nya. Bila lampu gantung memberikan keuntungan sebanyak Rp.
7000 dan Kipas angin memberikan keuntungan Rp. 6000 per unit,
formulasi keputusan produksi perusahaan The Flash adalah sebagai
berikut:
Maksimisasi profit = 7X1 + 6X2
Ditujukan pada: 2X1 + 3X2 ≤ 12
6X1 + 5X2 ≤ 30
X1, X2 ≥ 0
X1 = Lampu
X2 = Kipas Angin
Dengan metode linear programming dapat kita hitung bahwa
solusi optimal dari The Flash adalah memproduksi Lampu
dan Kipas Angin.

Dalam hal ini perusahaan tidak bisa membuat dan menjual


barang dalam bentuk pecahan, jadi kita memutuskan bahwa
kita menghadapi permasalahan integer programming /
pemrograman bulat.
Grafik Linier Programming
Dengan Linear Programming sederhana
didapatkan:
2X1 + 3X2 = 12 x3 6X1 + 9X2 = 36 2X1 + 3X2 = 12
6X1 + 5X2 = 30 x1 6X1 + 5X2 = 30 2X1 + 3(1.5) = 12
4X2 = 6 2X1 = 7.5
X2 = 1.5 X1 = 3.75

Profit = 7(3.75) + 6(1.5) = 35.25

Karena X1 dan X2 bukan bilangan bulat, maka solusi ini tidak valid
Metode Round Off
Pemecahan paling mudah dari problem diatas adalah dengan
melakukan pembulatan (round off) dari solusi optimal kita
lakukan pembulatan menjadi X1 = 4 dan X2 = 2, tetapi
pembulatan tersebut diluar area kemungkinan produksi (lihat
grafik), jadi tidak bisa dilakukan.

• Pembulatan berikutnya adalah ke dalam area kemungkinan


produksi, yaitu X1 = 4 dan X2 = 1, produksi tersebut bisa
dilakukan tetapi belum tentu merupakan solusi optimal
Lampu (X1) Kipas Angin (X2) Z= ($7 X1 + $6X2)
0 0 0
1 0 7
2 0 14
3 0 21
4 0 28
5 0 35 < Solusi optimal interger programming
0 1 6
1 1 13
2 1 20
3 1 27
4 1 34 < Solusi optimal round off
0 2 12
1 2 19
2 2 26
3 2 33
0 3 18
1 3 25
0 4 24
• Dari tabel diatas dapat kita ketahui bahwa solusi
optimal dari permasalahan produksi tersebut adalah
X1 = 5 dan X2 =0 dengan total keuntungan 35

• Perhatikan bahwa batasan integer ini menyebabkan


keuntungan lebih rendah daripada solusi optimal dari
linear programming.

• Hasil dari integer programming tidak akan


pernah melebihi nilai keuntungan optimal dari
solusi LP.
Metode Branch and Bound

Metode yang paling sering digunakan untuk menyelesaikan


ILP adalah Branch and Bound.

Langkah utama dalam metode Branch and Bound.


- Batasi (Bound)
Batas Atas (Upper Bound)
Batas Bawah (Lower Bound)

- Pencabangan Cabang (Branching)

- Penghentian Cabang (Fathoming)


Pencabangan (Branching)
• Pencabangan dilakukan jika masih terdapat variabel
keputusan yang harus bernilai integer namun memiliki
solusi yang tidak integer.

• Pencabangan dilakukan dengan cara menambahkan


pembatas pada masalah asli.

• Penambahan pembatas ini ditujukan untuk membuat


variabel keputusan yang belum bernilai integer supaya
bernilai integer.
Metode Branch and Bound

Dari kasus “The Flash” diatas, kita dapatkan:


Maksimum = 7X1 + 6X2
Pembatas: 2X1 + 3X2 ≤ 12
6X1 + 5X2 ≤ 30
X1, X2 ≥ integer, 0
Dengan Linear Programming sederhana
didapatkan:
2X1 + 3X2 = 12 x3 6X1 + 9X2 = 36 2X1 + 3X2 = 12
6X1 + 5X2 = 30 x1 6X1 + 5X2 = 30 2X1 + 3(1.5) = 12
4X2 = 6 2X1 = 7.5
X2 = 1.5 X1 = 3.75

Profit = 7(3.75) + 6(1.5) = 35.25

Karena X1 dan X2 bukan bilangan bulat, maka solusi ini tidak valid, nilai
keuntungan 35.25 dijadikan batas atas awal.
Dengan metode pembulatan kebawah, kita dapatkan X1=3 dan X2 = 1, dengan
keuntungan = 27, hasil ini feasible karena kedua variabel merupakan bilangan
bulat, jadi nilai keuntungan dijadikan batas bawah.
Iterasi 1
Permasalahan diatas yaitu X1= 3,75 dan X2 = 1,5
Z= 7(3.75) + 6(1.5) = 35.25 kemudian dibagi menjadi 2 sub problem yaitu A dan B.
Kita dapat melakukan pencabangan (branch) pada hasil dengan variabel tidak bulat
(integer)
 A
Maksimum: 7X1 + 6X2
Batasan: 2X1 + 3X2 ≤ 12
6X1 + 5X2 ≤ 30
X1 ≥4

Akan diperoleh hasil: X1= 4 dan X2 = 1,2 ( lihat grafik LP) sehingga
Z = 35,20
Sub masalah ini akan dibagi lagi menjadi 2 ( X2 = tidak interger )
Dengan batasan X2  1 dan X2  2 yaitu sub masalah C dan D
B
Maksimum : 7X1 + 6X2
Batasan : 2X1 + 3X2 ≤ 12
6X1 + 5X2 ≤ 30
X1 ≤ 3
Akan diperoleh hasil : X1= 3 dan X2 = 2 sehingga
Z = 33
Sub masalah B ini dihentikan karean nilainya sudah
interger dan nilai Z menjadi batas bawah baru (lower
bound)
Iterasi 2
Sub masalah A (X1= 4 dan X2 = 1,2) dicabangkan menjadi 2
yaitu C dan D
C
Maksimum : 7X1 + 6X2
Batasan : 2X1 + 3X2 ≤ 12
6X1 + 5X2 ≤ 30
X1 ≥4
X2 ≥2

Tidak ada hasil yang feasible


D
Maksimum : 7X1 + 6X2
Batasan : 2X1 + 3X2 ≤ 12
6X1 + 5X2 ≤ 30
X1 ≥4
X2 ≤1
Akan diperoleh hasil : X1= 4 1/6 dan X2 = 1 sehingga
Z = 35,16
Sub masalah ini akan dibagi lagi menjadi 2 ( X1 = tidak interger )

Dengan batasan X1  4 dan X1  5 yaitu sub masalah E dan F


Iterasi 3
Kita buat cabang baru E dengan batasan tambahan
batasan X1 ≤ 4 dan F dengan batasan tambahan X1 ≥ 5
E
Maksimum : 7X1 + 6X2
Batasan : 2X1 + 3X2 ≤ 12
6X1 + 5X2 ≤ 30
X1 ≥4
X1 ≤4
X2 ≤1
Akan diperoleh hasil : X1= 4 dan X2 = 1 sehingga
Z = 34
Karena hasil sudah interger maka proses berhenti
F
Maksimum : 7X1 + 6X2
Batasan : 2X1 + 3X2 ≤ 12
6X1 + 5X2 ≤ 30
X1 ≥4
X1 ≥5
X2 ≤1
Akan diperoleh hasil X1 = 5 dan X2 = 0 dengan
Z = 35
Jadi solusi optimal untuk pemrograman bulat ini
adalah X1 = 5 dan X2 = 0 dengan profit 35
( nilai terbesar)
Contoh-contoh model dengan
Variabel “Bilangan Bulat”
Contoh-contoh model dengan Variabel
bilangan bulat.
Beberapa Model :
[Link] Budget ( anggaran dari modal )
[Link] period Capital Budgeting ( menganggarkan
modal dalam periode yang berbeda)
[Link] Problem ( masalah Knapsack)
[Link] Covering ( penutup himpunan )
[Link] (penjadwalan)
Capital Budgeting
• Punya uang untuk investasi Rp 14.000.000.
• Ada 4 jenis kesempatan investasi, yaitu:
– Investasi 1 : butuh Rp 5.000.000 , akan berkembang menjadi
Rp 8.000.000
– Investasi 2 : butuh Rp 7.000.000 , akan berkembang menjadi
Rp 11.000.000
– Investasi 3 : butuh Rp 4.000.000 , akan berkembang menjadi
Rp 6.000.000
– Investasi 4 : butuh Rp 3.000.000 , akan berkembang menjadi
Rp 4.000.000
Model Interger Programming :
Xi = Investasi ke i , i=1,2,3,4
Xi = 0, jika tidak mengambil investasi i
= 1, jika mengambil investasi I

Maks : Z = 8x1 + 11x2 + 6x3 + 4x4

Kendala : 5x1 + 7x2 + 4x3 + 3x4 ≤ 14

xi  {0,1} , i = 1,2,3,4
( dalam juta rupiah )
• Apabila ditambah kendala :
a. Kita hanya dapat membuat paling banyak dua investasi
b. Jika investasi 2 diambil, maka investasi 4 juga diambil
c. Jika investasi 1 diambil, maka investasi 3 tidak dapat diambil

• Model matematikanya :
a. ( x1 + x2 + x3 + x4 ≤ 2 )
b. ( x2 – x4 ≤ 0 )
c. ( x1 + x3 ≤ 1 )
Multiperiod Capital Budgeting
Dimiliki 3 jenis dana untuk investasi sebesar :
Rp 14.000.000 , Rp 12.000.000 dan Rp 15.000.000
selama 4 periode.

Kita identifikasi 4 kali kesempatan investasi :


• Investasi 1 : Rp 5.000.000 , Rp 8.000.000 dan Rp 2.000.000
dalam bln 1, bln 2, bln 3 akan menjadi Rp 8.000.000

• Investasi 2 : Rp 7.000.000 dan Rp 10.000.000 dalam bln 1 dan


bln 3 akan menjadi Rp 11.000.000
• Investasi 3 : Rp 4.000.000 dan Rp 6.000.000 dalam bln 2 dan
bln 3 akan menjadi Rp 6.000.000

• Investasi 4 : Rp 3.000.000 , Rp 4.000.000 dan Rp 5.000.000


dalam bln 1, bln 2, bln 3 akan menjadi Rp 5.000.000

• Bagaimana keputusan dari pemodal ?


• Model Interger Programming:
Maks : Z = 8x1 + 11x2 + 6x3 + 5x4
Kendala : 5x1 + 7x2 + 3x4 ≤ 14
8x1 + 4x3 + 4x4 ≤ 12
2x1 + 10x2 + 6x3 + 5x4 ≤ 15
xi  {0,1} , i = 1,2,3,4
( dalam juta rupiah )
Knapsack Problem
• Secara tradisional ada Knapsack ( karung / tempat)
dengan kapasitas 14.
• Ada sejumlah barang katakanlah 4 jenis barang. Tiap
barang mempunyai ukuran dan nilai , sbb :

Barang ke- 1 2 3 4
Ukuran 5 7 4 3
Nilai 8 11 6 4
Tujuan : memaksimumkan nilai total barang dalam
knapsack !
Model Interger Programming:
Maksimumkan : Z = 8x1 + 11x2 + 6x3 + 4x4

Kendala : 5x1 + 7x2 + 4x3 + 3x4 ≤ 14

xi  {0,1} , i = 1,2,3,4
Set Covering
Mengamati masalah penempatan dalam suatu lokasi.

Suatu kota akan mempertimbangkan lokasi stasiun


pemadam kebakaran.

• Stasiun pemadam kebakaran itu akan efektif bila dapat


menjangkau lokasi daerahnya sendiri dan daerah tetangga
sekitarnya yang berbatasan.

• Tujuannya adalah meminimumkan banyak stasiun pemadam


kebakaran yang dibangun serta dapat melayani semua
daerah !
• Contoh
Pemerintah berencana untuk membangun kantor pusat
pemadam kebakaran. Pada kantor pusat pemadam kebakaran akan
ditempatkan kendaraan pemadam kebakaran, peralatan pemadam
kebakaran dan personelnya, sehingga jika ada kebakaran maka
petugas akan berangkat dari kantor pusat pemadam kebakaran
menuju lokasi kebakaran.
Petugas tidak boleh mencapai lokasi kebakaran lebih dari 15
menit (waktu tempuh) dari stasiun pemadam kebakaran.

Tentukan dimanakah kantor pusat pemadam kebakaran harus


dibangun supaya banyaknya kantor yang harus dibangun tidak
banyak (minimal), sehingga dana APBD bisa dihemat untuk
dialokasikan pada bidang lain?
Waktu yang dibutuhkan dari kota yang satu ke kota yang lain
adalah sebagai berikut :

Kota ke
1 2 3 4 5 6
1 0 10 20 30 30 20

2 10 0 25 35 20 10

3 20 25 0 15 30 20

4 30 35 15 0 15 25

5 30 20 30 15 0 14

6 20 10 20 25 14 0
Sebuah kota dapat dicover oleh stasiun pemadam kebakaran
jika jarak tempuhnya tidak lebih dari 15 menit.
Covering set untuk setiap kota sbb:

Kota Covering sets (15 menit)

1 1,2

2 1,2,6

3 3,4

4 3,4,5

5 4,5,6

6 2,5,6
• Variabel keputusan :

xi = 1 jika dibangun stasiun pemadam kebakaran


pada kota-I

xi = 0 jika TIDAK dibangun stasiun pemadam


kebakaran pada kota-i
• Fungsi tujuan :
Minimum Z= x1+ x2+ x3+ x4+ x5 + x6

• Fungsi pembatas:
x1+x2 ≥ 1
x1+x2 + x6 ≥ 1
x3+x4 ≥ 1
x3+x4+x5 ≥ 1
x4+x5+x6 ≥ 1
x2+x5+x6 ≥ 1
• xi  {0,1} , i = 1,2,3, ….. ,6

Anda mungkin juga menyukai