亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ga.c

?? 標(biāo)準(zhǔn)遺傳算法的源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <stdio.h>
#include <math.h>

/* 全局變量 */
struct individual /* 個體*/
{
unsigned *chrom; /* 染色體 */
double fitness; /* 個體適應(yīng)度*/
double varible; /* 個體對應(yīng)的變量值*/ 
int xsite; /* 交叉位置 */
int parent[2]; /* 父個體 */
int *utility; /* 特定數(shù)據(jù)指針變量 */
};
struct bestever /* 最佳個體*/
{
unsigned *chrom; /* 最佳個體染色體*/
double fitness; /* 最佳個體適應(yīng)度 */
double varible; /* 最佳個體對應(yīng)的變量值 */
int generation; /* 最佳個體生成代 */
};
struct individual *oldpop; /* 當(dāng)前代種群 */
struct individual *newpop; /* 新一代種群 */
struct bestever bestfit; /* 最佳個體 */
double sumfitness; /* 種群中個體適應(yīng)度累計 */
double max; /* 種群中個體最大適應(yīng)度 */
double avg; /* 種群中個體平均適應(yīng)度 */
double min; /* 種群中個體最小適應(yīng)度 */
float pcross; /* 交叉概率 */
float pmutation; /* 變異概率 */
int popsize; /* 種群大小 */
int lchrom; /* 染色體長度*/
int chromsize; /* 存儲一染色體所需字節(jié)數(shù) */
int gen; /* 當(dāng)前世代數(shù) */
int maxgen; /* 最大世代數(shù) */
int run; /* 當(dāng)前運行次數(shù) */
int maxruns; /* 總運行次數(shù) */
int printstrings; /* 輸出染色體編碼的判斷,0 -- 不輸出, 1 -- 輸出 */
int nmutation; /* 當(dāng)前代變異發(fā)生次數(shù) */
int ncross; /* 當(dāng)前代交叉發(fā)生次數(shù) */

/* 隨機(jī)數(shù)發(fā)生器使用的靜態(tài)變量 */
static double oldrand[55];
static int jrand;
static double rndx2;
static int rndcalcflag;
/* 輸出文件指針 */
FILE *outfp ;
/* 函數(shù)定義 */
void advance_random();
int flip(float);rnd(int, int);
void randomize();
double randomnormaldeviate();
float randomperc(),rndreal(float,float);
void warmup_random(float);
void initialize(),initdata(),initpop();
void initreport(),generation(),initmalloc();
void freeall(),nomemory(char *),report();
void writepop(),writechrom(unsigned *);
void preselect();
void statistics(struct individual *);
void title(),repchar (FILE *,char *,int);
void skip(FILE *,int);
int select();
void objfunc(struct individual *);
int crossover (unsigned *, unsigned *, unsigned *, unsigned *);
void mutation(unsigned *);


void initialize() /* 遺傳算法初始化 */
{
/* 鍵盤輸入遺傳算法參數(shù) */
initdata();
/* 確定染色體的字節(jié)長度 */
chromsize = (lchrom/(8*sizeof(unsigned)));
if(lchrom%(8*sizeof(unsigned))) chromsize++;
/*分配給全局?jǐn)?shù)據(jù)結(jié)構(gòu)空間 */
initmalloc();
/* 初始化隨機(jī)數(shù)發(fā)生器 */
randomize();
/* 初始化全局計數(shù)變量和一些數(shù)值*/
nmutation = 0;
ncross = 0;
bestfit.fitness = 0.0;
bestfit.generation = 0;
/* 初始化種群,并統(tǒng)計計算結(jié)果 */
initpop();
statistics(oldpop);
initreport();
}

void initdata() /* 遺傳算法參數(shù)輸入 */
{
char answer[2];
popsize=30;
if((popsize%2) != 0)
{
fprintf(outfp, "種群大小已設(shè)置為偶數(shù)\n");
popsize++;
};
lchrom=22;
printstrings=1;
maxgen=300;
pcross=0.8;
pmutation=0.005;
}

void initpop() /* 隨機(jī)初始化種群 */
{
int j, j1, k, stop;
unsigned mask = 1;
for(j = 0; j < popsize; j++)
{
for(k = 0; k < chromsize; k++)
{
oldpop[j].chrom[k] = 0;
if(k == (chromsize-1))
stop = lchrom - (k*(8*sizeof(unsigned)));
else
stop =8*sizeof(unsigned);
for(j1 = 1; j1 <= stop; j1++)
{
oldpop[j].chrom[k] = oldpop[j].chrom[k]<<1;
if(flip(0.5))
oldpop[j].chrom[k] = oldpop[j].chrom[k]|mask;
}
}
oldpop[j].parent[0] = 0; /* 初始父個體信息 */
oldpop[j].parent[1] = 0;
oldpop[j].xsite = 0;
objfunc(&(oldpop[j])); /* 計算初始適應(yīng)度*/
}
}

