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

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

?? jibenyichuansuanfa.m

?? 這是基于基本遺傳算法的函數(shù)最優(yōu)化的matlab程序
?? M
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************/ 
/* 基于基本遺傳算法的函數(shù)最優(yōu)化 SGA.C */ 
/* A Function Optimizer using Simple Genetic Algorithm */ 
/* developed from the Pascal SGA code presented by David E.Goldberg */ 
//******************************************************************/ 
#include 
#include 
#include 
#include "graph.c" 
/* 全局變量 */ 
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ù) */ 

/* 隨機數(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++; 
/*分配給全局數(shù)據(jù)結(jié)構(gòu)空間 */ 
initmalloc(); 
/* 初始化隨機數(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]; 
setcolor(9); 
disp_hz16("種群大小(20-100):",100,150,20); 
gscanf(320,150,9,15,4,"%d", &popsize); 
if((popsize%2) != 0) 
{ 
fprintf(outfp, "種群大小已設(shè)置為偶數(shù)\n"); 
popsize++; 
}; 
setcolor(9); 
disp_hz16("染色體長度(8-40):",100,180,20); 
gscanf(320,180,9,15,4,"%d", &lchrom); 
setcolor(9); 
disp_hz16("是否輸出染色體編碼(y/n):",100,210,20); 
printstrings=1; 
gscanf(320,210,9,15,4,"%s", answer); 
if(strncmp(answer,"n",1) == 0) printstrings = 0; 
setcolor(9); 
disp_hz16("最大世代數(shù)(100-300):",100,240,20); 
gscanf(320,240,9,15,4,"%d", &maxgen); 
setcolor(9); 
disp_hz16("交叉率(0.2-0.9):",100,270,20); 
gscanf(320,270,9,15,5,"%f", &pcross); 
setcolor(9); 
disp_hz16("變異率(0.01-0.1):",100,300,20); 
gscanf(320,300,9,15,5,"%f", &pmutation); 
} 

void initpop() /* 隨機初始化種群 */ 
{ 
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," 最大進化代數(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; 
/* 每代運算前進行預(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() /*為全局數(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 { 
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() 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野洁衣一区| 日韩和欧美的一区| 色老汉一区二区三区| 亚洲摸摸操操av| 欧美日韩1区2区| 毛片基地黄久久久久久天堂| 久久久噜噜噜久久人人看| 国产成人精品网址| 亚洲最新视频在线观看| 3d动漫精品啪啪1区2区免费| 国产麻豆视频一区| 亚洲欧美一区二区三区久本道91| 在线视频国产一区| 日韩精品成人一区二区三区| 久久人人超碰精品| 在线观看国产精品网站| 日本不卡的三区四区五区| 欧美激情一区二区三区全黄| 欧洲av一区二区嗯嗯嗯啊| 理论片日本一区| 亚洲欧美日韩在线不卡| 91精品国模一区二区三区| 成人性色生活片免费看爆迷你毛片| 亚洲激情中文1区| 欧美r级在线观看| 97超碰欧美中文字幕| 日本系列欧美系列| 日韩理论片中文av| 91精品国产麻豆| 99精品视频在线观看免费| 日本v片在线高清不卡在线观看| 久久蜜臀精品av| 欧美性淫爽ww久久久久无| 激情文学综合丁香| 亚洲在线视频一区| 欧美激情一区不卡| 欧美日韩大陆在线| 99久久精品免费观看| 蜜桃久久久久久久| 亚洲一区在线观看免费观看电影高清| 久久青草国产手机看片福利盒子| 欧美三级资源在线| thepron国产精品| 激情综合色综合久久| 亚洲6080在线| 一区二区三区中文在线观看| 欧美高清一级片在线观看| 日韩午夜中文字幕| 欧美日韩五月天| 91麻豆免费在线观看| 国产成人免费网站| 精品写真视频在线观看| 天使萌一区二区三区免费观看| 国产精品麻豆视频| 国产人伦精品一区二区| 2019国产精品| 欧美大片日本大片免费观看| 欧美一区二区私人影院日本| 欧美剧情片在线观看| 91黄视频在线观看| 色诱视频网站一区| 91首页免费视频| 99精品欧美一区| 欧美大尺度电影在线| 91精品国产综合久久精品麻豆| 欧洲精品一区二区| 一本大道久久a久久精品综合| 成人免费视频一区| 成人动漫视频在线| www.在线欧美| 97se亚洲国产综合自在线观| av中文字幕一区| av在线免费不卡| 色欧美乱欧美15图片| 在线中文字幕不卡| 欧美日韩精品是欧美日韩精品| 欧美性受极品xxxx喷水| 欧美三级电影在线看| 91精品在线一区二区| 日韩一级二级三级精品视频| 日韩免费一区二区| 久久综合狠狠综合| 国产精品无圣光一区二区| 中文字幕巨乱亚洲| 亚洲精品高清视频在线观看| 亚洲国产精品久久不卡毛片| 亚洲第一福利一区| 日韩欧美专区在线| 久久影院电视剧免费观看| 久久免费的精品国产v∧| 欧美韩日一区二区三区四区| 日韩美女啊v在线免费观看| 亚洲国产精品久久不卡毛片| 蜜臀a∨国产成人精品| 国产成人综合在线观看| 色偷偷久久人人79超碰人人澡| 欧美中文字幕一区二区三区亚洲| 777久久久精品| 久久精品在线免费观看| 亚洲免费视频中文字幕| 婷婷久久综合九色国产成人| 激情五月激情综合网| 99精品视频在线观看免费| 欧美午夜理伦三级在线观看| 欧美电影免费观看高清完整版在线| 久久网这里都是精品| 一区二区三区在线免费| 蜜桃视频一区二区| caoporen国产精品视频| 欧美男男青年gay1069videost | 国产激情精品久久久第一区二区| 成人激情动漫在线观看| 欧美老肥妇做.爰bbww视频| xnxx国产精品| 一区二区理论电影在线观看| 黄色日韩网站视频| 欧美色综合久久| 国产欧美精品一区二区三区四区| 亚洲高清久久久| 国产美女av一区二区三区| 欧美色图12p| 国产精品国产三级国产aⅴ入口 | 91色在线porny| 日韩欧美www| 亚洲国产一区二区三区| 国产成人午夜视频| 日韩三级在线观看| 一区二区三区四区视频精品免费 | 视频一区中文字幕国产| 高清不卡在线观看av| 6080国产精品一区二区| 亚洲欧美自拍偷拍色图| 精品亚洲porn| 欧美一区三区二区| 亚洲资源中文字幕| 99riav久久精品riav| 久久精品一二三| 免费的成人av| 欧美肥妇bbw| 亚洲成人久久影院| 在线精品观看国产| 国产精品国模大尺度视频| 国产精品自在在线| 日韩美女一区二区三区四区| 偷窥国产亚洲免费视频| 在线看国产日韩| 一区二区免费在线| 在线免费观看成人短视频| 亚洲视频在线观看一区| 国产91对白在线观看九色| 久久久精品综合| 国产精品一区一区| 欧美精品一区二区高清在线观看| 日韩精彩视频在线观看| 亚洲成人自拍网| 一本色道久久加勒比精品 | 亚洲成va人在线观看| 在线精品视频一区二区| 亚洲精品成人精品456| aa级大片欧美| 18欧美亚洲精品| 色婷婷久久久久swag精品| 亚洲免费色视频| 91国在线观看| 亚洲成人精品影院| 欧美日韩国产小视频在线观看| 亚洲国产成人av| 51精品秘密在线观看| 蜜臀av在线播放一区二区三区| 日韩欧美激情四射| 精品一区二区综合| 欧美高清在线一区二区| 99re成人在线| 亚洲自拍与偷拍| 91精品在线免费| 国内成人精品2018免费看| 久久精品男人天堂av| 99在线热播精品免费| 亚洲一区二区视频在线| 欧美精品乱码久久久久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 91精品国产黑色紧身裤美女| 国产中文字幕精品| 国产精品丝袜在线| 欧美午夜精品久久久久久孕妇| 丝袜亚洲另类欧美| 久久九九久精品国产免费直播| 成人aaaa免费全部观看| 亚洲成av人片在线观看| 精品久久久久久久久久久久久久久久久| 国产美女av一区二区三区| 亚洲少妇中出一区| 日韩欧美一级二级三级| 成人免费看片app下载| 亚洲宅男天堂在线观看无病毒| 欧美成人一级视频| 91亚洲国产成人精品一区二三| 日本欧美一区二区三区乱码 | 日韩亚洲欧美中文三级| 国产一区二区毛片|