Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
temp_law_csa
The classical temperature decrease law
Calling Sequence
T_out = temp_law_csa(T_in,step_mean,step_var,temp_stage,n,param)
Arguments
- 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
 not used for this temperature law
- T_out
 the temperature for the temperature stage to come
Description
This function implements the classical annealing temperature schedule (the one for which the convergence of the simulated annealing has been proven).
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 CSA 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_csa, neigh_func_csa); printf('optimal solution:\n'); disp(x_opt); printf('value of the objective function = %f\n', f_opt); scf(); subplot(2,1,1); xtitle('Classical 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
Authors
- collette
 Yann COLLETTE (ycollet@freesurf.fr)
| << optim_sa | Simulated Annealing | temp_law_default >> |