void initreport() /* 初始參數(shù)輸出 */
{
void skip();
skip(outfp,1);
fprintf(outfp," 基本遺傳算法參數(shù)\n");
fprintf(outfp," -------------------------------------------------\n");
fprintf(outfp," 種群大小(popsize) = %d\n",popsize);
fprintf(outfp," 染色體長度(lchrom) = %d\n",lchrom);
fprintf(outfp," 最大進(jìn)化代數(shù)(maxgen) = %d\n",maxgen);
fprintf(outfp," 交叉概率(pcross) = %f\n",pcross);
fprintf(outfp," 變異概率(pmutation) = %f\n",pmutation);
fprintf(outfp," -------------------------------------------------\n");
skip(outfp,1);
fflush(outfp);
}

void generation()
{
int mate1, mate2, jcross, j = 0;
/* 每代運算前進(jìn)行預(yù)選 */
preselect();
/* 選擇, 交叉, 變異 */
do
{
/* 挑選交叉配對 */
mate1 = select();
mate2 = select();
/* 交叉和變異 */
jcross = crossover(oldpop[mate1].chrom, oldpop[mate2].chrom, newpop[j].chrom, newpop[j+1].chrom);
mutation(newpop[j].chrom);
mutation(newpop[j+1].chrom);
/* 解碼, 計算適應(yīng)度 */
objfunc(&(newpop[j]));
/*記錄親子關(guān)系和交叉位置 */
newpop[j].parent[0] = mate1+1;
newpop[j].xsite = jcross;
newpop[j].parent[1] = mate2+1;
objfunc(&(newpop[j+1]));
newpop[j+1].parent[0] = mate1+1;
newpop[j+1].xsite = jcross;
newpop[j+1].parent[1] = mate2+1;
j = j + 2;
}
while(j < (popsize-1));

}

void initmalloc() /*為全局?jǐn)?shù)據(jù)變量分配空間 */
{
unsigned nbytes;
char *malloc();
int j;
/* 分配給當(dāng)前代和新一代種群內(nèi)存空間 */
nbytes = popsize*sizeof(struct individual);
if((oldpop = (struct individual *) malloc(nbytes)) == NULL)
nomemory("oldpop");
if((newpop = (struct individual *) malloc(nbytes)) == NULL)
nomemory("newpop");
/* 分配給染色體內(nèi)存空間 */
nbytes = chromsize*sizeof(unsigned);
for(j = 0; j < popsize; j++)
{
if((oldpop[j].chrom = (unsigned *) malloc(nbytes)) == NULL)
nomemory("oldpop chromosomes");
if((newpop[j].chrom = (unsigned *) malloc(nbytes)) == NULL)
nomemory("newpop chromosomes");
}
if((bestfit.chrom = (unsigned *) malloc(nbytes)) == NULL)
nomemory("bestfit chromosome");

}

void freeall() /* 釋放內(nèi)存空間 */
{
int i;
for(i = 0; i < popsize; i++)
{
free(oldpop[i].chrom);
free(newpop[i].chrom);
}
free(oldpop);
free(newpop);
free(bestfit.chrom);
}

void nomemory(string) /* 內(nèi)存不足,退出*/
char *string;
{
fprintf(outfp,"malloc: out of memory making %s!!\n",string);
exit(-1);
}

void report() /* 輸出種群統(tǒng)計結(jié)果 */
{
void repchar(), skip();
void writepop(), writestats();
repchar(outfp,"-",80);
skip(outfp,1); 
if(printstrings == 1)
{
repchar(outfp," ",((80-17)/2));
fprintf(outfp,"模擬計算統(tǒng)計報告 \n");
fprintf(outfp, "世代數(shù) %3d", gen);
repchar(outfp," ",(80-28));
fprintf(outfp, "世代數(shù) %3d\n", (gen+1));
fprintf(outfp,"個體 染色體編碼");
repchar(outfp," ",lchrom-5);
fprintf(outfp,"適應(yīng)度 父個體 交叉位置 ");
fprintf(outfp,"染色體編碼 ");
repchar(outfp," ",lchrom-5);
fprintf(outfp,"適應(yīng)度\n");
repchar(outfp,"-",80);
skip(outfp,1);
writepop(outfp);
repchar(outfp,"-",80);
skip(outfp,1);
}
fprintf(outfp,"第 %d 代統(tǒng)計: \n",gen);
fprintf(outfp,"總交叉操作次數(shù) = %d, 總變異操作數(shù) = %d\n",ncross,nmutation);
fprintf(outfp," 最小適應(yīng)度:%f 最大適應(yīng)度:%f 平均適應(yīng)度 %f\n", min,max,avg);
fprintf(outfp," 迄今發(fā)現(xiàn)最佳個體 => 所在代數(shù): %d ", bestfit.generation);
fprintf(outfp," 適應(yīng)度:%f 染色體:", bestfit.fitness);
writechrom((&bestfit)->chrom);
fprintf(outfp," 對應(yīng)的變量值: %f", bestfit.varible);
skip(outfp,1);
repchar(outfp,"-",80);
skip(outfp,1); 
}

