0% menganggap dokumen ini bermanfaat (0 suara)
9 tayangan14 halaman

Integer Programming RO (Algoritma)

Program integer adalah bentuk dari program linier di mana variabel keputusan harus berupa bilangan bulat, dengan dua jenis utama yaitu Mixed Integer Programming dan Pure Integer Programming. Metode pemecahan untuk program integer termasuk Branch and Bound dan Cutting Plane, yang bertujuan untuk menemukan solusi optimum integer. Algoritma Cutting Plane, yang diperkenalkan oleh R.E. Gomory, mengubah ruang solusi untuk memastikan semua titik ekstrem adalah integer dan mengatasi masalah ketidaklayakan dengan menambahkan batasan baru.

Diunggah oleh

Fadhil Dwi P
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 DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
9 tayangan14 halaman

Integer Programming RO (Algoritma)

Program integer adalah bentuk dari program linier di mana variabel keputusan harus berupa bilangan bulat, dengan dua jenis utama yaitu Mixed Integer Programming dan Pure Integer Programming. Metode pemecahan untuk program integer termasuk Branch and Bound dan Cutting Plane, yang bertujuan untuk menemukan solusi optimum integer. Algoritma Cutting Plane, yang diperkenalkan oleh R.E. Gomory, mengubah ruang solusi untuk memastikan semua titik ekstrem adalah integer dan mengatasi masalah ketidaklayakan dengan menambahkan batasan baru.

Diunggah oleh

Fadhil Dwi P
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 DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 14

1.

1 Pengertian Program Integer


Program integer atau integer programming (IP)
adalah bentuk lain dari program linier (LP) di mana asumsi
divisibilitasnya melemah atau hilang sama sekali. Bentuk ini
muncul karena dalam kenyataannya tidak semua variabel
keputusan dapat berupa bilangan pecahan.
Asumsi divisibilitas melemah, artinya sebagian dari nilai
variabel keputusan harus berupa integer dan sebagian lainnya
boleh berupa bilangan pecahan. Persoalan program integer di
mana hanya sebagian dari variabel keputusannya yang harus
integer disebut sebagai persoalan Mixed Integer
Programming. Tetapi jika seluruh variabel keputusan dari
suatu persoalan program linier (LP) harus berharga integer, maka
persoalan tersebut disebut sebagai persoalan Pure Integer
Programming. Dalam hal ini, asumsi divisibilitas dari program
linier hilang sama sekali.

Contoh
Maksimumkan: Z = 8x1 + 5x2
Kendala : x1 + x2 ≤ 6
9x1 + 5x2 ≤ 45
x1, x2 ≥ 0 ; x2 integer

1
Tampaknya cukup untuk mendapatkan solusi bulat dari
masalah LP, dengan menggunakan metode simpleks biasa dan
kemudian membulatkan nilai-nilai pecah solusi optimum. Hal ini
bukan tugas mudah untuk membulatkan nilai-nilai pecah variabel
basis yang menjamin tetap memenuhi semua kendala dan tidak
menyimpang cukup jauh dari solusi bulat yang tepat. Karena itu
perlu prosedur yang sistematis untuk mendapatkan solusi bulat
optimum terhadap masalah itu. Ada beberapa pendekatan solusi
terhadap masalah integer programing yaitu salah satu di
antaranya adalah pendekatan dengan cutting plane.

1.2 Metode Pemecahan Program Integer


Dalam program linier, metode simpleks didasari oleh
pengenalan bahwa pemecahan optimum terjadi di titik ekstrem
dari ruang solusi. Hasil yang penting ini pada intinya mengurangi
usaha pencarian pemecahan optimum dari sejumlah pemecahan
yang tidak terbatas menjadi sejumlah yang terbatas. Sebaliknya
Integer Linier Programming (ILP) memulai dengan sejumlah titik
pemecahan yang terbatas. Tetapi sifat variabel yang berbentuk
integer mempersulit perancangan sebuah algoritma yang efektif
untuk mencari secara langsung di antara titik integer yang layak
dari ruang penyelesaian.
Terdapat dua metode untuk menghasilkan batasan-
batasan khusus yang akan memaksa pemecahan optimum dari
masalah program linier yang dilonggarkan untuk bergerak ke arah
pemecahan integer yang diinginkan yaitu metode Branch and
Bound dan metode Bidang Pemotong (Gomory Cutting Plane).

