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