Optimalisasi Multiobjektif

Biasanya dalam optimalisasi, fungsi yang akan dicari nilai optimalnya hanya berjumlah satu. Fungsi tersebut dikenal dengan nama fungsi objektif (objective function) atau beberapa peneliti lebih senang dengan istilah fungsi kriteria (criteria function). Tetapi di lapangan kebanyakan fungsi objektif lebih dari satu, sehingga perlu penanganan untuk mengoptimalkan fungsi-fungsi tersebut, yang dikenal dengan istilah optimalisasi multiobjective (multiobjective optimization).

Salah satu teknik yang sering dan mudah digunakan adalah dengan pembobotan, atau dikenal dengan istilah aggregating function. Besar bobot di tiap-tiap fungsi objektif perlu diriset terlebih dahulu, atau dengan menanyakan kepada para pakar di bidangnya. MIsalnya kita memiliki dua fungsi:

Coba gunakan Matlab untuk melihat grafik dua fungsi objektif tersebut. Tampak adanya kontradiksi. Di sinilah peran penanganan multiobjektif.


x=-10:0.1:10;
y1=x.^2+6;
plot(x,y1,'r')
grid on
hold
%Current plot held
y2=-(x.^2)+12;
plot(x,y2,'b')

Tampak kedua fungsi bertolak belakang. Di sini misalnya kita sudah memiliki bobot masing-masing untuk fungsi 1 dan 2 berturut-turut 0.7 dan 0.3. Maka untuk optimalisasi kita butuh satu fungsi baru, yang nantinya digunakan sebagai fungsi objektif pada algoritma optimasi yang dipilih. Tambahkan 2 kode baru lanjutan dari yang di atas.


yobj=0.7*y1+0.3*y2;
plot(x,yobj,'k')

Nah kita tinggal mengoptimalkan fobj yang berwarna hitam tersebut dengan metode yang Anda sukai, misalnya algoritma genetika. Ketik optimtool(‘ga’). Nah, di sini perlu membuat m-file yang berisi fungsi objektif. Ketik sembarang nama, misalnya “fungsi” di command window isi coding berikut:

Masukan nama fungsi tersebut diawali dengan @ di bagian “fitness function”. Di bagian “Plot Function” ceklis pada best fitness dan best individualnya agar lebih interaktif ketika Matlab memprosesnya. Tekan “Start” jika dirasa sudah siap. Oiya, jangan lupa “Number of Variables” diisi, tentu saja satu variabel yang terlibat “x”.

Perhatikan di bagian hasil, diperoleh titik 0.001 sebagai titik optimal dengan fitness 7.8. Sekian, semoga bisa menginspirasi.

Iklan