2
1.3 Metode Cutting Plane Algorithm
Suatu prosedur sistematik untuk memperoleh solusi
integer optimum terhadap pure integer programming
pertama kali dikemukakan oleh R.E. Gomory pada tahun 1958.
Kemudian prosedur ini diperluas untuk menangani kasus yang
lebih sulit, yaitu mixed integer programming.
Pembentukan kendala Gomory adalah begitu penting
sehingga memerlukan perhatian khusus. Misalkan tabel optimum
masalah Linier Programming yang disajikan merupakan solusi
optimum kontinu. Secara historis, metode bidang pemotong
adalah metode pertama yang diperkenalkan dalam literatur
Operasi Riset. Oleh karena itu, maka yang disajikan dalam tulisan
ini adalah bagaimana menemukan penyelesaian optimal yang
integer dengan menggunakan metode algoritma bidang
pemotong.

1.3.1 Algoritma Bidang Pemotong


Gagasan dari algoritma bidang pemotong adalah
mengubah himpunan cembung (conveks) dari bidang
pemecahan, sehingga titik ekstrem yang sesuai menjadi
semuanya integer. Perubahan seperti ini dalam batas ruang
pemecahan masih tetap menghasilkan sebuah himpunan
cembung. Juga perubahan ini harus dilakukan tanpa
“mengiris” setiap pemecahan integer yang layak dari masalah
semula.

1.3.2 Algoritma Fraksional


Satu persyaratan dasar untuk penerapan algoritma ini
adalah bahwa semua koefisien dan konstanta sisi kanan dari
setiap kendala haruslah integer. Persyaratan dimaksud
diberlakukan karena seperti yang akan diperlihatkan kemudian

3
bahwa, algoritma integer murni tidak membedakan antara
variabel biasa dan variabel slack dari masalah yang bersangkutan
dalam arti bahwa semua variabel harus integer. Adanya koefisien
pecahan dalam kendala tidak memungkinkan variabel slack untuk
memiliki nilai integer. Dalam kasus ini algoritma fraksional dapat
menyatakan bahwa tidak terdapat pemecahan yang layak,
sekalipun masalah tersebut memiliki pemecahan integer yang
layak dalam bentuk variabel bukan slack.
Perincian algoritma fraksional pertama membahas
masalah program linier yang dilonggarkan dipecahkan yaitu
dengan mengabaikan kondisi integer. Jika pemecahan optimal
ternyata integer, tidak ada lagi yang perlu dilakukan. Sebaliknya
batasan sekunder yang akan memaksa pemecahan bergerak ke
arah pemecahan integer dikembangkan sebagai berikut.
Anggaplah Tabel 5.1 merupakan tabel optimal terakhir untuk
program linier diketahui.
Variabel xi, (i = 1, 2, ... , m) mewakili variabel basis
dan variabel wj (j = 1, ..., n) adalah variabel nonbasis. Variabel-
veriabel ini telah diatur demikian untuk kemudahan.
Pertimbangkan persamaan ke-i di mana variabel dasar xi memiliki
nilai noninteger.

xi  n
j
i   i w j , βj noninteger (baris sumber) (1.1)
j 1

4
Tabel 1.1 Penyelesaian Optimal Metode Simpleks.
Dasar X1 ... xi ... xm w1 ... wj ... wn Pemecahan
Z 0 ... 0 ... 0 c1 ... cj ... cn βn

x1 1 ... 0 ... 0 ... ... β1


11 1j 1n
. . ... . ... . . ... . ... . .
. . ... . ... . . ... . ... . .
. . ... . ... . . ... . ... . .
xi 0 ... 1 ... 0 ... ... βi
 i1 ij  ni
. . ... . ... . . ... . ... . .
. . ... . ... . . ... . ... . .
. . ... . ... . . ... . ... . .

xm 0 ... 0 ... 1 ... ... βn


 m1  mj  mn

Setiap persamaan seperti ini akan ditunjuk sebagai baris


sumber. Karena pada umumnya koefisien fungsi tujuan dapat
dijadikan integer, maka variabel Z juga integer dan persamaan Z
tersebut dapat dipilih sebagai baris sumber. Pada kenyataannya
bukti konvergensi dari algoritma ini mengharuskan Z berupa
integer.
Anggaplah
βi = [ βi ] = f i
fi = βi – [ βi] (bagian pecahan dari βi) (1.2)
dan
i j  [ j fij
]
fij   [ (bagian pecahan dari  j ) (1.3)
 j
i
j
] i i
Di mana N = [a] adalah integer terbesar sedemikian rupa sehingga
N ≤ a. Disimpulkan bahwa 0 < fi < 1 dan 0 < fij ≤ 1; yaitu fi adalah
5
pecahan yang positif secara ketat dan fij adalah pecahan
nonnegatif. Jadi baris sumber menghasilkan
f  n f w  x [ ]  [nj ]w (1.4)
i ij j i i j
i j 1 j 1

Agar semua variabel xi dan wj adalah integer, maka sisi kanan


dari persamaan (5.4) haruslah integer yang pada gilirannya
menyiratkan bahwa sisi kiri harus pula integer.
Dengan diketahui fij ≥ 0 dan wj ≥ 0 untuk semua i dan j
dapat disimpulkan bahwa
n

