📄 nsga2.c
字号:
# include <stdio.h>
# include <math.h>
# include "malloc.h"
# include "global.h"
# include "rand.c"
# include "list.c"
# include "check_dominance.c"
# include "crowding_distance.c"
# include "initialize.c"
# include "evaluate_objective.c"
# include "non_domination_sort_initialize.c"
# include "tournament_selection.c"
# include "mutation.c"
# include "merge.c"
# include "non_domination_sort.c"
void main()
{
int i, j;
population *parent_pop;
population *child_pop;
population *mixed_pop;
parent_pop = (population *)malloc(sizeof(population));
child_pop = (population *)malloc(sizeof(population));
mixed_pop = (population *)malloc(sizeof(population));
parent_pop->ind = (individual *)malloc(POPSIZE*sizeof(individual));
child_pop->ind = (individual *)malloc(POPSIZE*sizeof(individual));
mixed_pop->ind = (individual *)malloc(2*POPSIZE*sizeof(individual));
randomize ();
printf("hehe!\n");
initialize_pop (parent_pop);
evaluate_pop (parent_pop);
non_domination_sort_and_crowding_distance (parent_pop);
for (i=1; i<=GEN; i++)
{
printf("%d\n", i);
selection (parent_pop, child_pop);
mutation_pop (child_pop);
evaluate_pop (child_pop);
merge (parent_pop, child_pop, mixed_pop);
non_domination_sort (mixed_pop, parent_pop);
// if (fmod(i, 10.0) == 0)
// {
// printf("%d\n", i);
// }
}
for (i=0; i<POPSIZE; i++)
{
for (j=0; j<NX; j++)
{
printf("%lf ", parent_pop->ind[i].x[j]);
}
printf("\n");
for (j=0; j<NOBJ; j++)
{
printf("%lf ", parent_pop->ind[i].obj[j]);
}
printf("\n");
printf("%d \n", parent_pop->ind[i].rank);
printf("%lf %d\n", parent_pop->ind[i].crowd_dist, i);
printf("\n");
}
free (parent_pop->ind);
free (child_pop->ind);
free (mixed_pop->ind);
free (parent_pop);
free (child_pop);
free (mixed_pop);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -