Optimasi UAS

 PENYELESAIAN MASALAH OPTIMASI NON LINEAR DENGAN FUNGSI METODE PENALTY INTERIOR



1. Tujuan

Bertujuan untuk memberi wawasan dan pengetahuan kepada pembaca dengan pengertian dasar tentang bagaimana cara menyelesaikan masalah optimisasi Program Nonlinear dengan kendala dengan Metode Fungsi Penalti Interior.

2. Konsep Dasar Fungsi Penalti

Salah satu cara untuk mengubah masalah optimisasi berkendala menjadi masalah optimisasi tak berkendala adalah dengan metode fungsi penalti. Dalam kehidupan sehari-hari penalti yang berarti hukuman terjadi karena adanya pelanggaran. Dengan demikian, dalam masalah optimisasi berkendala fungsi penalti terjadi karena adanya pelanggaran, yaitu dengan menghilangkan kendala pada masalah optimisasi tersebut.


Rumus Metode Fungsi Penalti untuk masalah berkendala dengan kendala berbentuk pertidaksamaan dapat dibagi menjadi dua kategori yaitu metode fungsi penalti interior dan metode fungsi penalti eksterior. Rumus metode fungsi penalti interior yang sering digunakan berbentuk :



Rumus metode fungsi penalti eksterior yang sering digunakan berbentuk



Gambar : Ilustrasi Metode Fungsi Penalti Eksterior



Gambar : Ilustrasi Metode Fungsi Penalti Interior






3. Flowchart



Gambar : Flowchart Algoritma Metode Fungsi Penalti Interior


4. Percobaan



Secara umum langkah-langkah penyelesaian dengan metode fungsi penalti interior adalah :



Contoh Permasalahan : 






VIDEO PERCOBAAN






Link Program : Download


Listing Program :

 

miu = input('Taksiran awal miu : '); n = input('Iterasi maksimum : '); beta = 0.1;

k=1;

 

e = 0.00001;

 

miu = 1000; clc;

fprintf('Taksiran awal miu : %10.5f\n',miu);

 

fprintf('\n CONTOH METODE FUNGSI PENALTI INTERIOR \n\n'); fprintf('===================================================================== \n');

fprintf(' Iterasi                     miu          x1              x2           min(miu)           f(miu)       miu_Bx                     \n'); fprintf('===================================================================== \n');

while k <= n

 

x1 = power( (power(miu,0.5)+1), 0.5 ); x2 = power(miu,0.5);

miu_Bx = power(miu,0.5) - ( 1 / ( (1/miu) - power ( ( (1 / power(miu, 3/2)) + ( 1 / power(miu, 2) ) ), 0.5 ))); min_miu_depan = ( (1/3) * power((x1 + 1), 3) ) + 2*x2;

min_miu_blkng = 1 / ( (1/miu) - power ( ( (1 / power(miu, 3/2)) + ( 1 / power(miu, 2) ) ), 0.5 ) ); min_miu = min_miu_depan - min_miu_blkng;

f_miu = ( (1/3) * power((x1 + 1), 3) ) + x2;

 

fprintf('%3d    %10.5f   %8.5f     %8.5f     %9.5f    %9.5f %9.5f\n', k,miu,x1,x2,min_miu,f_miu,miu_Bx); if miu_Bx < e

break end k=k+1;

miu = beta * miu; end

fprintf('============================================================= \n');

 

fprintf('Pada saat iterasi ke -%d,miu_Bx<%5.5f.\n',k,e);

 

fprintf('Jadi nilai miu yang meminimalkan min(miu) adalah : x1 x2 =%8.5 f\n',x1,x2); end

Tidak ada komentar:

Posting Komentar