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

📄 report.c

📁 nsga2具体算法代码,用来多目标遗传算法的学习和研究
💻 C
字号:
/* Routines for storing population data into files */# include <stdio.h># include <stdlib.h># include <math.h># include "global.h"# include "rand.h"/* Function to print the information of a population in a file */void report_pop (population *pop, FILE *fpt){    int i, j, k;    for (i=0; i<popsize; i++)    {        for (j=0; j<nobj; j++)        {            fprintf(fpt,"%e\t",pop->ind[i].obj[j]);        }        if (ncon!=0)        {            for (j=0; j<ncon; j++)            {                fprintf(fpt,"%e\t",pop->ind[i].constr[j]);            }        }        if (nreal!=0)        {            for (j=0; j<nreal; j++)            {                fprintf(fpt,"%e\t",pop->ind[i].xreal[j]);            }        }        if (nbin!=0)        {            for (j=0; j<nbin; j++)            {                for (k=0; k<nbits[j]; k++)                {                    fprintf(fpt,"%d\t",pop->ind[i].gene[j][k]);                }            }        }        fprintf(fpt,"%e\t",pop->ind[i].constr_violation);        fprintf(fpt,"%d\t",pop->ind[i].rank);        fprintf(fpt,"%e\n",pop->ind[i].crowd_dist);    }    return;}/* Function to print the information of feasible and non-dominated population in a file */void report_feasible (population *pop, FILE *fpt){    int i, j, k;    for (i=0; i<popsize; i++)    {        if (pop->ind[i].constr_violation == 0.0 && pop->ind[i].rank==1)        {            for (j=0; j<nobj; j++)            {                fprintf(fpt,"%e\t",pop->ind[i].obj[j]);            }            if (ncon!=0)            {                for (j=0; j<ncon; j++)                {                    fprintf(fpt,"%e\t",pop->ind[i].constr[j]);                }            }            if (nreal!=0)            {                for (j=0; j<nreal; j++)                {                    fprintf(fpt,"%e\t",pop->ind[i].xreal[j]);                }            }            if (nbin!=0)            {                for (j=0; j<nbin; j++)                {                    for (k=0; k<nbits[j]; k++)                    {                        fprintf(fpt,"%d\t",pop->ind[i].gene[j][k]);                    }                }            }            fprintf(fpt,"%e\t",pop->ind[i].constr_violation);            fprintf(fpt,"%d\t",pop->ind[i].rank);            fprintf(fpt,"%e\n",pop->ind[i].crowd_dist);        }    }    return;}

⌨️ 快捷键说明

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