Anda di halaman 1dari 11

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 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 figure figure1 = 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 subplot subplot1 = subplot(1,2,1,'Parent',figure1); view([124 34]); grid('on'); hold('all'); % Create surface surf(X,Y,Z,'Parent',subplot1,'LineStyle','none'); % Create contour contour(X,Y,Z,'Parent',subplot1); % Create subplot subplot2 = subplot(1,2,2,'Parent',figure1); view([234 34]); grid('on'); hold('all'); % Create surface surf(X,Y,Z,'Parent',subplot2,'LineStyle','none'); % Create contour contour(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 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 ( ) Pembatas membutuhkan dirumuskan kembali sebagai ( ) 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 value dari of is the less than the default value (Fmincon dan of the function karena yang tolerance and constraints were satisfied to within the default constraints dari tolerance. fungsi berhenti diperkirakan ada perubahan pada fungsi objektif dimana kurang nilai default toleransi pembatas 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 value dari of is the less than the default value (Fmincon dan of the function karena yang tolerance and constraints were satisfied to within the default constraints dari tolerance. fungsi berhenti diperkirakan ada perubahan pada fungsi objektif dimana kurang nilai default toleransi pembatas diyakini tak lebih dari nilai default dari toleransi pembatas). <stopping criteria details> (menghentikan detil kriteria) Active inequalities (to within options.TolCon = 1e-006): Lower x = 0.7864 fval = 0.0457 0.6177 upper ineqlin ineqnonlin 1

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 f(x) constraint steplength derivative optimality Procedure 1 -1 0.953127 -0.9375 0.125 -2 12.5 0.808446 -0.8601 0.0625 -2.41 12.4 0.462347 -0.836 0.25 -12.5 5.15 0.340677 -0.7969 1 -4.07 0.811 0.300877 -0.7193 1 -0.912 3.72 0.261949 -0.6783 1 -1.07 3.02 0.164971 -0.4972 1 -0.908 2.29 0.110766 -0.3427 1 -0.833 2 0.0750939 -0.1592 0.5 -0.5 2.41 0.0580974 -0.007618 1 -0.284 3.19 0.048247 -0.003788 0.5 -2.96 1.41 0.0464333 -0.00189 0.5 -1.23 0.725 0.0459218 -0.0009443 0.5 -0.679 0.362 0.0457652 -0.0004719 0.5 -0.4 0.181 0.0457117 -0.0002359 0.5 -0.261 0.0905 Hessian modified 0.0456912 -0.0001179 0.5 -0.191 0.0453 Hessian modified 0.0456825 -5.897e-005 0.5 -0.156 0.0226 Hessian modified 0.0456785 -2.948e-005 0.5 -0.139 0.0113 Hessian modified 0.0456766 -1.474e-005 0.5 -0.13 0.00566 Hessian modified

Iter 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

F-count 3 9 16 21 24 27 30 33 36 40 43 47 51 55 59 63 67 71 75 79

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 .

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

Anda mungkin juga menyukai