# compute_initial_temp

A SA function which allows to compute the initial temperature of the simulated annealing

## Calling Sequence

    T_init = compute_initial_temp(x0,f,proba_init, ItMX [, param] )

## Arguments

x0

  the starting point

f

  the objective function which will be send to the simulated annealing for optimization

proba_init

  the initial probability of accepting a bad solution (usually around 0.7)

ItMX

  the number of iterations of random walk (usually around 100)

param

  optional, a data structure managed with the parameters module.

  The `optim_sa` function is sensitive to the following fields.

  "neigh_func"

    a function which computes a neighbor of a given point. The default neighbourhood function is `neigh_func_default`.

  "type_accept"

    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))`.

T_init

  The initial temperature corresponding to the given probability of accepting a bad solution

## Description

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.

## Examples

    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);

## See Also

- optim_sa
- neigh_func_default
- temp_law_default