Anda di halaman 1dari 11

LAPORAN METODE OPTIMASI LANJUT

MENCARI TITIK MINIMUM DARI FUNGSI GRIEWANK DENGAN


MENGGUNAKAN METODE TRUST REGION

Diska Armeina
NIM. 20119005
Institut Teknologi Bandung
2020

I. PENDAHULUAN
Dalam metode line search, untuk mecari titik minimum dilakukan dengan mencari arah 𝑝𝑘 dan
menentukan panjang langkah 𝛼 dengan menyelesaikan fungsi berikut.
min 𝑓(𝑥𝑘 + 𝛼𝑝𝑘 )
𝑘

Pada laporan ini, akan digunakan metode lainnya yaitu trust region untuk mencari titik minimum
dari fungsi griewank ini. Diberikan fungsi griewank dua dimensi sebagai berikut.
1 𝑥
𝑓 (𝑥 ) = 1 + (𝑥12 + 𝑥22 ) − cos(𝑥1 ) cos ( 2 )
4000 √2
dengan −5 < 𝑥1 , 𝑥2 < 5.
Pada metode trust region, dari fungsi 𝑓 yang diberikan tersebut dibangun model fungsi 𝑚𝑘 yang
pada titik di sekita titik 𝑥𝑘 mirip dengan fungsi objektif 𝑓 yang sebenarnya. Untuk mencari
langkah 𝑝 dilakukan dengan menyelesaikan persoalan berikut.
min 𝑚𝑘 (𝑥𝑘 + 𝑝)
𝑝

Dalam mencari titik minimum ini, dalam trust region dibatasi untuk daerah atau bola sekitar 𝑥𝑘
dimana ||𝑝||2 ≤ ∆ dan ∆ disebut dengan radius trust region. Model 𝑚𝑘 yang digunakan untuk
menyelesaikan fungsi nonlinear berupa fungsi kuadratik sebagai berikut.
1
𝑚𝑘 (𝑝) = 𝑓𝑘 + ∇𝑓𝑘𝑇 𝑝 + 𝑝𝑇 𝐵𝑘 𝑝
2
dimana 𝑓𝑘 merupakan fungsi pada iterasi 𝑥𝑘 scalar, ∇𝑓𝑘 adalah gradient pada iterasi 𝑥𝑘 yang vector
2
dan 𝐵𝑘 merupakan matriks hessian. Karena 𝑚𝑘 (𝑝) = 𝑓𝑘 + ∇𝑓𝑘𝑇 𝑝 + 𝑂 (||𝑝|| ), selisih 𝑚𝑘 (𝑝) dan
2
𝑓(𝑥𝑘 + 𝑝) adalah 𝑂 (||𝑝|| ), artinya aproksimasi error akan mengecil apabila 𝑝 juga mengecil.
GAMBAR 1. Trust Region dan Line Search

