double (*gsl_siman_Efunc_t) (void *xp);
void (*gsl_siman_step_t) (void *xp, double step_size);
double (*gsl_siman_metric_t) (void *xp, void *yp);
void (*gsl_siman_print_t) (void *xp);
gsl_siman_solve
.
/* this structure contains all the information needed to structure the search, beyond the energy function, the step function and the initial guess. */ struct s_siman_params { /* how many points to try for each step */ int n_tries; /* how many iterations at each temperature? */ int iters_fixed_T; /* max step size in the random walk */ double step_size; /* the following parameters are for the Boltzmann distribution */ double k, t_initial, mu_t, t_min; }; typedef struct s_siman_params gsl_siman_params_t;
The params structure (described above) controls the run by
providing the temperature schedule and other tunable parameters to the
algorithm (see section Simulated Annealing algorithm).
p
The result (optimal point in the space) is placed in *x0_p
.
If print_position is not null, a log will be printed to the screen with the following columns:
number_of_iterations temperature x x-(*x0_p) Ef(x)
If print_position is null, no information is printed to the screen.