Anda di halaman 1dari 15

Kapita Selekta Matematika Industri

Pertemuan-6: Mixed-Integer Linear Programming (Bagian 2)

safarina@its.ac.id

October 10, 2023


Outline

Overview

Penyelesaian Mixed-Integer Linear Programs


Linear Programming Relaxation
Cutting Planes
Overview

Secara historis, metode pertama yang dikembangkan untuk menyelesaikan


MILP (Mixed Integer Linear Programming ) adalah berdasarkan pada
pemotongan bidang (cutting planes) – yang merupakan penambahan kendala
pada program linear dasar untuk memotong solusi yang bukan bilangan bulat.
Ide ini diusulkan oleh Gomory pada tahun 1958.

Kemudian, Branch and bound diusulkan pada tahun 1960 oleh Land dan Dong.
Metode ini berdasarkan pada pembagian masalah menjadi sejumlah masalah
yang lebih kecil (branching ) dan mengevaluasi kualitasnya berdasarkan
penyelesaian program linear dasar (bounding ). Branch and bound telah
menjadi teknik yang paling efektif untuk menyelesaikan MILP selama sekian
puluh tahun berikutnya atau lebih.

Namun, belakangan ini, cutting planes menjadi banyak digunakan dan


dikembangkan kembali berdasarkan penggabungan secara efisien dengan branch
and bound dalam prosedur keseluruhan yang disebut branch and cut. Istilah ini
diciptakan oleh Padberg dan Rinaldi pada tahun 1987. Semua pendekatan ini
melibatkan penyelesaian serangkaian program linear.
Penyelesaian Mixed-Integer Linear Programs
Linear Programming Relaxation - Bagian 1

Diberikan mixed-integer linear program sebagai berikut:


(MILP) minimumkan cT x
dengan kendala Ax ≥ b,
x ≥ 0,
xj integer untuk j = 1, . . . , p.
Terdapat suatu pemrograman linear yang berasosiasi dengan
permasalahan di atas yang disebut relaksasi (relaxation) dibentuk
dengan cara menghilangkan bagian integer:
(R) minimumkan cT x
dengan kendala Ax ≥ b,
x ≥ 0.
Linear Programming Relaxation - Bagian 2

Berdasarkan penjelasan sebelumnya, karena R memiliki kendala


(constraints) lebih sedikit dari MILP, maka berlaku:
▶ Nilai objektif yang optimal dari R akan lebih kecil atau sama
dengan dari MILP.
▶ Jika R infeasible, maka begitu juga dengan MILP.
▶ Jika solusi optimal x∗ dari R memenuhi bilangan bulat xj ∗
untuk j = 1, . . . , p, maka x∗ juga optimal untuk MILP.
Sehingga, menyelesaikan R juga memberikan informasi: batasan
dari nilai optimal, bahkan mungkin bisa memberikan solusi optimal
dari MILP. Akan tetapi, membulatkan solusi dari R tidak akan
(dalam general) memberikan solusi optimal dari MILP.
Linear Programming Relaxation - Latihan 1

Diberikan permasalahan berikut

maksimumkan 20x1 + 10x2 + 10x3


dengan kendala 2x1 + 20x2 + 4x3 ≤ 15,
6x1 + 20x2 + 4x3 = 20,
x1 , x2 , x3 ≥ 0 integer.

Selesaikan relaksasi pemrograman linearnya. Lalu, tunjukkan


bahwa tidak mungkin untuk menghasilkan solusi feasible bilangan
bulat dengan cara membulatkan nilai dari variabelnya.
Cutting Planes
Cutting Planes - Bagian 1
Seperti pada penjelasan sebelumnya, untuk menyelesaikan mixed-integer linear
program

(MILP) minimumkan cT x
dengan kendala Ax ≥ b,
x ≥ 0,
xj integer untuk j = 1, . . . , p.

suatu pendekatan yang mungkin adalah dengan memperkuat relaksasi


pemrograman linear

(R) minimumkan cT x
dengan kendala Ax ≥ b,
x ≥0

dengan menambahkan pertidaksamaan yang sesuai (valid) untuk MILP.

Ketika solusi optimal x ∗ dari program linear yang diperkuat adalah valid untuk
(MILP), maka x ∗ juga merupakan solusi optimal dari (MILP). Bahkan ketika
hal ini tidak terjadi, program linear yang diperkuat dapat memberikan batasan
bawah yang lebih baik dalam konteks algoritma branch-and-bound. Bagaimana
kita menghasilkan pertidaksamaan yang valid untuk (MILP)?
Cutting Planes - Bagian 2

Gomory mengusulkan pendekatan berikut.

Misalkan suatu variabel tak negatif xj untuk j ∈ I ∪ C , dimana xj harus