f
j 1
ij wj  0
n
Akibatnya: fi   fij wj  fi  1 (1.5)
j 1

n
Karena f i   fij wj haruslah integer berdasarkan
j 1

pengembangannya, satu kondisi untuk memenuhi sifat integer ini


menjadi
n
fi   fij wj  0 (1.6)
j 1

batasan terakhir ini dapat ditulis dalam bentuk:


n

Si   fij w j  f i (pemotongan fraksional) (1.7)


j 1

di mana Si adalah variabel slack nonnegatif yang berdasarkan


definisinya haruslah sebuah integer. Persamaan batasan ini
mendefinisikan pemotong fraksional. Dari Tabel 5.2, wj = 0 dan
jadi Si = -fi yang tidak layak. Ini berarti bahwa batasan baru
tersebut tidak dipenuhi oleh pemecahan yang diberikan. Metode

6
dual simpleks dapat dipergunakan untuk ketidaklayakan ini
adalah yang setara dengan memotong bidang pemecahan ke arah
pemecahan integer yang optimal.
Jika pemecahan baru (setelah menerapkan dual simpleks)
adalah integer, maka proses iterasi berakhir. Jika tidak sebuah
pemotong fraksional baru akan dikembangkan dari tabel yang
dihasilkan dan metode dual simpleks dipergunakan sekali lagi
untuk ketidaklayakan ini. Prosedur ini diulangi sampai pemecahan
integer dicapai. Tetapi jika salah satu iterasi algoritma dual
simpleks tersebut menunjukkan bahwa tidak ada pemecahan
yang layak, maka masalah tersebut tidak memiliki pemecahan
integer yang layak.

Tabel 1.2 Penyelesaian Setelah Penambahan Pemotong


Frakasional.
Dasar x1 ... xi ... xm w1 ... wj ... wn Si Pemecahan
Z 0 ... 0 ... 0 c1 ... cj ... cn 0 βn
x1 1 ... 0 ... 0 ... ... 0 β1
11 1j 1n
. . ... . ... . . ... . ... . . .
. . ... . ... . . ... . ... . . .
. . ... . ... . . ... . ... . . .
xi 0 ... 1 ... 0 ... ... 0 βi
 i1 ij  ni
. . ... . ... . . ... . ... . . .
. . ... . ... . . ... . ... . . .
. . ... . ... . . ... . ... . . .
xm 0 ... 0 ... 1 ... ... 0 βn
 m1  mj  mn
Si 0 ... 0 ... 0 -fi1 ... fij ... fin 1 -fi

7
Algoritma ini disebut sebagai metode fraksional karena
semua koefisien bukan nol dari pemotongan yang dihasilkan
adalah kurang dari satu. Algoritma fraksional dapat menunjukkan
bahwa ukuran tabel simpleks dapat menjadi sangat besar
sementara pemotongan-pemotongan baru ditambahkan ke
dalam suatu batasan masalah. Ini tidak benar, sebab pada
kenyataannya jumlah total batasan ke dalam suatu masalah yang
ditambahkan tidak melebihi dari jumlah variabel dalam masalah
semula yaitu (m + n). Hasil ini berlaku karena jika masalah yang
ditambahkan mencakup lebih dari (m + n) batasan, maka satu
variabel slack Si atau lebih yang berkaitan dengan pemotongan
fraksional tersebut harus menjadi basis. Dalam kasus ini,
persamaan yang bersangkutan menjadi berlebihan dan jelas
harus dikeluarkan dari tabel.
Algoritma fraksional memiliki dua kelemahan:
1.3.2.1 Kesalahan pembulatan yang berkembang dalam
perhitungan otomatis kemungkinan besar akan
mendistorsi data semula terutama dengan
bertambahnya ukuran masalah.
1.3.2.2 Pemecahan masalah tetap tidak layak dalam arti
bahwa tidak ada pemecahan integer yang dapat
diperoleh sampai pemecahan integer optimal
dicapai. Ini berarti bahwa tidak ada pemecahan
integer yang baik jika perhitungan dihentikan
sebelum mencapai pemecahan integer yang optimal.

Kelemahan pertama dapat diatasi dengan pengembangan


algoritma integer semua-integer. Algoritma ini dimulai dengan
tabel awal yang semuanya terdiri dari integer (semua koefisien
integer) yang sesuai untuk pengembangan algoritma dual

