Integer Programming PDF
Integer Programming PDF
(PemrogramanBulat)
Pemrograman bulat dibutuhkan ketika keputusan harus dilakukan dalam bentuk bilangan bulat
(bukanpecahanyangseringterjadibilakitagunakanmetodesimpleks).
Model matematis dari pemrograman bulat sebenarnya sama dengan model linear
programming,dengantambahanbatasanbahwavariabelnyaharusbilanganbulat.
Terdapat3macampermasalahandalampemrogramanbulat,yaitu:
1. Pemrograman bulat murni, yaitu kasus dimana semua variabel keputusan harus berupa
bilanganbulat.
2. Pemrograman bulat campuran, yaitu kasus dimana beberapa, tapi tidak semua, variabel
keputusanharusberupabilanganbulat
3. Pemrograman bulat biner, kasus dengan permasalahan khusus dimana semua variabel
keputusanharusbernilai0dan1
Model pemrograman bulat dapat juga digunakan untuk memecahkan masalah dengan
jawabanyaatautidak(yesornodecision),untukmodelinivariabeldibatasimenjadidua,misal1
dan0,jadikeputusanyaatautidakdiwakiliolehvariabel,katakanlah,xj,menjadi:
1,untukkeputusan
0,untukkeputusan
Modeliniseringkalidisebutsebagaimodelpemrogramanbulatbiner
MetodeGrafis
ContohSoal:
Sebuah perusahaan manufaktur elektronik The Flash memproduksi 2 buah produk kipas angin
dan lampu gantung. Tiaptiap 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.
Perusahaantersebuthanyamempunyaiwaktuuntukpenyolderan12jamdanassembling30jam
kerjaperminggunya.BilalampugantungmemberikankeuntungansebanyakRp.7000danKipas
anginmemberikankeuntunganRp.6000perunit,formulasikeputusanproduksiperusahaanThe
Flashadalahsebagaiberikut:
OperationResearch2
Integerprogramming
AjieWahyujati
Maksimisasiprofit=
Ditujukanpada:
7X1+6X2
2X1+3X212
6X1+5X230
X1,X20
X1=Lampu
X2=KipasAngin
DenganmetodelinearprogrammingdapatkitahitungbahwasolusioptimaldariTheFlashadalah
memproduksi 3 3 4 Lampu dan 1 1 2 Kipas Angin. Kita menyadari bahwa perusahaan tidak bisa
membuat dan menjual barang dalam bentuk pecahan, jadi kita memutuskan bahwa kita
menghadapipermasalahanintegerprogramming/pemrogramanbulat.
OperationResearch2
Integerprogramming
AjieWahyujati
MetodeRoundOff
Pemecahanpalingmudahdariproblemdiatasadalahdenganmelakukanpembulatan(roundoff)
darisolusioptimalkitalakukanpembulatanmenjadiX1=4danX2=2,tetapipembulatantersebut
diluarareakemungkinan produksi(lihatgrafik),jaditidakbisadilakukan.Pembulatanberikutnya
adalah ke dalam area kemungkinan produksi, yaitu X1 = 4 dan X2 = 1, produksi tersebut bisa
dilakukantetapibelumtentumerupakansolusioptimal
Lampu(X1)
KipasAngin(X2)
Profit($7X,+$6X2)
0
1
2
3
4
5
0
1
2
3
4
0
1
2
3
0
1
0
0
0
0
0
0
0
1
1
1
1
1
2
2
2
2
3
3
4
0
7
14
21
28
35
6
13
20
27
34
12
19
26
33
18
25
24
<Solusioptimalintegerprogramming
<Solusioptimalroundoff
Dari tabel diatas dapat kita ketahui bahwa solusi optimal dari permasalahan produksi tersebut
adalahX1=5danX2=0dengantotalkeuntungan35
Perhatikan bahwa batasan integer ini menyebabkan keuntungan lebih rendah daripada solusi
optimaldarilinearprogramming.Hasildariintegerprogrammingtidakakanpernahmelebihinilai
keuntunganoptimaldarisolusiLP.
OperationResearch2
Integerprogramming
AjieWahyujati
MetodeBranchandBound
DarikasusTheFlashdiatas,kitadapatkan:
Maksimisasiprofit= 7X1+6X2
Ditujukanpada:
2X1+3X212
6X1+5X230
X1,X2integer0
DenganLinearProgrammingsederhanadidapatkan:
2X1+3X2 =12
2X1+3X2=12x3 6X1+9X2=36
6X1+5X2=30x1 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
KarenaX1danX2bukanbilanganbulat,makasolusiinitidakvalid,nilaikeuntungan35.25dijadikan
batasatasawal.
Dengan metode pembulatan kebawah, kita dapatkan X1=3 dan X2 = 1, dengan keuntungan = 27,
hasilinifeasiblekarenakeduavariabelmerupakanbilanganbulat,jadinilaikeuntungandijadikan
batasbawah.
Iterasi1
Permasalahan diatas kemudian dibagi menjadi 2 sub problem, A dan B. kita dapat melakukan
pencabangan(branch)padahasildenganvariabeltidakbulat(integer)
B
Maksimisasi:
7X1+6X2
Maksimisasi:
7X1+6X2
Ditujukanpada: 2X1+3X212
Ditujukanpada: 2X1+3X212
6X1+5X230
6X1+5X230
4
X1
3
X1
DenganmetodeLPsederhanadidapatkansolusi:
SolusioptimalsubproblemA:X1=4,X2=1.2,profit=35.2
SolusioptimalsubproblemB:X1=3,X2=2,profit=33.0
KarenasolusisubproblemBkeduavariabelnyamerupakanbilanganbulat,makakitaanggapsudah
feasible,makakitahentikancabangtersebutdannilaiprofitnyamenjadibatasbawahbaru.
SubproblemAmasihmempunyaivariabelbukanbilanganbulat,makamasihditeruskandannilai
profitnya(35.2)menjadibatasatasbaru
Iterasi2
SubproblemAkitacabangkanmenjadi2,menjadisubproblemCdanDdenganbatasantambahan
untuk subproblem C adalah X2 2 dan untuk subproblem D adalah X2 1. Logika dari
pengembangan subproblem ini adalah karena solusi optimal dari subproblem A X2 = 1.2 tidak
feasible,makasolusiintegerharuslahberadadalamwilayahX22atauX21
OperationResearch2
Integerprogramming
AjieWahyujati
D
C
Maksimisasi:
7X1+6X2
Maksimisasi:
7X1+6X2
Ditujukanpada: 2X1+3X212
Ditujukanpada: 2X1+3X212
6X1+5X230
6X1+5X230
X1
X1
4
3
X2
X2
2
1
SubproblemCtidakmempunyaisolusikarenaduabatasanawaltidakterpenuhibilaadabatasan
tambahanX14danX22,jadicabanginitidakdigunakan.
Solusi optimal dari cabang D adalah X1 = 41 6 dan X2 = 1, profit 35.16, jadi batas atas berubah
menjadi35.16.
Iterasi3
KitabuatcabangbaruEdenganbatasantambahanbatasanX14danFdenganbatasantambahan
X15
E
F
Maksimisasi:
7X1+6X2
Maksimisasi:
7X1+6X2
Ditujukanpada: 2X1+3X212
Ditujukanpada: 2X1+3X212
6X1+5X230
6X1+5X230
X1
X1
4
4
X1
X1
4
5
1
1
X2
X2
Solusi optimal E adalah X1 = 4 dan X2 = 1
Solusi optimal F adalah X1 = 5 dan X2 = 0
denganprofit34
denganprofit35
JadisolusioptimaluntukpemrogramanbulatiniadalahX1=5danX2=0denganprofit35
Tidakada
solusi
X22
feasible
A
E
X1=4
Feasible,integer
X1=4
X2=1.2
X2=1
X
4
solution
1
=35.2
X14
=34
X1=3.75
D
X21
X2=1.5
=35.25
X1=41 6
X2=1
=35.16
X13
B
X1=3
X2=2
=33
Iterasi1
OperationResearch2
Integerprogramming
X15
Iterasi2
F
X1=5
X2=0
=35
Iterasi3
Feasible,integer
solution
Optimal
Solution
AjieWahyujati