Pareto Front Optimal

Belajar sesuatu terkadang lebih mudah dengan langsung mempraktekannya. Kata pepatah experience is the best teacher. Matlab menyediakan fasilitas help baik yang terselip di programmnya atau di situs resminya, www.mathworks.com.

Buka matlab, buat fungsi objective yang akan diminimisasi. File – New – Function, atau saya lebih suka langsung mengetik di command window nama M-file yang akan saya buat >>edit simple_multi. Tekan enter ketika Matlab mengkonfirmasi bahwa M-file yang dimaksud tidak ada dan apakah kita akan membuatnya.

Ada dua fungsi di dalam satu fungsi pada M-file di atas. Tugasnya adalah mencari nilai X yang membuat dua fungsi itu minimum. Tidak ditentukan di awal bobot antara fungsi 1 dan fungsi 2 karena kalau bobotnya sudah ditentukan tentu saja langsung bisa ketemu jawabannya. Bobot yang kita gunakan bobot standar yang jika dijumlahkan = 1, misalnya w1=0.3 dan w2=0.7. Ikuti saja instruksi dari www.mathworks.com untuk memperoleh nilai x beserta bobotnya.

  • F = simple_multi(t);
  • t = linspace(-0.5,1.5);
  • plot(t,F, ‘LineWidth’ ,2)
  • hold on
  • plot([0,0],[0,8], ‘g–‘ );
  • plot([1,1],[0,8], ‘g–‘ );
  • plot([0,1],[1,6], ‘k.’ , ‘MarkerSize’ ,15);
  • text(-0.25,1.5, ‘Minimum(f_1(x))’ )
  • text(.75,5.5, ‘Minimum(f_2(x))’ )
  • hold off
  • legend( ‘f_1(x)’ , ‘f_2(x)’ )
  • xlabel({‘x’ ; ‘Tradeoff region between the green lines’ })
  • edit pickindex
  • k = 1;
  • [min1,minfn1] = fminbnd(@(x)pickindex(x,k),-1,2);
  • k = 2;
  • [min2,minfn2] = fminbnd(@(x)pickindex(x,k),-1,2);
  • goal = [minfn1,minfn2];
  • nf = 2;
  • N = 50;
  • onen = 1/N;
  • x = zeros(N+1,1);
  • f = zeros(N+1,nf);
  • fun = @simple_multi;
  • x0 = 0.5;
  • for r = 0:N
  • t = onen*r; % 0 through 1
  • weight = [t,1-t];
  • [x(r+1,:),f(r+1,:)] = fgoalattain(fun,x0,goal,weight, …
  • [],[],[],[],[],[],[]);
  • End

Grafik pertama berisi grafik dua fungsi objective yang akan dioptimasi:

Kita harus mengkompromikan antara f1 dan f2 karena ketika f1 ke arah minimum, fungsi f2 naik nilainya. Pareto menggunakan prinsip nondominant dimana tidak boleh ada yg dominan antara f1 dan f2. Perhatikan grafik kedua dari instruksi di atas:

Grafik di atas adalah sebaran beberapa komposisi bobot w1 dan w2 terhadap kedua fungsi objective. Titik2 itu membentuk garis lengkungan yang menggambarkan nondominant. Titik terbaiknya dapat dilihat dari panduan di link ini, perhatikan gambarnya.

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s