temp_law_huang
The Huang temperature decrease law for the simulated annealing
Syntax
T_out = temp_law_huang(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
a float corresponding to the lambda parameter of the Huang temperature decrease law (0.01 by default)
- T_out
the temperature for the temperature stage to come
Description
This function implements the Huang temperature decrease law for the simulated annealing.
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; mprintf('SA: the Huang temperature decrease law\n'); T0 = compute_initial_temp(x0, rastrigin, Proba_start, It_Pre, neigh_func_default); mprintf('Initial temperature T0 = %f\n', T0); saparams = init_param(); saparams = add_param(saparams, "neigh_func", neigh_func_default); saparams = add_param(saparams, "temp_law", temp_law_huang); [x_opt, f_opt, sa_mean_list, sa_var_list, temp_list] = optim_sa(x0, rastrigin, It_extern, It_intern, T0, Log = %T, saparams); mprintf('optimal solution:\n'); disp(x_opt); mprintf('value of the objective function = %f\n', f_opt); scf(); subplot(2,1,1); xtitle('Huang 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 — A Simulated Annealing optimization method
- temp_law_csa — The classical temperature decrease law
- neigh_func_csa — The classical neighborhood relationship for the simulated annealing
Report an issue | ||
<< temp_law_fsa | Utilities | temp_law_vfsa >> |