A SA function which allows to compute the initial temperature of the simulated annealing
T_init = compute_initial_temp(x0,f,proba_init, ItMX [, param] )
the starting point
the objective function which will be send to the simulated annealing for optimization
the initial probability of accepting a bad solution (usually around 0.7)
the number of iterations of random walk (usually around 100)
optional, a data structure managed with the parameters module.
The optim_sa
function is sensitive to the following fields.
a function which computes a neighbor of a given point.
The default neighbourhood function is neigh_func_default
.
the type of acceptation function.
If the type is equal to "sa", then the initial temperature
is computed from T_init = - f_sum ./ log(proba_init)
.
If the type is equal to "vfsa", it is computed
from T_init = abs(f_sum / log(1/proba_init - 1))
.
The initial temperature corresponding to the given probability of accepting a bad solution
This function computes an initial temperature given an initial probability of accepting a bad solution. This computation is based on some iterations of random walk.
deff('y=f(x)','y=sum(x.^2)'); x0 = [2 2]; Proba_start = 0.7; It_Pre = 100; x_test = neigh_func_default(x0); saparams = init_param(); saparams = add_param(saparams,'neigh_func', neigh_func_default); T0 = compute_initial_temp(x0, f, Proba_start, It_Pre, saparams); | ![]() | ![]() |