View
147
Download
14
Category
Preview:
DESCRIPTION
peralatan untuk optimisasi
Citation preview
Optimisasi Toolbox
Contoh: Meminimalkan Nonlinier yang Dibatasi
Rumusan Masalah: Fungsi Rosenbrock
Mempertimbangkan masalah dari meminimalkan fungsi Rosenbrock.
Unit disk yang lebih, dengan kata lain jarak disk adalah 1 di pertengahan pada jarak aslinya.
Dengan kata lain, menemukan x berarti meminimalkan fungsi f(x) dari persamaan x12+ x2
2≤1.
masalah ini adalah meminimalkan fungsi nonlinier dengan pembatas nonlinier.
Catatan: fungsi Rosenbrock adalah standar fungsi tes pada optimisasi. Fungsi Rosenbrock
memiliki nilai minimum yang unik dari 0 mencapai titik (1,1). Menemukan minimumnya adalah
tantangan untuk beberapa algoritma sejak fungsi Rosenbrock memiliki nilai minimum yang
dangkal di dalam lembah kurva.
Ini adalah dua gambar dari fungsi Rosenbrock dalam unit disk. Vertikal axis adalah skala log;
dengan kata lain, plot menunjukkan log(1+f(x)). Garis kontur lie dibawah permukaan plot.
Fungsi Rosenbrock, skala-log: dua gambar (2-D)
Kode untuk memunculkan gambar
function create figure
% Create figurefigure1 = figure('Position',[1 400 1200 600]);colormap('gray');axis square;R=0:.002:1;TH=2*pi*(0:.002:1); X=R'*cos(TH); Y=R'*sin(TH); Z=log(1+vrosenbrock(X,Y));
% Create subplotsubplot1 = subplot(1,2,1,'Parent',figure1);view([124 34]);grid('on');hold('all');
% Create surfacesurf(X,Y,Z,'Parent',subplot1,'LineStyle','none');
% Create contourcontour(X,Y,Z,'Parent',subplot1);
% Create subplotsubplot2 = subplot(1,2,2,'Parent',figure1);view([234 34]);grid('on');hold('all');
% Create surfacesurf(X,Y,Z,'Parent',subplot2,'LineStyle','none');
% Create contourcontour(X,Y,Z,'Parent',subplot2);
Fungsi Rosenbrock, digunakan dalam createfigure, menghitung fungsi Rosenbrock pada
keseluruhan titik vector:
function z=vrosenbrock(x,y)
z=100*(y - x.^2).^2 + (1-x).^2;
fungsi f(x) disebut fungsi objektif. Ini adalah fungsi yang diharapkan untuk meminimalkan.
Pertidaksamaan x12+ x2
2≤1 disebut constraint atau pembatas. Batas pembatas dari sekumpulan x
yang mana anda cari untuk nilai minimum. Anda mungkin memiliki banyak angka untuk
pembatas,yang mungkin menjadi pertidaksamaan atau persamaan. Semua optimisasi toolbox,
fungsi optimisasi meminimalkan sebuah fungsi objektif. Untuk memaksimalkan sebuah fungsi f,
gunakan sebuah optimisasi rutin untuk meminimalkan –f.
Menjelaskan masalah pada sintaks toolbox
Untuk menggunakan software Optimisasi Toolbox, anda membutuhkan:
1. Menjelaskan fungsi objektif anda pada bahasa MATLAB, sebagai M-file atau fungsi
anonym. Contoh ini akan menggunakan M-file.
2. Menjelaskan pembatas anda sebagai sebuah M-file tersendiri atau fungsi anonim.
M-file untuk Fungsi Objektif.
Sebuah M-file adalah file teks yang mengandung perintah MATLAB dengan extension.m.
Membuat sebuah M-file baru di beberapa teks editor, atau menggunakan membuat pada
MATLAB Editor seperti berikut:
1. Pada tipe command line
Edit rosenbrock
MATLAB Editor terbuka.
2. Pada tipe editor:
Function f = rosenbrock(x)
f = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
3. Simpan file dengan memilih File > Save.
M-file untuk Fungsi Pembatas
Fungsi pembatas harus dirumuskan sehingga mereka pada bentuk c ( x )≤0atau ceq ( x )=0.
Pembatas x12+ x2
2≤1 membutuhkan dirumuskan kembali sebagai x12+ x2
2≤0 sesuai perintah untuk
mendapatkan sintaks yang benar.
Lagipula, fungsi toolbox yang menerima pembatas nonlinier diperlukan memiliki persamaan dan
pertidaksamaan atau keduanya yang telah ditetapkan. Pada contoh ini, hanya ada pembatas
pertidaksamaan, sehingga anda harus memberi nilai pada kolom kosong [] sebagai fungsi
pembatas persamaan ceq.
Dengan pertimbangan ini, tulislah sebuah fungsi M-file untuk pembatas nonlinier:
1. Buat sebuah file dengan nama unitdisk.m yang berisi kode berikut:
Function [c, ceq] = unitdisk(x)
c = x(1)^2 + x(2)^2 – 1;
ceq = [ ];
2. Simpan file unitdisk.m.
Menjalankan Optimisasi
Ada dua cara untuk menjalankan optimisasi:
- Menggunakan Optimisasi Tool Graphical User Interface (GUI).
- Menggunakan fungsi command line; lihat meminimalkan pada command line.
Optimisasi Tool
1. Mulai Optimisasi Tool dengan mengetik optimtool pada command line. GUI pun terbuka.
Untuk informasi lebih lanjut tentang tool ini, lihat Optimization Tool.
2. Default Solver fmincon – dipilih Constrained nonliniear
minimization. Solver ini tepat untuk masalah ini, sejak fungsi Rosenbrock adalah
nonlinier, dan masalahnya terdapat pembatas. Untuk informasi lebih lanjut bagaimana
untuk memilih sebuah solver, lihat Choosing a Solver.
3. Pada menu pop-up Algorithm pilih Active set-default solver Trust region
reflective tidak akan menangani pembatas nonlinier.
4. Untuk Objective Function jenis @rosenbrock. Karakter @ mengindikasi bahwa ini
adalah function handle dari M-file rosenbrock.m.
5. Untuk jenis Start Point [0 0]. Ini adalah titik inisial dimana fmincon memulai
mencari untuk nilai minimum.
6. Untuk Nonliniear constraint function jenis @unitdisk, fungsi handle dari unitdisk.m.
Jendela Problem Setup and Result anda harus cocok dengan gambar ini.
7. Pada jendela Options (center bottom), pilih iterative pada Level of Display menu pop-up.
(Seandainya anda tidak melihat pilihan itu, klik [+] Display to command window). Ini
menunjukkan kemajuan dari fmincon pada command window.
8. Klik Start dibawah Run solver and view results.
Pesan akan muncul pada kotak dibawah tombol Start.
Optimization running.
Optimization terminated.
Objective function value :0.04567480869296667
Local minimum possible. Constraints satisfied.
Fmincon stopped because the predicted change in the objective
function is less than the default value of the function tolerance
and constraints were satisfied to within the default value of the
constraints tolerance. (Fmincon berhenti karena diperkirakan ada
perubahan pada fungsi objektif dimana kurang dari nilai default
dari fungsi toleransi dan pembatas yang diyakini tak lebih dari
nilai default dari toleransi pembatas).
Nilai fungsi objektif mungkin sedikit berbeda, tergantung pada sistem komputer anda dan versi
software Optimisasi Toolbox.
Perintahnya memberitahu bahwa:
Pencarian untuk jumlah pembatas maksimum berakhir karena fungsi objektif yang
dikarang mendekati 0 pada arah pembatas yang diizinkan.
Pembatas mendekati nilai terpenuhi.
Minimize x muncul dibawah Final point.
Memperkecil pada command line
Anda dapat menjalankan optimisasi yang sama dari command line, caranya sebagai berikut:
1. Buat sebuah struktur plihan untuk memilih display iterative dan algoritma active-set:
Options = optimset(‘Display’, ‘iter’, ‘Algorithm’,’active-set’);
2. Jalankan solver fmincon dengan struktur options, memberitahu lokasi x dari
minimizer, dan nilai fval dicapai oleh fungsi objektif:
[x,fval] = fmincon(@rosenbrock,[0 0],…
[],[],[],[],[],[],@unitdisk,options)
Kumpulan dari enam tanda kurung kosong menunjukkan pembatas pilihan yang tidak
digunakan pada contoh ini. Lihat halaman referensi fungsi fmincon untuk sintaks.
Output MATLAB adalah sebuah tabel yang berulang, dan hasilnya dari optimisasi.
Local minimum possible. Constraints satisfied.
fmincon stopped because the predicted change in the objective
function is less than the default value of the function tolerance
and constraints were satisfied to within the default value of the
constraints tolerance. (Fmincon berhenti karena diperkirakan ada
perubahan pada fungsi objektif dimana kurang dari nilai default
dari fungsi toleransi dan pembatas yang diyakini tak lebih dari
nilai default dari toleransi pembatas).
<stopping criteria details> (menghentikan detil kriteria)
Active inequalities (to within options.TolCon = 1e-006):
Lower upper ineqlin ineqnonlin
1x =
0.7864 0.6177
fval =
0.0457
Perintah ini memberitahu anda bahwa pencarian untuk pembatasan jumlah maksimal berakhir
karena fungsi objektif yang dikarang mendekati 0 pada arah yang diizinkan oleh pembatas, dan
pembatas itu sangat mendekati sempurna. Beberapa frase pada perintah mengandung hubungan
yang memberi anda informasi lebih banyak tentang istilah yang digunakan pada perintah. Untuk
detil lebih lanjut tentang hubungan ini, lihat Enhanced Exit Messages.
Menginterpretasikan Hasil
Tabel iterasi pada command window menunjukkan bagaiman MATLAB mencari nilai minimum
dari fungsi Rosenbrock pada unit disk. Tabel ini adalah sama ketika anda menggunakan
Optimisasi Tool atau command line. MATLAB memberitahu minimisasi sebagai berikut:
Max Line search Directional First-order Iter F-count f(x) constraint steplength derivative optimality Procedure
0 3 1 -1 1 9 0.953127 -0.9375 0.125 -2 12.5 2 16 0.808446 -0.8601 0.0625 -2.41 12.4 3 21 0.462347 -0.836 0.25 -12.5 5.15 4 24 0.340677 -0.7969 1 -4.07 0.811 5 27 0.300877 -0.7193 1 -0.912 3.72 6 30 0.261949 -0.6783 1 -1.07 3.02 7 33 0.164971 -0.4972 1 -0.908 2.29 8 36 0.110766 -0.3427 1 -0.833 2 9 40 0.0750939 -0.1592 0.5 -0.5 2.41 10 43 0.0580974 -0.007618 1 -0.284 3.19 11 47 0.048247 -0.003788 0.5 -2.96 1.41 12 51 0.0464333 -0.00189 0.5 -1.23 0.725 13 55 0.0459218 -0.0009443 0.5 -0.679 0.362 14 59 0.0457652 -0.0004719 0.5 -0.4 0.181 15 63 0.0457117 -0.0002359 0.5 -0.261 0.0905 Hessian modified
16 67 0.0456912 -0.0001179 0.5 -0.191 0.0453 Hessian modified 17 71 0.0456825 -5.897e-005 0.5 -0.156 0.0226 Hessian modified 18 75 0.0456785 -2.948e-005 0.5 -0.139 0.0113 Hessian modified 19 79 0.0456766 -1.474e-005 0.5 -0.13 0.00566 Hessian modified
Tabel ini mungkin berbeda dari milik anda tergantung pada versi toolbox dan program komputer
anda. Deskripsi yang diizinkan digunakan pada tabel seperti digambarkan.
Kolom pertama, dengan nama Iter, adalah angka iterasi dari 0 sampai 19. fmincon
mengambil 19 iterasi untuk berkumpul.
Kolom kedua, dengan nama F-count, memperlihatkan angka kumulatif dari waktu fungsi
Rosenbrock yang telah dievaluasi. Baris terakhir menunjukkan sebuah F-count dari 79,
mengindikasikan bahwa fmincon mengevaluasi fungsi Roseonbrock 79 kali dalam proses
menemukan nilai minimum.
Kolom ketiga, dengan nama f(x), menunjukkan nilai dari fungsi objektif. Nilai akhir,
0.0456766, adalah nilai minimum yang dilaporkan pada Optimisasi Tool Run solver and view
results box, dan akhirnya perintah keluar pada command window.
Kolom keempat, max constraint, berawal dari nilai -1 pada nilai inisial, sampai
mendekati 0, -1.474e-005, pada iterasi akhir. Kolom ini menunjukkan nilai dari fungsi pembatas
unit disk di setiap iterasi. Karena nilai dari unitdisk mendekati 0 pada iterasi akhir,
ada x12+ x2
2=1.
Kolom lain dari tabel iterasi dijelaskan di Displaying Iterative Output.
PAPER SISTEM ADAPTIF
OPTIMIZATION TOOLBOX
EXAMPLE: NONLINIEAR CONSTRAINED MINIMIZATION
Oleh:
Alunanda S (095514030)
S1 ELKOM 3/2009
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
UNIVERSITAS NEGERI SURABAYA
2012
Recommended