merupakan nilai integer untuk j ∈ I . Dalam kasus ini diperbolehkan
kemungkinan bahwa C = ∅. Misalkan
X X
aj xj + aj xj = b (1)
j∈I j∈C

merupakan kendala tak negatif.

Misalkan bahwa b adalah bukan integer dan f0 merupakan suatu pecahan


0 < f0 < 1 sehingga b = ⌊b⌋ + f0 . Untuk j ∈ I , misalkan a = ⌊a⌋ + fj dengan
0 ≤ fj ≤ 1. Substitusikan a dan b ke (10) sehingga diperoleh
X X X
fj xj + (fj − 1)xj + aj xj = k + f0
j∈I :fj ≤f0 j∈I :fj ≥f0 j∈C

dimana k adalah suatu integer.


Cutting Planes - Bagian 3

X X X
fj xj + (fj − 1)xj + aj xj = k + f0
j∈I :fj ≤f0 j∈I :fj ≥f0 j∈C

Menggunakan fakta bahwa k ≤ −1 dan k ≥ 0, diperoleh suatu disjungsi


X fj X 1 − fj X aj
xj − xj + xj ≥ 1
f0 f0 f0
j∈I :fj ≤f0 j∈I :fj ≥f0 j∈C

atau
X fj X 1 − fj X aj
− xj + xj − xj ≥ 1
1 − f0 1 − f0 1 − f0
j∈I :fj ≤f0 j∈I :fj ≥f0 j∈C

1
aj2 xj ≥ 1 yang
P P
Pertidaksamaan di atas merupakan bentuk ≥ 1 atau j aj xj j
max(aj1 , aj2 )xj ≥ 1 untuk x = 0.
P
meingimplikasikan
Cutting Planes: Gomory Cuts - Bagian 4

X fj X 1 − fj X aj X aj
xj − xj + xj − xj ≥ 1.
f0 1 − f0 f0 1 − f0
j∈I :fj ≤f0 j∈I :fj ≥f0 j∈C j∈C

Pertidaksamaan di atas valid untuk semua nilai x ≥ 0 yang


memenuhi (10) dengan xj integer untuk J ∈ I . Pertidaksamaan di
atas disebut Gomory mixed integer cut (GMI cut).
Cutting Planes: Gomory Cuts - Contoh

memaksimumkan z = x1 + x2
dengan kendala − x1 + x2 ≤ 2
8x1 + 2x2 ≤ 19
x1 , x2 ≥ 0
x1 , x2 integer

Untuk permasalahan di atas, pertama kita ubah kendala pertidaksamaan


terlebih dahulu menjadi persamaan, dengan menambahkan variabel slack x3
dan x4 . Permasalahan tersebut menjadi:

z − x1 − x2 = 0
−x1 + x2 + x3 = 2
8x1 + 2x2 + x4 = 19
x1 , x2 ≥ 0
x1 , x2 integer
Cutting Planes: Gomory Cuts - Contoh (lanjutan)
Menggunakan simplex tableu atau xB = B −1 b − B −1 NxN diperoleh
z + 0.6x3 + 0.2x4 = 5
x2 + 0.8x3 + 0.1x4 = 3.5
x1 − 0.2x3 + 0.1x4 = 1.5
x1 , x2 , x3 , x4 ≥ 0.
Solusi yang berkaitan adalah x3 = x4 = 0, x1 = 1.5, x2 = 3.5 dan z = 5. Tapi,
solusi ini tidak integer.

Kita buat Gomory mixed-integer cut pada persamaan ini


x2 + 0.8x3 + 0.1x4 = 3.5.
Berdasarkan b = ⌊bj ⌋ + f0 dan a = ⌊aj ⌋ + fj , diperoleh
f0 = 0.5, f1 = 0, f2 = 0, f3 = 0.8, f4 = 0.1. Kemudian, menggunakan (12),
diperoleh GMI cut
1 − 0.8 0.1
x3 + x4 ≥ 1 ⇔ 2x3 + x4 ≥ 5.
1 − 0.5 0.5
Karena x3 = 2 − x1 + x2 dan x4 = 19 − 8x1 + 2x2 , pertidaksamaan di atas dapat
dituliskan kembali sebagai:
3x1 + 2x2 ≤ 9.
Cutting Planes: Gomory Cuts - Contoh (lanjutan)
Dengan menambahkan cut tersebut ke relaksasi LPnya, diperoleh
memaksimumkan z = x1 + x2
dengan kendala − x1 + x2 ≤ 2
8x1 + 2x2 ≤ 19
3x1 + 2x2 ≤ 9
x1 , x2 ≥ 0

Anda mungkin juga menyukai