Langkah penyelesaian dengan menggunakan trust region pertama dengan memilih nilai radius
awal Δ0 , selanjutnya dari 𝑝𝑘 yang diperoleh yang mana pada laporan ini digunakan metode dogleg
untuk mencari 𝑝𝑘 , didefinisikan rasio sebagai berikut.
𝑓 (𝑥 𝑘 ) − 𝑓 (𝑥 𝑘 + 𝑝 )
𝜌𝑘 =
𝑚𝑘 (0) − 𝑚𝑘 (𝑝𝑘 )
Dengan numeratorya disebut sebagai actual reduction dan denominator merupakan predicted
reduction. Karena langkah 𝑝𝑘 akan meminimumkan 𝑚𝑘 , maka predited reduction akan bernilai
nonnegative. 𝜌𝑘 juga tidak boleh bernilai negative karena tujuannya disini adalah untuk
meminimumkan fungsi objektif maka haruslah 𝑓 (𝑥 ) > 𝑓(𝑥𝑘 + 𝑝). Kondisi lainnya adalah jika 𝜌𝑘
mendekati 1, artinya iterasi dapat dilanjutkan untuk memperluas trust region, apabila 𝜌𝑘 positif,
trust region akan tetap sama sedangkan apabila 𝜌𝑘 medekati nol, trust region akan dikecilkan.
Pada metode dogleg, aproksimasi solusi dilalukan dengan mengganti kurva trajectory dengan
sebuah lintasan yang terdisiri atas dua segmen garis. Segemen garis pertama didefiniskan dari arah
steepest descent sebagai berikut.
𝑔𝑇 𝑔
𝑝𝑈 = − 𝑔
𝑔𝑇 𝐵𝑔
Sedangkan segmen garis kedua dari 𝑝𝑢 ke 𝑝𝑏 dimana 𝑝𝑏 = −𝐵 −1 𝑔 didefinisikan sebagai
berikut.
𝜏𝑝𝑈 , 0≤𝜏≤1
𝑝̃(𝜏) = { 𝑈
𝑝 + (𝜏 − 1)(𝑝𝐵 − 𝑝𝑈 ), 1≤𝜏≤2
Dalam mencari 𝑝𝑘 dengan menggunakan dogleg, terdapat beberapa kondisi sebagai berikut.
1. Ketika ||𝑝𝐵 || < Δk , maka 𝑝𝑘 = 𝑝𝐵
𝜏 Δ𝑘
2. Jika ||𝑝𝑈 || ≥ Δ𝑘 maka titik Cauchy 𝑝𝑘𝑐 = − ||𝑔𝑘 𝑔𝑘 dimana
𝑘 ||

1, 𝑔𝑘𝑇 𝐵𝑘 𝑔𝑘 ≤ 0
3
𝜏𝑘 = { ||𝑔𝑘 ||
min (1, ), lainnya
Δ𝑘 𝑔𝑘𝑇 𝐵𝑘 𝑔𝑘

3. Jika ||𝑝𝑈 || < Δ𝑘 , maka 𝑝𝑘 akan dicari sepanjang 𝑝𝐵 − 𝑝𝑈 hingga mencapai batas ||𝑝𝑘 || = Δ𝑘

Berikut ini algoritma trust region dengan 𝑝𝑘 menggunankan metode dogleg


1
̅, Δ0 ∈ (0, Δ
Langkah 1. Inisiasi Δ ̅), 𝛾 ∈ [0, ], 𝑒𝑟𝑟𝑜𝑟 = 1
4

Langkah 2. While error ≥ ||𝑝𝑘 ||


Langkah 3. if ||𝑝𝐵 || ≤ Δ𝑘
𝑝𝑘 ← 𝑝𝐵
else if ||𝑝𝑈 || ≥ Δ𝑘
evaluasi 𝜏 = |𝜏𝑘2 (1) + 𝜏𝑘2 (2) − 𝑑 2 |
𝑝𝑘 = 𝑝𝑈 + 𝜏𝑝𝐵
end
1
Langkah 4. if 𝜌𝑘 < 4
1
Δ𝑘+1 ← ||𝑝𝑘 ||
4
3
else if 𝜌𝑘 > 4 dan ||𝑝𝑘 || = Δ𝑘
Δ𝑘+1 ← min(2Δ𝑘 , Δ ̅)
else
Δ𝑘+1 ←;
Langkah 5. if 𝜌𝑘 > 𝛾
𝑥𝑘+1 ← 𝑥𝑘 + 𝑝𝑘
else
𝑥𝑘+1 ← 𝑥𝑘
end
Langkah 6. 𝑒𝑟𝑟𝑜𝑟 = ||𝑝𝑘 ||
Langkah 7. 𝑘 ← 𝑘 + 1

end (while)
II. HASIL DAN PEMBAHASAN
Fungsi Griewank dua dimensi yang digunakan pada laporan ini adalah sebagai berikut,
1 𝑥2
𝑓 (𝑥 ) = 1 + (𝑥12 + 𝑥22 ) − cos(𝑥1 ) cos ( )
4000 √2
dengan −5 < 𝑥1 , 𝑥2 < 5.

III.
IV.
V.
VI.

GAMBAR 2. Grafik Fungsi Griewank GAMBAR 3. Kontur Fungsi Griewank

Dalam mencari titik minimum fungsi griewank dengan menggunakan trust region dan arah 𝑝𝑘
dogleg, pada laporan ini diambil lima titik awal sebarang yaitu (−3, 2.75), (−3.25, −3),
̅ = 0.6, Δ0 = 1 Δ
(1, 0.4), (3.25, 2.75) dan (2.9, −3.25) dengan parameter Δ ̅, 𝛾 = 1, dan nilai
2 8

toleransi 10−6 .
Pertama dengan mengambil titik awal (1,0.4), dengan menggunaka parameter-parameter tersebut,
diperoleh hasil iterasi sebagai berikut.

TABEL 1.1 Trust Region-Dogleg dengan 𝑥0 (1, 0.4)


Tabel 1 menunjukkan bahwa dengan titik minimum global (0,0) dengan trust region ini dicapai
pada iterasi ke 6. Karena 𝑝𝑘 berada dalam 𝑡𝑟𝑢𝑠𝑡 region, artinya ||𝑝𝑘 || ≤ Δ𝑘 , artinya 𝑝𝑘 akan
stabil dievaluasi didalam trust region tersebut (tidak melewati batas trust region) (Gambar 4).

GAMBAR 4. Panjang langkah dan arah metode Trust Region di 𝑥0 (1, 0.4)

Sedangkan pada line search mencari titik optimum dilakukan dengan menentukan arah 𝑝𝑘
selanjutnya ditentukan panjang langkah yang cukup memenuhin 𝛼𝑘 .

TABEL 2. Line Search: Newton-Wolfe dengan 𝑥0 (1, 0.4)

Pada tabel 2, besar langkah pertama ke langkah kedua yang dilakukan oleh line search sangat
besar, sehingga dari iterasi satu ke dua panjang langkah terlihat berbeda jauh (Gambar 5)
sedangkan pada trust region cenderung stabil dikarenakan ada daerah yang membatasi pergerakan
langkah (Gambar 4). Dengan titik awal dan nilai toleransi yang sama, dari tabel 1 dan 2 dapat
dilihat pula bahwa trust region lebih mendekati ke titik minimum global dibandigkan dengan line
search.
𝑥2 𝑥2 𝑥2

𝒙𝟎 [𝟏, 𝟎. 𝟒] 𝒙𝟎

𝒙𝟐
𝒙𝟑
𝒙𝟐

𝒙𝟏

𝑥1 𝑥1 𝑥1

GAMBAR 5. Panjang langkah dan arah metode Line Search di 𝑥0 (1, 0.4)

Selanjutnya untuk 4 titik awal lainnya terangkum dalam tabel 3 berikut.

TABEL 3. Tabel Perbandingan Metode Line Search dan Trust Region


Titik awal
Metode Kriteria
(−𝟑, 𝟐. 𝟕𝟓) (−𝟑. 𝟐𝟓, −𝟑) (𝟏, 𝟎. 𝟒) (𝟑. 𝟐𝟓, 𝟐. 𝟕𝟓) (𝟐. 𝟗, −𝟑. 𝟐𝟓)
Line Iterasi 6 7 6 6 6
Search Error 0.000001 0.000001 0.000001 0.000002 0.000001
𝑥𝑜𝑝𝑡 (-3.140024, (-3.140024, (0.000000, (3.140021, (3.140022,
4.438443) -4.438443) -0.000003) 4.438445) -4.438443)
Trust Iterasi 6 6 6 7 5
Region Error 0.00000 0.00000 0.00000 0.00000 0.00000
𝑥𝑜𝑝𝑡 (-3.140023, (-3.140023, (0.00000, (3.140023, (3.140023,
4.438444 -4.438444) 0.00000) 4.438444) -4.438444)

Pada tabel 3, dapat dilihat bahwa untuk empat titik awal yang diambil yaitu (−3, 2.75), (−3.25, −3),
(3.25, 2.75) dan (2.9, −3.25) dengan metode trust region juga tidak menuju ke titik minimum
global melainkan ke titik optimum global. Artinya, pemilihan titik awal untuk metode trust region
juga harus diperhatikan agar tidak terjebak dalam minimum lokal. Pada Tabel 3 juga dapat kita
lihat perbandingan antara line search dan trust region dari banyaknya iterasi, error dan titik
optimum yang diperoleh. Dari tabel tersebut menunjukkan bahwa metode trus region memiliki
error yang lebih kecil dibandingkan dengan line search dalam mencapai titik minimum. Untuk
banyaknya iterasi, metode line search dengan newton-wolfe ini tidak memiliki perbedaan
signifikan terhadap metode trust region. Namun, di setiap iterasinya terdapat perbedaan yang jelas
antara metode line search dan trust region (Gambar 6 dan 7). Dengan metode line search, langkah
dari iterasi pertama ke kedua terlihat sangat besar, sedangkan pada metode trust region cenderung
stabil karena pergerakan langkah dibatasi oleh daerah dengan radius Δ𝑘 sehingga langkah yang
diambil tidak akan melebihi radius tersebut.

GAMBAR 6. Trust Region GAMBAR 7. Newton-Wolfe


VII. KESIMPULAN
Berdasarkan hasil dan pembahasan, dapat disimpulkan bahwa:
 Dengan nilai toleransi 10−5 , dengan metode trust region ini diperoleh titik optimum global
fungsi Griewank yaitu 𝑥𝑜𝑝𝑡 = (0,0)
 Pemilihan titik awal dengan metode ini harus diperhatikan berdasarkan hasil yang diperoleh
dari lima titik yang diambil, empat diantaranya yaitu (−3, 2.75), (−3.25, −3), (3.25, 2.75) dan
(2.9, −3.25) terjebak dalam minimum lokal.

 Walaupun dari titik optimum yang diperoleh dan banyaknya iterasi yang tidak berbeda
signifikan, metode trust region lebih baik dibandingkan dengan metode line search
dikarenakan memiliki galat yang lebih kecil.
 Karena pada metode trust region terlebih dahulu memilih radius daerah sebagai maksimum
langkah yang dapat diambil, artinya ada daerah yang membatasi pengambilan arah dan
panjang langkah, metode ini dirasa lebih aman, teliti dan lebih akurat menuju ke titik optimum.
VIII. REFERENSI
[1] Nocedal, J., Wright, Stephen J., Numerical Optimization (1999)

IX. LAMPIRAN
clear all
%close all
%clc
% Plot Kontur
[x1new,x2new] = meshgrid(-5:0.01:5,-5:0.01:5);
f = ((x1new).^2/4000)+((x2new).^2/4000)-(cos(x1new).*cos(x2new/2^0.5))+1;
%surf(x1,x2,f)
grr=contour(x1new,x2new,f,30);
colormap(flipud(summer(20)));
title('Kontur Fungsi Griewank')
hold on
%% inisilaisasi
syms X1 X2
f=(((X1).^2)/4000+((X2).^2)/4000)-(cos(X1)*(cos(X2/sqrt(2))))+1;

x1_awal=2.9;
x2_awal=-3.25;
x1=x1_awal
x2=x2_awal
dbar=0.6;
d(1)=dbar/2;
gama= 1/8;
iter = 1;
error=1;
epsilon=10^-6;
iter_max = 10;
disp(' Tabel Iterasi ')
disp('=======================================================================
=======================')
disp(' i x1 x2 d(i) pk(1) pk(2)
f ||p_k||')
disp('=======================================================================
=======================')
while error>=epsilon
X(1,iter)=x1;
X(2,iter)=x2;
B=hessian(f,[X1,X2]);
Bk=double(subs(B, {X1, X2}, {x1, x2}));

if det(Bk)>0
Bk=Bk;
else
disp('Matriks hessian tidak definit positif')
break;
end
grad=gradient(f, [X1,X2]);
g=double(subs(grad, {X1, X2}, {x1, x2}));

if g'*Bk*g<=0
tau = 1;
pkc = -tau*d(iter)/norm(g)*g;
else
tau = min(norm(g)^3/(d(iter)*g'*Bk*g),1);
pkc = -tau*d(iter)/norm(g)*g;
end

pu= -(g'*g)/(g'*Bk*g)*g;
pb= -Bk^(-1)*g;

if norm(pb)<=d(iter)
pk=pb;
else if norm(pu)>=d(iter)
pk=pkc;

else
for k = 1:1:1000
traj = pu + iter*(1/1000)*(pb-pu);
val(iter)=(traj(1))^2+(traj(2))^2-d^2;
end
minidx = find(abs(val)==min(abs(val)));
pk = pu +minidx *(1/1000)*(pb-pu);
end
end
aa = (fgriewank(x1,x2)-fgriewank(x1+pk(1),x2+pk(2)));
bb = (fgriewank(x1,x2)-(fgriewank( x1,x2)+g'*pk+0.5*pk'*Bk*pk));
r(iter)=aa/bb;
if r(iter)<1/4
d(iter+1)=0.25*norm(pk);
else if r(iter)>3/4 && norm(pk) == d(iter)
d(iter+1)=min(2*d(iter),dbar);
else
d(iter+1)=d(iter);
end
end
if r(iter)>gama
x1=x1+pk(1);
x2=x2+pk(2);
else
x1=x1;
x2=x2;
end
error= norm(pk);
iter=iter+1;

hold on
fprintf('%2d\t %6.6f\t %6.6f\t %6.6f\t %6.6f\t %6.6f\t %6.6f\t
%6.6f\n',iter-1,x1,x2,d(iter),pk(1),pk(2),fgriewank(x1,x2),error);
end
%% plot
hold on
for i = 1: iter-1
circle(X(1,i),X(2,i),d(i))
end
plot(X(1,:),X(2,:),'*r','linewidth',2)
plot(X(1,:),X(2,:),'o','color',[0.6350 0.0780 0.1840],'linewidth',0.1)
plot(X(1,:),X(2,:),'color',[0.6350 0.0780 0.1840],'linewidth',2)

function h = circle(x,y,r)
hold on
dim = r*2;
px = x-r;
py = y-r;
h = rectangle('Position',[px py dim
dim],'Curvature',[1,1],'FaceColor',[0.9100 0.4100 0.1700
1/10],'Linestyle','none');
axis equal
end

function y=fgriewank(a, b)
fun=((a.^2)/4000+(b.^2)/4000)-(cos(a)*(cos(b/sqrt(2))))+1;
y=double(fun);
end

Anda mungkin juga menyukai