GRAFIKA
Penerbit Tisara Grafika
SALATIGA
2014
Katalog Dalam Terbitan
519.72
PAR Parhusip, H. A.
o Optimasi taklinier (berdasarkan data-data penelitian, disertai
program MATLAB 6.5) / H. A. Parhusip. -- Salatiga : Tisara
Grafika, 2014.
x, 221 hlm. ; 25 cm.
ISBN 978-602-9493-14-6
I. Title.
Diterbitkan oleh:
iii
iv
PRAKATA
F
akultas Sains dan Matematika (FSM) Universitas Kristen
Satya Wacana (UKSW) merupakan salah satu Fakultas Sains
yang menekankan penelitiannya pada aplikasi sains dan
matematika. Adapun aplikasi yang dimaksud terkait dengan
lingkungan sekitar UKSW yaitu Salatiga, Jawa Tengah dan
sekitarnya seperti berbagai kasus industri kecil dan perusahaan dari
pemerintah maupun instansi swasta.
Kasus yang dihadapi seringkali memerlukan pemrograman untuk
dapat menyelesaikan. Program yang digunakan umumnya adalah MATLAB,
MAPLE, GEOGEBRA untuk matematika deterministic dan SPSS, Excell dan
R untuk pengolahan data statistik. Program-program ini juga banyak
dibutuhkan pada berbagai perusahaan. Oleh karena itu teknik menggunakan
program-program tersebut perlu diketahui. Pada buku ini diperkenalkan
penggunaan program MATLAB dalam menterjemahkan problem optimasi.
Selain untuk kebutuhan pada dunia kerja, MATLAB juga banyak digunakan
pada keperluan riset pada berbagai jenjang akademik (S1 hingga S3). Jadi
program yang disediakan pada buku ini juga untuk memberikan wawasan
bagi peneliti awal.
Kurangnya buku ber-ISBN yang sesuai dengan penelitian di FSM
(bahkan belum ada) sangat memungkinkan agar segera buku ini dapat dibuat
dan dapat dimanfaatkan secara umum terlebih lagi adanya dorongan yang
terus menerus untuk mendisain penelitian yang berkualitas.
Buku ini diharapkan dapat menjembatani kebutuhan-kebutuhan
tersebut di atas dan buku yang berbasis penelitian ini dapat terus diperbaharui
sesuai dengan penelitian yang berkembang di FSM bahkan pada lingkungan
yang lebih luas pada masa mendatang.
v
vi
KATA PENGANTAR
P
enggunaan komputer pada perkuliahan aras S1 sekarang
khususnya matematika sangat diperlukan khususnya mata
kuliah yang terkait dengan aplikasi matematika seperti metode
numerik, pemodelan matematika, program linear, optimasi
linear dan tak linear dan komputasi matematika. Demikian pula beberapa
mata kuliah dasar seperti kalkulus dan aljabar linear juga sangat didukung
oleh komputer.
Sehubungan dengan hal itu, buku-buku ajar yang mendukung untuk
mahasiswa dapat menganalisa hasil keluaran dari program juga sangat jarang.
Selain itu, buku-buku bidang terkait dalam bahasa Inggris mempunyai
ilustrasi kasus yang muncul dari negara Eropa atau Amerika. Sedangkan
mahasiswa seringkali menjumpai kasus justru dengan data dan kasus dari
daerah lokal setempat. Kesenjangan dalam menganalisa dan contoh kongkrit
yang kurang mendorong penulis untuk menyusun buku ini.
Buku ini ditujukan pada mahasiswa matematika S1 pada khususnya
dan pengguna matematika pada umumnya yang bergelut dengan masalah
optimasi. Untuk itulah buku ini disusun. Program yang terkait dengan
algoritma yang ditulis juga disajikan dalam bahasa MATLAB secara
bertahap sehingga pembaca dapat meng-copy program dengan mudah. Cara
mengemukakan hasil analisa umumnya bermasalah bagi mahasiswa. Panduan
cara menganalisa juga diberikan pada buku ini sehingga pengguna/mahasiswa
dapat mengikuti cara mengemukakan pendapat.
vii
dipelajari dan modul cara menganalisa. Demikian pula soal-soal yang
memuat hasil-hasil penelitian juga disajikan khususnya pada Bab 6 dan
dilanjutkan pada Bab 7.
Tentunya masih banyak kekurangan penulis dalam menyusun buku
ini. Saran dan pendapat yang mendukung perbaikan buku ini sangatlah
diharapkan.
Penulis
viii
DAFTAR ISI
PRAKATA v
KATA PENGANTAR vii
DAFTAR ISI ix
Bab 1
DASAR-DASAR OPTIMASI TAKLINEAR 1-48
1.1 Permasalahan Optimasi dengan Satu Variabel 1
1.2 Optimum Global dan Lokal 2
1.3 Fungsi Cembung (convex) dan fungsi cekung (concave) 3
1.4 Permasalahan Optimasi dengan Multivariabel 16
1.4.1 Maksimum Lokal dan Global 16
1.5 Metode-metode dasar untuk optimasi 18
1.5.1 Metode penyelesaian untuk masalah opti-misasi berkendala 18
persamaan
1.5.2 Persyaratan Kuhn-Tucker 22
1.5.3 Metode Finalti (Penalty Method) 26
1.6 Beberapa definisi penting 28
1.6.1 Tak Bebas Linear dan Bebas Linear 28
1.6.2 Kombinasi Konveks 29
1.6.3 Himpunan Konveks 29
1.6.4 Penyelesaian Titik Ekstrim 30
1.7 Metode Numerik untuk Optimasi tanpa kendala 30
1.7.1 Metode Golden Search (GS) 31
1.8 Optimasi dari penelitian 34
Bab 2
PEMROGRAMAN KUADRATIK 49-62
2.1 Bentuk standar 49
2.2 Optimasi Pemrograman Kuadratik (Quadratik programming QP) 51
2.3 Menggambar fungsi tujuan dengan MATLAB 55
2.4 Latihan Soal 57
Bab 3
FUNGSI-FUNGSI OPTIMASI PADA MATLAB 63-78
3.1 Fungsi fmincon ( ) 63
3.2 Optimasi dengan kendala persamaan dan tidak persamaan 68
3.3 Optimasi Pemrograman Kuadratik 70
3.4 Fungsi fminimax () 72
3.5 Fungsi lsqlin dan lsqnonlin 72
3.6 Latihan Soal 76
ix
Bab 4
PEMROGRAMAN STOKASTIK 79-98
4.1 Program Linear Stokastik 80
4.2 Pemrograman Stokastik Nonlinear 94
Bab 5
METODE MODERN DALAM OPTIMASI 99-138
5.1 Simulasi Anneling (SA) 99
5.2 Algoritma SA untuk optimasi 100
Ciri-ciri alogoritma SA 103
5.3 Optimasi dengan koloni semut 109
Sifat perilaku semut 110
Lintasan kembali dan memperbaharui Peremon 111
Penguapan jejak Peromon 111
Algoritma 112
5.4. Algoritma Genetik 117
5.4.1 Kelahiran Algoritma Genetik 117
5.4.2 Representasi variabel disain (variabel keputusan) 120
5.4.3 Representasi fungsi tujuan dan kendala 120
5.4.4 Reproduksi, Crossover dan mutasi 122
Crossover 125
Crossover program (dan mutasi) 129
Bab 6
KEGIATAN PENELITIAN BERDASARKAN HASIL-HASIL 139-182
OPTIMASI DARI PENELITIAN
Kegiatan Penelitian A 139
Kegiatan Penelitian B 146
Kegiatan Penelitian C 150
Kegiatan Penelitian D 154
Kegiatan Penelitian E 157
Kegiatan Penelitian G: Optimasi dengan kendala 165
Kegiatan Penelitian H 171
Kegiatan Penelitian I 175
Bab 7
SISTEM PERSAMAAN TAK LINIEAR 183-221
7.1 Persamaan Taklinear 183
7.2 Sistem Persamaan Taklinear 187
7.2.1 Metode Newton 188
7.2.2 Metode Broyden 194
7.3 Sistem Persamaan Taklinear dengan fungsi fsolve pada MATLAB 206
x
Bab 1
DASAR-DASAR OPTIMASI TAKLINEAR
M
asalah optimasi pada dasarnya meminimalkan atau
memaksimalkan fungsi tujuan. Karena memaksimalkan
suatu fungsi tujuan sama artinya meminimalkan negatif
dari fungsi tujuan, maka hampir pada keseluruhan pembahasan buku ini
membahas tentang meminimalkan fungsi tujuan. Selain itu, adanya kendala
seringkali membatasi hasil yang diperoleh. Akan tetapi untuk dapat
mempelajari sifat-sifat umum dalam optimasi, kita membahas masalah
optimasi tanpa kendala terlebih dahulu.
Secara matematis, kita harus mengetahui terlebih dahulu ada
tidaknya peminimal sebelum mencari nilai minimal fungsi tujuan. Oleh karena
itu berbagai cara mengenal ada tidaknya peminimal dibahas lebih lengkap.
dimana f x adalah sebuah fungsi (tak linear) dari variabel tunggal x , dan
pencarian nilai optimumnya (maksimum atau minimum) ditinjau dalam
selang tak berhingga , . Jika peninjauannya dibatasi pada selang
berhingga [a,b], maka persoalannya menjadi:
minimumkan : z f x (1.2)
dengan kendala : a x b
yang merupakan sebuah program tak linear satu variabel yang berkendala.
OPTIMASI TAKLINEAR |1
1.2 Optimum Global dan Lokal
fungsi ini didefinisikan. Jika f x f x * untuk semua x dalam selang ini
Teorema 1.3 : Jika f x dapat didefinisikan dua kali pada sebuah selang
kecil yang berpusat di x * , dan jika f ' x * 0
f '' x * 0 , maka f x
memiliki sebuah minimum lokal di x * . Jika f ' x * 0 dan f '' x * 0 , maka
fungsi 1 variabel
Sebuah fungsi f x adalah cembung pada sebuah selang (berhingga atau
tak berhingga),jika untuk setiap dua titik x1 dan x 2 di dalam dan untuk
semua 0 1 1 berlaku
OPTIMASI TAKLINEAR |3
f x1 1 x 2 f x1 1 f x 2 (1.3)
Jika pernyataan (1.3) berlaku dengan tanda pertidaksamaan yang terbalik,
maka f x adalah cekung . Jadi, negatif dari sebuah fungsi cembung adalah
cekung, dan sebaliknya.
Teorema 1.4: Jika f x dapat terdiferensial dua kali pada suatu interval
f " x 0 x dalam .
Teorema 1.5: Jika f x cembung pada , maka setiap minimum lokal pada
fungsi multivariabel
Kita perlu mengenal beberapa definisi penting berikut ini.
Vektor gradien f yang berkaitan dengan sebuah fungsi
6 x1 x 2
2 3
f 3 x1 2 x 2 x3
3 x 2 x 2
2 3
612 12
2 3
sehingga f
x*
31 223 105
322 32 108
2 f
Hf i, j 1,2,3,..., n
xi x j
OPTIMASI TAKLINEAR |5
Berdasarkan komponennya, matriks Hessian ditulis dalam bentuk:
2 f 2 f 2 f
.......
x12 x1x 2 x1x n
2 f 2 f
....... ...
H f x 2 x1 x 22
... .... ........ ...
.... .... ........ ....
2 f 2 f 2 f
..
x n x1 x n x 2 x n2
(1.4.b)
Notasi H f * menunjukkan nilai dari matriks Hessian di x * .
x
Contoh 1.3 Untuk fungsi dari contoh 1.2, dan x * 1,2,3T maka
6 x 2 6 x1 0
H f 6 x1 2 x33 6 x 2 x32
0 6 x 2 x32 6 x 22 x3
12 6 0
sehingga H f * = 6 54 108 .
x
0 108 72
Beberapa contoh masalah optimasi yang berkendala maupun tanpa kendala
ditunjukkan sebagai berikut:
a). min f ( x1 , x2 , x3 ) 2 x1 3x2 3x3
kendala x1 2 x2 3
x1 x3 3
x1 , x2 , x3 0
f ( x1 , x2 , x3 ) 2 x1 3x2 3x1 x3
2 2
b). max
kendala x1 x2 4
x1 x3 3
x1 , x2 , x3 0
Definisi 1.5 :
Sebuah matriks simetris A berukuran n n (yang memiliki sifat A =
AT) adalah semi negatif tegas (definite negative) jika x TA x 0 untuk setiap
vektor x 0 yang berdimensi n. Jika x TA x < untuk setiap vektor x 0
maka A di atas disebut negatif tegas (definite negative). Secara sama dapat
didefinisikan untuk semi positif tegas (definite positive).
Matriks simetris yang akan dibahas adalah matriks Hessian Teorema
berikut terkadang digunakan untuk menguji sifat matriks Hessian.
didefinisikan determinan-determinan
a11 a12 a13
a11 a12
A 1 a11 A2 A 3 a 21 a 22 a 23 ... A n 1n 1 det
a 21 a 22
a 31 a 32 a 33
A (1.5)
Matriks A adalah negatif tegas (definite negative) jika dan hanya jika
A1,A2,.........,An semuanya negatif. Dengan kata lain A adalah semi negatif
tegas (definite negative) jika dan hanya jika A1 0 , A2 0 1, A3 0 ,…,
Teorema 1.6.b: Suatu matriks simetris semi negatif tegas (definite negative)
(semi definite negative) untuk semua x dalam D yaitu setiap nilai eigen
matriks tersebut lebih kecil atau sama dengan 0.
OPTIMASI TAKLINEAR |7
Contoh 1.4
Untuk H f pada Contoh 1.3, A1 = 12 > 0, maka H f bukan negatif tegas
x*
(definite negative) ataupun semi negatif tegas (semi definite negative) di x *
Kita kembali pada definisi konveks dan konkaf untuk fungsi tujuan
multivariabel. Perhatikan bahwa variabel bebas diberi notasi vektor yang
artinya x merupakan multivariabel di R n . Sehingga notasi diferensial
menjadi notasi gradient (dengan operator ‘nabla’, atau ditulis ). Sepanjang
buku ini, maka yang dimaksud dengan vektor adalah merupakan daftar
bilangan sebanyak n.
Definisi 1.6.c:
Sebuah fungsi f x adalah semi cembung (semi convex) pada suatu
daerah konveks D, jika untuk dua vektor sembarang x dan y dan untuk
semua 0 1 berlaku
f (x (1 ) y ) f ( x ) (1 ) y (1.6.a)
Sebuah fungsi adalah semi cekung (semi concave) pada D jika dan hanya
tanda pada persamaan (1.6.a) sebaliknya pada D yaitu
f (x (1 ) y ) f ( x ) (1 ) y . (1.6.b)
f x* 0 x x f x
* *
x , x *
sehingga dapat dikatakan bahwa x * adalah peminimum global.
Perhatikan cara menuliskan perkalian. Karena f x * adalah vektor
dan x x * juga vektor, sedangkan hasil perkalian haruslah skalar, maka
perlu notasi dot product.
Definisi fungsi cembung dan cekung seringkali membingungkan
mahasiswa. Untuk itu studi secara khusus tentang hal ini dapat didukung
dengan yang ditunjukkan sebagai berikut ini.
Kegiatan 1.1
Tujuan: Studi konveks
Menyelidiki apakah f (x (1 ) y ) f ( x ) (1 ) y dipenuhi, untuk
0 1 pada domain konveks yang didefinisikan.
Kegiatan A:
Kita akan menguji studi konveks fungsi
f ( x1 , x2 ) 5x12 2 x1 x2 x22 x1 2 x2 3 pada D = R 2 .
OPTIMASI TAKLINEAR |9
Fungsi ini dapat digambar dengan MAPLE untuk menambahkan visualisasi
fungsi tersebut yang ditunjukkan pada perintah dan Gambar 1.2
Pada kita tidak bisa menyelidiki pada semua bidang R 2 dan untuk
semua nilai . Hal ini karena kita perlu mendiskritkan data. Kita akan
menyelidiki tahap demi tahap.
Tahap 1.
Perhatikan notasi x (1 ) y jika dituliskan atas komponen-komponennya
maka
x1 y1 x1 (1 ) y1
x (1 ) y = + (1 ) = .
x2 y 2 x2 (1 ) y 2
u1 x1 (1 ) y1
Kita akan menyebut u = .
u2
2 x (1 ) y 2
Kegiatan 2.
Membandingkan studi konveks untuk berbagai nilai , misal nama file
adalah Studikonveks2.m
OPTIMASI TAKLINEAR | 11
%studi konveks
lamda=linspace(0,1,10); %memvariasi lamda
%memilih D adalah himpunan titik-titik pada garis x = 0
c=0;
y=-5:1:5;
n=length(y);
x=c*ones(1,n);
plot(x,y,'-')
axis([-3 3 -3 3])
xy=[x' y']
vx(1)=xy(1,1)
vx(2)=xy(1,2)
vy(1)=xy(2,1)
vy(2)=xy(2,2)
pl=length(lamda);
fu=zeros(pl,1);
Kanan=zeros(pl,1);
for i=1:pl
u(1)=lamda(i)*vx(1) + (1-lamda(i))*vy(1)
u(2)=lamda(i)*vx(2) + (1-lamda(i))*vy(2)
fu(i)=5*u(1)^2 + 2*u(1)*u(2) + u(2)^2 - u(1) + 2*u(2) + 3
fx=5*vx(1)^2 + 2*vx(1)*vx(2) + vx(2)^2 - vx(1) + 2*vx(2) + 3
fy=5*vy(1)^2 + 2*vy(1)*vy(2) + vy(2)^2 - vy(1) + 2*vy(2) + 3
Kanan(i)=lamda(i)*fx + (1-lamda(i))*fy
end
Banding=[lamda' fu Kanan]
figure,plot(1:pl,fu,'*',1:pl,Kanan,'o')
Keluaran Gambar ditunjukkan pada Gambar 1.3.
Gambar 1.3. Hasil perbandingan f (x (1 ) y ) dan f ( x ) (1 ) y
y = -5:1:5;
n = length (y);
for c = 1:10
x = c*ones(1,n);
subplot(2,1,1),plot(x,y,'-')
axis ([-3 12 -3 3])
hold on
xy = [x' y']
vx(1) = xy(1,1)
vx(2) = xy(1,2)
vy(1) = xy(2,1)
vy(2) = xy(2,2)
pl = length (lamda);
fu=zeros(pl,1);
kanan=zeros(pl,1);
for i=1:pl
u(1) = lamda(i)*vx(1) + (1-lamda(i))*vy(1)
u(2) = lamda(i)*vx(2) + (1-lamda(i))*vy(2)
fu(i) = (u(1).^2 )./2+ (3.*u(2).^2)./2+ (sqrt(3)).*u(1).*u(2)
fx = (vx(1).^2 )./2+ (3.*vx(2).^2)./2+ (sqrt(3)).*vx(1).*vx(2)
fy = (vy(1).^2 )./2+ (3.*vy(2).^2)./2+ (sqrt(3)).*vy(1).*vy(2)
kanan(i) = lamda(i)*fx + (1-lamda(i))*fy
end
banding = [lamda' fu kanan]
subplot(2,1,2),plot (1:pl,fu,'*')
hold on
subplot(2,1,2),plot (1:pl,kanan,'o')
end
hold off
OPTIMASI TAKLINEAR | 13
Keluaran ditunjukkan pada Gambar 1.4.
Gambar 1.4. Hasil perbandingan f (x (1 ) y ) dan f ( x ) (1 ) y dengan
memvariasi dari [0,1] sebanyak 10 angka untuk
f ( x1 , x 2 ) x12 / 2 3 x 22 / 2 3 x1 x 2 .
Kesimpulan:
f ( x1 , x 2 ) x12 / 2 3 x 22 / 2 3 x1 x 2 adalah strictly convex (konveks tegas)
Kegiatan 4.
Kegiatan 4 akan menguji cembung atau cekung untuk fungsi
f ( x1 x2 ) ( x1 2 x2 1)8 ln( x1 x2 ) 2 .
Tahap 1. Program
clear
close all
%studi konveks
lamda=linspace(0,1,100);%memvariasi lamda
%memilih D adalah himpunan titik-titik pada garis x=0
y=-5:1:5;
n=length(y);
for c=0:10
x=c*ones(1,n);
subplot(2,1,1),plot(x,y,’-‘);
axis([-3 3. -3 3])
hold on
xy=[x’ y’]
vx(1)=xy(1,1)
vx(2)=xy(1,2)
Gambar 1.5. Hasil perbandingan f (x (1 ) y ) dan f ( x ) (1 ) y dengan
memvariasi dari [0,1] sebanyak 10 angka untuk
f ( x1 x2 ) ( x1 2 x2 1)8 ln( x1 x2 ) 2 .
OPTIMASI TAKLINEAR | 15
Berdasarkan Gambar 1.5 dan data menunjukkan bahwa fungsi tesebut adalah
strictly convex (0< <1) menurut definisi karena hasil banding untuk setiap
adalah x ≠ y.
Pada kasus ini akan dipelajari optimasi tak linear dengan lebih dari
satu variabel. Tetapi disini hanya akan ditinjau bentuk analog dari (1.1):
minimumkan : z = f( x ), (1.7)
dimana x x1 , x2 ,..., xn
T
Suatu persekitaran x * dengan jari-jari ( neighbourhood, >0 )
adalah himpunan dari semua vektor x yang sedemikian rupa sehingga:
( x - x * )T( x - x * )
x1 x1* x
2
2 x \*2 x
2
3 x3*
2
... x n x n*
2
2
Dalam istilah geometris, sebuah persekitaran x * adalah bagian dalam
(interior) dan batas (boundary) dari sebuah bola berdimensi-n yang berjari-
jari dan berpusat di x * .
Sebuah fungsi obyektif f( x ) memiliki suatu maksimum lokal di x * ,
jika terdapat suatu persekitaran x * sedemikian hingga f( x ) f x * untuk
semua x dalam berjarak dimana fungsinya didefinisikan. Jika persyaratan
berjarak maka f = 0.
x
Teorema 1.10 : Jika f( x ) memiliki turunan-turunan kedua pada suatu
persekitaran sekitar x * , dan jika f = 0 dan H f adalah negatif
x x
tegas (definite negative), maka f( x ) memiliki suatu maksimum lokal di
x* .
Dari teorema 1.9 dan teorema 1.10 dapat disimpulkan bahwa
maksimum global dari suatu fungsi kontinu f( x ) tercapai dititik-titik dimana
f = 0 (titik stasioner) kecuali jika fungsinya memiliki nilai-nilai yang besar
sekali bila x T x . Untuk keadaan yang terakhir, fungsi tidak memiliki
maksimum global.
Penyelesaian analitik dengan menggunakan kalkulus untuk program
multivariabel lebih sulit daripada untuk program satu variabel, karena itu
sekali lagi kita gunakan untuk pendekatan maksimum lokal ke dalam
toleransi yang diperbolehkan.
OPTIMASI TAKLINEAR | 17
Contoh 1.6 Masalah optimisasi takberkendala:
min f x1 , x 2 x1 2 4 x1 2 x 2 2
Secara jelas f x1 , x2 0 & f 2,1 0 ; disini (2,1) adalah solusi global
minimum. Grad f diberikan oleh:
4 x1 2 3 2 x1 2 x 2
f x1 , x 2
4 x1 2 x 2
Sehingga pada (2,1) didapat f x1 , x 2 2 2 4 2 2(1) 2 0 .
Seperti halnya dalam optimasi linear biasa, program minimisasi dapat diubah
ke dalam program maksimisasi dengan mengalikan fungsi obyektif dengan -1.
Bentuk standar bagi program-program taklinear yang mengandung kendala-
kendala pertidaksamaan adalah:
Maksimumkan z = f( x ) (1.9)
dengan kendala:
m
f( x ) i g i ( x ) (1.10)
i 1
dan
L
0 (i = 1,2,...,m). (1.10c)
i
OPTIMASI TAKLINEAR | 19
g
J i
x j
memiliki rank m di x = x *.
( )=4 − 4 = 0,
Atau, kita dapat menerapkan metode pengali Lagrange sebagai berikut:
Mininimumkan (x, λ) = + + ( + − 2)
L
Kondisi ekstrem adalah 2 x1 0 sehingga = − ⁄2. Secara
x1
sama diperoleh
L L
2 x 2 0 sehingga x2 / 2 . Demikian pula x1 x 2 2 0
x 2
. Diperoleh 2 .
( , λ) ∂ ⁄∂ ∂ ⁄∂ ∂ 2λ 0
= = =
x ∂ ⁄∂ ∂ ∂ ⁄∂ 0 2λ
Matriks ini positif / negatif tegas (definite negative) jika tanda λ adalah
positif / negatif. Oleh karena itu penyelesaian (x1, x2) = (-1, -1) sesuai dengan
λ minimum =(lokal) yang ingin kita dapatkan, sedangkan solusi (x1, x2) =
p
m
L x , , f x i hi x j g j x
i 1 j 1
m p
L f x hi x i*g i x * 0;
* *
i
*
i 1 j 1
*j g j x * 0 ; j 1,..., p (1.12.b)
Contoh 1.8
min x1 2 x 2 2
dengan kendala:
x1 0; x2 3; x1 x2 4.
Bentuk kendala belum memenuhi bentuk baku sehingga perlu ditulis dalam
bentuk baku (menurut persamaan (1.11) yaitu
x1 0; x2 3 0; x1 x2 4 0.
Langkah pertama disusun pengali Lagrange, yaitu:
L ( x , , ) x12 x 22 1 x1 2 ( x 2 3) x1 x 2 4. .
OPTIMASI TAKLINEAR | 23
L
x1 0, 1 0
1
L
x2 3 0, 2 0
2
Akan diselesaikan dengan per kasus.
Kasus1: 1 2 0. Pada kasus ini, diperoleh sistem persamaan sebagai
berikut:
2 x1 0
2 x2 0
x1 x 2 4 0.
x1 1; x2 3; 2 ; 2 4.
Hasil ini memenuhi persyaratan Kuhn-Tucker, sehingga solusi optimumnya
adalah x1 1, x2 3, 2, 2 4.
Sekarang dengan memperhatikan kendala yang diberikan, maka pada kasus
di atas akan diselesaikan dengan metode pengali Lagrange.
x 2 y 2 z 2 1 2 x 3 y 5 z 9 2 6 x y 7 z 12
Lalu kita pecahkan sistem persamaan di atas dengan:
L
0 2 x 21 62 0
x
OPTIMASI TAKLINEAR | 25
L
0 2y 31 2 0
y
L
0 2y 51 72 0
z
L
0 2x-3y+5z-9 = 0
1
L
0 6x+y-7z-12 = 0.
2
Sistem dapat ditulis dalam bentuk sistem persamaan linear Ax = b dengan
solusi (bantuan MATLAB)
x= 2.4352 ;y= -0.9907; z= 0.2315
1 -0.8380 ; 2 -0.5324.
2
m
Pk ( x ) f ( x ) k g i ( x ) . (P.1.b)
i 1
0 jika g i ( x ) 0
g (x ) =
i . (P.1.c)
g i ( x) jika g i ( x ) 0
*
(2). Tunjukkan bahwa subbarisan x k konvergen pada suatu penyelesaian
x * untuk masalah (P.1.a)-(P.1.c).
Oleh karena fungsi kendala dinyatakan dalam bentuk persamaan (P.1.c)
maka diperlukan adanya jaminan bahwa h( x ) [ g ( x )] 2 juga mem-
Lemma 1.13 :
Jika g (x) mempunyai turunan parsial pertama yang kontinu di R n , hal ini
berlaku juga h( x ) [ g ( x )]2 . Selain itu turunan parsial tersebut adalah
h( x ) g
( x ) , untuk semua i = 1,2,…,n untuk semua x R .
n
2g ( x)
xi xi
Bukti : (Peressini,et.all,1988).
Secara umum metode Finalti ditunjukkan oleh Teorema berikut ini.
Teorema 1.14:
Anggap bahwa f (x ) , g 1 ( x ) , …, g m (x ) kontinu di R n dan f (x )
(P.1.a) yaitu
minimalkan f ( x ) dengan kendala
g1 ( x ) 0, g 2 ( x ),..., g m ( x ) 0,
OPTIMASI TAKLINEAR | 27
dan jika setiap bilangan bulat positif k, terdapat suatu x k R n sehingga
min
Pk ( xk ) P ( x) ,
xR n k
maka
(i). Pk ( x k ) Pk 1 ( x k 1 ) f ( x F ) untuk setiap bilangan bulat positif k
*
g
lim m
2
(ii). ( xk ) 0 .
k
i
i 1
Sebagai konsekuensi, jika x k P adalah subbarisan xk yang konvergen dan
jika
lim
{ x k P } x **
kP
maka x ** adalah penyelesaian untuk problem (P.1.a).
Bukti: (Peressini,et.all,1988)
P 1 P1 ..................... n Pn (1.14)
Contoh 1.10
Piringan yang diarsir pada Gambar 1.8 kiri adalah sebuah himpunan konveks
karena penggal garis antara dua buah titik sembarangnya (vektor-vektor
berdimensi 2) semuanya berada dalam piringan ini. Gambar 1.8 kanan tidak
konveks, karena meskipun R dan S termasuk pada himpunan berbayangan,
tetapi terdapat titik-titik seperti T yang terletak pada penggal garis antara R
dan S tetapi bukan merupakan bagian dari daerah bintang.
Gambar 1.8 Ilustrasi domain konveks (kiri) dan yang tidak konveks (kanan)
OPTIMASI TAKLINEAR | 29
pada penggal garis yang manapun antara dua buah vektor sembarang dalam
himpunan ini.
Teorema 1.14:
Setiap vektor dalam sebuah himpunan konveks tertutup dan terbatas dengan
sejumlah berhingga titik ekstrim dapat dinyatakan sebagai gabungan konveks
dari titik-titik ekstrim.
Teorema 1.15:
Ruang penyelesaian dari sehimpunan sistem persamaan linear yang serempak
(simultan) adalah konveks yang memiliki sejumlah berhingga titik ekstrim.
Prosedur G.S
Langkah 1.
Langkah 2.
Jika nilai-nilai f (x) pada dua titik yang hampir sama [yaitu, f (a) ≈ f (b)] dan
lebar interval cukup kecil (yaitu, h ≈ 0), kemudian berhenti iterasi untuk
keluar dari loop dan menyatakan = c atau = d tergantung pada apakah f
(c) < f (d) atau tidak. Jika tidak, lanjutkan ke Langkah 3.
Langkah 3.
Jika f (c) < f (d), biarkan nilai-nilai f(x) baru terbatas pada interval b ← d, jika
tidak, biarkan nilai-nilai f(x) baru yang lebih rendah terbatas pada interval a ←
c. Lalu, ke Langkah 1.
Kita akan menggunakan MATLAB Program "UtamaGS.m", yang digunakan
untuk menemukan titik minimum.
Contoh 1.11
Fungsi Tujuan untuk meminimumkan persamaan yang diketahui sebagai
berikut
( − 4)
( )= −1
8
OPTIMASI TAKLINEAR | 31
Untuk dapat mengilustrasikan f(x), dalam Gambar 1.9 kita dapat
menggunakan Geogebra seperti pada Gambar 1.9 ini.
Dari Gambar 1.9 kita mengilustrasikan fungsi f(x) untuk melihat gambar agar
lebih mudah dilihat dan dibayangkan. Dengan Kalkulus, fungsi f(x) akan
diturunkan untuk mengetahui nilai minimumnya dimana fungsi f(x) ditulis
dalam bentuk
( − 4) − 8 − 16 1
( )= −1= −1= − −2−1
8 8 8
= − −3= −2 .
Diperoleh nilai-nilai x yang memenuhi kondisi kritis adalah
=0 =2 = −2.
Program "GS"
Berikut ini adalah program yang terkait.
function [xo,fo] = opt_gs(f,a,b,r,TolX,TolFun,k)
h = b - a; rh = r*h; c = b - rh; d = a + rh;
fc = feval(f,c); fd = feval(f,d);
if k <= 0 | (abs(h) < TolX & abs(fc - fd) < TolFun)
if fc <= fd, xo = c; fo = fc;
else xo = d; fo = fd;
end
32 | Dasar-Dasar Optimasi Taklinear
if k == 0, fprintf('Just the best in given # of iterations'), end
else
if fc < fd, [xo,fo] = opt_gs(f,a,d,r,TolX,TolFun,k - 1);
else [xo,fo] = opt_gs(f,c,b,r,TolX,TolFun,k - 1);
end
end
Program "UtamaGS.m"
f711 = inline('(x.*x-4).^2/8-1','x');
a = 0; b = 3; r =(sqrt(5)-1)/2; TolX = 1e-4; TolFun = 1e-4; MaxIter = 100;
[xo,fo] = opt_gs(f711,a,b,r,TolX,TolFun,MaxIter)
d - a = a + rh - a = rh
√ √
= 1− . + − 1 = 0, = = .
OPTIMASI TAKLINEAR | 33
Untuk selanjutnya akan ditunjukkan proses optimasi dimana data diperoleh
dari penelitian.
Tabel 1a Contoh data lingkar dada, berat pupuk urea dan berat untuk sapi dari
Peternakan Rakyat Dukuh Belon, Kelurahan Kumpulrejo, Kecamatan
Argomulyo, Kota Salatiga dari tanggal 15 Juli 2008 sampai dengan 30 Agustus
2008.
16 20 25 30 35 40 45
18 22 27 32 37 47 52
20 24 30 34 40 50 55
22 28 33 38 45 55 60
25 32 36 42 50 60 65
30 36 40 46 55 65 70
35 40 45 50 60 70 75
40 45 50 55 65 75 80
45 50 55 60 70 80 85
50 55 60 65 75 83 90
50 55 60 70 80 90 95
55 60 65 70 80 90 100
55 60 65 75 80 95 100
60 65 70 75 85 95 100
60 65 70 80 90 100 100
65 70 75 80 90 100 100
65 70 75 85 95 100 100
70 75 80 85 95 100 100
OPTIMASI TAKLINEAR | 35
Tabel 1c. Data berbagai variabel yang diukur pada sapi dari Peternakan Rakyat Dukuh Belon, Kelurahan Kumpulrejo,
Kecamatan Argomulyo, Kota Salatiga dari tanggal 15 Juli 2008 sampai dengan 30 Agustus 2008. No.urut
(tiap kolom) menunjukkan no.urut sapi
Variabel 1 2 3 4 5 6 7 8 9 10 11 12
jumlah garam dapur (kg) 0.1 0.1 0.25 0.2 0.3 0.3 0.5 0.25 0.25 0.25 0.25 0.25
Variabel 13 14 15 16 17 18 19 20 21 22 23
jumlah hijauan (kg) 40 40 20 40 40 30 40 30 40 30 40
jumlah katul (kg) 3 3 2 2 2 4 3 2 5 5 3
jumlah tela (kg) 2 2 4 2 1 2 3 2 5 2 2
jumlah garam dapur (kg) 0.2 0.2 0.25 0.25 0.25 0.25 0.5 0.2 0.25 0.1 0.25
Jumlah air/hari (liter) 40 40 80 30 40 30 20 20 50 30 30
OPTIMASI TAKLINEAR
| 37
Kita dapat menyusun suatu pertanyaan berdasarkan data tersebut,
misalkan:
Bagaimana menentukan hubungan antara berat dengan lingkar dada dan
banyaknya pupuk urea yang diberikan sebagai fungsi waktu dan
menggunakan variabel dominan pada berat setelah dinyatakan sebagai fungsi
lingkar dada dan pupuk urea.
Berat pupuk urea diberikan perhari sama dalam 2 minggu dan waktu
maksimal yang diberikan adalah 40 minggu. Berat sebagai fungsi parametrik
lingkar dada dan pupuk urea dengan parameter waktu. Penetapan parameter
dilakukan dengan metode kuadrat terkecil sebagaimana telah ditunjukkan
pada literatur (Parhusip, 2009) .
Pemilihan fungsi dapat memilih yang ada pada literatur, misalkan
w r(t)er(t ) u(t )
2 2
(2.a)
dengan , dan dicari berdasarkan data dan r(t) = lingkar dada sebagai
fungsi waktu t, u(t) = fungsi berat pupuk urea. Fungsi pada persamaan (2.a)
ini telah digunakan untuk memodelkan pendapatan daerah Salatiga sebagai
fungsi sektor pajak dan retribusi (Parhusip,2009) .
Contoh 1.12 Penyusunan g i (x )
x 1, jika x 1,
g (x) =
0, jika x 1.
0, r rmin
g1 ( x )
r rmin , r rmin
0, u u min
dan g 2 ( x ) . (b)
u u min , u u min
dengan rmin dan u min menyatakan berturut-turut lingkar dada minimum dan
berat pupuk urea minimum. Untuk masing- masing g 1 ( x ) dan g 2 ( x ) akan
disusun fungsi Finalti yaitu:
dengan k > 0.
Jadi masalah yang dioptimasi menjadi meminimumkan Fk (x ) pada
persamaan (c). Kasus ini menjadi seperti bentuk meminimalkan fungsi tujuan
tanpa kendala. Artinya akan dicari x F * yang akan meminimalkan Fk (x ) .
Berarti perlu dicari k yang memenuhi Fk ( x ) 0 . Hal dilakukan sebagai
berikut,
Tahap 1: Susun g untuk masing-masing r,u yaitu:
k (r rmin ) k (u umin ) . (Q.b)
* * *
Setelah diketahui fungsi Fk (x ) maka akan dicari x F yaitu (r , u ) yang
meminimalkan Fk (x ) . Hal ini berarti meminimalkan fungsi tanpa kendala
seperti yaitu dengan mencari Fk ( x ) 0 artinya
T
Fk ( x ) Fk ( x )
0 0 sehingga diperoleh
T
r u
e r
2
u 2
1 2r k ,
2
(R.a)
r e r 2 u 2
2u k . (R.b)
Karena kedua persamaan (R.a)-(R.b) sama-sama memuat variabel k maka
kedua persamaan tersebut sama sehingga dapat ditulis sebagai:
e r
2
u 2
1 2r re
2 r 2 u 2
2u 0 (R.c)
OPTIMASI TAKLINEAR | 41
Persamaan (R.c) dapat lebih disederhanakan sehingga akan diperoleh
persamaan sebagai berikut:
e r
2
u 2
1 2r 2
2 r u 0 (R.d)
Bagian eksponen tidak mungkin 0. Parameter juga tidak boleh 0. Sehingga
Gambar 1.11 menunjukkan bahwa pada r=1 maka z minimum yaitu z = -0.7.
Artinya w =-z =0.7. Dalam bentuk berdimensi berarti pula bahwa pada
lingkar dada r =206 cm maka berat maksimum adalah w = 0.7*643 kg =
450.1kg. Sedangkan nilai pupuk urea yang menyebabkan berat maksimum ini
ditunjukkan oleh persamaan
w ( x1 )r (t )e r ( t ) u ( t ) 2
2
(*)
w bx1d r (t )e r ( t ) u ( t ) 2
2
. (a)
Dengan menggunakan metode kuadrat terkecil untuk men-dapatkan
parameter b,d, , maka perlu meminimalkan
n
R [ wi bx1d,i r (ti )e r ( ti ) u ( ti ) 2 2
2
] , (b)
i 1
dan
OPTIMASI TAKLINEAR | 43
1
u (ti ) , r(ti ) 0.5024ti 0.5072 ,
1 1.8571 e 4 .8514 ti
0.0036 ti 1 . (c)
Carilah nilai parameter tersebut dengan menggunakan MATLAB (dapat
menggunakan fungsi lsqnonlin). Buatlah karya tulis tentang hasil model ini.
Gambar 1.8 Daftar penerima subsidi kedelai perkecamatan kota Salatiga Oktober
2008 (Parhusip,2009)
Seringkali data harus diedit terlebih dahulu untuk dapat diolah dengan
mudah, misalkan setelah dikoleksi maka dapat didaftar sebagaimana
ditunjukkan pada Tabel 1.e.
Ekstrasi
37.600 0.024 22.233 0.023 30.783 0.008
dasar
Netral 4.343 0.010 9.210 0.019 5.283 0.012
B 1.105 0.040 0.572 0.046 1.259 0.010
K 1.301 0.020 0.661 0.089 1.248 0.021
A 1.470 0.086 0.778 0.093 1.481 0.095
S 1.326 0.024 0.675 0.065 1.206 0.014
BK 1.283 0.027 0.655 0.048 1.201 0.067
BKA 1.254 0.026 0.640 0.049 1.216 0.078
BKAS 1.1 0.039 0.569 0.047 1.142 0.031
OPTIMASI TAKLINEAR | 47
3. Selidiki turunan kedua y pada x* (peminimum y) dan simpulkan apakah
y(x) memenuhi definisi titik kritis minimum .
4. Kedua parameter K*=1.1549 and k*=1.6226 diperoleh dengan
2
n Ky1,data
meminimumkan R( K , k ) y i ,data .
i 1 Ky1,data K y1,data e kxi
Selidikilah sifat matriks Hessian R apakah negative definite pada kedua
parameter tersebut dan simpulkan jawaban anda apakah kedua parameter
tersebut memang meminimumkan R?
DAFTAR PUSTAKA
T
elah banyak penelitian tentang optimasi taklinear yang
penyelesaiannya menggunakan pemrograman kuadratik.
Loqman, dkk (2013) menggunakan pemrograman kuadratik
untuk penjadwalan pekerja pada suatu perusahaan. Gharibi (2012) mengang-
kat masalah pemrograman kuadratik yang diaplikasikan dalam ilmu kom-
puter dan komunikasi kemudian diselesaikan dengan linearisasi 0-1. Selain
itu ada juga penelitian oleh Bhowmik, dkk (2000) masalah pemrograman
integer diubah ke pemrograman kuadratik dan diselesaikan dengan teknik
heuristik.
Pada bab ini, pemrograman kuadratik merupakan masalah optimasi
dengan fungsi tujuan bentuk kuadratik yang dijelaskan secara mendasar dan
selanjutnya fungsi yang ada pada MATLAB juga diperkenalkan.
OPTIMASI TAKLINEAR | 49
1
Minimalkan f ( x ) a c x 2 x Qx
(QP) x b , x 0,
dengan x D R n
dengan Q adalah matriks n x n positif tegas untuk b R m , c R n , a R dan A
adalah matriks m x n rank m.
Q : matriks koefisien fungsi tujuan;
̅: vektor koefisien fungsi tujuan,
: konstanta pada fungsi tujuan; ̅ : vektor variabel keputusan,
A : matiks koefisien fungsi kendala; : vektor nilai sebelah kanan pada
kendala.
Catatan :
1. Matriks bertipe m x n rank m artinya matriks yang mempunyai m kolom
yang saling bebas linear.
2. Kendala untuk masalah optimasi pada persamaan (2.0) merupakan
kendala sistem pertidaksamaan linear dengan variabel keputusan yang
boleh bernilai 0. Pada aplikasi kendala kedua ini sangat tidak realistis
sehingga perlu ada transformasi. Perhatikan Proyek 3 pada Bab 1 dimana
kendala variabel keputusan adalah nilai minimum dari variabel tersebut
pada data.
50 | Pemrograman Kuadratik
2. Dengan mengikuti definisi 1.6, sebuah fungsi ( ⃗) adalah cekung pada
sebuah selang (berhingga atau tak berhingga). Jika untuk setiap dua
titik ⃗ dan ⃗ didalam dimana ⃗ dan ⃗ ϵ Rn dan untuk semua 0 ≤ ≤
1 berlaku
f (x (1 ) y ) f ( x ) (1 ) y . (2.1)
Minimalkan f ( x )
( P) g1 ( x ) 0, g 2 ( x ) 0, g m ( x ) 0,
dengan x D R n
Sehingga kondisi Karush Kuhn Tucker (KKT) menurut Teorema 1.12 perlu
dipenuhi. Maka x * D merupakan penyelesaian (P) jika dan hanya jika
terdapat suatu * R m sedemikian hingga memenuhi
(1). * 0 ;
OPTIMASI TAKLINEAR | 51
(2). i * g i ( x*) 0 untuk i = 1,2,…,m.
m
(3). f ( x*) i * g i ( x*) 0
i 1
1 m n
L( x , , ) a c x x Qx i ( Ax) i bi i xi
2 i 1 i 1
Oleh karena itu sekarang kondisi KKT dapat digunakan yaitu bahwa nilai
parameter taknegatif dan menemukan titik kritis dengan menyelesaikan
sistem persamaan yang diperoleh dari L 0 , yaitu kita akan mencari
peminimal x * dan parameter optimal * R m dan * R n yang memenuhi
(2). c Qx * AT * * 0
(3). i* ( Ax * ) i bi 0 , untuk i=1,…,m.
52 | Pemrograman Kuadratik
Pada dasarnya, setelah bentuk (2.1)-(2.3) diperoleh kita dapat
mencari titik kritis dengan algoritma yang dapat mencari penyelesaian sistem
persamaan (linear/taklinear), misalnya metode Newton dan Broyden
(ditunjukkan pada Bab 7). Pada buku dijelaskan lebih lanjut bagaimana kondisi
KKT diperbaharui dan dengan menggunakan algoritma simplex, problem QP
dinyatakan dalam bentuk problem linear yang kemudian diselesaikan dengan
algoritma Wolfe. Pada bagian ini algoritma Wolfe tidak dijelaskan secara
rinci. Kita akan menggunakan fungsi pada MATLAB secara langsung, akan
tetapi kita akan kembali mengulang dan menambahkan latihan yang baru.
Untuk itu kita harus mengetahui bagaimana bentuk umum optimasi pada
MATLAB. Jika kita menghendaki fungsi quadprog.m maka bentuk umum
masalah yang kita punyai harus ditulis dalam bentuk umum MATLAB
terlebih dahulu yaitu
1 T
min x Hx f T x sedemikian rupa memenuhi
2
A x b
Aeq x beq
lb x ub.
Notasi kendala pertama untuk kendala pertidaksamaan, notasi kedua untuk
kendala persamaan sedangkan yang terakhir untuk kendala variabel (batas
bawah (lb) dan batas atas (ub)).
Contoh 2.1
Tentukan nilai x dengan meminimumkan fungsi
1
g x x12 x22 x1 x2 2 x1 6 x2 , dengan kendala sebagai berikut:
2
x1 x 2 2
x1 2 x 2 2
2 x1 2 x 2 3
0 x1 ,0 x 2
OPTIMASI TAKLINEAR | 53
Akan diselesaikan dengan program Matlab menurut tahapan berikut.
1
Langkah 1. Tulis dalam bentuk notasi matriks , yaitu: g x x T Hx f T x ,
2
1 1 2 x
dengan H , f , x 1
1 2 6 x2
output =
iterations: 3
algorithm: 'medium-scale: active-set'
firstorderopt: []
cgiterations: []
lambda.ineqlin
ans =
3.1111
0.4444
0
lambda.lower
ans =
0
0
54 | Pemrograman Kuadratik
Pembahasan hasil program: peminimum adalah
T
x * =[ 0.6667, 1.3333] dengan nilai minimum fungsi
g( x * )= -8.2222. Untuk selanjutnya kita perlu menganalisa hasil tersebut
lebih dalam yaitu dengan menyusun Lagrange dari problem Contoh 2.1 ini
merupakan fungsi konveks pada titik stationer x * =[ 0.6667, 1.3333]T. Hal
ini tidak ditunjukkan, tetapi diharapkan pembaca dapat mencobanya.
hold on
f = x.^2 + y.^2;
MESH(x,y,f)
hold on
OPTIMASI TAKLINEAR | 55
f = 2*x + 6*y ;
MESH(x,y,f)
hold off
56 | Pemrograman Kuadratik
Latihan Soal Bab 2.
Bagian A.
dengan kendala x1 0 , x2 0 ,
3x1 2 x2 20 , 5 x1 3x2 4 .
Soal 4.
(a) Minimumkan f ( x, y ) x 2 y 2 dengan kendala ( x 2) 2 y 2 0
dengan cara yang anda anggap tepat.
(b) Gambarkan fungsi tujuan dan kendala
(c) Tentukan pula penyelesaian analitiknya
Bandingkan hasil anda antara analitik dan numerik dan buatlah kesimpulan.
Teknik pelaporan
OPTIMASI TAKLINEAR | 57
Untuk bentuk kuadratik maka tulislah bentuk soal dalam bentuk umum QP.
Soal no 1.
Langkah 1. Definisikan x
58 | Pemrograman Kuadratik
Tabel 1. Data padi sawah dari tahun 1992-2013
2 1993 153 139 59,35 141 115 54,34 176 103 63,08
3 1994 160 145 63,45 153 107 55,57 133 113 57,07
Pertanyaan:
1. Modelkan fungsi tujuan dan kendala. Untuk pemodelan fungsi tujuan
mengacu pada persamaan (QP). Fungsi tujuan disusun untuk setiap
periode tanam, sehingga akan ada tiga persamaan fungsi tujuannya.
OPTIMASI TAKLINEAR | 59
2. Menyelesaikan pemaksimal luas panen tiap periode. Dengan meng-
gunakan fungsi quadprog pada MATLAB dengan cara sebagai berikut:
Pemrograman kuadratik diterapkan untuk menentukan periode tanam yang
optimal berdasarkan data hasil panen pada sawah setiap periode tanam pada
tahun 1992-2012.
Dalam hal ini data akan diolah berdasarkan periode tanam yang sama yaitu
periode I (Januari-April), periode II (Mei-Agustus), dan periode III
(September-Desember). Untuk menyusun fungsi tujuan maka perlu
diperkenalkan variabel yang digunakan yaitu
x ij : data Luas Tanam Akhir (LTA) ke-i pada periode tanam ke- j dalam
satuan ha.
y ij : data Luas Panen (LP) ke- i pada periode tanam ke- j dalam satuan ha.
S ij : data hasil panen padi ke- i pada periode tanam ke- j dalam satuan ton.
i = 1,2,...,n j = 1,2,3
n = banyaknya data
( , )=[ ] +[ ][ ]+ (2.4.a)
DAFTAR PUSTAKA
Anderson E., Bai, Z., Bischof, C., Blackford, S., Demmel, J, Dongarra, J Du
Croz, A Greenbaum, S Hammarling, A McKenney & D Sorensen.1999.
LAPACK User's Guide Third Edition, SIAM, Philadelphia.
(http://www.netlib.org/lapack/lug/lapack_lug.html)
Dewi, V.P., Parhusip, H.A., Linawati, L., 2013. Analisis hasil panen padi
menggunakan pemodelan kuadratik. Prosiding (dalam proses), Seminar
Nasional Matematika VII Jurusan Matematika FMIPA dan Prodi
OPTIMASI TAKLINEAR | 61
Pendidikan Matematika Program Pasca Sarjana UNNES tanggal 26
Oktober 2013. Semarang: Universitas Negeri Semarang.
62 | Pemrograman Kuadratik
Bab 3
FUNGSI-FUNGSI OPTIMASI PADA MATLAB
P
ada umumnya, kendala optimasi sangat rumit dan sulit untuk
ditangani secara manual. Untuk itu kita menggunakan fungsi-
fungsi pada MATLAB yang dirancang dengan baik untuk
memecahkan masalah-masalah optimasi dengan beberapa kendala. Perlu diingat
bahwa untuk menggunakan fungsi-fungsi pada MATLAB, maka per-
masalahan yang diselesaikan harus mengikuti bentuk umum yang diatur oleh
MATLAB. Untuk itu pada bagian ini ditunjukkan aturan umum untuk
menggunakan fungsi-fungsi pada MATLAB yang terkait dengan optimasi.
Bagi pembaca yang sudah mahir tentang MATLAB, Bab 3 ini tidak perlu
dibaca secara detail karena hampir semuanya dapat diperoleh di web.
Pada bagian ini diberikan cara penggunaan fungsi fmincon(), model optimasi
harus disusun dalam bentuk umum MATLAB yaitu
Min f(x)
s.t. Ax ≤ b, x= , c(x) ≤ 0, (x)=0 dan lb ≤ x ≤ ub
(3.1)
Artinya semua model optimasi harus dalam format persamaan (3.1) sehingga
dapat menggunakan fungsi fmincon. Bagian ini penggunaannya dapat dilihat
dengan mengetikkan ‘help fmincon’ pada jendela perintah MATLAB sebagai-
mana yang akan kita lihat pada program-program di bawah. Kita buat
program MATLAB ‘kendalac(x)’ yang merupakan tata tulis dari semua
kendala dan ‘Utama3_1.m’ yang menggunakan ‘fmincon’ untuk memecahkan
masalah yang disajikan dalam contoh 3.1.
63|OPTIMASI TAKLINEAR
Contoh 3.1
Minimumkan
f(x) = +5 +6
dengan kendala ≥ 0, ≥ 0, ≥ 7, ≥ 3,
dan .
Dalam hal ini kendala persamaan tidak ada sehingga dapat ditulis sebagai [ ]
dalam MATLAB.
Sebelum kita menggunakan program-program dalam MATLAB, kita perlu
tahu argumen-argumen yang akan muncul dalam program-program yang
akan kita pakai.
Argumen Keluaran
x0 : Titik minimum ( ) yang dicapai pada daerah yang memenuhi
fungsi.
f0 : nilai fungsi f( ) yang diminimalkan.
Tahap 2. Penggunaan fungsi “fmincon ()” dari program MATLAB 6.x yaitu
[xo,fo] = fmincon(’ftn’,x0,A,b,Aeq,beq,l,u,’nlcon’,options,p1,p2.)
Tahap 3. Ketik pada command window atau pada file dengan isi sebagai
berikut:
65|OPTIMASI TAKLINEAR
clear, clf
ftujuan=’((x(1) + 1.5)^2 + 5*(x(2) - 1.7)^2)*((x(1)-1.4)^2 + .6*(x(2)-
.5)^2)’;
fsaya = inline(ftujuan,’x’);
x0 = [0 0.5] %dugaan awal
A = []; B = []; Aeq = []; Beq = []; %tanpa kendala linear
l = -inf*ones(size(x0)); u = inf*ones(size(x0)); % tanpa batas bawah/
batas atas
options = optimset(’LargeScale’,’off’); %hanya dengan [] tidak masalah
[xo_con,fo_con]= fmincon(ftujuan,x0,A,B,Aeq,Beq,l,u,’kendalac’,options)
[co,ceqo] = kendalac(xo_con) % untuk melihat kendala.
Analisa hasil:
Peminimal adalah = [1.2118, 0.5765] dan nilai minimal f adalah =
0.5322.
Z = ((X+1.5).^2+5*(Y-1.7).^2)*((X-1.4).^2+0.6*(Y-0.5).^2);
mesh(X,Y,Z);
800
600
400
200
0
0
0
0.5 1
1
1.5
2 2
Gambar 3.1. Keluaran MATLAB untuk menyelidiki titik minimum fungsi secara
analitik.
67|OPTIMASI TAKLINEAR
Gambar 3. 2. Ilustrasi kendala pada domain ( )
Contoh 3.2
Minimumkan fungsi
f x ex1 4x12 2x22 4x1x2 2x2 1 , dengan kendala
x12 x 2 1,
sebagai berikut:
x1 x 2 10.
Catatan : Jadi sebagai masukan adalah vektor x dan sebagai keluaran adalah
nilai fungsi yang berupa skalar yaitu f.
x0 = [-1,1];
options = optimset('LargeScale','off');
[x,fval,exitflag,output]=
fmincon(@objfun,x0,[],[],[],[],[],[],@confuneq,options);
> Contoh3_2
Optimization terminated successfully:
Magnitude of directional derivative in search direction
less than 2*options.TolFun and maximum constraint violation
is less than options.TolCon
Active Constraints:
1
x=
-0.7529 0.4332
fval =
1.5093
exitflag =
1
output =
iterations: 5
funcCount: 23
stepsize: 1
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: 6.3351e-005
cgiterations: []
69|OPTIMASI TAKLINEAR
3.3 Optimasi Pemrograman Kuadratik
Contoh 3.3
Tentukan nilai x dengan meminimumkan fungsi f x x12 x22 x1x2 2x1 6x2 ,
1
2
dengan kendala sebagai berikut:
x1 x 2 2
x1 2 x 2 2
2 x1 2 x 2 3
0 x1 ,0 x 2
Akan diselesaikan dengan program Matlab, yaitu;
1 1 2 x1
dengan H , f , x
1 2 6 x2
Langkah 2. Masukkan koefisien-koefisien matriks tersebut dan tulis dalam file
dengan nama Contoh3_3.m, yaitu:
H = [1 -1; -1 2]
f = [-2; -6]
A = [1 1; -1 2; 2 1]
b = [2; 2; 3]
lb = zeros(2,1)
[x,fval,exitflag,output,lambda]= quadprog(H,f,A,b,[],[],lb)
output =
iterations: 3
algorithm: 'medium-scale: active-set'
firstorderopt: []
cgiterations: []
lambda.ineqlin
ans =
3.1111
0.4444
0
lambda.lower
ans =
0
0
Pembahasan hasil program :
peminimum adalah x*=[ 0.6667, 1.3333] dengan nilai minimum fungsi f(x*)=
-8.2222.
Contoh 3.4
Tentukan nilai x dengan meminimumkan fungsi f x x1 x2 x3 , dengan
kendala 0 x1 2 x2 2 x3 72
Langkah 1. Tulis fungsi di atas di M – file dengan nama myfun.m, yaitu:
function f = myfun(x)
f = -x(1) * x(2) * x(3);
Langkah 2. Karena kedua kendala adalah linear, maka dapat ditulis dalam
bentuk matriks Ax b, dengan
1 2 2
A ;
1 2 2
0
b ;
72
71|OPTIMASI TAKLINEAR
x0 = [10; 10; 10]; % Starting guess at the solution
[x,fval] = fmincon(@myfun,x0,A,b)
s.t. Ax ≤ b, x = , c(x) ≤ 0,
Contoh 3.5
Pada bagian ini akan ditunjukkan bagaimana menemukan titik kritis dengan
melakukannya secara analitik tetapi dengan bantuan MATLAB, misalkan
untuk fungsi tujuan tanpa kendala :
f ( x1 , x2 ) − 16 − 5 + − 16 −5 (*)
Kita dapat mengilustrasikan f yang ditunjukkan oleh Gambar 3.3.
73|OPTIMASI TAKLINEAR
function y = persamaanku(x) %menulis persamaan yang akan dicari optimasinya
Tahap 2. Membuat program yang berisi turunan pertama dan kedua dari
fungsinya
f = 'persamaanku' ; g = 'turunanku';
l=[-5 -5];u=[5 5];
x1 = l(1):.25:u(1); x2 = l(2):.25:u(2); [X1,X2] = meshgrid(x1,x2);
for m = 1:length(x1)
for n = 1:length(x2), F(n,m) = feval(f,[x1(m) x2(n)]); end
end
figure(1), clf, mesh(X1,X2,F)
figure(2), clf,
contour(x1,x2,F,[-125 -100 -75 -50 -40 -30 -25 -20 0 50])
= 4 − 32 −5
= 4 − 32 −5
⎡ ⎤
⎢ ⎥ 12 − 32 0
=⎢ ⎥= 0 12 − 32
⎢ ⎥
⎣ ⎦
75|OPTIMASI TAKLINEAR
Tabel 3.1. Perbandingan Nilai Eigen dan hasil f*( ) masing-masing akar dan
∗ ∗ ∗
( , ) Matriks Hessian Nilai Eigen ( ) Keterangan
(2.9035,2.9035) = 68.92 -156.6647 Nilai eigennya
68.92 0 = 68.92 semua positif,
0 68.92 matriks Hessiannya
positive definite,
jadi
( ∗, ∗)
merupakan titik
peminimum.
(−2.7468, −2.7468) -100.1178 Nilai eigennya
−122.54 0 = −122.54 semua negatif,
0 −122.54 matriks Hessiannya
= −122.54 bukan positive
definite, jadi
( ∗ , ∗ ) bukan
merupakan titik
peminimum.
(−0.1567, −0.1567) 0.7824494 Nilai eigennya
−32.29 0 = −32.29 semua negatif,
0 −32.29 matriks Hessiannya
= −32.29 bukan positive
definite, jadi
( ∗ , ∗ ) bukan
merupakan titik
peminimum.
Selain melihat dari matriks Hessian dan nilai eigen dari matriks Hessiannya,
kita dapat pula membandingkan hasil f*( ) dari masing-masing titik kritis,
maka yang paling kecil yang merupakan titik peminimum.
5. Minimumkan f ( x1 , x2 ) e ( x1 x2 )
dengan kendala g ( x, y, z ) x 2 y 2 z 2 1 0
dengan pengali Lagrange.
Teknik pelaporan
Cara pelaporan ditunjukkan dengan skema berikut ini.
Tahap 1. Tulis nilai dugaan
77|OPTIMASI TAKLINEAR
Tahap 3. Tuliskan solusi anda dengan notasi :
D
isain suatu alat tidak dapat dilakukan secara tepat. Situasi
untuk sekeliling roket misalnya sangatlah sukar diprediksi
sehingga semua variabel yang termuat dalam penyusunan
struktur roket dikatakan bersifat random variabel. Pemrograman stokastik atau
probabilistik berkaitan dengan situasi dimana semua parameter dalam optimasi
digambarkan secara stokastik (random atau probabilistik) daripada deterministik.
Tergantung dari persamaannya (dalam variabel random) maka masalah
optimasi stokastik dikatakan stokastik linear, geometrik, dinamik atau nonlinear.
Ide dasarnya adalah mengkonversi masalah stokastik dalam masalah
deterministik yang ekuivalen. Sehingga masalah konversi tersebut dapat kita
kerjakan dengan teknik pada deterministik.
Teori dasar untuk optimasi secara stokastik ini dapat dijumpai pada
beberapa literatur. Ruszczynski dan Shapiro (2003) merupakan ‘handbook’
yang baik bagi yang mendalami bidang ini. Demikian pula teori dasar tentang
optimasi stokastik (stochastic programming) oleh Kall dan Wallace (2003) .
Teori keputusan yang muncul karena ada teori game, juga dikembangkan
dengan pemodelan stokastik (Garstka, danWets, 1974) dimana fungsi tujuan
disusun sebagai fungsi harapan (E(.)) .
Buku ini memberikan langkah-langkah dasar dalam optimasi dengan
model stokastik yang sebagian besar disadur dari Rao (2009). Rao tidak
menuliskan bagaimana kasus yang dibahas diimplementasikan dengan
program MATLAB sehingga pembaca dapat langsung mempraktikkan.
Adanya program dan hasil keluaran memberikan bantuan bagi pembaca
untuk dapat mengimplementasikan dengan mudah.
OPTIMASI TAKLINEAR|79
4.1 Program Linear Stokastik
Bentuk umum Masalah Program Linear adalah
n
minimumkan f ( x ) C T x c j x j (4.1)
j 1
dengan kendala
T
n
Ai x aij x j bi , i 1,2..., m
j 1
(4.2)
x j 0, j 1,2,..., n
(4.3)
dengan c j , aij , bi sebagai variabel random dan variabel keputusan x j
n
P aij x j bi pi , i =1,...,m (4.5)
j 1
x j 0, j =1,...,n (4.6)
dengan c j , aij , bi sebagai variabel random dan pi sebagai probabilitas yang
80 |Pemrograman Stokastik
Rata-rata f dan variansi f ditulis sebagai
n
f c j. x j (4.7)
j 1
Var( f ) x TVx (4.8)
dengan c j adalah nilai rata-rata dari c j dan matriks V merupakan matriks
dimana
OPTIMASI TAKLINEAR|81
qik aik , k=1,2,..,n, qi ,n1 bi (4.13)
y k xk k =1,2 ,...,n, yn1 1 . (4.14)
yang berdistribusi normal. Oleh karena itu kita perlu rata-rata dan variansi hi
yaitu
n 1 n
hi qik yk aij x j bi (4.15)
k 1 j 1
y1
y
Var (hi ) Y T ViY , Y 2 (4.16)
y3
Var (qi1 ) Cov(qi1 , qi 2 ) Cov(qi1 , qi 2 )
Cov(q , q ) Var (qi 2 ) Cov(qi 2 , qi ,n1 ) .
Vi
i1 i2
Cov(qi ,n1 , qi1 ) Cov(qi ,n1 , qi 2 ) Var (qi ,n1 )
h hi hi
P i pi , i =1,2,...,m (4.17)
Var (hi ) Var (hi )
hi hi
dimana menyatakan variabel yang distandarisasi normal dengan nilai
Var(hi )
82 |Pemrograman Stokastik
hi
( si ) , i =1,2, ...,m
Var (h )
i
dengan kendala
hi + si Var(hi ) 0 i =1,2,...,m
x j 0 , j=1,2,...,n (4.19)
Contoh 4.1.
Nyatakan masalah program linear ini dalam bentuk program stokastik dan
program optimasi linear deterministik yang ekuivalen untuk:
Problem P1:
max f 4 x1 8x2
dengan kendala
4 x1 5 x2 40
x1 2 x2 12
x1 , x2 0
Jawab:
Dengan mengikuti prosedur di atas maka kita dapat menyusun problem
tersebut sebagai berikut:
OPTIMASI TAKLINEAR|83
Tahap 1. Perhatikan bahwa bentuk umum dalam masalah meminimumkan,
maka kita perlu mengubah masalah optimasi menjadi meminimumkan fungsi
tujuan dan dalam bentuk program stokastik yaitu
Problem P1’:
min g ( x ) f ( x ) 4 x1 8x2 := c1 x1 c2 x2
dengan kendala
P[4 x1 5 x2 40] p1
P[ x1 2 x2 12] p2
x1 , x2 0
Diasumsikan bahwa x j deterministik.
Tahap 2.Fungsi g (x ) berdistribusi normal dengan rata-rata dan variansi g (x )
diberikan oleh
n
g c j x j dan Var( g ) x TVx
j 1
dengan
Var(c1 ) Cov(c1 , c2 )
V
Var(c1 )
. (P.1.a)
Cov(c1 , c2 )
Berdasarkan nilai-nilai yang diberikan dalam model kita mempunyai matrik
nol V.
OPTIMASI TAKLINEAR|85
Tugas 1. Maksimalkan f 4 x1 2 x2 3x3 c4 x4
dengan kendala
x1 x3 x4 24
3x1 x2 2 x3 4 x4 48
2 x1 2 x2 3x3 2 x4 36
xi 0 , i=1,..,4
dimana c4 adalah variabel random diskrit yang dapat bernilai 4,5,6, atau 7
dengan probabilitas berturut–turut 0.1, 0.2, 0.3, 0.4.
(i) Carilah penyelesaian yang memaksimalkan nilai harapan f
(ii) Selesaikan dengan metode yang anda kenal
(iii) Tentukan penyelesaian masalah tersebut jika tujuannya adalah
memaksimalkan variansi dari f.
86 |Pemrograman Stokastik
JAWABAN Tugas1:
Tahap 1.
Meminimalkan f ( x ) (4 x1 2 x2 3 x3 c4 x4 )
dengan kendala
P(hi 0) pi ,i =1,...,m
yaitu
h1 : x1 x3 x4 24 0
h2 : 3x1 x2 2 x3 4 x4 48 0
h3 2 x1 2 x2 3x3 2 x4 36 0
xi 0 , i=1,..,4
Rata-rata g dan variansi g ditulis sebagai
n
g c j . x j 4 x1 2 x 2 3x3 c 4 x 4
j 1
f ( x ) (4 x1 2 x2 3 x3 c4 x4 )
Var( g ) x TVx
dimana c j adalah nilai rata-rata dari c j dan matriks V merupakan matriks
OPTIMASI TAKLINEAR|87
dengan Var (c j ) dan Cov(ci , c j ) berturut-turut menya-takan variansi c j dan
0 0 0 1 x4
Fungsi tujuan deterministik yang baru
G ( x ) k1 g k 2 Var ( g )
= k1 4 x1 2 x2 3 x3 c4 x4 k2 x4
2
k1 4 x1 2 x2 3x3 c4 x4 k2 x4
h1 : x1 x3 x4 24 0
h2 : 3x1 x2 2 x3 4 x4 48 0
h3 2 x1 2 x2 3x3 2 x4 36 0
Oleh karena itu kita perlu rata-rata dan variansi hi yaitu
88 |Pemrograman Stokastik
n 1 4
hi qik y k aij x j bi
k 1 j 1
h1 x1 x3 x 4 24 0
h2 : 3 x1 x 2 2 x3 4 x 4 48 0
h3 2 x1 2 x 2 3 x3 2 x 4 36 0
y1
T
Var (hi ) y Vi y , y y2 .
y3
y4
Vi = O (matriks nol untuk setiap i=1,2,3). Sehingga Var(hi ) 0.
k1 4 x1 2 x2 3x3 6 x4 k 2 x4 , k1 0 , k 2 0
dengan kendala
P( hi 0) 0.99,
h1 : x1 x3 x4 24 0
h2 : 3x1 x2 2 x3 4 x4 48 0
h3 2 x1 2 x2 3x3 2 x4 36 0
x j 0 , j=1,2,3,4
OPTIMASI TAKLINEAR|89
Tugas 2:
Suatu perusahaan memproduksi A, B, dan C. Setiap produk ini diproses melalui
3 tingkatan proses produksi yang berbeda. Waktu yang diperlukan untuk
memproduksi 1 satuan dari tiap produk pada tingkatan yang berbeda dan
kemampuan harian tiap tingkat adalah probabilitas dengan rata-rata dan
standar deviasi yang dinyatakan dalam Tabel 4.1.
Keuntungan per satuan juga merupakan variabel random dengan data yang
ditunjukkan pada Tabel 4.2.
A 6 2
B 4 1
C 10 3
Sumber : Rao,2009.
90 |Pemrograman Stokastik
(c) Tujuannya adalah memaksimalkan jumlah keuntungan yang diharapkan
dan standar deviasi keuntungan.
JAWAB Tugas 2:
f ( x) k1 f k2 Var( f )
Var (c1 ) 0 0 4 0 0
V= 0 Var (c2 ) 0 0 1 0 .
0 0 Var (c3 ) 0 0 9
OPTIMASI TAKLINEAR|91
Jadi
x1 4 0 0 x1
Var ( f ) = x1 x2 x3 V x2 = x1 x2 x3 0 1 0 x2 = 4 x12 x22 9 x32 .
x3 0 0 9 x3
f (x ) - k1 6 x1 4 x2 10 x3 - k 2 4 x1 x2 9 x3 .
2 2 2
Karena aij dan bi variabel random maka demikian pula hi sehingga kita
perlu rata-rata dan variansinya. Dari data pada Tabel 4.2 maka kita dapat
menyusun
h1 a11 x1 a12 x2 a13 x3 b1 4 x1 8 x2 4 x3 1720
Demikian pula
h21 x12 9 x22 16 x32 29584
dengan kendala
h1 4 x1 8x2 4 x3 1720 2.23 x12 9 x22 16x32 29584 0
92 |Pemrograman Stokastik
Kegiatan Penelitian 4.1
Selesaikan Tugas ini dengan menggunakan program MATLAB
Jawab :
Tahap 1. Membuat fungsi tujuan dalam fungsi tujuan4_1.m
function f = tujuan4_1(x)
%k1=input('masukan nilai k1 :');
%k2=input('masukan nilai k2 :');
k1=1;
k2=1;
f = (k1*-(6*x(4.)+4*x(2)+10*x(3))-
k2*sqrt((4*(x(4.)^2)+(x(2)^2)+9*(x(3)^2))));
%Ceking hasil
[c,ceq]=confun2(x)
gradfku=gradku2(x)
OPTIMASI TAKLINEAR|93
4.2 Pemrograman Stokastik Nonlinear
Jika terdapat beberapa parameter yang terlibat dalam fungsi tujuan
dan kendala bervariasi nilai rata-ratanya, masalah optimasi umumnya
diformulasikan menjadi suatu masalah optimasi stokastik nonlinear. Untuk
tujuan tersebut, kita mengasumsikan bahwa semua varia-bel random
independent (saling bebas) dan berdistribusi normal. Masalah stokastik
nonlinear umumnya ditulis dalam bentuk
Tentukan X yang meminimalkan f (Y ) (4.a)
dengan kendala
P ( g j (Y ) 0) p j , j =1,2,...,m (4.b)
dimana Y adalah vektor dengan variabel random y1 , y2 ,..., y N yang memuat
Fungsi tujuan
(4.c)
Jika standar deviasi dari yi yaitu yi kecil, f (Y ) dapat didekati oleh dua suku
94 |Pemrograman Stokastik
N
f
f (Y ) = f (Y ) + y y
i 1
i yi
i Y
f N
f
yi = Y .
N
f (Y ) +
i 1 yi
yi - y
i 1
(4.d)
Y i Y
(Y ) (4.e)
2
N
f 2
Var( ) 2 (4.f)
yi
i 1 y i Y
karena semua yi saling bebas. Untuk tujuan optimasi, fungsi tujuan yang baru
F(Y) dapat dikonstruksi dalam bentuk
Fungsi kendala
Jika beberapa parameter berlaku random secara natural, maka
demikian pula kendala juga bersifat proba-bilistik dan kita biasanya akan
menetapkan suatu nilai probabilitas agar kendala dipenuhi. Kendala (4.b)
dapat ditulis dalam bentuk
f
0
gj ( g j )dg j p j (4.h)
OPTIMASI TAKLINEAR|95
Fungsi kendala g j Y dapat diekspansikan pada sekitar vektor rata-rata Y
ditulis sebagai
g j = g j Y (4.j)
1/ 2
N g 2
2
gj y
j
(4.k)
i
i 1 yi Y
dimana j p j adalah nilai variabel yang distandarisasi normal yang
gj /g
j
j p j
atau
96 |Pemrograman Stokastik
gj
+ gj j pj 0 (4.o)
Y
atau
1/ 2
N 2
2
g j - p g j
y
i
0 , j =1, ...,m (4.p)
i 1 yi
j j
Y
OPTIMASI TAKLINEAR|97
optimasi secara stokastik untuk masalah optimasi yang sudah ditunjukkan
pada Bab 1.
DAFTAR PUSTAKA
S.S. Rao, 2009. Engineering Optimization, John Wiley & Sons, Inc, BAB 11.
Kall, P., dan Wallace, S.W, Stochastic Programming 2nd edition, dengan
alamat
http://www.csee.wvu.edu/~xinl/library/books/stochastic_programmi
ng.pdf (21 Februari 2014)
98 |Pemrograman Stokastik
Bab 5
METODE MODERN DALAM OPTIMASI
M
etode simulasi anneling mensimulasikan proses pendingin-
an logam cair untuk mencapai fungsi minimum dalam
masalah peminimuman. Penemunya adalah Metropolis yang
mendasarkan pada penyusunan vektor penyelesaian yang
stokastik dan menggunakan sifat fisis dari anneling (pencarian zat padat
dengan pemanasan yang diikuti dengan pendinginan yang lambat dan
pengkristalan hingga pada tingkat energi yang minimum). Pada proses
pendinginan, transisi diterima dari tingkat energi tinggi ke tingkat energi
yang rendah melalui suatu distribusi probabilitas Boltzmann.
Hal ini dilakukan dengan memperkenalkan parameter seperti suhu dan
mengontrolnya dengan menggunakan konsep distribusi probabilitas Bolzmann.
Distribusi ini mengartikan bahwa suatu energi E dalam suatu sistem
kesetimbangan termal pada suhu T didistribusikan secara probabilistik
menggunakan relasi
P( E ) e E / kT (5.1)
dengan P(E) menyatakan probabilitas untuk mencapai tingkat energi E dan k
dikatakan konstanta Boltzmann. Persamaan (5.1) menyatakan bahwa pada suhu
tinggi sistem mempunyai distribusi yang mendekati probabilitas seragam pada
sembarang tingkat keadaan energi. Sedangkan pada suhu-suhu rendah, sistem
mempunyai probabilitas yang kecil untuk suatu tingkat energi yang tinggi.
Hal ini menandakan bahwa setiap proses pencarian diasumsikan mengikuti
distribusi probabilitas Boltzmann. Konvergensi dari algoritma simulasi
anneling dapat dikontrol oleh pengontrolan suhu T. Penjelasan tersebut di
P Ei 1 e E / kT (5.5)
tidak selalu sama pada setiap situasi karena tergantung dari nilai E dan T.
Jika suhu besar, probabilitas akan besar untuk menyusun xi 1 dengan nilai-
nilai fungsi lebih besar (dengan nilai-nilai E f yang lebih besar). Oleh
karena itu pada suhu-suhu yang tinggi, sekalipun dengan penyusunan xi 1
yang lebih buruk tetap diterima karena probabilitas-probabilitas yang lebih
besar. Akan tetapi jika suhu T kecil, probabilitas untuk menerima penyusunan
titik xi 1 (dengan nilai-nilai E f yang lebih besar) akan kecil. Jadi
sebagaimana nilai-nilai suhu mengecil (yaitu bahwa proses mendekati nilai
optimum), penyusunan xi 1 dengan nilai-nilai fungsi dibandingkan dengan
nilai-nilai pada xi akan semakin kecil untuk dapat diterima. Untuk selanjutnya
kita akan membahas algoritma simulasi anneling yang disingkat SA pada
bahasan berikut.
Ciri-ciri algoritma SA
Beberapa ciri-ciri SA sebagai berikut
1. Kualitas penyelesaian akhir tidak dipengaruhi oleh nilai-nilai dugaan awal,
kecuali pada upaya komputasi yang meningkat (misal waktu komputasi)
dengan disain mula-mula yang buruk.
2. Karena sifat natural fungsi yang diskrit dan evaluasi kendala, konvergensi
atau transisi karakteristik tidak dipengaruhi oleh kontinuitas atau diferen-
siabilitas fungsi-fungsi.
3. Konvergensi tidak dipengaruhi oleh status konveksitas dari ruang kelayakan
(ingat bahwa pada optimasi peminimuman mensyaratkan fungsi tujuan
konveks).
4. Variabel keputusan tidak perlu positif.
Contoh 5. 1
Tentukan minimum dari fungsi berikut dengan menggunakan simulasi
anneling
f ( x ) 500 20 x1 26 x2 4 x1 x2 4 x12 3x22
Penyelesaian: Kita mengikuti prosedur dalam diagram alir sebagai berikut:
Tahap 1.
Pilih parameter-parameter dalam algoritma SA. Nilai awal suhu diambil dari
nilai rata-rata f yang dihitung pada 4 titik yang dipilih pada ruang disain.
Yaitu
2 5 8 10
x (1) , x ( 2 ) , x ( 3) , x ( 4 ) .
0 10 5 10
Dengan nilai awal ini diperoleh berturut-turut
f (1) 476 , f ( 2) 340, f (3) 481, f ( 4) 340.
Dengan hasil ini kita dapat menyusun nilai rata-rata yaitu 384.25 sebagai
nilai awal suhu T dan faktor penurunan suhu dipilih c=0.5. Agar komputasi
cukup singkat, kita memilih banyaknya iterasi yang diijinkan adalah n = 2.
4
Kita memilih titik awal adalah x1 .
5
Tahap 2.
Kita hitung fungsi tujuan pada x1 tersebut diperoleh f1 349.0 dan kita buat
tanda iterasi pertama yaitu i =1.
r1 1.72
Yang memberikan nilai x2 .
r2 5.84
Karena nilai fungsi tujuan yaitu f 2 f ( x2 ) 387.7312 nilai f diberikan
oleh
f f 2 f1 387.7312 349.0 38.7312.
Tahap 4. Karena nilai f positif, kita menggunakan kriteria Metropolis untuk
menentukan menerima atau menolak titik yang sedang ditemukan yaitu x2 .
Dengan ini kita memilih bilangan random pada (0,1) dengan r=0.83,
persamaan (5.5) memberi probabilitas untuk menerima desain yang baru
untuk x2 yang baru adalah
P( x2 ) e f / kT . (5.7)
Tahap 3.
Kita perbaharui indeks iterasi yaitu i =2. Karena banyaknya iterasi i lebih kecil
atau sama dengan n, kita memproses tahap 3.
Tahap 3.
Kita bentuk titik yang baru pada nilai yang berdekatan dengan nilai
r 1.72
x2 1 . Untuk itu, kita pilih interval dalam tiap disain variabel
r2 5.84
adalah 6 sekitar nilai yang sedang ada yaitu 6 1.72,6 1.72 4.28,7.72
r1 6.76
yang memberikan X 3 dengan nilai fungsi f 3 313.3264 .
r2 8.60
Kita tulis bahwa fungsi f 3 313.3264 lebih bagus dari f 2 dengan
Tahap 5.
Karena siklus iterasi dengan nilai suhu telah dilengkapi, kita menurunkan
suhu pada nilai baru T = 0.5 (384.25) = 192.125.
Kita tulis kembali i =1 dan kita menuju tahap 3.
Tahap 3.
Susun titik yang baru yang berdekatan dengan nilai yang sedang berlaku
untuk x3 dan kita melanjutkan prosedur hingga suhu tereduksi pada nilai
yang kecil (hingga konvergen).
Catatan: Sebagaimana yang telah kita pelajari bersama, maka algoritma SA
tidak bekerja dengan sistem persamaan linear maupun sistem persamaan
taklinear sebagaimana kita jumpai pada berbagai proses optimasi. Hal ini
merupakan salah satu keuntungan algoritma SA.
x1 h
x2 l
Didefinisikan variabel keputusan adalah x maka
x3 t
x4 b
fungsi tujuan dibuat dalam literatur adalah
f ( x ) 1.10471x12 x2 0.04811x3 x4 (14.0 x2 )
dengan kendala
g1 ( x ) ( x ) max 0
g 2 ( x ) ( x ) max 0
g 3 ( x ) x1 x4 0
g 4 ( x ) 0.10471x12 0.04811x3 x4 (14.0 x2 ) 5.0 0
g 5 ( x ) 0.125 x1 0
g 5 ( x ) 0.125 x1 0
g 7 ( x ) P Pc ( x ) 0
g 8 ( x ) ke g11 ( x ) : 0.1 xi 2.0 , i =1,4
g12 ( x ) ke g15( x) : 0.1 xi 10.0 , i =2,3
x x x22 x1 x3 2
J 2 1 2
2 12 2
4 PL3
X
6 PL
, X
x4 x32 Ex33 x4
Px X
4.013 EG x32 x46 / 36 x
1 3
E
2
L 2 L 4G
Data: P= 6000lb, L =14in., E 30x10 6 psi, G 12x10 6 psi. psi, max 30000
x1 h 0.2444
* x2 l 6.2177
diperoleh x dan nilai fungsi tujuan optimal adalah
x3 t 8.2915
x4 b 0.2444
f * =$ 2.3810.
0 jika j N i( k )
lintasan (i,j) diperbarui yang ditulis dalam bahasa algoritma dalam bentuk
ij ij (k ) .
Karena ada peningkatan pada peromon, probabilitas dari kurva ini terpilih
untuk menjadi semut yang segera dapat terjadi akan naik. Selengkapnya pada
literatur.
dimana (0,1] adalah laju penguapan (yang dikenal juga sebagai faktor
Algoritma
Tahap 2.
(a) Hitung probabilitas pij untuk memilih lintasan semut
(5.11)
yang sama dengan formula (5.8) dengan 1 .
Tahap 3.
(a) Susun N bilangan random r1 , r2 ,..., rN dalam interval (0;1), 1 bilangan
random untuk setiap semut. Tentukan nilai diskrit atau lintasan yang
diasumsikan oleh semut k untuk variabel i yang mana setiap probabilitas
kumulatif (yang ditemukan dalam Tahap 2.b termasuk dalam nilai ri ).
(b) Ulangi Tahap 3.a untuk semua variabel keputusan i =1,2,...,n.
(c) Hitung nilai fungsi tujuan yang berkaitan dengan lintasan yang lengkap
(variabel x(k ) atau nilai x ij untuk semua variabel keputusan untuk i= 1, 2, . . . ,
dan ijk adalah peromon yang didepositokan oleh semut terbaik pada
Dengan nilai-nilai baru ij(l ) lanjutkan pada tahap 2, 3 dan 4 diulang hingga
proses konvergen, yaitu hingga semua semut memilih lintasan terbaik yang
sama. Pada beberapa kasus, proses iterasi dihentikan setelah sebelumnya
menetapkan banyaknya iterasi maksimum yang digunakan l max .
Contoh 5.3
Jawab:
Tahap 1. Asumsikan banyaknya semut N = 4. Perhatikan bahwa hanya ada 1
variabel keputusan dalam contoh ini (n=1). Nilai –nilai diskrit dari x x1
diasumsikan pada interval x dengan (p=7) sehingga
x11 0.0 ; x12 0.5 ; x13 1.0 ; x14 1.5 ; x15 2.0 ; x16 2.5 ; x17 3.0 .
diberikan oleh
1j 1
p1 j 7
7
1p
p 1
Untuk memilih lintasan khusus (atau varibel diskrit) yang dipilih oleh suatu
semut dengan menggunakan bilangan random yang dibangun dari (0,1),
probabilitas kumulatif pada interval yang berkaitan dengan lintasan yang
berbeda pada Gambar 5.2:
1 1 2
x11 0, 0.0,0.1428 = ; x12 , 0.1428,0.2857 ;
7 7 7
2 3 3 4
x13 , 0.2857,0.4286 ; x14 , 0.4286,0.5714 ;
7 7 7 7
4 5 5 6
x15 , 0.5714,0.7143 ; x16 , 0.7143,0.8571 ;
7 7 7 7
6
x17 ,1 0.8571,1 .
7
Semut 1: x13 1.0 ; semut 2: x16 2.5; semut 3 : x11 = 0.0; semut 4: x13 1.0
Yang perlu diperhatikan bahwa ketika kita menggunakan bilangan maka hasil
yang diperoleh tidak pernah sama. Jadi jika pembaca menggunakan program
disini maka hasil yang diperoleh dapat berbeda. Akan tetapi, solusi yang
diperoleh dapat sesuai dengan analitik (jika penyelesaian analitik ada). Jika
tidak ada penyelesaian analitik untuk membandingkan solusi yang diperoleh
dengan algoritma koloni semut, maka berbagai pertimbangan perlu
diperhatikan seperti kelayakan solusi dengan solusi yang diharapkan, sifat
Hessian pada solusi yang diperoleh.
1. Selesaikan dengan koloni semut untuk soal contoh 5.2 (ikuti langkah-
langkah yang diberikan).
2. Tentukan titik minimum fungsi f ( x) x2 2x 11 pada interval (0,3)
dengan simulasi anneling
Catatan: dengan metode koloni semut diperoleh peminimum sekitarx*=
0.9760 dan nilai minimum diperoleh dengan mensubstitusikan x *
pada f(x*)=-12.
3. Dua benda yang tidak mempunyai gaya gesek (A dan B) terhubung dengan
3 pegas elastik yang mempunyai konstanta elastisitas k1 , k2 , dan k3 yang
ditunjukkan pada Gambar 5.3.
Pegas pada posisi natural ketika gaya yang dikenakan adalah 0. Tentukan
pergeseran x1 dan x2 karena gaya P dengan menggunakan potensial energi
minimum.
Petunjuk:
Jika P=potensial energi pada sistem dan U adalah kerja pada sistem yang
diformulasikan dalam bentuk
1 1 1
U k 2 x12 k3 ( x2 x1 ) 2 k1 x22 Px2
2 2 2
Secara analitik, maka syarat perlu U minimum adalah menyelesaikan
U U
0; 0 . diperoleh (secara analitik)
x1 x2
Pk3 P ( k 2 k3 )
x1* ; x2* .
k1k2 k1k3 k2 k3 k1k2 k1k3 k2 k3
Selesaikan dengan simulasi anneling untuk k1 k2 k3 1 ,P=1.
Untuk menguji jawaban : maka bandingkan solusi anda dengan peminimum
analitik ( x1* , x2* )
Contoh 5.4: Jika variabel disain xi yang dinyatakan dalam suatu string
dengan panjang 4 (atau 4 bit) dalam bentuk
0 1 0 1,
Contoh 5.5: jika suatu string dengan panjang 5 digunakan untuk merepre-
sentasikan setiap variabel, total string dengan panjang 20 menjelaskan suatu
vektor variabel disain dengan n = 4. Hal ini ditunjukkan pada Gambar 5.4.
Vektor disain disimbolkan oleh x1 18, x2 3; x1 1; x4 4. Secara umum bilangan
binair dinyatakan dalam bentuk bq bq 1 ...b2 b1b0 dengan bk 0 atau 1 untuk
k=0,1,2,...,q maka bilangan desimal yang ekuivalen adalah
q
y 2 k bk (5.16)
k 0
Hal ini menyatakan variabel desain x yang kontinu hanya dapat direpre-
sentasikan oleh himpunan nilai-nilai diskrit jika representasi binair digunakan.
Jika suatu variabel x (yang batasnya diberikan oleh x (u ) dan x (l ) )
direpresentasikan oleh suatu string dengan bilangan binair sebanyak q, nilai
desimalnya dapat dihitung dengan
x (u ) x (l ) q
x x (l )
2q 1
2
k 0
k
bk (5.17)
konvergen terpenuhi dan oleh karena itu proses dapat berhenti. Sebaliknya
menuju langkah 8.
8. Test untuk bilangan generasi. Jika i imax , komputasi telah dibentuk untuk
banyaknya generasi maksimum yang diijinkan dan oleh karena itu proses
dapat dihentikan. Sebaliknya, buatlah banyaknya generasi adalah i i +
1 dan menuju step 3.
Catatan: algoritma genetik belum dapat dilakukan karena algoritma yang
sudah ada tidak dapat dengan versi MATLAB 6.5. Apa yang dapat
kita lakukan ?. Kita dapat menggunakan beberapa tahap algoritma
w ( x1 4 x2 )
dengan kendala
g1 : x1 x2 4 0; g 2 : 4 x1 5 x2 45 0 ,
g3 : 5 x1 2 x2 20 0, g 4 : 5 x1 2 x2 10 0 ,
x1 0, x 2 0 .
Minimalkan
m
( x1 , x2 ) w( x1 , x2 ) ri g i ( x1 , x2 ) 2 ; anggap ri r (konstan, ditetapkan
i 1
kemudian),i=1,...,4.
1
F ( x1 , x2 ) .
1 ( x1 , x2 )
Nama program:
Tujuan: untuk menyimpan fungsi tujuan dan kendala dan menyatakan fungsi
fitness
122 | Metode Modern dalam Optimasi
function w = wku(x)
w=-(x(1)-4*x(2));
function g=gku(x)
g1= -x(1)+x(2)-4;
g2= -4*x(1)+5*x(2)-45;
g3=-5*x(1)-2*x(2)-20;
g4= -5*x(1)-2*x(2)+10;
g=[g1 g2 g3 g4];
for i=1:n
x=[x1random(i) x2random(i)]
phi(i)=fitness1(x)
end
F=1./(1+phi)
probf=phi./sum(phi)
Tahap 6.
s=0;
for i=1:n
kump(i)=s+probf(i);
s=kump(i);
end
rangeprob1=kump-probf(1)
rangeprob2=kump;
OPTIMASI TAKLINEAR |123
Tahap 7. Mendaftar hasil probabilitas
%Contoh Table 13.1
Daftar=[[1:n]' phi' abs(probf)' kump' rangeprob1' rangeprob2']
Contoh keluaran: hati-hati, keluaran yang muncul tidak akan sama setiap
dicoba,
Daftarb =
8.0000 3.9742 2.9352
4.0000 1.5317 4.6950
9.0000 3.2216 1.0387
9.0000 3.2216 1.0387
4.0000 1.5317 4.6950
4.0000 1.5317 4.6950
4.0000 1.5317 4.6950
4.0000 1.5317 4.6950
5.0000 2.5425 4.3797
5.0000 2.5425 4.3797
5.0000 2.5425 4.3797
5.0000 2.5425 4.3797
Perhatikan bahwa solusi/anak dalam mating pool yang baru berkaitan dengan
solusi mula-mula dari indeks ke 8 (1 kali), yang ke 4 ada 5 kali, yang ke 5
muncul sebanyak 4 kali dan dari indeks ke-9 muncul 2 kali. Munculnya ini
sesuai dengan probabilitas yang diperoleh. Kita menuju pada proses
crossover.
Crossover
Catatan: crossover menggunakan data dari mating pool yang ditulis dalam
binair kemudian binairnya dipertukarkan untuk beberapa posisi binair. Pada
MATLAB terdapat fungsi ‘dec2bin’ tetapi untuk bilangan asli. Sebelum
dijelaskan lebih lanjut berarti kita perlu mengetahui bagaimana bilangan
desimal ke binair dan sebaliknya.
0.625 x 2 = 1.250
0.250 x 2 = 0.500
0.500 x 2 = 1.000
Kita tulis sisa tadi dari yang paling akhir ditulis sebagai digit pertama
sehingga 1 0 1111
Jadi 4710 1011112 .
Jawab: perhatikan bagian bulat sudah kita buat demikian pula bagian di
belakang koma.
Contoh 5.8:
11.000002 = 310
Program A: decpecahan2bin.m
Tujuan: merubah bilangan basis 10 menjadi basis binair
Catatan:
a : adalah bilangan basis 10 yang akan dibinairkan
n : banyaknya digit untuk menulis binair
vi: output vektor untuk mencatat binair dari bagian bilangan yang bulat
vr:output vektor untuk mencatat binair dari bagian bilangan yang di belakang
koma
function [vi,vr]=decpecahan2bin(a,n)
ai=floor(a);
vi=dec2binvec(ai);
s=a-ai;
vr=zeros(1, n);
128 | Metode Modern dalam Optimasi
for i=1:n
s=s*2;
vr(i)=floor(s);
b=s-vr(i);
s=b;
end
Program B: bin2decpecahan.m
function a=bin2decpecahan(v)
j=[1:length(v)]*(-1);
y=2.^j;
a=v*y';
Keluaran :
vr
vr =
1 1 1 1 0 0 1 0 0 1
>>av=bin2decpecahan(vr);
>> av
av =
0.9463
%kumulatif prob
s=0;
for i=1:n
kump(i)=s+probf(i);
s=kump(i);
end
rangeprob1=kump-probf(1);
rangeprob2=kump;
range_p=[rangeprob1' rangeprob2'];
%Contoh Table 13.1
Daftar=[[1:n]' phi' abs(probf)' kump' rangeprob1' rangeprob2'];
for i=1:length(reprox)
bilanganyangdimainkan1=reprox(i,1);
[vi,vr]=decpecahan2bin(bilanganyangdimainkan1,n);
m=4;
w=overku(vr,m); %disini
aw=bin2decpecahan(w);
axover1(i)=aw+binvec2dec(vi)
bilanganyangdimainkan2=reprox(i,2);
[vi,vr]=decpecahan2bin(bilanganyangdimainkan2,n);
m=4;
w=overku(vr,m); %disini
aw=bin2decpecahan(w);
axover2(i)=aw+binvec2dec(vi)
end
Populasicrossover=[axover1' axover2']
Bandingawaldenganbaru=[reprox Populasicrossover]
Contoh keluaran :
Data x1 Data x2
Data x1 Data x2 yang mengalami
yang mengalami
yang terseleksi yang terseleksi crossover
crossover
4.5669 2.4269 4.5581 2.4481
4.0736 0.7881 4.0514 0.8369
0.6349 4.7858 0.7401 4.8392
4.8244 4.7975 4.8006 4.8275
4.7875 3.9610 4.8375 3.9140
4.5669 2.4269 4.5581 2.4481
Cara pelaporan :
Cara 1 :
(a) 1.745 + 25.25 =........
Dalam binair = .......
Cara 2:
Binair 1.745 adalah ............2 dengan m= ..............digit
25.2510 .........................2 dengan m= ..............digit Sehingga= ............2 +
............2 = ............2 = ............10
Analisa hasil :...................................
Kasus mencari volume maksimum kotak yang dapat memuat suatu bola
berjari-jari 1 menjadi suatu masalah optimasi tak berkendala
maksimalkan f ( x1 , x 2 ) 8 x1 x 2 1 x12 x 22
2 1/ 2
..
0.84 -1.38
0.45
0.83 -1.4
0.82 -1.42
0.81 -1.44
0.4
0.8 -1.46
0.79 -1.48
Tabel 5.4. Penyelesaian optimal untuk ketiga periode tanam dalam bentuk data
berdimensi (Dewi,dkk,2013(b))
Pemrograman
Luas Tanam 132.9505 54.6966 120.4908
Kuadratik
Akhir (ha) ACO 118.944 109.55 142.33
Pemrograman
Luas Panen 120.4864 105.2448 76.1586
Kuadratik
(ha)
ACO 98 103.9 63.99
Pemrograman
Hasil gabah 61.7237 55.8306 60.4087
Kuadratik
(ton)
ACO 29.18 34.31 43.8
Dapat dijelaskan dari Tabel 5.4 bahwa periode tanam yang optimal
adalah periode III, dimana hasil gabah yang didapat dalam satu hektar sawah
adalah 43.8 ton. Pada penelitian yang pernah dilakukan menggunakan
pemrograman kuadratik periode optimal adalah periode III. Secara informal
Daftar Pustaka
Dewi, V.P, Parhusip,H,A, Linawati, L., 2003(a) Analisa Hasil Panen Padi
menggunakan Pemodelan Kuadratik, prosiding (dalam proses)
Seminar Nasional Matematika UNNES 26 Oktober 2013.
Dewi, V.P, Parhusip,H,A, Linawati, L., 2003(b). Optimasi Hasil Panen Padi
menggunakan Singular Value Decomposition (SVD) dan Ant
Colony Algorithm (ACO), dipresentasikan pada prosiding (dalam
proses) Seminar Nasional Matematika UNS, 20 Nopember 2013.
Rao, S.S, 2009. Engineering Optimization, Theory and Practice, John Wiley
& Sons, Inc., Hoboken, New Jersey.
i
Defleksi (deflection) : Istilah yang digunakan untuk menjelaskan derajat struktur elemen pada material
berubah karena adanya beban yang dikenakan
M
ahasiswa matematika khususnya dan pengguna matematika pada
umumnya tidak dapat memberikan penjelasan analisa yang baik
dalam menyelesaikan masalah optimasi jika menggunakan
software (MATLAB misalnya). Untuk itulah pada Bab ini diberikan bentuk-
bentuk kegiatan penelitian berdasarkan data hasil penelitian dan cara
pelaporan dalam pengolahan data. Oleh karena itu, Bab ini lebih merupakan
panduan kegiatan penelitian dan lembar kerjanya.
KEGIATAN PENELITIAN A
Tujuan : menyatakan data subsidi kedelai sebagai fungsi kuadratik tenaga
kerja dan pengusaha.
Latar Belakang
Diberikan Tabel 6.1-6.4 sebagai data subsidi kedelai, tenaga kerja dan
pengusaha dari 4 kecamatan di Salatiga (Data dari DISPERINDAG, Salatiga
2008). Dianggap subsidi (S) sebagai fungsi kuadratik tenaga kerja (x) dan
pengusaha (y) yang berbentuk :
S f ( x, y ) 1 x 2 2 y 2 3 xy 4 x 5 y 6 .(6.1)
Tugas Penelitian A.1: perlu dicari j yang tepat. Hal ini dapat dilakukan
x y S
xˆ ; yˆ ; Sˆ . (6.2)
max x max y max S
PROGRAM MATLAB
Dengan menyusun
Minimumkan
Atau minimalkan
.
2
n
R S i x 2 y 3 xi y i 4 xi 5 y i 6
2
1 i
2
i
i 1
Hal ini dapat dilakukan dengan memenuhi kondisi R 0 .
x 0 .
2
n
2 S i 1 xi2 2 yi2 3 xi yi 4 xi 5 yi 6 2
i
i 1
(6.a)
Matriks ini diperoleh dari metode kuadrat terkecil dimana terdapat asumsi
bahwa data ( S i , xi , y i ) memenuhi
f ( x , y ) = 1 x 2 2 y 2 3 xy 4 x 5 y 6 (6.b)
Pada kasus ini, kita harus meminimalkan error untuk menentukan
parameter pada persamaan (6.b) masalah pada persamaan kuadrat terkecil
menggunakan syarat dengan melihat pada sistem persamaan linear
Av a w (6.c)
Dengan A pada persamaan (6.a) dan v a adalah vektor parameter yaitu
va 1 2 3 4 5 6
T
(6.d)
w= x S y S x y S x S y S S
2
i i
2
i i i i i i i i i i
T
(6.e)
Av W dengan v A 1 * W
x=T;
y=P;
a11=sum(x.^4);a12=sum(x.^2.*y.^2);a13=sum(x.^3.*y)
;a14=sum(x.^3);
a15=sum(x.^2.*y);a16=sum(x.^2);
a21=sum(x.^2.*y.^2);a22=sum(y.^4);a23=sum(x.*y.^3);a24=sum(x.*y.^2);
a25=sum(y.^3);a26=sum(y.^2);
a31=a13;a32=a23;a33=a21;a34=a15;
a35=a24;a36=sum(x.*y);
a41=a14;a42=a24;a43=a34;a44=a16;
a45=a36;a46=sum(x);
a51=a15;a52=sum(y.^3);a53=a35;a54=a45;
a55=a26;a56=sum(y);
a61=a16;a62=a26;a63=a36;a64=a46;
a65=a56;a66=n;
A=[a11 a12 a13 a14 a15 a16;
a21 a22 a23 a24 a25 a26;
a31 a32 a33 a34 a35 a36;
a41 a42 a43 a44 a45 a46;
a51 a52 a53 a54 a55 a56;
a61 a62 a63 a64 a65 a66];
vb=[sum(S.*x.^2); sum(S.*y.^2);sum(S.*x.*y);sum(S.*x);sum(S.*y);sum(S)];
alpa=pinv(A)*vb;
Subsidiku = alpa(1)*x.^2+ alpa(6.)*y.^2+alpa(3)*x.*y + alpa(4)*x + alpa(5)*y +
alpa(6);
error=norm(Subsidiku- S)/norm(S)*1100
%Subsidiku : pendekatan subsidi
bandingkansubsidi=[S Subsidiku]
Keluaran bagian perintah tersebut adalah:
error =
7.9785
bandingkansubsidi =
1.0000 1.0066
0.6362 0.6153
Tugas Penelitian A.2: Nyatakan Tabel 6.1-6.4 dengan subsidi sebagai fungsi
tenaga kerja dan pengusaha seperti di atas.
Cara Pelaporan sebagai berikut.
Kerjakan dengan cara yang sama jika data subsidi yang tak berdimensi
dianggap berbentuk
S f ( x, y ) 1 x 2 2 y 2 3 xy 4 .
S y x1 .
(1). Carilah nilai dan yan g meminimalkan error sebagaimana prosedur
yang dituliskan di atas dengan cara memberikan informasi berikut ini :
R = ............. Min R = ...........Artinya: ...............................
Diperoleh sistem persamaan (nonlinear yaitu) ................................
KEGIATAN PENELITIAN B
Kasus 1. f ( x ) x 2 2 x
f ( x) x 2 e ( x
2
)
Kasus 2.
2 ( x
Gambar 6.2 Grafik f ( x) x e
2
)
Gambar 6.3 Gambar yang salah untuk Gambar 6.4 Gambar yang benar
2 ( x2 ) 2 ( x
f ( x) x e untuk f ( x) x e
2
)
Dari analisis f ’(x)=0 maka diperoleh x*=0, x*=1, x*=-1 adalah titik-
titik kritis. Pada x*=0 maka f ”(x*) >0, maka x* menjadi peminimum lokal.
Tetapi jelas bahwa f ”(x) >0 maka x* peminimum global.
Pada x*=-1 dan x*=1 maka f ' ' ( x* ) 4e 1 0 . Demikian pula f ' ' ( x) < 0
untuk semua x <-1 atau x>-1.
Contoh jawaban:
Misalkan f ( x, y ) 3 x 2 xy 2 y 2
Gambar 6.5 f ( x, y ) 3 x 2 xy 2 y 2
Peminimum Pemaksimum
Keterangan
No Fungsi A:ada, A:ada,
lokal/global
T:tidak ada T : tidak ada
3x^2-xy+2y^2 A T Peminimum
X*=(0,0) global
Data: sumber data adalah subsidi kedelai untuk seluruh kota Salatiga tanpa
memandang dari kecamatan apa saja (jadi data tiap kecamatan
digabung sebagaimana ditunjukkan pada Tabel 6.5
S f ( x, y ) 1 x 2 2 y 2 3 xy 4 . (*)
.
2
n
R S i x 2 y 3 xi y i 4
2
1 i
2
i
i 1
Artinya perlu dipenuhi kondisi R 0 atau
R R R R
0; 0; 0; 0.
1 2 3 4
n 4 n n n
xi x x x
2
i y i2 3
i yi 2
i
ni 1 i 1
n
i 1
n
i 1
n
x2 y2 y i2 ;
i i y x
4 3
yi
i i
A i n1 n
i 1 i 1
n n
i 1
xi3 y i xi y i
3
x 2
i y i2 xi y i
i 1 i 1 i 1 i 1
n 2 n n
xi yi2 x i yi n
i 1 i 1 i 1
T
W = xi2 S i
n n n n
i 1
yi2 Si
i 1
xi y i S i
i 1
i 1
Si ;
V= 1 2 3 4 T .
PROGRAM MATLAB
Tahap 1. Tulis data Tabel 6.5 pada file seluruhsalatiga.dat
128 47 79693
74 25 50700
25 12 23500
49 33 50750
6 4 1800
22 7 10200
23 7 20000
26 12 21100
[m, n]=size(seluruhsalatiga);
T=seluruhsalatiga(:,1); %tanpa dimensi
P=seluruhsalatiga(:,2);
Sub=seluruhsalatiga(:,3);
x=T./max(T);
y=P./max(P);
S=Sub./max(Sub);
a11=sum(x.^4);a12=sum(x.^2.*y.^2);a13=sum(x.^3.*y);a14=sum(x.^2);
a21=sum(x.^2.*y.^2);a22=sum(x.^4);a23=sum(x.*y.^3);a24=sum(y.^2);
a31=a13;a32=a23;a33=a21;a34=sum(x.*y);
a41=a14;a42=a24;a43=a34;a44=m;
A=[a11 a12 a13 a14;
a21 a22 a23 a24;
a31 a32 a33 a34;
a41 a42 a43 a44]
W=[sum(S.*x.^2); sum(S.*y.^2);sum(S.*x.*y);sum(S)]
V=inv(A)*W
Sku=V(1)*x.^2 + V(6.)*y.^2 + V(3)*x.*y + V(4);
figure(1)
plot(1:m,S,'*',1:m,Sku,'o')
error=norm(S-Sku)/norm(S)*100 % sudah dalam persen
W=
1.3603
1.5657
1.4282
4.2099
V=
-1.7738
-0.0264
2.8193
0.0984
error =
32.8838
Analisa: Diperoleh error fungsi 32.88%. Error ini dianggap cukup besar
sehingga V belum cukup baik untuk menyatakan data subsidi dalam bentuk
persamaan (*). Ilustrasi ditunjukkan pada Gambar 6.6. Akan dilakukan
analisa sebagai berikut :
.
2
n
meminimalkan R S i x 2 y 3 xi y i 4
2
1 i
2
i
i 1
Gambar 6.6 Ilustrasi subsidi data (*) dan pendekatan (o) dengan error 32.88%.
KEGIATAN PENELITIAN D
Tujuan : mencari titik kritis dan sifat titik kritis dengan bantuan MAPLE
Contoh 6.1 Misalkan kita akan mencari bentuk Hessian dari f(x,y) =
cos(x y)
> with(VectorCalculus):
> Hessian( cos(x*y), [x,y] );
semua titik R 3
(ii). Tunjukkan bahwa ((ln 2)/4, (ln 2)/4, ln(6.)/4) adalah peminimum global
(strict) untuk f(x,y,z) di R 3
Jawab : Kita akan mencari titik kritis dengan MAPLE
Tahap 1.
> fxyz :=exp(x) + exp(y) + exp(z) + 2*exp(-x-y-z);
> dfy:=diff(fxyz,y);
> dfz:=diff(fxyz,z);
Tahap 2.
> eqns := {dfx=0, dfy=0, dfz=0};
Selanjutnya diselesaikan
OPTIMASI TAKLINEAR | 155
Tahap 3.
> sols := solve( eqns );
> with(VectorCalculus):H:=Hessian(fxyz,[x,y,z]);
Untuk selanjutnya perlu dilakukan analisa seperti pada dasar teori untuk
menjawab pertanyaan (i) dan (ii).
Contoh 6.3
kendala 0 x1 2 x 2 2 x3 72
Langkah 2. Karena kedua kendala adalah linear, maka dapat ditulis dalam
bentuk matriks Ax b, dengan
1 2 2
A ;
1 2 2
0
b ;
72
KEGIATAN PENELITIAN E
7 x1 11x 2 77
10 x1 8 x 2 80
x1 9, x 2 6
x1 , x 2 0.
OPTIMASI TAKLINEAR | 157
Akan diselesaikan dengan program Matlab, yaitu:
Langkah 1. Ubah fungsi tujuan dan kendala dalam bentuk matriks kolom,
yaitu:
150 7 11
f , lalu kendala pertidaksamaan yaitu: A
175 10 8
77
Kemudian ruas kanan untuk kendala pertidaksamaan yaitu: b
80
Karena tidak ada kendala persamaan, maka Aeq dan beq adalah nol, yaitu:
0 0 0
Aeq , dan beq 0
0 0
Lalu batas atas dan batas bawah diubah kebentuk matriks kolom, yaitu:
0 9
LB , dan UB .
0 6
options = optimset('LargeScale','off');
f= [ -150 ; -175];
A= [ 7 11;10 8];
b= [ 77 ; 80 ];
Aeq= [0 0 ;0 0];
beq= [0 ;0 ];
LB= [0 ; 0 ]; UB= [ 9 ; 6 ];
[x,val] = linprog(f,A,b,Aeq,beq,LB,UB,[],options)
Optimization terminated.
x=
4.8889
3.8889
val = -1.4139e+003
f = '(x(1)-2)^4 +(x(1)-2*x(6.))^2';
gradf = '[4*(x(1)-2)^3 + 2*(x(1)-2*x(6.)),-4*(x(1)-2*x(6.))]';
options=optimset('gradobj','on','largescale','on','tolfun',1e-13);
x = fminunc({f,gradf},[0 0],options);
options = optimset;
options = optimset('gradobj','on','largescale','off',...
'derivativecheck','on');
gradf1='[6*(x(1)-2)^3 + 2*(x(1)-2*x(6.)),-4*(x(1)-2*x(6.))]';
x=fminunc({f,gradf1},[0 0],options);
>> x(ENTER)
x=
1.9743 0.9872
1.9744
f = ...............................
Kasus 5.
Jawaban:
Langkah 2. Diberikan nilai dugaan awal, dan beri nama No1.m, yaitu:
x0 = [1,1];
[x,fval] = fminunc(@myfun,x0)
x12 x 2 1,
x1 x 2 10.
f = .................................
Langkah 1. Tulis fungsi di atas di M – file dengan nama No3.m, dan berikan
nilai dugaan
fun = inline(‘..................................................');
x0 = [-1,1];
options = optimset('LargeScale','off');
options = optimset(options,'TolX',1e-8);
options = optimset(options,'TolFun',1e-8);
c( x ) 0,
ceq ( x ) 0
A x b
Aeq x beq
lb x ub.
x1 x 2 x1 x 2 1.5,
x1 x 2 10.
Untuk mengecek apakah hasil yang diperoleh sesuai kendala atau tidak,
digunakan perintah: [c,ceq] = confun1(x), sehingga keluarannya yaitu:
>> [c,ceq]=confun1(x)
c=
1.0e-007 *
-0.9032
0.9032
ceq = []
Misalkan kita menghendaki bahwa gradien f juga kita kerjakan secara manual
dan didefinisikan pada program hal ini ditunjukkan pada program berikut.
-0.9032
0.9032
ceq = []
Jawaban:
Langkah 2. Diberikan nilai dugaan awal, dan beri nama contoh.m, yaitu:
x0 = [1,1];
[x,fval] = fminunc(@myfun,x0)
H = 2*eye(6.);
f = [0 0];
Aeq = [1 1];
beq = 4;
lb = [0;3];
options = optimset('Largescale','off');
[x,fval,exitflag,output,lambda]= quadprog(H,f,[],[],Aeq,beq,..
lb,[],[],options);
Langkah 2.Pada langkah 1, simpan dengan nama lat15.m, lalu panggil dengan
nama tersebut. Sehingga diperoleh keluaran sebagai berikut:
x=
1
1
0
0
KEGIATAN PENELITIAN H
Langkah 1: confun1.m
Langkah 2 : objfun1.m
function f = objfun1(x)
f = x(1)^2 -2*x(1)+x(6.)^2 +1;
Langkah 3 :penelitianH_1.m
options = optimset('LargeScale','off');
x0 = [0.4,-0.6];
[x,fval]=fmincon(@objfun1,x0,[],[],[],[],[],[],@confun1,options)
Latihan Soal 6.
g1 ( x1 , x 2 ) x1 x 2 0 , g 2 ( x1 , x 2 ) x12 4 0 .
40
g 0 (t1 , t 2 , t 3 ) 40t 2 t 3
t1t 2 t 3
2. Minimumkan
1 3 1
dengan kendala t1 t 2 t 3 1
2
1 1 / 2 1 1 / 2 1
t1 t 2 t 3 1
4 4 4
t1 0 , t 2 0 , t 3 0
g ( x, y ) x 2 y 2 0 ; ( x , y ) R 2 .
Minimumkan f ( x1 , x 2 ) e ( x1 x2 )
Minimumkan f ( x1 , x 2 ) x12 x 22 4 x1 4 x 2
x 22 x32
dengan kendala g1 ( x1 , x 2 , x3 ) x12 1 0 .
4 9
Maksimumkan f ( x, y, z ) x 1 ( y 2) 2 ( z 3) 2
2
dengan kendala g ( x, y , z ) x 2 y 2 z 2 1 0
1
f ( x1 , x 2 , x3 )
x x 22 x32
2
1
dan h2 ( x1 , x2 , x3 ) x1 x2 x3 0 .
Minimumkan f ( x1 , x 2 ) 5 x12 2 x1 x 2 5 x1 2 x 2
No.Problem
Solusi x*=[…..]
f(x*) = ………………(min f)
-f(x*)=……………….(maks f)
Steviosida adalah suatu pemanis rendah kalori sebagai hasil ekstrasi dari
daun Stevia rebaudiana Bertoni yang dinyatakan aman bagi penderita penyakit
diabetes maupun yang mengalami obesitas.
Sebagai permulaan pendekatan maka data kadar steviosida (S) akan
dinyatakan sebagai fungsi hari (t) dan massa (m), atau ditulis S = f(t,m) =
S(t,m) . Kita dapat memformulasikan masalah mencari waktu dan massa
minimal untuk S yang optimal. Oleh karena itu waktu dan massa minimal
sebutlah ( x * ( t * , m * ) T (dengan T menyatakan transpose) maka kita
mempunyai masalah optimasi. Kasus optimasi yang diperlukan adalah
memaksimalkan S dengan waktu dan massa yang minimal. Secara umum
dapat ditulis
min
max S ( x ) . (*)
x S
(iii) Minimumkan
2
(iv) R , , S i ,data S i ,mod el = S i , data t i 2 (m i ) 2 .
n n 2
i 1 i 1
Kerjakan dengan cara yang sama dan analisalah hasil anda. Sebagai referensi:
hasil penelitian , , T = (0.4201, 0.8696,- 0.0688)T (Parhusip dan
Martono,2011) dengan error masih cukup besar (>20%) dan grafik pada
Gambar A.1.
SOAL B.
Persentase
,2012Percentage of beans
protein protein protein protein
(B) ragi
hari ke-1 hari ke-2 hari ke-3 hari ke-4
(Y)
1 5 0.714 0.75 1.76 3.22
Bi
i 1
lsqnonlin.m dari MATLAB)
(ii) Tentukan x * [ , ]T sebagai solusi dari R : g ( x ) 0 atau
R R
menyelesaikan sistem persamaan taklinear 0; 0
secara simultan.
(iii) Metode Newton secara umum menyelesaikan g ( x ) 0 dengan
formula
1
x ( k 1) x ( k ) g ( x ( k ) ) g ( x ( k ) )
g1 g1
dengan g ( x ( k ) ) g2
g 2 merupakan matriks Jacobian
x ( ( k ) , ( k ) )
harus tak singular.
SOAL C.
(Pradhitya,et.all,2012) Misalkan X1,X2,...,Xn sampel acak dengan pdff(xi,θ)
dan fungsi likelihood L(θ). Nilai = θ(X1,X2,...,Xn) yang memaksimumkan
L(θ) yakni L( ) ≥ L(θ)untuk semua θ ϵΘ dinamakan Maximum Likelihood
Estimation (MLE) untuk θ.Selanjutnya dibentuk fungsi Likelihood
1 ( µ)
(µ, )= .
√2
Diambilladalah nilai logaritma dari fungsi Likelihood diatas sehingga
diperoleh bentuk
178 | Kegiatan Penelitian
1 µ 1 µ
(µ, ) = ln =
√2 √2
=− ∑ ln(2 )− ∑ ( − µ) .
(jawab : = ∑ −µ
SOAL D.
K K y ( x(1))
y ( x) , A
K Ae kx y ( x(1))
Tabel A.3 Rata-rata dan standar deviasi kadar steviosida pada panjang
gelombang 215 nm (diobservasi oleh Y. Martono pada Januari-
Februari 2012 di Laboratorium Kimia 2012) (Parhusip, dan
Martono, 2012)
DAFTAR PUSTAKA
P
ada metode numerik dan optimasi, tentunya telah dipelajari
cara menyelesaikan bentu kpersamaan tak linear f(x) = 0
misalkan dengan metode bisection, metode Newton dan
berbagai pengembangannya. Persamaan tersebut dapat diperoleh dari
berbagai kasus. Misalkan ketika mencari titik kritis, maka kita harus
menyelesaikan
df/dx=g(x)=0. (7.1.a)
Untuk mengingatkan maka berikut ini ditulis salah satu metode yang mudah
yaitu metode Newton.
kita akan melakukan ekspansiTaylor untuk g (x) di sekitar x j dan kita berharap
dg
g ( x j 1 ) = g ( x j ) ( x j 1 x j ) ... 0
dx x x j
(7.1.b)
Persamaan (7.1.b) diambil 2 suku pertama saja dan karena diharapkan
x j 1 adalah akar yaitu g ( x j 1 ) 0 maka
dg
g ( x j 1 ) = g ( x j ) ( x j 1 x j ) 0
dx x x j
OPTIMASI TAKLINEAR|183
dg
atau g ( x j ) ( x j 1 x j ) .
dx x x j
dg
Persamaan (7.1.c) mensyaratkan 0 . Bagaimana proses ini
dx x x j
mungkin terjadi (karena yang kita lakukan adalah pendekatan). Untuk itu kita
Analisa program:
Jadi kita peroleh x*=0.9253 dengan 12 iterasi. Akan tetapi akar persamaan
tersebut bisa lebih dari 1. Kita dapat menggambar g(x) sebagaimana
ditunjukkan pada Gambar 7.1.
Catatan:
Terkadang kita perlu menggambar dengan MATLAB dimana x merupakan 1
dimensi tetapi pada suatu interval dengan banyak titik. Untuk itu fungsi gx.m
perlu diganti dengan menggunakan ‘.’ pada tiap perkalian/perpangkatan. Jadi
file menjadi
function F = gx(x)
F = 2 + 3*x - 4*x.^2 +x.^3 - 2*x.^4 - x.^5;
Untuk itu kita membuat program kembali untuk menggambar sebagai berikut:
x=linspace(-5,5,100);
f=gx(x);
plot(x,f,’-*’)
axis ([-5 5 -32 5])
OPTIMASI TAKLINEAR |185
Sumbu koordinat gambar perlu diatur agar dapat menunjukkan tampilan akar
dari persamaan g(x)=0 adalah perpotongan grafik y=g(x) terhadap sumbu x.
Diperoleh ada 3 titik potong sebagaimana ditunjukkan pada Gambar 7.1.
5
-5
-10
-15
-20
-25
-30
-5 -4 -3 -2 -1 0 1 2 3 4 5
Oleh karena itu program dapat dijalankan kembali dengan menduga solusi
pada diantara -1 dan 0 atau diantara -4 dan -3.
y x 3 2 xy 2 0
c.
x y3 0
(7.2.b)
Untuk mencari titik kritis maka perlu menyelesaikan f (x ) =
g (x) 0 .
Perhatikan bahwa g (x ) adalah vektor, maka g x x merupakan
j
matriks turunan g (x ) terhadap masing–masing variabel yang disebut matriks
Jacobian yaitu
g1 g1 g1
x
x 2 x n
1
g 2 g 2
g 2
x x 2 x n
g ( x ) 1
g n g n g n
x1 x 2 x n
yang selanjutnya dihitung pada x x j .
Dengan mengambil 2 suku pertama dan menggunakan g ( x J 1 ) 0 , maka
persamaan (7.3) dapat ditulis sebagai
x j 1 x j g x x j
g ( x )
1
j (7.4)
Persamaan (7.4) memerlukan g x x j
1
terdefinisi.
Untuk menguji metode maka berikut ini diberikan contoh yang dapat pula
diilustrasikan secara grafik.
y2 x 0 .
Pada Gambar 7.2 ditunjukkan bahwa ada 2 solusi yang memenuhi (per-
potongan kedua kurva pada 2 titik). Ingat bahwa penyelesaian numerik hanya
diperoleh 1 titik saja dan solusi yang terpilih tergantung nilai awal (dugaan
2 2 4 2 2 4
y2 x 0 .
x 2 y 1 0
Tahap 1. Berarti g ( x ) 2 .
y x 0
Tahap 2. Untuk dapat memperoleh penyelesaian, kita perlu mencari
1 2 x
g g1
1 1 1 1 1
g gx2 y
2 x 2 y 2 y 2 x
g 2 ( g ) .
x y 2 y 1 sehingga
x g x x g ( x ) dengan g
1
j
xx j
1
1
2x j 2 y j
1
2 y
1
2 x j .
j
j
(i) Misalkan sistem yang diselesaikan dituliskan pada file dengan nama
fNewton1.m. Isi file sebagai berikut
function F = fNewton1(x)
F = [x(1)^2 - x(2) - 1;
x(2)^2 - x(1)];
(ii) Tuliskan invers matriks Jacobian pada file dengan nama finvg1.m
dengan isi sebagai berikut
function invJ = finvg1(x)
bantu=1/(-2*x(1) + 2*x(2));
invJ = bantu*[-1 1;
-2*x(2) 2*x(1)];
Cek_g=fNewton1(solusi)
(iv) Keluaran program ditunjukkan pada hasil print out layar MATLAB
sebagai berikut
> UNewton1
deltax =
-0.2500
0.5000
banyaknya_iterasi =
4
solusi =
0.5248
-0.7247
Cek_g =
1.0e-003 *
0.0963
0.3597
0.0963
g ( x * ) 10 3 .
0.3597
Catatan:
Program dapat dibuat analog dengan program untuk menyelesaikan
persamaan taklinear dimana invers dari sistem persamaan tidak perlu dicari
secara analitik sehingga program diperbaharui sebagai berikut:
g
g ( x ( k ) ) i ; i, j 1,.., n .
x (7.5.b)
j
Oleh karena itu kita mengkonstruksi pendekatan linear (pendekatan
Taylor 2 suku)
Lk ( x ) g x ( k ) g x ( k ) x x ( k )
(7.5.c)
dengan mengambil x ( k 1) adalah penyelesaian Lk ( x ) 0 . Pada
Metode Broyden membentuk barisan x (k ) dengan nilai dugaan awal x ( 0 ) R n
untuk menyelesaikan sistem persamaan linear g ( x ) 0 yang didefinisikan
dalam barisan rekursi sebagai berikut
(1) Selesaikan Dk ( x x ( k ) ) g ( x ( k ) ) atau
x = x ( k 1) x ( k ) Dk1 g x ( k ) .
(2) Buatlah d ( k ) x ( k 1) x ( k ) dan y ( k ) g ( x ( k 1) ) g ( x ( k ) )
y (k )
Dk ( d ( k ) ) d ( k )
(3) Perbaharui Dk 1 Dk
d (k ) d (k )
dimana notasi artinya jika ada 2 vektor kolom a , b R n dan vektor
kolom
x R n maka a b x b x a .
Contoh7.4 Diberikan f ( x1, x2 ) 2 x12 x22 x1 x2 .
4 x1 2 x 2 x 2 0
g (x ) = .
2 x 2 x1 0
Untuk mencari x (1) dengan cara metode Newton , yaitu
1
x ( k 1) x ( k ) g ( x ( k ) ) g ( x ( k ) )
sehingga
4 1
g 1 g 1
1
x(1) x(0) g(x(0) ) g(x(0) ) , g ( x ) gx12 gx12 (perhatikan,
x1 x1 1 2
g (x ) bukan fungsi x sehingga g (x ) tidak tergantung pada nilai x setiap
1
iterasi, demikian pula g ( x ( k ) ) = g (x )
1 2 1 1 2 1
Oleh karena itu [g ( x )]1 berapapun x ( k ) .
8 1 1 4 7 1 4
1 1 2 1 4(1) 2(1) 4 1
1
Jadi x (1) x ( 0 ) g ( x ( 0 ) ) g ( x ( 0 ) ) =
4 7 1 4 2(4) 1 4
1 2 1 2
7 1 4 7
1 1 2 1 2 1 1 11 1 11 / 7 4 / 7
= = = .
4 7 1 4 7 4 7 30 4 30 / 7 2 / 7
1
Untuk mencari x ( 2 ) berarti x ( 2 ) x (1) g ( x (1) ) g ( x (1) )
4(4 / 7) 2(2 / 7) 4 16 / 7 4 / 7 4
g ( x (1) )
2( 2 / 7 ) 1 4 / 7 1
20 / 7 28 / 7 48 / 7
4 / 7 7 / 7 11 / 7
Cara Broyden
Tahap 1. Perhatikan bahwa kita harus menyelesaikan
1
x (k 1) x (k ) Dk g(x (k ) )
4(1) 2(4) 4 8
Untuk mencari x (1) dengan x ( 0 ) (1,4)T dan g ( x ( 0) )
2(4) 1 7
Karena D0 I maka
1 1 0 8 7
x (1) x ( 0 ) D01 g x ( 0 ) 0 1 7 = 3 .
4
Tahap 2.
7 1 8
d ( 0 ) x (1) x ( 0 ) = - = .
3 4 7
4(1) 2(4) 4 8
g ( x (0) ) dan
2(4) 1 7
4(7) 2(3) 4 28 6 4 38
g ( x (1) ) 7
2(3) 1 7
1 38 39
y ( 0 ) g ( x (1) ) g ( x ( 0 ) ) = - =
4 7 11
Tahap 3.
39 8 47
Untuk D0 I maka y ( 0 ) - D0 d ( 0) = . Sehingga
11 7 18
( 0) ( 0) ( 0)
y D0 ( d ) d
D1 D 0
d ( 0) d ( 0)
=
- 2.3274 - 2.9115
.
- 1.2743 - 0.1150
1 4 1
g g1
(b) D0 Hf ( x ( 0 ) ) = g ( x ) gx12 x1
g 2 berapapun x ( k ) .
x1 x1 1 2
Sehingga hasil –hasil sesudah itu sama dengan (a) hingga pada
D 1 D 0 y D ( d ( 0 ) ) d ( 0 ) = 4 1 (0,0) (1,4)
( 0)
(00 ) ( 0 )
d d
1 2
17
= 4 1 .
1 2
1 2 1 1 2 1
D11 = [g ( x )]1
8 1 1 4 7 1 4
Sehingga
2 1 2 1 0 2 1 14 0
x ( 2 ) x (1) D11 g x (1) = = = .
8 7 1 4 14 8 7 4(14) 0
Pada kenyataannya, jika x * merupakan penyelesaian sistem g ( x ) 0 dan jika
x ( 0 ) tidak terlalu jauh dari x * , maka dapat ditunjukkan bahwa
Dk g ( x ( k ) ) ( x ( k ) x * )
lim 0. (7.5.e)
k x (k ) x*
%Langkah 3
D=D0 + ((y - D0*d)'*d)./(dot(d,d));
x0=x;
D0=D;
g0=funk(x0);
x=x0 - inv(D0)*g0;
d=x-x0;
y=funk(x)-g0;
D=D0 + ((y - D0*d)'*d)./(dot(d,d));
Tahap 4. Buat file untuk menggunakan ketiga fungsi di atas, misal diberi
nama: cobaBroy.m
x0=[1 0 1]';
n=3;
[it,solusi]=Broydenku(n,x0)
penyelesaian= solusi
banyaknya_iterasi=it
apakah_g_samadengan0=funk(solusi)
D0 =
2 0 2
2 0 -1
1 1 1
it =
525
solusi =
1.0019
0.9981
1.0000
penyelesaian =
1.0019
0.9981
1.0000
525
apakah_g_samadengan0 =
1.0e-005 *
0.7065
0.7065
0
Analisa program :
Program menunjukkan bahwa dengan nilai dugaan [1; 0; 1] maka
diperoleh penyelesaian soal adalah [1.0019; 0.9981; 1.0000] dengan
525 iterasi dalam toleransi 10 5 untuk memenuhi kondisi secant.
it =
9
solusi =
-Inf
-Inf
-Inf
204 |Sistem Persamaan Taklinear
penyelesaian =
-Inf
-Inf
-Inf
banyaknya_iterasi =
9
apakah_g_samadengan0 =
Inf
Inf
-Inf
xf1 g1 ( x1 , x2 ) 0
2. f f
. Atau ditulis g (x) 0 .
x2 g 2 ( x1 , x2 ) 0
(i) Selesaikan g ( x ) 0 di atas dengan manual
(ii) Selesaikan g ( x ) 0 di atas dengan metode Newton
(iii) Selesaikan g ( x ) 0 di atas dengan metode Broyden
No.1
x y x2 y2 0
0.25 x 3 y 2 xy y 2 0
No.2
3x 2 y 3x 2 y 2 0
x y 3 xy 0
pada bidang 2 x, y 2 .
OPTIMASI TAKLINEAR |205
No.3.
2
x 2 y x 2 y 2 x 4x3 0
2 x y x
2
2
y2 y 7( y 2 x 2 ) y 0
pada bidang 2.5 x, y 2.5 .
No.4
0.04 x y 3 y 2 2.5 xy 0
x 3x 2 2 x 2 y 0
No.5
0.05 x y 3 y 2 2 xy 0
x 3x 2 x 2 y 0
Bagian 2
x ( 1 1 x 1 y ) 0
y( 2 2 x 2 y) 0
Untuk nilai 1 , 2 0 dan 1 , 2 0
Equation solved.
x=
0.5671
0.5671
fval =
1.0e-006 *
-0.4059
-0.4059
Latihan Penelitian7.5
3 16
1 1 1 7
x1 x2 x3
1.5 ; x 2( 0 ) 5 dan
(0)
Untuk menyelesaikan, gunakan nilai dugaan x1
x3( 0 ) 10 .
A. Tuliskan sistem persamaan dalam bentuk g ( x ) 0
B. Gunakan MATLAB dalam mencari iterasi pertama dan kedua dengan
metode Broyden dengan menggunakan D0 g ( x ( 0 ) ) dalam
program sesuai keluaran pada diktat (tahap 1-3)
C. Berilah komentar (kesimpulan ) anda tentang hasil yang diperoleh:
......................................................
(misalkan tentang: Bagaimana anda menjamin bahwa jawaban anda
bagus ?)
F = [x(1)*cos(x(2)) + 0.716;
x(2)*sin(x(1))-x(2)-1.305];
x=
1.5708
2.0441
fval =
0.0000
-1.3050
Tahap 1. Newton: nama file fsoal1.m dan untuk Jacobian adalah Dfsoal1.m
yang berisi
function F = Dfsoal1(x)
F = [cos(x(2)) x(1)*(-sin(x(2)));
x(2)*cos(x(1)) sin(x(1))];
Daftar Pustaka
Peressini, A.L,Sullivan, F.E., 1988. The Mathematics of Taklinear
Programming, Springer Verlag, New York, Inc.
Dari Gambar dapat diperoleh titik-titik yang merupakan titik potong kurva
pada sumbu x merupakan solusi Daftar dugaan solusi dapat dipilih pada
sekitar titik yang sudah kita ketahui sebagai solusi. Hal ini ditunjukkan pada
Tabel 7.1.
Analisa : solusi yang diberikan program telah menuju pada ketiga solusi
yang seharusnya.
1 3 10-5 5 1
2 1 10-5 0 1
3 0.1 10-5 3 0
4 0.01 10-5 2 0
Dari Gambar 7.6 diperoleh ada 3 solusi sehingga kita perlu menduga yang
cukup dengan solusi (ingat, pada umumya solusi tidak kita ketahui).
Tabel 7.3 Daftar dugaan, toleransi iterasi dan akar untuk soal no.c
No. Dugaan Toleransi Iterasi Akar
1 (0.5, 0.5) 10-5 5 (0.5163 , 0.802)
2 (1 , 1) 10-5 4 (0.5163 , 0.802)
-5
3 (-1, -1) 10 4 (-0.5163 ,- 0.802)
-5
4 (-0.5, -0.5) 10 5 (-0.5163 , -0.802)
5 (-0.05, -0.05) 10-5 2 (0,0)
Bagian ini merupakan lanjutan soal 7.1 dan diselesaikan dengan Newton
No.1
x y x2 y2 0
0.25 x 3 y 2 xy y 2 0
No.2
3x 2 y 3x 2 y 2 0
x y 3 xy 0
pada bidang 2 x, y 2 .
Tabel 7.5 Daftar dugaan,toleransi, iterasi dan akar dari soal no.2
No. Dugaan Toleransi Iterasi Akar
No.3
2
x 2 y x 2 y 2 x 4x3 0
2 x y x 2
y 2 y 7( y 2 x 2 ) y 0
2
Tabel 7.6 Daftar dugaan, toleransi, banyaknya iterasi dan akar no.3
Catatan: koordinat pada Gambar adalah solusi eksak, sedangkan pada Tabel
adalah hasil pendekatan Newton. Solusi pada titik D dan F belum
diperoleh sebagaimana ditunjukkan pada Tabel 7.5.
Tabel 7.5. Daftar dugaan, toleransi, iterasi dan akar untuk soal no. 3
No. Dugaan Toleransi Iterasi Akar
Tabel 7.5. Daftar dugaan, toleransi, iterasi dan akar untuk soal no. 4
No. Dugaan Toleransi Iterasi Akar
x 3x 2 2 x 2 y 0
No.5
0.05 x y 3 y 2 2 xy 0
x 3x 2 x 2 y 0