8
simpleks. Pemotongan khusus lalu dikembangkan sedemikian
rupa sehingga penambahannya ke tabel akan mempertahankan
sifat integer dari semua koefisien. Tetapi fakta bahwa pemecahan
tetap tidak layak sampai pemecahan integer yang optimal dicapai
tetap menyajikan suatu kelemahan.
Kelemahan kedua dipertimbangkan dengan
mengembangkan algoritma bidang pemotong yang dimulai
dengan integer dan layak, tetapi tidak optimal. Iterasi berlanjut
untuk tetap layak dan integer sampai pemecahan optimum
dicapai. Dalam hal ini algoritma bersifat layak primal
sebagaimana dapat dibandingkan dengan algoritma fraksional
yang bersifat layak dual, tetapi algoritma ini tampaknya tidak
menjanjikan secara perhitungan.

1.4 Kekuatan Pemotongan Fraksional


Pengembangan algoritma di atas menunjukkan bahwa
pertidaksamaan tertentu yang mendefinisikan sebuah
pemotongan bergantung secara langsung pada baris sumber
yang diperoleh dari pemotongan yang dihasilkan. Jadi
pertidaksamaan yang berbeda dapat dihasilkan dari tabel
simpleks yang diketahui. Hasil ini dapat diungkapkan secara
matematis sebagai berikut. Pertimbangkan dua pertidaksamaan:

n
f ij wj  (1.8)
fi j 1
n
f kj wj  (1.9)
fk j 1

9
Pemotongan persamaan (5.8) dikatakan lebih kuat daripada
persamaan (5.9) jika fi ≥ fk dan fij ≤ fkj untuk semua j dengan
pertidaksamaan yang ketat berlaku setidaknya satu kali.
Definisi kekuatan ini sulit diterapkan dalam perhitungan.
Jadi aturan empiris yang dirancang dapat mencerminkan definisi
ini. Kedua persamaan ini menyatakan pemotongan dari baris
 
 
f
sumber yang memiliki (5.8) maksi{fi} atau (5.9) max i n i . 
  fij
 j 1 
Persamaan (5.9) lebih efektif karena lebih dekat mewakili definisi
kekuatan yang diberikan.

Contoh 1.1
Maksimumkan:
Kendala:

Tabel Awal

Setelah diselesaikan dengan metode simpleks, diperoleh


penyelesaian optimum sebagai berikut:

10
Tabel Optimal

Penyelesaian pada tabel optimal di atas kemudian disebut


sebagai penyelesaian kontinu optimum. Karena hasilnya masih
belum integer, maka diperlukan pembatas tambahan. Karena x1
dan x2 sama-sama merupakan noninteger, maka salah satu dapat
dipilih untuk menurunkan persamaan pembatas baru tersebut.
Kemudian variabel yang terpilih harus memberikan
ketidaksamaan yang “kuat”, yaitu yang dapat mempercepat
pencapaian penyelesaian integer optimum.
Misalkan kedua pertidaksamaan yang dimaksud dapat
dituliskan sebagai berikut (hal ini terjadi karena antara variabel
mempunyai nilai pecahan yang sama besar):

(i)
da
n (ii)

Ketidaksamaan (i) dikatakan “lebih kuat” dari (ii) jika dan


untuk semua harga j . Definisi “kekuatan” ini dijabarkan
menjadi suatu aturan yang mengatakan bahwa pembatas baru
harus diturunkan dari baris yang mempunyai:

11
1) maxi (fi), artinya dari baris dengan pecahan terbesar atau
2)
, artinya dari baris dengan rasio
terbesar.
Kembali pada persoalan di atas, karena kedua harga variabel
keputusan pada solusi optimal mempunyai harga pecahan yang

sama besar , maka tidak ada harga max i (fi) Jadi


pemilihan harus didasarkan pada aturan 2) dengan cara sebagai
berikut:
 Mengubah koefisien pembatas yang merupakan bilangan
bertanda negatif, sedemikian hingga akhirnya diperoleh
bilangan positif. Pada contoh di atas, koefisien x 3 dari
baris persamaan x3 adalah yang diubah dengan cara:

Selanjutnya, koefisien x3 dari persamaan ini


dinyatakan sebagai
 Mencari harga maksimum dari rasio
Dengan demikian diperoleh:
Persamaan :

Persamaan :

maka persamaan terpilih untuk menurunkan persamaan


pembatas baru.

atau

12
Persamaan pembatas barunya adalah:

masukkan ke dalam tabel semula hingga didapat:

Tabel Perubahan

Dengan menggunakan metode dual simpleks diperoleh:

Tabel Dual Simpleks

Karena penyelesaian pada tabel dual simpleks di atas masih


noninteger, maka harus dibuat lagi pembatas baru dari
persamaan (karena pecahannya terbesar 5/7 )

Masukkan pada tabel terakhir hingga didapat: 13


Tabel Akhir (Cutting Plane)

Dengan metode dual simpleks, akhirnya didapat penyelesaian


integer optimal:

Tabel Akhir (Optimal)

Penyelesaian integer optimum telah tercapai dengan Zmax = 55


Untuk x1 = 4, x2 = 3

Anda mungkin juga menyukai