Anda di halaman 1dari 5

Simulated Annealing

Metode simulated annealing dipakai untuk menyelesaikan


persamaan berikut:
2
f ( x )= x 2i
i=1

dimana
10 x i 10

solusi dikodekan dengan :


objective function Variabel keputusan

Solusi

Dimana xi bernilai bilangan real.

Pseudocode metode Simulated Annealing

Praktikum Kecerdasan Buatan


Implementasi menggunakan Matlab

1. Membersihkan memori dan layar

clear;
clc;

% clear dipakai untuk membersikan memori, sehingga variabel-


variabel yang dipakai pada eksekusi program sebelumnya dihapus

% clc dipakai untuk membersihkan layar monitor dari luaran


eksekusi program sebelumnya

2. Setting parameter

T_max = 1000; % suhu maksimum


T_min = 250; % suhu minimum
alpha = 0.6; % koefisien penuruna suhu
k = 10; % kesetimbangan termal
bw = 2; % bandwidth pencarian S
batas_atas = 10; % atas atas ruang pencarian
batas_bawah = -10; % batas awah uang pencarian
T = T_max; % mengeset nilai T dengan Tmax

% T_max merupakan suhu maksimum. Dalam contoh ini,T_max diset


nilai 1000
% T_min merupakan suhu minimm, untuk menentukan kriteria berhenti
% alpha merupakan koefisen penurunan suhu T (T = alpha*T)
% k merupakan parameter untuk menentukan kesetimbangan termal
% bw atau bandwidth merupakan range pencarian nilai x pada solusi
yang baru
% batas_atas merupakan nilai maksimum x yang diijinkan
% batas_bawah merupakan nilai minimum x yang diijinkan

3. Inisialisasi solusi

x1 = batas_bawah + rand()*(batas_atas-batas_bawah);
x2 = batas_bawah + rand()*(batas_atas-batas_bawah);

f = x1^2 + x2^2; % evaluasi

% solusi awal dbangkikan secara acak dengan cara membangkitkan


nilai x1 dan x2 secara acak.
% solusi awal kemudian dievaluasi berdasarkan fungsi objektifnya
2
f ( x )= x i
2

i=1

Praktikum Kecerdasan Buatan


4. Proses pencarian

while T > T_min


for i = 1 : k % syarat kesetimbangan termal
i;
%membangkitkan solusi baru
deltaX1 = -bw + rand()*2*bw;
x1_temp = x1 + deltaX1;
deltaX2 = -bw + rand()*2*bw;
x2_temp = x2 + deltaX2;

ftemp = x1_temp^2 + x2_temp^2; % evaluasi

% mencari delta E
delta_E = ftemp-f;

if delta_E < 0
x1 = x1_temp;
x2 = x2_temp;
f = ftemp;
else

% menentukan apakah solusi yang lebih rendah kualitasnya akan


dipakai untuk menggantikan solusi sebelumnya, sesuai dengan
probabilitas penerimaan

prob_penerimaan = exp(-delta_E/((T-T_min)/(T_max-T_min)));
r = rand() ;

if r < prob_penerimaan
x1 = x1_temp;
x2 = x2_temp;
f = ftemp;
else
end
end
end
min_objektif = [min_objektif; f];
T = T*alpha;
end

5. Menampilkan hasil

f0
x1
x2
solusi = f

figure(1)
iters=0:length(min_objektif)-1;
plot(iters,min_objektif);
xlabel('iterasi');ylabel('nilai objektif');
title('grafik pencarian menggunakan Simulated
Annealling','FontWeight','bold');

Praktikum Kecerdasan Buatan


% luaran yang ditampilkan adalah nilai objektif awal (f0),nilai x1,
x2 dan nilai objektif akhir (x1, x2 dan f)
% nilai objektif selama pencarian ditampilkan dalam bentuk
grafik,dengan fungsi figure ()

Contoh grafik nilai obektif vs jumlah iterasi

Praktikum Kecerdasan Buatan


Tugas:
1. Lakukan eksperimen untuk mengetahui performa dari metode Simulated
Annealing yang dibuat. Eksperimen dilakukan dengan merubah parameter alpha
dalam simulated annealing (parameter yang lain tidak diubah). Untuk setiap nilai
alpha, program di jalankan 10 kali (catat solusi yang dihasilkan dalam setiap kali
program dijalankan), kemudian dihitung nilai rata-rata dan standar deviasinya.
Buatlah tabel untuk menampilkan hasil eksperimen tersebut.

Misal hasil eksperimen untuk melihat efek alpha terhadap solusi yang dihasilkan

Keterangan Alpha = 0.1 Alpha = 0.2 Alpha = 0.9


Percobaan
1
Percobaan
2
Percobaan
3
Percobaan
4
Percobaan
5
Percobaan
6
Percobaan
7
Percobaan
8
Percobaan
9
Percobaan
10
f (x )
Standar
deviasi

Kesimpulan apa yang bisa ada ambil dari hasil eksperimen


tersebut? Jelaskan.

Praktikum Kecerdasan Buatan

Anda mungkin juga menyukai