Name

temp_law_vfsa — This function implements the Very Fast Simulated Annealing from L. Ingber

Calling Sequence

T_out = temp_law_vfsa(T_in,step_mean,step_var,temp_stage,n, param)

Parameters

T_in

the temperature at the current stage

step_mean

the mean value of the objective function computed during the current stage

step_var

the variance value of the objective function computed during the current stage

temp_stage

the index of the current temperature stage

n

the dimension of the decision variable (the x in f(x))

param

a float: the 'c' parameter of the VFSA method (0.01 by default)

T_out

the temperature for the temperature stage to come

Description

  • This function implements the Very Fast Simulated Annealing from L. Ingber.

Examples

 
function y = rastrigin(x)
  y = x(1)^2+x(2)^2-cos(12*x(1))-cos(18*x(2));
endfunction

x0 = [-1, -1];
Proba_start = 0.8;
It_intern = 1000;
It_extern = 30;
It_Pre    = 100;

printf('SA: the VFSA algorithm\n');

T0 = compute_initial_temp(x0, rastrigin, Proba_start, It_Pre, neigh_func_default);
printf('Initial temperatore T0 = %f\n', T0);

[x_opt, f_opt, sa_mean_list, sa_var_list, temp_list] = optim_sa(x0, rastrigin, It_extern, It_intern, T0, Log = %T, temp_law_vfsa, neigh_func_vfsa);

printf('optimal solution:\n'); disp(x_opt);
printf('value of the objective function = %f\n', f_opt);

scf();
subplot(2,1,1);
xtitle('VFSA simulated annealing','Iteration','Mean / Variance');
t = 1:length(sa_mean_list);
plot(t,sa_mean_list,'r',t,sa_var_list,'g');
legend(['Mean','Variance']);
subplot(2,1,2);
xtitle('Temperature evolution','Iteration','Temperature');
plot(t,temp_list,'k-');
 

See Also

optim_sa , neigh_func_vfsa , temp_law_huang

Authors

collette

Yann COLLETTE (ycollet@freesurf.fr)