multiobjective optimization
TRANSCRIPT
TUGAS
TEORI OPTIMISASI
PROGRAM KUADRATIK
OLEH:
KELOMPOK 6
AUGISTRI PUTRI PRADANI 13/353907/PPA/04263
ELOK FAIQOTUL HIMMAH 13/355009/PPA/04336
MEGASARI 13/353881/PPA/04251
ROFIATUN 13/354252/PPA/04279
PROGRAM STUDI S2 MATEMATIKA
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2014
PENDAHULUAN
Pesatnya perkembangan ilmu pengetahuan dan teknologi membuat matematika menjadi
memiliki peranan yang penting. Hampir dapat dipastikan bahwa setiap bagian dari ilmu dan
teknologi baik dalam unsur kajian umum ilmu murni atau terapannya memerlukan peranan
matematika sebagai ilmu bantuannya.
Salah satu bagian dari matematika terapan adalah pemrograman nonlinier. Terdapat
banyak jenis masalah pemrograman nonlinier, tergantung pada karakteristik fungsi tujuan dan
fungsi kendala. Salah satunya adalah pmrograman kuadratis yang merupakan bentuk khusus dari
pemrograman nonlinier. Pemrograman kuadratis ini memiliki kendala linier, tetapi fungsi tujuan
berbentuk kuadratis. Oleh karena itu, satu-satunya perbedaan antara pemrograman kuadratis
dengan pemrograman linier adalah terletak pada fungsi tujuannya, dimana pada fungsi kuadratis
fungsi tujuannya melibatkan pangkat dua dari variabel atau perkalian dari dua variabel.
Beberapa metode telah dikembangkan untuk menyelesaikan kasus pemrograman
kuadratis dengan asumsi tambahan fungsi tujuan merupakan fungsi konveks. Salah satu metode
untuk menyelesaikan masalah pemrograman kuadratis adalah dengan persyaratan Karush-Kuhn-
Tucker (KKT). Metode ini sangat efektif untuk permasalahan optimasi nonlinier dengan kendala
pertidaksamaan. Dengan pendekatan persyaratan KKT dapat diperoleh optimasi dari
pemrograman kuadratis. Dalam hal ini kondisi yang perlu diperhatikan adalah mengikuti syarat
cukup agar mendapatkan nilai-nilai variabel yang optimal untuk mencapai hasil yang diinginkan.
PEMBAHASAN
1. Pemrograman Kuadratik
Pemrograman kuadratik adalah masalah optimasi dengan maksud memaksimumkan
atau meminimumkan fungsi tujuan yang berbentuk kuadratik dengan fungsi kendalanya
berbentuk persamaan atau pertidaksamaan linier. Adapun bentuk umum fungsi kuadratis
dengan notasi matriks seperti persamaan (2.1).
( ) Tf x cx x Hx (2.1)
Dengan kendala :
Ax b dan 0x
dengan :
nxnH R : matriks Hessian berukuran (nxn)
mxnA R : matriks kendala
nx R : vektor kolom
nc R : vektor baris dari fungsi tujuan
mb R : vektor kolom dari kendala bagian kanan
2. Kondisi Karush-Kuhn-Tucker
Pada tahun 1951 Kuhn Tucker mengemukakan suatu teknik optimisasi yang dapat
digunakan untuk pencarian titik optimum dari suatu fungsi berkendala. Metode Karush-Kuhn-
Tucker (KKT) ini dapat digunakan untuk mencari solusi yang optimum dari suatu fungsi
tanpa memandang sifat dari dari fungsi tersebut apakah linier atau nonlinier. Jadi metode
KKT ini bersifat teknik yang umum dalam pencarian titik optimum dari setiap fungsi.
Jika dihadapkan pada masalah optimisasi dalam bentuk :
Maksimumkan/minimumkan : ( )Z f x dengan 1 2
{ , ,..., }n
X x x x
Dengan kendala : ( ) 0i
g x atau ( ) 0i
g x dengan 1,2,3,...,i m
0X
m n (Jumlah kendala lebih kecil dari variabel)
maka langkah pertama, tuliskan kembali fungsi kendalanya yang masing-masing dengan
tanda lebih kecil dari atau sama dengan, kemudian tambahkan variabel-variabel slack
berturut-turut pada ruas kiri kendala sehingga tiap-tiap ketidaksamaan menjadi suatu
kesamaan. Selanjutnya dibentuk fungsi Lagrange yaitu :
( ) ( ( ))i i
L f X g x
Dengan i
adalah pengali Lagrange. Langkah terakhir adalah menyelesaikan sistem
persamaan:
0i
L
x
(3.2)
0i
L
(3.3)
0i
(3.4)
Persamaan di atas membentuk persyaratan KKT untuk maksimasi ataupun
minimasi program linier dan nonlinier.
Teorema 2.1 di bawah ini memberikan kondisi Kuhn-Tucker untuk memecahkan
persoalan nonlinear berkendala.
Teorema 2.1
Diasumsikan 1 2
( ), ( ), ( ),..., ( )m
f x g x g x g x merupakan fungsi yang dapat diturunkan, maka
* ' ' ', , ...,
1 2 nx x x x menjadi solusi optimal untuk permasalahan pemrograman nonlinier
masalah minimisasi hanya jika terdapat sejumlah m bilangan 1 2, ,...,
m sehingga semua
syarat kondisi KKT berikut terpenuhi:
(i) 1
0m
ii
j j
f g
x x
pada *x x untuk j=1,2,…,n
(ii) 1
0m
j ii
j j
f gx
x x
pada *x x untuk j=1,2,…,n
(iii) 1
0m
ii
i i
f g
untuk i=1,2,…,m
(iv) ( ) 0i ig x untuk i=1,2,…,m
(v) 0j
x untuk j=1,2,…,n
(vi) 0i
untuk i=1,2,…,m
Teorema 2.2
Diasumsikan 1 2
( ), ( ), ( ),..., ( )m
f x g x g x g x merupakan fungsi yang terdifferensial, maka
* ' ' ', , ...,
1 2 nx x x x menjadi solusi optimal untuk permasalahan pemrograman nonlinier
masalah maksimasi hanya jika terdapat sejumlah m bilangan 1 2, ,...,
m sehingga semua
syarat kondisi KKT berikut terpenuhi:
(i) 1
0m
ii
j j
f g
x x
pada *x x untuk j=1,2,…,n
(ii) 1
0m
j ii
j j
f gx
x x
pada *x x untuk j=1,2,…,n
(iii) 1
0m
ii
i i
f g
untuk i=1,2,…,m
(iv) ( ) 0i ig x untuk i=1,2,…,m
(v) 0j
x untuk j=1,2,…,n
(vi) 0i
untuk i=1,2,…,m
3. Kondisi Optimal Dalam Pemrograman Kuadratis
Diperhatikan kembali persamaan (2.1). Prosedur menggunakan Kondisi KKT untuk
memecahkan suatu masalah optimasi dalam pemrograman kuadratis dengan kendala berupa
pertidaksamaan secara esensial melibatkan fungsi Lagrange. Adapun fungsi Lagrange untuk
program kuadratik (2.1) seperti persamaan (3.5).
( , ) ( )TL x cx x Hx Ax b (3.5)
Dengan adalah vektor baris berdimensi m. Selanjutnya kondisi KKT program
kuadratis untuk minimum lokal memenuhi :
0, 1,...,j
Lj n
x
maka 0Tc x H A (3.6)
0, 1,...,i
Li m
maka 0Ax b (3.7)
0, 1,...,j
j
Lx j n
x
maka ( ) 0T T Tx c Hx A (3.8)
( ) 0, 1,...,i ig x i m maka 0Ax b (3.9)
0, 1,...,j
x j n maka 0x (3.10)
0, 1,...,i
i m maka 0 (3.11)
Diperhatikan bahwa agar dapat dicari penyelesaian optimalnya maka persamaan (3.6)
harus ditambahkan variabel surplus, yaitu variabel yang dikurangkan dari model matematik
kendala untuk mengkonversikan pertidaksamaan menjadi persamaan (=), sedangkan untuk
persamaan (3.7) perlu ditambahkan slack yaitu variabel yang ditambahkan ke model
matematik kendala dengan mengkonversikan pertidaksamaan menjadi persamaan (=).
Sehingga diperoleh :
0T T Tc Hx A y dan 0Ax b v
Selanjutnya, kondisi KKT menjadi :
T T THx A y c (3.12)
Ax v b (3.13)
0, 0, 0, 0x y v (3.14)
0, 0Ty x v (3.15)
Adapun kondisi KKT program kuadratis untuk maksimum lokal memenuhi :
0, 1,...,j
Lj n
x
maka 0Tc x H A (3.16)
0, 1,...,i
Li m
maka 0Ax b (3.17)
0, 1,...,j
j
Lx j n
x
maka ( ) 0T T Tx c Hx A (3.18)
( ) 0, 1,...,i ig x i m maka 0Ax b (3.19)
0, 1,...,j
x j n maka 0x (3.20)
0, 1,...,i
i m maka 0 (3.21)
Diperhatikan bahwa agar dapat dicari penyelesaian optimalnya maka persamaan (3.16)
harus ditambahkan variabel slack, yaitu variabel yang ditambahkan ke model matematik
kendala untuk mengkonversikan pertidaksamaan menjadi persamaan (=). Sedangkan untuk
persamaan (3.17) perlu ditambahkan variabel surplus yaitu variabel yang dikurangkan dari
model matematik kendala dengan mengkonversikan pertidaksamaan menjadi persamaan
(=) sehingga diperoleh :
0T T Tc Hx A y dan 0Ax b v
Selanjutnya, kondisi KKT menjadi :
T T THx A y c (3.22)
Ax v b (3.23)
0, 0, 0, 0x y v (3.24)
0, 0Ty x v (3.25)
4. Mencari Penyelesaian Optimum
Berikut adalah prosedur untuk mencari penyelesaian optimum dari program kuadratik:
a) Menentukan , , ,Tc H A b berdasarkan fungsi objektif dan kendala yang telah diberikan.
Selanjutnya dibentuk seperti persamaan (3.12) dan (3.13)
b) Jika pada ruas kanan nilainya negatif, maka persamaan yang bersesuaian dikalikan dengan
-1.
c) Menambahkan variabel buatan pada masing-masing persamaan. Variabel buatan adalah
variabel yang ditambahkan ke model matematik kendala dengan bentuk atau = untuk
difungsikan sebagai variabel basis awal. Variabel ini harus bernilai 0 pada solusi optimal,
karena kenyataannya variabel ini tidak ada (variabel ini hanya ada di kertas).
d) Memisalkan fungsi tujuan adalah jumlah dari seluruh variabel buatan.
e) Menyelesaikan program linier dengan metode simpleks.
5. Langkah Penyelesaian Metode Simpleks
Berikut adalah langkah-langkah penyelesaian metode simpleks:
a) Masukkan variabel-variabel pada kondisi KKT ke dalam tabel simpleks, kemudian
tentukan variabel basisnya. Variabel basis merupakan variabel yang nilainya bukan nol
pada sembarang iterasi. Pada solusi awal, variabel basis merupakan variabel slack (jika
fungsi kendala merupakan pertidaksamaan atau variabel buatan (jika fungsi kendala
merupakan pertidaksamaan atau =).
b) Periksa apakah tabel layak atau tidak. Kelayakan tabel simpleks dilihat dari solusi (nilai
kanan). Jika solusi ada yang bernilai negatif, maka tabel tidak layak. Tabel yang tidak
layak tidak dapat diteruskan untuk dioptimalkan.
c) Tentukan kolom pivot. Penentuan kolom pivot dilihat dari:
Untuk masalah minimasi : Pilih kolom yang memuat min 0j j j j
c z c z
Untuk masalah maksimasi : Pilih kolom yang memuat 0j j j j
maks c z c z
dengan 1
m
ji Bi ij
z c a
d) Jika kolom pivot ditandai dan ditarik ke atas, maka kita akan mendapatkan variabel
keluar. Jika nilai paling negatif (untuk tujuan maksimisasi) atau positif terbesar (untuk
tujuan minimisasi) lebih dari satu, pilih salah satu secara sembarang.
e) Tentukan baris pivot. Baris pivot ditentukan setelah membagi nilai solusi dengan nilai
kolom pivot yang bersesuaian (nilai yang terletak dalam satu baris). Dalam hal ini, nilai
negatif dan 0 pada kolom pivot tidak diperhatikan, artinya tidak ikut menjadi pembagi.
Baris pivot adalah baris dengan rasio pembagian terkecil. Jika baris pivot ditandai dan
ditarik ke kiri, maka kita akan mendapatkan variabel keluar. Variabel ini kemudian
digantikan oleh variabel masuk, pada iterasi berikutnya akan bernilai nol. Jika rasio
pembagian terkecil lebih dari satu, pilih salah satu secara sembarang.
f) Tentukan elemen pivot. Elemen pivot merupakan nilai yang terletak pada perpotongan
kolom dan baris pivot.
g) Bentuk tabel simpleks baru. Tabel simpleks baru dibentuk dengan pertama sekali
menghitung nilai baris pivot baru. Baris pivot baru adalah baris pivot lama dibagi dengan
elemen pivot. Baris baru lainnya merupakan pengurangan nilai kolom pivot baris yang
bersangkutan dikali baris pivot baru dalam satu kolom terhadap baris lamanya yang
terletak pada kolom tersebut, jika dituliskan dalam kalimat matematika menjadi:
h) Periksa apakah tabel sudah optimal, ciri-ciri tabel optimal yaitu:
Untuk masalah minimasi : 0j j
c z
Untuk masalah maksimasi : 0j j
c z
dengan 1
m
ji Bi ij
z c a
Contoh penyelesaian metode simpleks :
Maksimum z = 8 x1 + 9 x2 + 4x3 + 0s1 + 0s2 + 0s3
Kendala :
x1 + x2 + 2x3 + s1 = 2
2x1 + 3x2 + 4x3 + s2 = 3
7x1 + 6x2 + 2x3 + s3 = 8
x1,x2,x3 ,s1 , s2 , s3 ≥ 0
Tabel awal simpleks :
Basis X(j) X1 X2 X3 S1 S2 S3 b(i) bi/a(ij)
C(j) 8 9 4 0 0 0
S1 0 1 1 2 1 0 0 2
S2 0 2 3 4 0 1 0 3
S3 0 7 6 2 0 0 1 8
z(j) 0 0 0 0 0 0
c(j)-z(j) 8 9 4 0 0 0
6. Contoh Kasus dan Pembahasan
Kasus I
Selesaikan masalah berikut:
Minimalkan
Dengan syarat
Penyelesaian:
Didefinisikan variable sebagai berikut:
(
), (
), (
), ( )
, , ,
Kondisi Karush- Kuhn Tucker (KKT) :
atau
(
) (
) (
) (
) (
) (
)
(
) (
) (
) (
)+
Sehingga kondisi KKT dapat dituliskan kembali sebagai berikut :
Penambahan variable buatan:
Minimalkan
Dengan syarat:
Semua variable
Selanjutnya diselesaikan dengan modifikasi metode simpleks dua fase.
Iterasi 1.
Basis xj x1 x2 m1 m2 y1 y2 v1 v2 a1 a2 a3 a4 bi bi/ai
cj 0 0 0 0 0 0 0 0 1 1 1
a1 1 2 0 1 1 -1 0 0 0 1 0 0 0 8
a2 1 0 8 1 0 0 -1 0 0 0 1 0 0 16 2
a3 1 1 1 0 0 0 0 1 0 0 0 1 0 5 5
a4 1 1 0 0 0 0 0 0 1 0 0 0 1 3
zj 4 9 2 1 -1 -1 1 1 1 1 1 1 32 3.555556
cj-zj -4 -9 -2 -1 1 1 -1 -1 0 0 0 -1
Iterasi 2.
Iterasi 3.
Iterasi 4.
Iterasi 5.
Tabel di atas sudah optimal, sebab semua nilai pada baris z sudah negatif atau 0 sehingga
iterasi dihentikan.
Basis xj x1 x2 m1 m2 y1 y2 v1 v2 a1 a2 a3 a4 bi bi/ai
cj 0 0 0 0 0 0 0 1 1 1
a1 1 2 0 1 1 -1 -1 0 0 1 1 0 0 8 4
x2 0 0 1 0.125 0 0 -0.125 0 0 0 0.125 0 0 2
a3 0 1 0 -0.125 0 0 0.125 1 0 0 -0.125 1 0 3 3
a4 1 1 0 0 0 0 0 0 1 0 0 0 1 3 3
zj 3 0 1 1 -1 -1 0 1 1 1 0 1 11
cj-zj -3 0 -1 -1 1 1 0 0 0 1 -1
Basis xj x1 x2 m1 m2 y1 y2 v1 v2 a1 a2 a3 a4 bi bi/ai
cj 0 0 0 0 0 0 0 0 1 1 1 1
a1 1 0 0 1.25 1 -1 -1.25 -2 0 1 1.25 -2 0 2 1.6
x2 0 0 1 0.125 0 0 -0.125 0 0 0 0.125 0 0 2 16
x1 0 1 0 -0.125 0 0 0.125 1 0 0 -0.125 1 0 3
a4 1 0 0 0.125 0 0 -0.125 -1 1 0 0.125 -1 1 0 0
zj 0 0 1.375 1 -1 -1.375 -3 1 1 1.375 -3 1 2
cj-zj 0 0 -1.375 -1 1 1.375 3 -1 0 -0.375 4 0
Basis xj x1 x2 m1 m2 y1 y2 v1 v2 a1 a2 a3 a4 bi bi/ai
cj 0 0 0 0 0 0 0 0 1 1 1 1
a1 1 0 0 0 1 -1 0 8 -10 1 0 8 -10 2 2
x2 0 0 1 0 0 0 0 1 -1 0 0 1 -1 2
x1 0 1 0 0 0 0 0 0 1 0 0 0 1 3
m1 0 0 0 1 0 0 -1 -8 8 0 1 -8 8 0
zj 0 0 0 1 -1 0 8 -10 1 0 8 -10 2
cj-zj 0 0 0 -1 1 0 -8 10 0 1 -7 11
Basis xj x1 x2 m1 m2 y1 y2 v1 v2 a1 a2 a3 a4 bi bi/ai
cj 0 0 0 0 0 0 0 0 1 1 1 1
v1 0 0 0 0 1 -1 0 8 -10 1 0 8 -10 2
x2 0 0 1 0 0 0 0 1 -1 0 0 1 -1 2
x1 0 1 0 0 0 0 0 0 1 0 0 0 1 3
m1 0 0 0 1 0 0 -1 -8 8 0 1 -8 8 0
zj 0 0 0 0 0 0 0 0 0 0 0 0 0
cj-zj 0 0 0 0 0 0 0 0 1 1 1 1
Berdasarkan tabel di atas, diperoleh nilai x1=3 dan x2=2 sehingga diperoleh nilai minimum
fungsi
=-31.
Selanjutnya, penyelesaian menggunakan bantuan program computer yaitu WinQSB diperoleh
sebagai berikut :
Diperoleh solusi dalam bentuk grafik yaitu :
Jadi diperoleh nilai minimum 31f x , dengan 1 3x dan 2 2x
Kasus II
Selesaikan masalah berikut:
Minimalkan
Dengan syarat
Penyelesaian:
Didefinisikan variable sebagai berikut:
( ), (
), ,
, , ,
Kondisi Karush- Kuhn Tucker (KKT) :
atau
(
) (
) (
) (
) (
)
(
)
Sehingga kondisi KKT dapat dituliskan kembali sebagai berikut :
Penambahan variable buatan:
Minimalkan
Dengan syarat:
Semua variable
Selanjutnya diselesaikan dengan menggunakan metode simpleks.
Iterasi 1.
Iterasi berikutnya diselesaikan dengan langkah yang sama dengan kasus 1, diperhatikan
bahwa pada kasus maksimisasi ini, kolom pivot dipilih yang nilai kolomnya memuat
0j j j j
maks c z c z
Penyelesaian dengan menggunakan program WinQSB diperoleh output sebagai berikut:
Basis xj x1 x2 m1 m2 y1 y2 v a1 a2 a3 bi bi/ai
cj 0 0 0 0 0 0 0 1 1 1
a1 1 8 0 -1 -1 -1 0 0 -1 0 0 2
a2 1 0 4 -1 -1 0 -1 0 0 -1 0 2 0.5
a3 1 1 1 0 0 0 0 -1 0 0 1 2 2
zj 9 4 -2 -2 -1 -2 0 -1 0 2
cj-zj -9 -4 2 2 1 2 0 2 1 -1
Diperoleh grafik sebagai berikut:
Diperoleh x1=0.25, x2=0.5 dan nilai maksimum
.
Untuk memaksimumkan fungsi f(x) pada masalah program kuadratik sama halnya dengan
meminimumkan negative fungsi f(x) tersebut.
Contoh :
Memaksimumkan
sama halnya dengan meminimumkan
.
Iterasi 1.
Iterasi 2.
Iterasi 3.
Iterasi 4.
Iterasi 5.
diperoleh nilai x1=0.25, x2=0.5 dan nilai minimum –f(x)=-0.75