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

📄 select.c

📁 遗传算法的一个源代码
💻 C
字号:
#include "const.h"#include "type.h"#include "extern.h"#include "exfunc.h"int roulette(pop, sumfitness, popsize)     IPTR pop;     double sumfitness;     int popsize;{   /* select a single individual by roulette wheel selection */    double rand,partsum;  int j,i;  partsum = 0.0; j = 0;  rand = f_random() * sumfitness;   /* This sumfitness is actually SUMfitness     passed to it by generation()  */    j = -1;  do{    j++;    partsum += pop[j].fitness;  } while (partsum < rand && j < popsize - 1) ;    return j;}int scaled_roulette(pop, scaled_sumfitness, popsize)     IPTR pop;     double scaled_sumfitness;     int popsize;{   /* select a single individual by roulette wheel selection */    double rand,partsum;  int j,i;  partsum = 0.0; j = 0;  rand = f_random() * scaled_sumfitness;  /* scaled selection */    j = -1;  do{    j++;    partsum += pop[j].scaled_fitness;  } while (partsum < rand && j < popsize - 1) ;    return j;}int roulette2(IPTR pop, double sumfitness, int popsize){  return rnd(0, popsize-1);}void sort(int *rk, IPTR pop,int size){  int i,j;  int temp,sorted;  double fit[2*MAXPOP],temp1;    for(i=0;i<size;i++){    rk[i] = i;    fit[i] = pop[i].fitness;  }  j = 0;  sorted = 0;  while(!sorted){    sorted = 1;    for(i=0;i<size-1;i++){      if(fit[i] < fit[i+1]){        temp = rk[i];        rk[i] = rk[i+1];        rk[i+1] = temp;        temp1 = fit[i];        fit[i] = fit[i+1];        fit[i+1] = temp1;        sorted = 0;      }    }  }}void nosort(rk)     int *rk;{  int i;  for(i = 0; i < popsize; i++) rk[i] = i;}

⌨️ 快捷键说明

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