1
TEORI DUALITAS DAN PENERAPANNYA
(DUALITY THEORY AND ITS APPLICATION)
TEORI DUALITAS DAN PENERAPANNYA
(DUALITY THEORY AND ITS APPLICATION)
Amelia Kurniawati, ST., MT.
Goal
•
Memahami perbedaan bentuk Primal dan
Dual
•
Memahami hubungan antara persamaan
Primal dan Dual
•
Memahami cara pemecahan masalah
3
Outline
①
Teori dualitas
5
Teori dualitas
•
Ide dasar:
–
Setiap masalah pemrograman linier
mempunyai satu pemrograman linier yang
terkait yang disebut
dual
.
–
Solusi pada masalah pemrograman liniear
originalnya juga memberikan solusi bagi
dualnya.
–
Jika suatu solusi masalah pemrograman linier
dipecahkan dengan
simplex method,
pada
Pemrograman linier dual simetris
•
Suatu pemrograman linier dikatakan dalam
bentuk
simetris
jika
–
semua variabel dibatasi tak negatif
–
semua pembatas dalam bentuk
pertidaksamaan
•
untuk masalah maksimasi, bentuk
7
Masalah primal
Z
=
c
1x
1+
c
2x
2+ … +
c
nx
na
11x
1+
a
12x
2+ … +
a
1nx
n
b
1a
21x
1+
a
22x
2+ … +
a
2nx
n
b
2.
.
.
a
m1x
1+
a
m2x
2+ … +
a
mnx
n
b
mx
1≥0,
x
2≥0,…,
x
n≥0
dengan pembatas
Masalah dual
W
=
b
1y
1+
b
2y
2+ … +
b
my
ma
11y
1+
a
21y
2+ … +
a
m1y
m≥
c
1a
12y
1+
a
22y
2+ … +
a
m2y
n≥
c
2.
.
.
a
y
+
a
y
+ … +
a
y
≥
c
Masalah primal-dual
Primal
Max Z = 3x1 + 2x2
dengan pembatas-pembatas: x1 + 2x2 6
2x1 + x2 8 – x1 + x2 1
x2
2Dual
Min W = 6y1 + 8y2 + y3 + 2y4
dengan pembatas-pembatas:
y1 + 2y2 – y3 ≥ 3 2y1 + y2 + y3 + y4 ≥ 2
11
Hubungan primal-dual
• Koefisien fungsi tujuan untuk masalah primal menjadi konstanta ruas kanan bagi dual.
• Konstanta ruas kanan dari primal menjadi koefisien fungsi tujuan bagi dual.
• Pertidaksamaan untuk pembatas dibalik untuk kedua
masalah.
• Tujuan diubah dari maksimasi untuk primal menjadi
minimasi untuk dual.
• Tiap kolom dalam primal menjadi baris (pembatas) pada dual; sehingga jumlah pembatas dual sama dengan
jumlah variabel primal.
• Tiap baris (pembatas) dalam primal berkaitan dengan kolom pada dual; sehingga satu variabel dual berkaitan dengan satu pembatas primal.
13
Beberapa teorema dalam
teori dualitas
•
Weak duality theorem
•
Optimality criterion theorem
•
Main duality theorem
Teorema 1:
Weak duality theorem
(1)
Misalkan diberikan program linier primal-dual simetris:
P: max
Z
=
cx
,
Ax
b
,
x
≥
0
D: min
W
=
yb
,
yA
≥
c
,
y
≥
0
Nilai fungsi tujuan dari masalah minimimasi (dual)
15
Teorema 1:
Weak duality theorem
(2)
Bukti
Misalkan:
x0 : vektor solusi layak untuk primal y0 : vektor solusi layak untuk dual
Akan dibuktikan bahwa: y0b ≥ cx0
Karena x0 adalah layak untuk primal, maka Ax0 b, x0 ≥ 0 (1) Karena y0 adalah layak untuk dual, maka y0A ≥ c, y0 ≥ 0 (2)
Perkalian kedua sisi pertidaksamaan (1) dengan y0 y0Ax0 y0b Perkalian kedua sisi pertidaksamaan (2) dengan x0 : y0Ax0 cx0
Teorema 1:
Weak duality theorem
(3)
•
Konsekuensi 1:
– Nilai fungsi tujuan dari masalah maksimasi (primal)
untuk sebarang solusi layak merupakan batas bawah dari nilai minimum fungsi tujuan dual.
•
Konsekuensi 2:
– Nilai fungsi tujuan dari masalah minimasi (dual) untuk
sebarang solusi layak (dual) merupakan batas atas dari nilai maksimum fungsi tujuan primal.
•
Konsekuensi 3:
17
Teorema 1:
Weak duality theorem
(4)
•
Konsekuensi 4:
– Jika masalah dual adalah layak dan nilai fungsi
tujuannya tak terbatas (dalam hal ini, min W -), maka masalah primal adalah tak layak.
•
Konsekuensi 5:
– Jika masalah primal adalah layak dan dualnya tak
layak maka masalah primal tersebut adalah tak terbatas.
•
Konsekuensi 6:
– Jika masalah dual adalah layak dan primalnya adalah
Teorema 1:
Weak duality theorem
(4)
- Ilustrasi #1
Primal
Max Z = 3x1 + 2x2
dengan pembatas-pembatas: x1 + 2x2 6
2x1 + x2 8 – x1 + x2 1
Dual
Min W = 6y1 + 8x2 + y3 + 2y4
dengan pembatas-pembatas:
y1 + 2y2 – y3 ≥ 3 2y1 + y2 + y3 + y4 ≥ 2
19
Teorema 1:
Weak duality theorem
(4)
- Ilustrasi #1
x adalah solusi layak untuk primal. Nilai fungsi tujuan primal Z = cx0 = 12
y
adalah solusi layak untuk dualNilai fungsi tujuan dual W = y0b = 40
Disini Z = cx0 y0b = W dan memenuhi weak duality
theorem.
Berdasarkan Konsekuensi (1), nilai minimum W untuk dual tidak dapat lebih kecil dari 12.
Teorema 1:
Weak duality theorem
(4)
- Ilustrasi #2
Memaksimumkan Z = 4x1 + x2
dengan pembatas-pembatas:
x1 – x2 2 -3x1 + x2 3
x1 ≥ 0, x2 ≥ 0
Meminimumkan W = 2y1 + 3y2
dengan pembatas-pembatas:
y1 – 3y2 ≥4 - y1 + y2 ≥ 1
y1 ≥ 0, y2 ≥ 0
21
Teorema 1:
Weak duality theorem
(4)
- Ilustrasi #2
x
1x
2Solusi primal
Teorema 1:
Weak duality theorem
(4)
- Ilustrasi #2
y
2Solusi dual
23
Teorema 2:
Optimality criterion theorem
(1)
Jika terdapat solusi layak
x
0dan
y
0untuk masalah
pemrograman linier dual simetris sedemikian hingga
nilai fungsi tujuannya adalah sama,
Teorema 2:
Optimality criterion theorem
(2)
Bukti
Misalkan x adalah sebarang solusi layak bagi masalah primal. Maka berdasarkan Teorema 1,
cx y0b
Tetapi ini diberikan bahwa cx0 = y0b.
Oleh karena itu cx cx0 untuk semua solusi layak bagi masalah primal. Per definisi, x0 adalah optimal bagi primal.
25
Teorema 3:
Main duality theorem
Teorema 4:
Complemantary slackness theorem
(1)
Misalkan diberikan program linier primal-dual simetris:
P: max
Z
=
cx
,
Ax
b
,
x
≥
0
D: min
W
=
yb
,
yA
≥
c
,
y
≥
0
dimana
A
: matriks (
m
x
n
)
b
: vektor kolom (
m
x 1)
c
: vektor baris (1 x
n
)
27
Teorema 4:
Complemantary slackness theorem
(2)
Misalkan:
x
0: vektor solusi layak untuk primal
y
0: vektor solusi layak untuk dual
Maka
x
0dan
y
0adalah optimal untuk masalah
masing jika dan hanya jika
Teorema 4:
Complemantary slackness theorem
(3)
Bukti:
( u adalah vektor slack untuk primal
29
Teorema 4:
Complemantary slackness theorem
(4)
Perkalian (1) dengan y0 y0Ax0 + y0u0 = y0b (3) Perkalian (2) dengan x0 y0Ax0 – v0x0 = cx0 (4)
Pengurangan (3) dengan (4) y0u0 + v0x0 = y0b – cx0 (5)
Untuk membuktikan Teorema 4, harus diperlihatkan bahwa x0 dan y0 adalah solusi optimal bagi masing-masing masalah primal dan dual jika dan hanya jika
Teorema 4:
Complemantary slackness theorem
(5)
Bagian 1
Diasumsikan bahwa x0 dan y0 adalah solusi optimal dan harus dibuktikan bahwa Persamaan (6) adalah benar.
Karena x0 dan y0 adalah optimal, berdasarkan Teorema 3 maka cx0 = y0b.
Oleh karena itu, Persamaan (5) menjadi Persamaan (6)
31
Teorema 4:
Complemantary slackness theorem
(6)
Bagian 2
Diasumsikan bahwa Persamaan (6) adalah benar dan
akan dibuktikan bahwa x0 dan y0 adalah solusi optimal bagi masing-masing masalah primal dan dual
Karena Persamaan (6) benar, maka Persamaan (5) menjadi y0b – cx0.
y0u0 + v0x0 = y0b – cx0 y0b = cx0
Complementary slackness
condition
Persamaan (6) : v0x0 + y0u0 = 0 dari complementary slackness
theorem dapat disederhanakan sebagai berikut:
vj0x
j0 = 0 untuk semua j = 1, 2, …, n
yi0u
i0 = 0 untuk semua i = 1, 2, …, m
dengan memperhatikan hal-hal berikut:
33
Complementary slackness condition
①
Jika suatu variabel primal (
x
j0) adalah positif, maka
pembatas dual yang bersesuaian memenuhi
persamaan pada titik optimalnya (yaitu,
v
j0= 0)
②
Jika suatu pembatas primal adalah
strick
inequality
pada titik optimal (yaitu,
u
j0> 0), maka
variabel dual yang bersesuaian (
y
i0) harus nol.
③
Jika suatu variabel dual (
y
i0) adalah positif maka
pembatas primal yang bersesuaian memenuhi
persamaan pada titik optimalnya (yaitu,
u
i0= 0)
④
Jika suatu pembatas dual adalah
strick inequality
pada titik optimal (yaitu
v
i0> 0), maka variabel
Ilustrasi (1)
Primal
Max Z = 3x1 + 2x2
dengan pembatas-pembatas: x1 + 2x2 6
2x1 + x2 8 – x1 + x2 1
x2
2Dual
Min W = 6y1 + 8x2 + y3 + 2y4
dengan pembatas-pembatas:
y1 + 2y2 – y3 ≥ 3 2y1 + y2 + y3 + y4 ≥ 2
35
Ilustrasi (2)
Primal
(Penambahan slack variable)
Max Z = 3x1 + 2x2
(Penambahan slack variable)
Ilustrasi (3)
37
Ilustrasi (4)
Dengan metode simplex diperoleh solusi optimal
untuk masalah primal sebagai berikut:
Ilustrasi (5)
Dengan penerapan
complementary slackness condition
,
solusi optimal bagi dual ditentukan sebagai berikut
39
Ilustrasi (6)
Kondisi (1), (2), (5) dan (6) mengimplikasikan:
Penerapan
complementary
slackness condition
•
Digunakan untuk mencari solusi primal optimal dari
suatu solusi dual optimal, dan sebaliknya.
•
Digunakan untuk memverifikasi apakah suatu solusi
layak adalah optimal untuk masalah primal.
•
Digunakan untuk menginvestigasi ciri-ciri umum dari
solusi optimal pada masalah primal dan dual
dengan menguji hipotesis-hipotesis yang berbeda.
•
Kuhn-Tucker
optimality condition
untuk
41
Karakteristik pokok
hubungan primal-dual
Primal Dual
A Matriks pembatas Transpos dari matriks pembatas
b Konstanta ruas kanan Vektor biaya
c Vektor biaya Konstanta ruas kanan
Fungsi tujuan Max Z = cx Min W = yb
Pertidaksamaan pembatas Ax b yA ≥ c
Interpretasi ekonomi dari
solusi dual (1)
•
Dalam pandangan ekonomi, solusi dual optimal
dapat diinterpretasikan sebagai harga yang
dibayarkan untuk sumberdaya pembatas.
•
Berdasarkan Teorema 3 (
main duality
), nilai
optimal bagi primal dan dual adalah sama.
•
Jika
x
0dan
y
0masing-masing adalah solusi
43
Interpretasi ekonomi dari
solusi dual (2)
•
Dengan kata lain, nilai optimal dari masalah
Interpretasi ekonomis dari
solusi dual (3)
• Misalkan diasumsikan bahwa level sumberdaya 1 (yaitu, b1) diubah.
• Maka, untuk variasi kecil dalam perubahan nilai b1,
katakan b1, perubahan dalam nilai optimal dari
pemrograman linier Z0 diberikan oleh y
10(b1).
• Dengan kata lain, nilai optimal dari variabel dual untuk
tiap pembatas primal memberikan perubahan bersih (net change) dalam nilai optimal dari fungsi tujuan untuk
peningkatan satu satuan dalam konstanta ruas kanan.
45
Contoh interpretasi solusi dual
(1)
Memaksimumkan Z = 3x1 + 2x2
dengan pembatas-pembatas:
x1 + 2x2 6 (Bahan A) 2x1 + x2 8 (Bahan B)
– x1 + x2 1 (Selisih permintaan cat interior dan eksterior)
x2 2 (Permintaan cat interior)
x1 ≥ 0
x2 ≥ 0
Contoh interpretasi solusi dual
(2)
Dual:
Meminimumkan W = 6y1 + 8x2 + y3 + 2y4
dengan pembatas-pembatas:
y1 + 2y2 – y3 ≥ 3 2y1 + y2 + y3 + y4 ≥ 2
47
Contoh interpretasi solusi dual
(3)
y4 = 0 shadow price untuk pembatas permintaan cat interior, yaitu
Masalah primal-dual tak simetris (1)
Memaksimumkan Z = 4x1 + 5x2
dengan pembatas
3x1 + 2x2 20 4x1 – 3x2 ≥ 10 x1 + x2 = 5 x ≥ 0
49
Masalah primal-dual tak simetris (2)
Memaksimumkan Z = 4x1 + 5x3 – 5x4
dengan pembatas
3x1 + 2x3 – 2x4 20 – 4x1 + 3x3 – 3x4 – 10 x1 + x3 – x4 5 – x1 – x3 + x4 – 5 x1, x3, x4 ≥ 0
Masalah primal-dual tak simetris (2)
Meminimumkan W = 20w1 – 10w2 +5w3 – 5w4
dengan pembatas
3w1 – 4w2 + w3 – w4 ≥ 4 2w1 + 3w2 + w3 – w4 ≥ 5 – 2w1 – 3w2 – w3 + w4 ≥ – 5
w , w , w , w ≥ 0
51
Masalah primal-dual tak simetris (2)
Meminimumkan W = 20y1 + 10y2 +5y3
dengan pembatas
3y1 + 4y2 + y3 ≥ 4 2y1 – 3y2 + y3 = 5
y1 ≥ 0 y2 0
y3 tak dibatasi tanda
Masalah Dual
Tabel primal-dual secara umum
Primal (maksimasi) Dual (minimasi)
Matriks koefisien A Transpos matriks koefisien Vektor ruas kanan Vektor biaya
Vektor harga c Vektor ruas kanan
Pembatas ke-i adalah persamaan Variabel dual yi tak dibatasi tanda Pembatas ke-i bertipe Varibel dual yi ≥ 0
Pembatas ke-i bertipe ≥ Varibel dual yi 0
53
Catatan (1)
•
Teorema (1), (2), (3), dan (4) dari teori
dualitas berlaku juga bagi primal-dual tak
simetris.
•
Complementary slackness condition
juga
Catatan (2)
Misalkan diberikan masalah pemrograman linier dalam bentuk standar
Memaksimumkan Z = cx
dengan pembatas
Ax = b x ≥ 0
Masalah dual
Meminimumkan W = yb
dengan pembatas
yA ≥ c
55
Menentukan solusi dual optimal (1)
•
Solusi dual optimal dapat ditentukan
dengan
complementary slackness
condition
•
Solusi dual optimal dapat juga diperoleh
Menentukan solusi dual optimal (2)
Meminimumkan
Z
=
cx
dengan pembatas
Ax
=
b
57
Menentukan solusi dual optimal (3)
Misalkan :
Solusi primal optimal :
dimana
x
B: varabel basis
Menentukan solusi dual optimal (4)
Nilai minimum
Z
=
cx
*=
c
B
x
B=
c
BB
-1b
Karena
B
menunjukkan basis optimal, maka koefisien
biaya relatif ( ) yang berkaitan dengan variabel basis
harus tak negatif
jc
0
j jj
c
c
P
untuk semua
j
59
Menentukan solusi dual optimal (5)
Dalam notasi matrix:
c
-
A
≥
0
atau
A
c
yang merupakan pembatas pemrograman linier dual.
Menentukan solusi dual optimal (6)
Nilai fungsi tujuan dual yang berkaitan dengan solusi
layak adalah
W
=
yb
=
b
=
c
BB
-1b
yang sama dengan nilai minimum
Z
.
61
Ilustrasi menentukan
solusi dual optimal (1)
Primal (Dalam bentuk standar)
Ilustrasi menentukan
solusi dual optimal (2)
Dengan metode
revised simplex
, solusi optimal untuk primal:
63
Ilustrasi menentukan
solusi dual optimal (3)
Simplex multiplier
optimal :
1/3,4/3,0,0
memenuhi pembatas dual, dan nilai fungsi tujuannya:
W = 6(1/3) + 8(4/3) + 1(0) + 2(0) = 38/3
yang bersesuaian dengan nilai optimal untuk masalah primal.
Oleh karena itu,
y1 = 1/3, y2 = 3/4, y3 = 0, y4 = 0 optimal untuk dual.
Simplex multiplier yang bersesuaian dengan tabel (primal) optimal
65
Masalah Pemrograman Linier
(Primal) dalam Bentuk Standar
Minimasi
Z
=
cx
dengan pembatas
Ax
=
b
x
≥
0
A
: matrix (
m
x
n
)
P
: vektor kolom dari matrix
A
B
: matrix basis untuk masalah primal
Basis Layak Primal
Basis
B
: basis layak primal (
primal feasible basis
)
B
-1b
≥
0
B
: basis layak primal
nilai variabel basis:
B
-1b
solusi layak basis
x
B=
B
-1b
67
Kondisi Optimalitas (1)
Untuk memeriksa apakah basis layak
B
adalah optimal
hitung koefisien fungsi tujuan relatif
(
c
j)
j j
j
c
c
πP
j
= 1, …,
n
=
c
BB
-1:
simplex multiplier
Basis layak primal
B
adalah optimal
c
j
0
Kondisi Optimalitas (2)
Maksimasi
W
=
yb
dengan pembatas
yA
c
69
Kondisi Optimalitas (3)
Pembatas dual
yA
c
dapat ditulis:
P
1,
P
2,
,
P
n
c
1,
c
2,
,
c
n
y
j j
c
yP
0
jj
Kondisi Optimalitas (4)
Jika basis layak primal
B
: basis optimal bagi masalah primal
simplex multiplier
=
c
BB
-1memenuhi
0
jj
c
yP
j = 1, …, nImplikasi
: layak bagi masalah dual
Nilai fungsi tujuan dual
W
=
b
=
c
BB
-1b
sama dengan
71
Basis Dual Layak (1)
Basis
B
untuk masalah primal
Minimasi
Z
=
cx
dengan pembatas
Ax
=
b
x
≥
0
layak dual (
dual feasible
)
c
–
c
BB
-1A
≥
0
Basis Dual Layak (2)
Basis
B
untuk masalah primal : layak primal dan layak dual
Basis
B
: basis optimal
Solusi optimal untuk primal :
x
B=
B
-1b
,
x
N
=
0
Solusi optimal untuk dual :
y
=
c
BB
-173
Catatan
•
Akar dari pemecahan masalah pemrograman
linier
mendapatkan solusi basis
B
yang layak
primal dan layak dual
•
Metode simplex
bergerak dari satu basis
layak primal ke basis yang lain hingga basis
tersebut menjadi layak dual
– Metode simplex primal (primal simplex method)
•
Metode simplex dual (
dual simplex method
)
Rincian Metode Simplex Dual (1)
Pemrograman linier bentuk standar:
Minimasi
Z
=
cx
75
Rincian Metode Simplex Dual (2)
•
Metode simplex dual menggunakan tabel
yang sama dengan metode simplex
primal.
•
Dalam semua tabel, koefisien fungsi
tujuan relatif dipertahankan tak negatif
(Untuk maksimasi, dipertahankan tak
positif)
•
Konstanta ruas kanan tidak perlu tak
negatif.
)
(
c
jj
Rincian Metode Simplex Dual (3)
•
Algoritma mulai dengan membuat elemen
ruas kanan menjadi tak negatif, dengan pada
saat yang sama menjaga koefisien tak
negatif.
•
Algoritma berhenti jika semua konstanta ruas
kanan telah tak negatif.
j
77
Rincian Metode Simplex Dual (4)
Pemilihan Variabel Basis
yang Keluar Basis
Pilih variabel basis yang membuat solusi saat ini menjadi
tidak layak
dengan kata lain
Pilih variabel basis yang nilai solusinya negatif
79
Pemilihan Variabel Non Basis yang
Masuk Basis (1)
Kolom pivot dipilih sedemikian rupa sehingga memenuhi
dua kondisi sebagai berikut:
1. Ketidaklayakan primal berkurang (atau paling sedikit,
tidak bertambah jelek).
Atau
, paling sedikit konstanta ruas kanan pada baris
r
menjadi positif pada tabel berikutnya
Variabel non basis (
x
j) dengan koefisien negatif
Pemilihan Variabel Non Basis yang
Masuk Basis (2)
2. Tabel berikutnya setelah operasi pivot harus tetap
layak dual.
Dapat dijamin jika variabel non basis yang masuk
basis dipilih dengan aturan rasio sebagai berikut:
81
Ilustrasi Metode Simplex Dual
Meminimumkan Z = x1 + 4x2 + 3x4
dengan pembatas
x1 + 2x2 – x3 + x4 ≥ 3 – 2x1 – x2 + 4x3 + x4 ≥ 2 x1, x3, x3, x4 ≥ 0
Meminimumkan Z = x1 + 4x2 + 3x4
dengan pembatas
x1 + 2x2 – x3 + x4 – x5 = 3 – 2x1 – x2 + 4x3 + x4 – x6 = 2 x1, x3, x3, x4, x5, x6 ≥ 0
Tabel 1
cB 1 4 0 3 0 0 Konstanta x1 x2 x3 x4 x5 x6
0 x5 -1 -2 1 -1 1 0 -3
0 x6 2 1 -4 -1 0 1 -2
1 4 0 3 0 0
c
Baris Basis
83
Tabel 2
cB 1 4 0 3 0 0 Konstanta x1 x2 x3 x4 x5 x6
1 x1 1 2 -1 1 -1 0 3
0 x6 0 -3 -2 -3 2 1 -8
0 2 1 2 1 0
c
Baris Basis
cj
Tabel 3
cB 1 4 0 3 0 0 Konstanta x1 x2 x3 x4 x5 x6
1 x1 1 7/2 0 5/2 -2 -1/2 7
0 x3 0 3/2 1 3/2 -1 -1/2 4
0 1/2 0 1/2 2 1/2 Z = 7
c
Baris Basis
85
Mengidentifikasi Ketidaklayakan
Primal dalam Metode Simplex Dual
•
Dalam metode simplex dual
selalu
terdapat solusi layak bagi dual.
•
Metode simplex dual mengenali
ketidaklayakan primal jika aturan rasio
gagal mengidentifikasi variabel non basis
yang masuk basis
Memecahkan Masalah Maksimasi
dengan Metode Simplex Dual
Dalam masalah maksimasi
Kondisi optimalitas:
Koefisien fungsi tujuan
(
c
j)
0
Misal,
b
r
0
dan
x
r: variabel keluar basis
Variabel non basis yang masuk basis
dipilih sedemikian
rupa sehingga elemen baris tetap tak positif pada
iterasi berikutnya.
c
87