void writepop()
{
struct individual *pind;
int j;
for(j=0; j<popsize; j++)
{
fprintf(outfp,"%3d) ",j+1);
/* 當(dāng)前代個體 */
pind = &(oldpop[j]);
writechrom(pind->chrom);
fprintf(outfp," %8f | ", pind->fitness);
/* 新一代個體 */
pind = &(newpop[j]);
fprintf(outfp,"(%2d,%2d) %2d ",
pind->parent[0], pind->parent[1], pind->xsite);
writechrom(pind->chrom);
fprintf(outfp," %8f\n", pind->fitness);
}
}

void writechrom(chrom) /* 輸出染色體編碼 */
unsigned *chrom;
{
int j, k, stop;
unsigned mask = 1, tmp;
for(k = 0; k < chromsize; k++)
{
tmp = chrom[k];
if(k == (chromsize-1))
stop = lchrom - (k*(8*sizeof(unsigned)));
else
stop =8*sizeof(unsigned);
for(j = 0; j < stop; j++)
{
if(tmp&mask)
fprintf(outfp,"1");
else
fprintf(outfp,"0");
tmp = tmp>>1;
}
}
}

void preselect()
{
int j;
sumfitness = 0;
for(j = 0; j < popsize; j++) sumfitness += oldpop[j].fitness;
}

int select() /* 輪盤賭選擇*/
{
extern float randomperc();
float sum, pick;
int i;
pick = randomperc();
sum = 0;
if(sumfitness != 0)
{
for(i = 0; (sum < pick) && (i < popsize); i++)
sum += oldpop[i].fitness/sumfitness;
}
else
i = rnd(1,popsize);
return(i-1);
}

void statistics(pop) /* 計算種群統(tǒng)計數(shù)據(jù) */
struct individual *pop;
{
int i, j;
sumfitness = 0.0;
min = pop[0].fitness;
max = pop[0].fitness;
/* 計算最大、最小和累計適應(yīng)度 */
for(j = 0; j < popsize; j++)
{
sumfitness = sumfitness + pop[j].fitness; 
if(pop[j].fitness > max) max = pop[j].fitness; 
if(pop[j].fitness < min) min = pop[j].fitness; 
/* new global best-fit individual */
if(pop[j].fitness > bestfit.fitness)
{
for(i = 0; i < chromsize; i++)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色悠悠久久综合| 久久99久久精品欧美| 成人黄色网址在线观看| 国产喷白浆一区二区三区| 国产福利一区二区三区在线视频| 久久久噜噜噜久久人人看 | 欧美日韩1234| 日日摸夜夜添夜夜添国产精品 | 中文字幕精品一区二区精品绿巨人| 国产一区亚洲一区| 国产精品三级av| 91在线精品一区二区| 一区二区三区成人在线视频| 欧美日韩成人一区| 国产一区二区福利视频| 国产精品第四页| 欧美日韩成人激情| 国产精品影视网| 亚洲综合在线第一页| 日韩久久久精品| 波多野结衣亚洲| 香蕉久久夜色精品国产使用方法 | 日韩免费性生活视频播放| 国产精品亚洲午夜一区二区三区 | 欧美电影在线免费观看| 狠狠色丁香婷综合久久| 中文字幕在线不卡| 7777精品伊人久久久大香线蕉完整版 | 国产精品一线二线三线| 亚洲美女偷拍久久| 日韩欧美你懂的| 色综合婷婷久久| 久久er精品视频| 一区二区三区精品视频在线| 精品欧美一区二区在线观看| 91香蕉视频污| 韩国中文字幕2020精品| 一级特黄大欧美久久久| 久久久久久免费网| 欧美精品丝袜久久久中文字幕| 国产一区二区成人久久免费影院 | 欧美三区在线观看| 国产91在线观看丝袜| 视频一区视频二区中文字幕| 欧美经典三级视频一区二区三区| 欧美午夜电影一区| 成人性生交大合| 久99久精品视频免费观看| 一区二区视频免费在线观看| 久久嫩草精品久久久精品| 欧美日韩免费一区二区三区| 成人免费精品视频| 国产伦精品一区二区三区免费| 亚洲线精品一区二区三区八戒| 国产日韩欧美不卡| 精品精品国产高清a毛片牛牛 | 欧美午夜精品久久久久久孕妇| 国产suv精品一区二区883| 日本视频一区二区| 亚洲高清视频的网址| 亚洲人精品一区| 国产精品久久久久久久久免费桃花 | 亚洲精品成人悠悠色影视| 久久久久久电影| 精品久久一二三区| 7878成人国产在线观看| 91福利精品第一导航| 成人国产免费视频| 国产成人在线色| 国产一区二区三区免费看 | 秋霞成人午夜伦在线观看| 亚洲自拍偷拍麻豆| 亚洲免费三区一区二区| 日韩理论片一区二区| 国产精品传媒入口麻豆| 国产精品网站一区| 中文字幕欧美激情一区| 久久麻豆一区二区| 久久精品视频一区二区三区| 欧美精品一区二| 久久新电视剧免费观看| www日韩大片| 久久久久久久性| 国产欧美日产一区| 国产精品久久久久久久久免费樱桃| 久久精品一区蜜桃臀影院| 国产午夜精品一区二区三区四区| 精品国精品国产| 久久久99久久| 中文字幕乱码亚洲精品一区| 中文字幕第一区第二区| 中文字幕中文在线不卡住| 亚洲色图另类专区| 亚洲在线中文字幕| 天堂蜜桃91精品| 韩国成人福利片在线播放| 国产精品正在播放| 99久久婷婷国产精品综合| 日本黄色一区二区| 欧美一级搡bbbb搡bbbb| 久久综合九色综合97婷婷女人| 久久久www成人免费无遮挡大片| 国产欧美日韩精品在线| 亚洲少妇最新在线视频| 婷婷一区二区三区| 国内精品嫩模私拍在线| 成人精品一区二区三区四区| 色屁屁一区二区| 日韩一区二区三区免费看| 国产亚洲自拍一区| 亚洲乱码一区二区三区在线观看| 五月天激情综合| 国产精品 日产精品 欧美精品| 不卡一区在线观看| 777奇米四色成人影色区| 2021中文字幕一区亚洲| 亚洲欧美日韩国产成人精品影院 | 欧美美女bb生活片| 久久久久免费观看| 一区二区在线观看视频| 美女性感视频久久| 99re免费视频精品全部| 日韩欧美综合一区| 亚洲乱码日产精品bd| 狠狠色狠狠色综合系列| 91久久国产最好的精华液| 久久这里只有精品视频网| 一区二区三区中文字幕| 国产精一品亚洲二区在线视频| 色婷婷狠狠综合| 久久久久88色偷偷免费| 亚洲成人精品一区| 91在线高清观看| 久久综合五月天婷婷伊人| 亚洲一区二区三区三| 国产乱对白刺激视频不卡 | 91精品国产色综合久久| 国产精品免费丝袜| 久久黄色级2电影| 欧美日韩一区二区在线观看视频| 久久视频一区二区| 日本欧洲一区二区| 欧美在线一区二区| 最近日韩中文字幕| 国产成人免费视| 欧美成人a在线| 午夜视频在线观看一区二区| av亚洲产国偷v产偷v自拍| 久久综合久久综合久久| 日本色综合中文字幕| 欧美久久久久久久久| 亚洲精品高清在线观看| www.日韩大片| 国产三级三级三级精品8ⅰ区| 日韩和欧美一区二区三区| 在线这里只有精品| 亚洲欧美日韩中文字幕一区二区三区| 国产一区二区0| 精品久久五月天| 免费av网站大全久久| 8v天堂国产在线一区二区| 亚洲主播在线观看| 日本精品一级二级| 一区二区免费在线播放| 色婷婷综合久久久中文字幕| 中文字幕一区二区在线播放| 风流少妇一区二区| 国产精品美女久久久久久2018 | 26uuu国产电影一区二区| 美女网站一区二区| 日韩欧美自拍偷拍| 蜜臀久久久久久久| 日韩丝袜美女视频| 精品亚洲成a人| 久久午夜羞羞影院免费观看| 国产在线一区二区综合免费视频| 精品日韩一区二区三区免费视频| 免费成人在线视频观看| 欧美成人福利视频| 国产伦精品一区二区三区免费迷 | 老色鬼精品视频在线观看播放| 欧美丰满嫩嫩电影| 老司机精品视频线观看86 | 国产亚洲污的网站| 成人午夜激情视频| **欧美大码日韩| 欧美性大战久久| 视频一区二区三区中文字幕| 91精品国产综合久久香蕉麻豆| 免费人成精品欧美精品| 精品久久久久久综合日本欧美| 国产精品一区二区免费不卡 | 国产高清精品网站| 亚洲欧美一区二区三区国产精品| 在线亚洲欧美专区二区| 日韩av电影免费观看高清完整版在线观看| 91精品国产美女浴室洗澡无遮挡| 国产在线精品一区二区夜色 | 日韩中文欧美在线| 久久伊99综合婷婷久久伊|