⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 global.h

📁 nsga2具体算法代码,用来多目标遗传算法的学习和研究
💻 H
字号:
/* This file contains the variable and function declarations */# ifndef _GLOBAL_H_# define _GLOBAL_H_# define INF 1.0e14# define EPS 1.0e-14# define E  2.71828182845905# define PI 3.14159265358979# define GNUPLOT_COMMAND "gnuplot -persist"typedef struct{    int rank;    double constr_violation;    double *xreal;    int **gene;    double *xbin;    double *obj;    double *constr;    double crowd_dist;}individual;typedef struct{    individual *ind;}population;typedef struct lists{    int index;    struct lists *parent;    struct lists *child;}list;extern int nreal;extern int nbin;extern int nobj;extern int ncon;extern int popsize;extern double pcross_real;extern double pcross_bin;extern double pmut_real;extern double pmut_bin;extern double eta_c;extern double eta_m;extern int ngen;extern int nbinmut;extern int nrealmut;extern int nbincross;extern int nrealcross;extern int *nbits;extern double *min_realvar;extern double *max_realvar;extern double *min_binvar;extern double *max_binvar;extern int bitlength;extern int choice;extern int obj1;extern int obj2;extern int obj3;extern int angle1;extern int angle2;void allocate_memory_pop (population *pop, int size);void allocate_memory_ind (individual *ind);void deallocate_memory_pop (population *pop, int size);void deallocate_memory_ind (individual *ind);double maximum (double a, double b);double minimum (double a, double b);void crossover (individual *parent1, individual *parent2, individual *child1, individual *child2);void realcross (individual *parent1, individual *parent2, individual *child1, individual *child2);void bincross (individual *parent1, individual *parent2, individual *child1, individual *child2);void assign_crowding_distance_list (population *pop, list *lst, int front_size);void assign_crowding_distance_indices (population *pop, int c1, int c2);void assign_crowding_distance (population *pop, int *dist, int **obj_array, int front_size);void decode_pop (population *pop);void decode_ind (individual *ind);void onthefly_display (population *pop, FILE *gp, int ii);int check_dominance (individual *a, individual *b);void evaluate_pop (population *pop);void evaluate_ind (individual *ind);void fill_nondominated_sort (population *mixed_pop, population *new_pop);void crowding_fill (population *mixed_pop, population *new_pop, int count, int front_size, list *cur);void initialize_pop (population *pop);void initialize_ind (individual *ind);void insert (list *node, int x);list* del (list *node);void merge(population *pop1, population *pop2, population *pop3);void copy_ind (individual *ind1, individual *ind2);void mutation_pop (population *pop);void mutation_ind (individual *ind);void bin_mutate_ind (individual *ind);void real_mutate_ind (individual *ind);void test_problem (double *xreal, double *xbin, int **gene, double *obj, double *constr);void assign_rank_and_crowding_distance (population *new_pop);void report_pop (population *pop, FILE *fpt);void report_feasible (population *pop, FILE *fpt);void report_ind (individual *ind, FILE *fpt);void quicksort_front_obj(population *pop, int objcount, int obj_array[], int obj_array_size);void q_sort_front_obj(population *pop, int objcount, int obj_array[], int left, int right);void quicksort_dist(population *pop, int *dist, int front_size);void q_sort_dist(population *pop, int *dist, int left, int right);void selection (population *old_pop, population *new_pop);individual* tournament (individual *ind1, individual *ind2);# endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -