KASUS BIAYA MINIMUM PENEMBAKAN MERIAM (tugas 5 )


Buatlah suatu kasus penembakan meriam, tentukan sendiri (Vomin, Vomaks, αmin, αmaks, P, Q, R dan S, kemudian gunakan metode pencarian Goleden Searching, Steepest descent, Monte Carlo untuk salah satu dari versi fungsi biaya untuk mendapatkan tabel (S, α, Vo) yang seminimum mungkin biayanya.


Penyelesaian :
            Kasus Penembakan suatu meriam, dapat digambarkan seperti grafik berikut, misalkan letak meriam letaknya berada pada titik A, dan sasaran penembakan berada pada titik B  :



Misalkan kita ambil nilai−nilai jarak tembak/sasaran(S),gravitasi (g), kecepatan awal minimum(Vomin), kecepatan awal maksimum (Vomaks), sudut elevasi maksimum dan minimum (αmin & αmaks), dengan biaya (P, Q, dan R) sebagai berikut :
 
Dari persamaan fungsi biaya diatas, akan dicari biaya minimum (α dan Vo ) dengan 3 metode searching sebagai berikut :


I.      Metode Golden Searching


     Prinsip dari metode golden searching, dapat diilustrasikan seperti gambar diatas, untuk mencari batu yang paling kecil, maka melangkah, kemudian ambil batu, bandingkan dengan sebelumnya, buang yang lebih besar, kemudian ulangi lagi. Intinya bahwa “semakin kecil langkah yang kita lakukan, maka akan semakin teliti pelacakan. Jika langkah diperkecil tetapi hasil yang diperoleh tidak lagi berbeda, maka dapat diyakini bahwa memang itulah hasilnya”
    Pada Kasus penembakan meriam, Dengan metode golden searching, J(α,Vo)  dihitung dari  αmin s/d αmaks dan V0-min s/d V0-maks  dengan langkah :



    Maka Pelacakan dilakukan dengan langkah demi langkah bisa dari αmin s/d αmaks kemudian V0-min s/d V0-maks, setiap kali diperoleh nilai J(α,Vo)  yang lebih besar atau lebih kecil sesuai dengan pesanan maks dan min maka ia disimpan.

Untuk kasus diatas, Fungsi biaya yang akan diminimasi ialah:
            
    Dengan menggunakan program matlab, dapat dicari sudut elevasi, kecepatan awal dan biaya minimum dengan listing program sebagai berikuti:

% Penentuan sudut elevasi, kecepatan awal dan biaya minimum
% Using line searching method or Golden searching method
% Searching Alpha,Vo
clear
clc
S=input('Input jarak sasaran tembak (m)= ');
alphalb=input('input nilai batas minimum alpha =');
alphaub=input('input nilai batas maksimum alpha =');
Volb=input('input nilai batas minimum Vo =');
Voub=input('input nilai batas maksimum Vo =');
N=input('input jumlah step=');
dalpha=(alphaub-alphalb)/N;
dVo=(Voub-Volb)/N;
No=0;
clc
g=10;
disp(' ')
%disp([' "Jarak tembak = num2str(x), meter "'])
disp(' ')
disp('============================================================');
disp('No.       Sudut Elevasi      Kecepatan      Biaya minimum   ');
disp('           (deg)             Vo(m/dtk)      Jmin (Rp)       ');
disp('============================================================');
disp(' ');
for alpha=alphalb:dalpha:alphaub 
for Vo=Volb:dVo:Voub
end
    Biaya=(50*Vo^(2)*(sin(alpha)*sin(alpha)))+ ((500*S)/(Vo*cos(alpha)))+2000*Vo;
    format short g
    No=No+1;
    sudut=alpha*180/pi;
    kecepatan=sqrt((g*S)/sin(2*alpha));
    fprintf('%g%'   ,No), disp([sudut, kecepatan, Biaya])
end
disp('============================================================')

Hasil program :
Setelah memasukan nilai alpha(min & maks) dan kecepataan awal ( maks & min ) serta jumlah langkah              N = 100, dan jarak S = 500 m maka diperoleh output program :
===========================================
No.       Sudut Elevasi      Kecepatan      Biaya minimum  
                 (deg)             Vo(m/dtk)          Jmin (Rp)      
===========================================

1            0                   Inf                  6.0083e+005
2       0.89954           399.08              6.0194e+005  à biaya minimum tapi tdk memenuhi  kendala
3        1.7991           282.26                6.0527e+005 àmemenuhi kendala kecepatan dan biaya minimum
4        2.6986           230.56                6.1081e+005
...          .....             .........                   ...........
32       27.886          77.765                1.5853e+006
33       28.785          76.966                1.6444e+006
.....       ......                 ....
99       88.155            278.75               5.1212e+006
100       89.055           389.33              5.1493e+006
=========================================
    setelah menjalankan program diatas untuk beberapa jarak tembakan (yang ditampilkan hanya jarak S= 500 m), dan setiap jarak dipilih biaya paling minimum dan dengan kecepatan awal yang memenhui syarat kendala, maka diperoleh tabel sebagai berikut : 



Jarak
Sasaran (m)
Sudut Elevasi
(derajat)
Kecepatan awal
 (m/s)
Biaya Minimum
(Rp)
500
1.7991          
282.26
     605,270.00
600
2.6986
252.56
     610,980.00
700
2.6986
272.8
     611,140.00
800
2.6986
291.64
     611,310.00
900
3.5982
268.04
    619,230.00
1000
3.5982
282.54
     619,390.00

II  Metode Gradient Searching Descent

    Metode gradient searching memulai pencarian dalam arah lereng curam. arah ini disimpan untuk setiap langkah baru, sampai minimum telah ditemukan. Kemudian arah pencarian baru ditentukan dan melakukan  proses pencarian terus menerus

Denga fungsi biaya yang sama  pada metode golden searching, maka listing program matlab metode gradient descent sebagai berikut:
% Penentuan sudut elevasi, kecepatan awal dan biaya minimum
% Using gradient Descent Method
% Searching alpha,Vo
clear
clc
S=input('Input jarak sasaran tembak (m)= ');
alphalb=input('input nilai batas minimum alpha =');
alphaub=input('input nilai batas maksimum alpha =');
Volb=input('input nilai batas minimum Vo =');
Voub=input('input nilai batas maksimum Vo =');
% Penentuan titik awal penembakan
alpha=input('input nilai alpha =');
Vo=input('input nilai Vo =');
dalpha=0.01;
dVo=dalpha
No=0;
clc
g=10 ;
disp(' ')
disp(' ')
disp('============================================================');
disp('No.       Sudut Elevasi      Kecepatan      Biaya minimum   ');
disp('           (deg)             Vo(m/dtk)      Jmin (Rp)       ');
disp('============================================================');
disp(' ');
for alpha=alphalb:dalpha:1-dalpha
    for Vo=-1+dalpha:dVo:Voub
    end
    Biaya=(50*Vo^(2)*(sin(alpha)*sin(alpha)))+ ((500*S)/(Vo*cos(alpha)))+2000*Vo;
    format short g
    No=No+1;
    sudut=alpha*180/pi;
    kecepatan=sqrt((g*S)/sin(2*alpha));
    fprintf('%g%'   ,No), disp([sudut, kecepatan, Biaya])
end
disp('============================================================')

Hasil program di atas ialah:
Setelah menjalankan program beberapa kali sesuai dengan jarak tembakan, demikian pula menginput nilai alpha dan kecepatan awal sembarang sebagai titik awal pencarian ( contoh dlm program ini α = 0.9 dan Vo = 200)  maka diperoleh tabel berikut :

Jarak
Sasaran (m)
Sudut Elevasi
(derajat)
Kecepatan awal
 (m/s)
Biaya Minimum
(Rp)
500
1.7189           
288.76
     604,880.00
600
2.2918
274.01
     608,200.00
700
2.2918
295.96
     608,360.00
800
2.8648
283.08
     612,580.00
900
3.4377
274.19
     617,680.00
1000
3.4377
289.02
     617,850.00

III. Metode Monte Carlo

Metode pencarian acak adalah suatu metode dimana solusi dicari secara acak dan diulang-ulang sampai dihasilkan solusi yang diharapkan. Ada beberapa hal yang perlu diperbaiki dari konsep pencarian acak ini, antara lain:Tidak semua nilai pada solusi harus diubah pada setiap iterasi. Bila sudah solusi mendekati target tidak perlu perubahan yang terlalu besar. Perlu pertimbangan bahwa munculnya bilangan acak sangat tergantung pada distribusi bilangan acak yang digunakan.

Metode Monte Carlo memperbaiki metode pencarian acak ini dengan mempertimbangkan kedua hal di atas, sehingga metode ini menjadi metode simulasi yang banyak digunakan. Metode Monte Carlo sebenarnya merupakan metode pencarian acak, tetapi dengan beberapa perbaikan, yaitu: tidak semua nilai pada solusi diacak ulang, tetapi dipilih satu nilai saja di antara barisan nilai solusi, dan kemungkinan acak dari setiap kejadian solusi.

Pada kasus penembakan meriam, untuk mencari biaya minimum, diambil bilangan random atau acak antara alpha minimum dan alpha maksimum, antara Vo min dan Vo maks, sampai diperoleh biaya minimum (Jmin). Berikut listing program MATLAB metode Monte Carlo dari kasus diatas :

clc
S=input('Input jarak sasaran tembak (m)= ');
alphalb=input('input nilai batas minimum alpha =');
alphaub=input('input nilai batas maksimum alpha =');
Volb=input('input nilai batas minimum Vo =');
Voub=input('input nilai batas maksimum Vo =');
alpha = alphalb + (alphaub-alphalb).*rand(10,10);
sudut=alpha*180/pi
Vo = Volb + (Voub-Volb).*rand(10,10)
Biaya=50*Vo*Vo*sin(alpha)*sin(alpha)+ (500*S)./(Vo*cos(alpha))+ 2000*Vo
Jmin=min(Biaya)

Catatan : pada Matlab untuk membangun nilai bilangan acak terdistribusi uniform dari interval [a,b],dengan matrik [100 x 1] digunakan command : misal  r = a + (b-a).*rand(100,1); pada listing diatas digunakan matriks [10 x 10]

Hasil program untuk berbagai jarak tembakan dibuat dalam tabel berikut, (hasil keluaran  program hanya ditampilkan untuk S = 500 m ) :

Jarak
Sasaran (m)
Sudut Elevasi
(derajat)
Kecepatan awal
 (m/s)
Biaya Minimum
(Rp)
500
17.693            
290.07
     410,950,000.00
600
37.386
124.14
     272,350,000.00
700
84.0183
139.5673
    242,530,000.00
800
17.5199
141.6013
     251,400,000.00
900
28.7494
195.4019
     315,200,000.00
1000
3.4377
289.02
     183,640,000.00




Kesimpulan

Dari ke tiga metode penentuan nilai Jmin dengan metode yang berbeda, perbandingan hasilnya dapat dilihat di bawah ini:

Jmin
Metode Searcing
Golden Searcing
Gradienr Descent
Monte Carlo
S= 500 m
223.0167e+003
223.2238e+003
223.0563e+003
S= 600 m
249.8907e+003
249.9017e+003
249.9193e+003
S= 700 m
275.2378e+003
275.2608e+003
275.3709e+003
S= 800 m
299.3588e+003
299.3714e+003
299.3714e+003
S= 900 m
322.4649e+003
323.0376e+003
322.6992e+003
S= 1000 m
344.7096e+003
345.7850e+003
344.7040e+003
  •     selisih hasil antara golden searching dengan monte carlo sebesar 0,0178 %
  •     selisih hasil antara golden searching dengan Gradient Descent  sebesar 0,0928 %
  •     selisih hasil antara Monte Carlo dengan Gradient Descent  sebesar 0,075 %

 


 


Comments (0)

Isi Blog ini diposting dari tugas-tugas kuliah, catatan pribadi, dan berbagai bacaan yang bersumber dari buku, internet dll