OPTIMIZATION WITH MATLAB
EXTRAS
PENDAHULUAN Model optimasi berusaha untuk menjelaskan, secara matematis, tujuan menyelesaikan masalah dalam jalan terbaik. Misalkan dalam bisnis: problem untuk memaksimalkan keuntungan, meminimalkan kerugian, memaksimalkan efisiensi, atau meminimalkan resiko; Problem optimasi secara tipikal akan memaksimalkan atau meminimalkan suatu fungsi yang disebut fungsi obyektif (objective function) pada himpunan titik-titik S (feasible set). Secara umum feasible set didefinisikan dalam variabel kendala (constraints);
2
OPTIMASI LINIER Apabila fungsi obyektif dan variabel kendala yang akan dioptimalkan linier, maka optimasinya adalah optimasi linier; Contoh 1:
Fungsi obyektif Kendala
𝑓 𝑥 = 2𝑥1 + 𝑥2 𝑥1 + 𝑥2 ≤ 1; 𝑥1 ≥ 0; 𝑥2 ≥0
Problem: menemukan nilai 𝑥1 dan 𝑥2 sedemikian sehingga fungsi obyektif menjadi optimal. 3
OPTIMASI LINIER Contoh 2: persamaan linier
b(t ) x1 x2t x3t 2 Dimana 𝑥1 , 𝑥2 , 𝑥3 adalah tiga parameter yang tidak diketahui yang menentukan persamaan kuadratik tersebut. Tiga titik yang mendefinisikan persamaan tersebut adalah: 𝑥1 + 2𝑥2 + 4𝑥3 = 1 𝑥1 + 3𝑥2 + 9𝑥3 = 6 𝑥1 + 5𝑥2 + 25𝑥3 = 4
4
NON LINIER OPTIMASI Apabila salah satu dari fungsi obyektif atau variabel kendala yang akan dioptimalkan non-linier, maka optimasinya adalah optimasi non linier. Contoh:
Fungsi obyektif Kendala
𝑓 𝑥 = 𝑥1 + 𝑥2
2
𝑥1 𝑥2 ≤ 0; −2 ≤ 𝑥1 ≤ 1; −2 ≤ 𝑥2 ≤ 1
Problem: menemukan nilai 𝑥1 dan 𝑥2 sedemikian sehingga fungsi obyektif menjadi optimal. 5
EXPONENTIAL SMOOTHING Apa yang dioptimalkan dalam exponential smoothing? Parameter smoothing sedemikian sehingga model exponential smoothing memiliki MSE terkecil
Siapa yang menjadi fungsi obyektif? 1
Fungsi MSE yaitu 𝑀𝑆𝐸 = 𝑛
𝑛 𝑖=1
𝑦𝑖 − 𝑦𝑖
2
Siapa yang menjadi kendalan (constraints)? Syarat dari nilai-nilai parameter yaitu nilai parameter yang berada diantara 0 hingga 1.
Termasuk ke dalam optimasi linier atau non linier? Mengapa? Optimasi non linier, karena data dibobot secara eksponensial sehingga menyebabkan parameter pembobot tidak linier.
6
LEVENBERG-MARQUARDT Fungsi dalam MATLAB: lsqcurvefit dengan option: algoritma “levenbergmarquardt” Fungsi lsqcurvefit:
Sintak: [x, resnorm] = lsqcurvefit (fun, x0, xdata, ydata, lb, ub, options) Output: X Resnorm
: hasil parameter optimum : residual
Input Fun x0 lb, ub
: fungsi obyektifnya; : nilai awal parameter yang akan dioptimasi; : lower bound, upper bound untuk parameter yang akan dioptimasi;
Dimana options dapat diisi dengan: TolFun MaxIter Algorithm
: toleransi fungsi untuk menghentikan iterasi, ketik: ‘TolFun’, 1e-4 : maksimum iterasi yang diinginkan, ketik: ‘MaxIter’, 200 : ketik ‘Algorithm’, ‘levenberg-marquardt’
7
LEVENBERG-MARQUARDT
Fungsi obyektif 1
Proses optimasi
8
Contoh 1: data yang digunakan t
data
1
5.1
2
4
3
6.7
4
5
5
9.2
6
7.8
7
10
8
5
9
10.3
10
11.1
data 15 10 5 0 Model yang digunakan adalah Holt Exponential Smoothing. Parameter hasil optimasi: Alpha : 0.4050 Beta : 0.5221 9
QUASI-NEWTON Fungsi MATLAB lain yang dapat digunakan untuk optimasi non-linier adalah: fmincon Fungsi fmincon: menemukan minimum dari suatu fungsi obyektif yang memiliki kendala (constraint);
Sintak: [x, fval] = fmincon (fun, x0, A, b, Aeq, beq, lb, ub, nonlcon, options) Output: x Fval
: parameter : nilai dari fungsi obyektif
10
QUASI-NEWTON Sedikit berbeda dengan lsqcurvefit, fungsi obyektif yang akan diminimalkan menggunakan fungsi fmincon adalah fungsi MSE; sehingga kita harus mendefinisikan fungsi MSE-nya terlebih dahulu. Fungsi MSE 𝑀𝑆𝐸 =
1 𝑛
𝑛 𝑖=1
𝑦𝑖 − 𝑦𝑖
2
Contoh data yang digunakan sama pada contoh 1; Parameter optimum yang dihasilkan adalah: Alpha : 0.4049 Beta : 0.5203
11
QUASI-NEWTON
Fungsi obyektif 2
Proses optimasi
12
LEAST-SQUARE DATA FITTING Fungsi MATLAB yang digunakan addalah lsqnonlin Fungsi lsqnonlin:
Dengan menggunakan fungsi obyektif 2, proses optimasinya:
Hasil optimasi: Alpha : 0.4064 Beta : 0.5187
13
GENETIC ALGORITHM Menggunakan optimasi dari genetic-algorithm dengan fungsi: ga Fungsi obyektif yang digunakan adalah fungsi obyektif 2;
Hasil optimasi: Alpha : 0.4024 Beta : 0.5259
14
REFERENSI Griva, I., Nash, S. G., Sofer, A., 2009, Linier and Non Linier Optimization 2nd Edition, SIAM. MATLAB non linier optimization toolbox; www.mathworks.com/help
15