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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? chromosome.cpp

?? 遺傳算法程序最新版
?? CPP
字號(hào):
/***************************************************************/* Single & Multi-Objective Real-Coded Genetic Algorithms Code *//* Author: Kumara Sastry                                       *//* Illinois Genetic Algorithms Laboratory (IlliGAL)            *//* Deparment of General Engineering                            *//* University of Illinois at Urbana-Champaign                  *//* 104 S. Mathews Ave, Urbana, IL 61801                        *//***************************************************************/#include "chromosome.hpp"extern GlobalSetup *globalSetup;extern Random myRandom;// The Big 3Chromosome::Chromosome(void) {  // Initialize to random values within the limits of each variable  // I am going to follow the same naming conventions as used previously  // for random number generators although we will be using different  // functions.  int ii;  genes = new double[globalSetup->noOfDecisionVariables];  for (ii = 0; ii < globalSetup->noOfDecisionVariables; ii++) {    genes[ii] = myRandom.boundedRandom(globalSetup->variableRanges[ii][0],globalSetup->variableRanges[ii][1]);    if (globalSetup->variableTypes[ii]==Integer)      genes[ii] = int(genes[ii]+0.5);  }}Chromosome::Chromosome(const Chromosome &chrom) {  int ii;  for (ii = 0; ii < globalSetup->noOfDecisionVariables; ii++)    genes[ii] = chrom[ii];  }Chromosome::~Chromosome(void) {  delete []genes;}std::ostream &operator<< (std::ostream &out, Chromosome &chrom) {  int ii;  for (ii = 0; ii < globalSetup->noOfDecisionVariables; ii++)	  out<<chrom[ii]<<std::endl;  return out;}Chromosome &Chromosome::operator= (const Chromosome &sourceChrom) {  int ii;  for (ii = 0; ii < globalSetup->noOfDecisionVariables; ii++)    genes[ii] = sourceChrom.genes[ii];  return *this;}/* *========================================================== * Function Name: mutateMinMax * Function Task: Selective mutation. Randomly select one of  *    the genes and replace it with a random variables sampled *    uniformly between the gene ranges if the gene is not  *    frozen. Perform this process with a probability equal  *    to mutation probability * Input parameters: freezeMask[noOfDecisionVariables] * Output: None * Functions Invoked: myRandom::boundedRandom(Min, Max) *========================================================= */void Chromosome::mutateMinMax (const int *freezeMask) {  int position;  // select a gene position randomly  position = myRandom.boundedIntegerRandom(0,globalSetup->noOfDecisionVariables);  // If the chosen gene is not frozen (only for SGA)   if(((globalSetup->gaType == SGA)&&(freezeMask[position] == OFF))||(globalSetup->gaType == NSGA)) {    //Flip a biased coin (bias = mutation probability)    if(myRandom.flip(globalSetup->mutationProbability)) {      //Replace the selected gene with a uniform random variate within gene ranges      genes[position] = myRandom.boundedRandom(globalSetup->variableRanges[position][0],globalSetup->variableRanges[position][1]);      //If the gene is an integer round it off      if(globalSetup->variableTypes[position] == Integer)	genes[position] = int(genes[position]+0.5);    }  }}
/* *========================================================== * Function Name: mutateNormal * Function Task: Genewise mutation. To each of the gene *    add a value sampled from a normal distribution with *    zero mean and a user specified standard deviation. *    if the gene is not frozen. Perform this process with a  *    probability equal to mutation probability * Input parameters: freezeMask[noOfDecisionVariables] *                   globalSetup::mutationParameters * Output: None * Functions Invoked: myRandom::normalRandom(standardDeviation) *========================================================= */void Chromosome::mutateNormal(const int *freezeMask) {  int ii;  //Copy the standard deviations from global setup  //For each decision variable  for (ii = 0; ii < globalSetup->noOfDecisionVariables; ii++) {    // If the GA type is SGA then check if freeze mask of the variable is off    if(((globalSetup->gaType == SGA)&&(freezeMask[ii] == OFF))||(globalSetup->gaType == NSGA)) {      //Flip a biased coin with mutation probability      if(myRandom.flip(globalSetup->mutationProbability)) {	// Added a random guassian noise to the variable value	genes[ii] = genes[ii] + myRandom.normalRandom(((double *)globalSetup->mutationParameters)[ii]);	// If the variable is an integer, round it to closest integer	if(globalSetup->variableTypes[ii]==Integer)	  genes[ii] = int(genes[ii]+0.5);	//If the variables are beyond the range then perturb it only till the range	if(genes[ii] > globalSetup->variableRanges[ii][1]) genes[ii] = globalSetup->variableRanges[ii][1];	if(genes[ii] < globalSetup->variableRanges[ii][0]) genes[ii] = globalSetup->variableRanges[ii][0];      }    }  }}/* *========================================================== * Function Name: mutatePolynomial * Function Task: Polynomial mutation. This procedure is identical to simulated binary crossover, except that the slope between the current gene value and the gene range (either minimum or maximum whichever is closer to the gene value). * Input parameters: freezeMask[noOfDecisionVariables] *                   globalSetup::mutationParameters * Output: None * Functions Invoked: myRandom::random01() *                    myRandom::flip(double probability) *                    myRandom::boundedRandom(Min, Max) * Reference: Deb, K., & Agarwal, R.B. (1995) "Simulated Binary Crossover for Continuous Search Space", Complex Systems. 9. pp. 115-148. (TCGA No. 05896). *            Deb, K., & Kumar, A. (1995) "Real-Coded Genetic Algorithms with Simulated Binary Crossover: Studies on Multimodal and Multiobjective Problems", Complex Systems. 9. pp. 431-454. (TCGA No. 05897). *========================================================= */void Chromosome::mutatePolynomial(const int *freezeMask) {  int ii;  double geneMin, geneMax, rndNo;  double delta, value, deltaq;  int etaM; //The order of the polynomial  if(globalSetup->mutationParameters == NULL)    etaM = 20;  else    etaM = ((int *)globalSetup->mutationParameters)[0];  // For each variable do the following  for(ii = 0; ii < globalSetup->noOfDecisionVariables; ii++) {    // If the GA type is SGA check if the freeze mask for the current variable is off    if(((globalSetup->gaType == SGA)&&(freezeMask[ii] == OFF))||(globalSetup->gaType == NSGA)) {      // Flip a biased coin with mutation probability      if(myRandom.flip(globalSetup->mutationProbability)) {	geneMin = globalSetup->variableRanges[ii][0];	geneMax = globalSetup->variableRanges[ii][1];	// If the gene value is greater than the minimum	if(genes[ii] > geneMin) {	  // if the gene value is closer to the minimum, compute the slope with the gene value and minimum as points	  if((genes[ii]-geneMin) < (geneMax-genes[ii]))	    delta = (genes[ii] - geneMin)/(geneMax-geneMin);	  // if the gene value is closer to the maximum, compute the slope with the gene value and maximum as points 	  else delta = (geneMax - genes[ii])/(geneMax-geneMin);	  rndNo = myRandom.random01();	  if(rndNo <= 0.5) {	    value = 2.0*rndNo + (1.0 - 2.0*rndNo)*pow(1.0-delta,(double)(etaM+1));	    deltaq = pow(value, 1.0/((double)(etaM+1))) - 1.0;	  }	  else {	    value = 2.0*(1.0-rndNo) + 2.0*(rndNo - 0.5)*pow(1.0-delta,(double)(etaM+1));	    deltaq = 1.0 - pow(value, 1.0/((double)(etaM+1)));	  }	  genes[ii] = genes[ii] + deltaq*(geneMax - geneMin);	}	// If the gene value is less than the minimum, assign a value sampled from a uniform distribution between the gene ranges.	else genes[ii] = myRandom.boundedRandom(geneMin, geneMax);	// If the gene is an integer, then round it off to the closest integer	if(globalSetup->variableTypes[ii] == Integer) genes[ii] = int(genes[ii]+0.5);	// If the gene value is not within the range then bounded either to its minimum or maximum value	if(genes[ii] > globalSetup->variableRanges[ii][1]) genes[ii] = globalSetup->variableRanges[ii][1];	if(genes[ii] < globalSetup->variableRanges[ii][0]) genes[ii] = globalSetup->variableRanges[ii][0];      }    }  }}/* *========================================================== * Function Name: mutatePolynomial * Function Task: Polynomial mutation. Mutates a given variable *    using polynomial mutation. This routine is used by local  *    search method (simplex and complex) to create initial  *    points near a given point. * Input parameters: int index * Input range: [0, noOfDecisionVariables) * Output: None * Functions Invoked: myRandom::random01() * Reference: Deb, K., & Agarwal, R.B. (1995) "Simulated Binary Crossover for Continuous Search Space", Complex Systems. 9. pp. 115-148. (TCGA No. 05896). *            Deb, K., & Kumar, A. (1995) "Real-Coded Genetic Algorithms with Simulated Binary Crossover: Studies on Multimodal and Multiobjective Problems", Complex Systems. 9. pp. 431-454. (TCGA No. 05897). *========================================================= */void Chromosome::mutatePolynomial(const int index) {  double geneMin, geneMax, rndNo;  double delta, value, deltaq;  int etaM; //The order of the polynomial  etaM = ((int *)globalSetup->mutationParameters)[0];  geneMin = globalSetup->variableRanges[index][0];  geneMax = globalSetup->variableRanges[index][1];  if(genes[index] > geneMin) {    if((genes[index]-geneMin) < (geneMax-genes[index]))       delta = (genes[index] - geneMin)/(geneMax-geneMin);    else delta = (geneMax - genes[index])/(geneMax-geneMin);    rndNo = myRandom.random01();    if(rndNo <= 0.5) {      value = 2.0*rndNo + (1.0 - 2.0*rndNo)*pow(1.0-delta,(double)(etaM+1));      deltaq = pow(value, 1.0/((double)(etaM+1))) - 1.0;    }    else {      value = 2.0*(1.0-rndNo) + 2.0*(rndNo - 0.5)*pow(1.0-delta,(double)(etaM+1));      deltaq = 1.0 - pow(value, 1.0/((double)(etaM+1)));    }    genes[index] = genes[index] + deltaq*(geneMax - geneMin);  }  else genes[index] = myRandom.boundedRandom(geneMin, geneMax);  if(globalSetup->variableTypes[index] == Integer) genes[index] = int(genes[index]+0.5);  if((genes[index] > geneMax) || (genes[index] < geneMin))    genes[index] = myRandom.boundedRandom(geneMin, geneMax);}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人7777| 99久久亚洲一区二区三区青草| 精品国产欧美一区二区| 精品三级在线观看| 精品影视av免费| 国产欧美一区二区三区鸳鸯浴 | 日韩av一区二区在线影视| 欧美一级欧美三级在线观看| 久久99国产精品久久99| 日本一区二区三区电影| 91视频一区二区| 天天做天天摸天天爽国产一区| 日韩欧美国产精品一区| 国产白丝精品91爽爽久久| 18成人在线视频| 欧美日本在线观看| 国产米奇在线777精品观看| 中文字幕在线视频一区| 欧美性xxxxx极品少妇| 麻豆成人在线观看| 国产精品免费看片| 欧美日韩精品欧美日韩精品| 久99久精品视频免费观看| 成人听书哪个软件好| 亚洲视频在线观看三级| 制服.丝袜.亚洲.中文.综合| 国产精品主播直播| 亚洲综合色在线| 欧美sm美女调教| 91在线观看下载| 青椒成人免费视频| 国产精品的网站| 欧美精品色综合| 成人免费福利片| 日韩va亚洲va欧美va久久| 国产喷白浆一区二区三区| 欧美伊人久久久久久久久影院 | 99久久综合色| 日韩电影一区二区三区| 国产精品色哟哟网站| 欧美日本韩国一区| 成人精品电影在线观看| 日韩国产成人精品| 国产精品日日摸夜夜摸av| 全部av―极品视觉盛宴亚洲| 久久精品欧美一区二区三区麻豆| 色国产综合视频| 国产一区二区在线视频| 亚洲免费观看在线观看| 久久亚洲二区三区| 欧美精品久久一区二区三区| 成人免费高清在线| 麻豆一区二区在线| 亚洲一级不卡视频| 欧美激情艳妇裸体舞| 欧美一区二区视频在线观看2022| 99精品一区二区| 国产中文字幕精品| 性久久久久久久久久久久 | 久久久久久夜精品精品免费| 欧美在线观看一二区| 国产精品自在在线| 日韩和欧美一区二区| 亚洲人被黑人高潮完整版| 国产午夜亚洲精品羞羞网站| 欧美丰满少妇xxxxx高潮对白| 91在线视频免费91| 国产成人在线观看| 久久se这里有精品| 石原莉奈在线亚洲三区| 色狠狠一区二区| 丁香亚洲综合激情啪啪综合| 另类欧美日韩国产在线| 亚洲国产日韩在线一区模特 | 久久综合久久鬼色中文字| 欧美日韩美少妇| 色婷婷精品大在线视频| eeuss鲁片一区二区三区 | 日韩三级免费观看| 欧美日韩成人高清| 在线视频欧美精品| 91美女片黄在线| 成人福利在线看| 国产suv精品一区二区三区| 久久99九九99精品| 免费在线观看一区| 日韩和欧美一区二区| 亚洲va欧美va天堂v国产综合| 亚洲免费av高清| 1024成人网| 中文字幕一区二区三区视频 | 亚洲午夜免费电影| 91福利资源站| 91啪九色porn原创视频在线观看| 国产1区2区3区精品美女| 国产一区二区美女诱惑| 狠狠色丁香婷婷综合| 精品一区二区三区视频在线观看| 免费观看日韩av| 青草av.久久免费一区| 日本va欧美va瓶| 日本视频在线一区| 免费在线观看视频一区| 日本欧美一区二区| 麻豆传媒一区二区三区| 久久疯狂做爰流白浆xx| 麻豆成人免费电影| 精彩视频一区二区三区| 极品少妇一区二区三区精品视频 | 激情小说亚洲一区| 精品中文字幕一区二区小辣椒| 久久国产三级精品| 国产一区二区主播在线| 国产成人av福利| 成人理论电影网| 99精品热视频| 在线观看一区二区视频| 欧美三级欧美一级| 91精品在线免费观看| 日韩精品影音先锋| 久久影院视频免费| 国产精品女主播av| 亚洲精品视频免费看| 亚洲成精国产精品女| 日韩电影网1区2区| 精品亚洲国内自在自线福利| 国产剧情av麻豆香蕉精品| 成人一区二区三区中文字幕| 99久久综合狠狠综合久久| 色老汉一区二区三区| 婷婷久久综合九色综合绿巨人| 日韩激情视频在线观看| 国模娜娜一区二区三区| 丁香一区二区三区| 色噜噜久久综合| 欧美精品日韩一区| 久久综合九色综合欧美亚洲| 中文一区在线播放| 亚洲综合免费观看高清完整版| 视频一区二区三区入口| 国产一区二区不卡| 91丨九色丨国产丨porny| 欧美色精品天天在线观看视频| 制服视频三区第一页精品| 久久久久久久久免费| 最新热久久免费视频| 婷婷国产在线综合| 国内精品写真在线观看| 99久久精品久久久久久清纯| 欧美日韩一区二区三区在线看| 欧美大片在线观看| 国产精品传媒入口麻豆| 三级一区在线视频先锋| 国产精品白丝av| 欧美午夜在线观看| 26uuu国产在线精品一区二区| 成人免费在线视频| 日韩高清电影一区| 成人午夜电影小说| 欧美日韩国产综合久久| 国产亚洲精品福利| 亚洲一区二区三区在线| 国产午夜亚洲精品羞羞网站| 亚洲精品第一国产综合野| 麻豆精品视频在线| 91麻豆国产香蕉久久精品| 欧美一区二区在线免费播放| 国产精品久久久久久福利一牛影视| 亚洲成人av电影| 成人精品免费看| 欧美一区二区三区视频| 中文字幕色av一区二区三区| 蜜臀99久久精品久久久久久软件| av激情综合网| 日韩欧美电影一区| 亚洲精品写真福利| 国产精品一区专区| 欧美日韩一级片在线观看| 欧美国产一区在线| 日韩成人精品视频| 色综合激情久久| 久久久久久久一区| 日韩精品电影一区亚洲| 91视频免费观看| 国产天堂亚洲国产碰碰| 日韩av不卡在线观看| 91丝袜美女网| 国产欧美日韩另类一区| 日本亚洲三级在线| 在线一区二区视频| 国产精品女人毛片| 久久99精品国产.久久久久久| 欧美在线免费播放| 国产精品久久久久久久久免费樱桃 | 国产三级精品三级| 免费观看日韩av| 欧美中文一区二区三区| 国产精品伦理一区二区| 久久se精品一区二区| 欧美日韩大陆在线|