1 #define _CRT_SECURE_NO_WARNINGS 7 #define E 2.71828182845905 8 #define PI 3.14159265358979 9 #define GNUPLOT_COMMAND "gnuplot -persist" 14 double constr_violation;
20 double realvar_crowd_dist;
21 double binvar_crowd_dist;
22 double obj_crowd_dist;
43 extern double pcross_real;
44 extern double pcross_bin;
45 extern double pmut_real;
46 extern double pmut_bin;
53 extern int nrealcross;
55 extern double *min_realvar;
56 extern double *max_realvar;
57 extern double *min_binvar;
58 extern double *max_binvar;
59 extern double *min_obj;
60 extern double *max_obj;
61 extern double *epsilon;
65 extern int input_type;
67 extern int var_option;
68 extern int obj_option;
80 void deallocate_memory_pop (
population *,
int);
88 void assign_crowding_distance_list_obj (
population *,
list *,
int);
89 void assign_crowding_distance_list_realvar (
population *,
list *,
int);
90 void assign_crowding_distance_list_binvar (
population *,
list *,
int);
91 void assign_crowding_distance_indices (
population *,
int,
int);
92 void assign_crowding_distance_indices_obj (
population *,
int,
int);
93 void assign_crowding_distance_indices_realvar (
population *,
int,
int);
94 void assign_crowding_distance_indices_binvar (
population *,
int,
int);
99 void onthefly_display (
population *, FILE *,
int);
103 void define_epsilon (
population *,
int ,
double *);
111 void ga_optimizer(
void);
120 void insert (
list *,
int);
131 void output (FILE *, FILE *, FILE *, FILE *, FILE *);
135 void test_problem (
double *,
double *,
int **,
double *,
double *);
137 void assign_rank_and_crowding_distance (
population *);
144 void quicksort_front_obj(
population *,
int ,
int *,
int);
145 void q_sort_front_obj(
population *,
int ,
int *,
int ,
int );
146 void quicksort_front_realvar(
population *,
int ,
int *,
int );
147 void q_sort_front_realvar(
population *,
int ,
int *,
int ,
int );
148 void quicksort_front_binvar(
population *,
int ,
int *,
int );
149 void q_sort_front_binvar(
population *,
int ,
int *,
int ,
int );
150 void quicksort_dist(
population *,
int *,
int );
151 void q_sort_dist(
population *,
int *,
int ,
int );
158 double calc_distance (
population *,
list *,
list *,
double *,
double *,
double *,
double *);
160 double maximum (
double ,
double);
161 double minimum (
double ,
double);
162 double square (
double);
163 double modulus (
double *,
int);
164 double dot (
double *,
double *,
int);
165 double mean (
double *,
int);