Common usage of minimizing subroutine
returns the minimum value of func(x)
INPUT dim : dimention of the function
INPUT func : pointer to the function
INPUT init[]: the initial solution
INPUT lower[], upper[]: range to search
lower[i] <= init[i] <= upper[i] for all 0 <= i < dim
OUTPUT init[]: the minimized solution
/* steepest descent algorithm */
double mconv_minimize(int dim, double func(int dim, int x[]),
int init[], int lower[], int upper[]);
double mgconv_minimize(int dim, double func(int dim, int x[]),
int init[], int lower[], int upper[]);
/* greedy algorithm (improved steepest descent method) */
double mconv_minimize2(int dim, double func(int dim, int x[]), int init[]);
double mgconv_minimize2(int dim, double func(int dim, int x[]), int init[]);
/* greedy algorithm (improved steepest descent method) */
double mconv_minimize3(int dim, double func(int dim, int x[]),
int init[], int lower[], int upper[]);
double mgconv_minimize3(int dim, double func(int dim, int x[]),
int init[], int lower[], int upper[]);
/* scaling algorithm (with greedy) */
double mconv_minimize_scaling(int dim, double func(int dim, int x[]),
int init[], int lower[], int upper[]);
double mgconv_minimize_scaling(int dim, double func(int dim, int x[]),
int init[], int lower[], int upper[]);
/* continues relaxation algorithm */
double mconv_minimize_relax(int dim, double func(int dim, double x[]),
int init[]);
double mgconv_minimize_relax(int dim, double func(int dim, double x[]),
int init[]);
/* steepest descent algorithm */
double lconv_minimize(int dim, double func(int dim, int x[]), int init[],
const int fix_index);
double lgconv_minimize(int dim, double func(int dim, int x[]), int init[]);
/* steepest descent scaling algorithm */
double lconv_minimize_scaling(int dim, double func(int dim, int x[]),
int init[], const int fix_index);
double lgconv_minimize_scaling(int dim, double func(int dim, int x[]),
int init[]);
/* steepest descent algorithm (with IFF) */
double lconv_minimize_IFF(int dim, double func(int,int*), int init[],
const int fix_index);
double lgconv_minimize_IFF(int dim, double func(int,int*), int init[]);
/* steepest descent scaling algorithm (with IFF) */
double lconv_minimize_scaling_IFF(int dim, double func(int,int*), int init[],
const int fix_index);
double lgconv_minimize_scaling_IFF(int dim, double func(int,int*), int init[]);
/* steepest descent algorithm (with FW) */
double lconv_minimize_FW(int dim, double func(int,int*), int init[],
const int fix_index);
double lgconv_minimize_FW(int dim, double func(int,int*), int init[]);
/* steepest descent scaling algorithm (with FW) */
double lconv_minimize_scaling_FW(int dim, double func(int,int*),int init[],
const int fix_index);
double lgconv_minimize_scaling_FW(int dim, double func(int,int*),int init[]);
/* continues relaxation algorithm (with IFF) */
double lconv_minimize_relax(int dim, double func(int dim, double x[]),
int init[], const int fix_index);
double lgconv_minimize_relax(int dim, double func(int dim, double x[]),
int init[]);
double sf_minimize(int dim, double func(int,int*), int x[], int direction,
int set[], const int fix_index);
int is_lgconv_gene(int dim, double func(int,int*), int lower[], int upper[]);
int is_lconv_gene(int dim, double func(int,int*), int lower[], int upper[]);
int is_mgconv_gene(int dim, double func(int,int*), int lower[], int upper[]);
int is_mconv_gene(int dim, double func(int,int*), int lower[], int upper[],
int sum);