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

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

?? 電梯動(dòng)力學(xué)參數(shù)寫(xiě)的簡(jiǎn)單遺傳算法(程序帶目標(biāo)函數(shù)值、適應(yīng)度值計(jì)算,但是我的適應(yīng)度函數(shù)因?yàn)槟繕?biāo)函數(shù)的計(jì)算很特殊,一起放在了程序外面計(jì)算,在此不提供)。.txt

?? 電梯動(dòng)力學(xué)參數(shù)寫(xiě)的簡(jiǎn)單遺傳算法(程序帶目標(biāo)函數(shù)值、適應(yīng)度值計(jì)算
?? TXT
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
頭文件:

// CMVSOGA.h : main header file for the CMVSOGA.cpp
////////////////////////////////////////////////////////////////////
/////                                                          /////
/////                沈陽(yáng)航空工業(yè)學(xué)院 動(dòng)力工程系               /////
/////                       作者:李立新                       /////
/////                   完成日期:2006.08.02                   /////
/////                                                          /////
////////////////////////////////////////////////////////////////////
// 本來(lái)想使用鏈表里面套鏈表的,程序調(diào)試比較麻煩,改為種群用鏈表表示
//染色體固定為16的方法。

#if !defined(AFX_CMVSOGA_H__45BECA_61EB_4A0E_9746_9A94D1CCF767__INCLUDED_)
#define AFX_CMVSOGA_H__45BECA_61EB_4A0E_9746_9A94D1CCF767__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Afxtempl.h"
#define variablenum 16
class CMVSOGA
{
public:
 CMVSOGA();
 void selectionoperator();
 void crossoveroperator();
 void mutationoperator();
 void initialpopulation(int, int ,double ,double,double *,double *);           //種群初始化
 void generatenextpopulation();          //生成下一代種群
 void evaluatepopulation();           //評(píng)價(jià)個(gè)體,求最佳個(gè)體
 void calculateobjectvalue();          //計(jì)算目標(biāo)函數(shù)值
 void calculatefitnessvalue();          //計(jì)算適應(yīng)度函數(shù)值
 void findbestandworstindividual();         //尋找最佳個(gè)體和最差個(gè)體
 void performevolution();   
 void GetResult(double *);
 void GetPopData(double **);
 void SetValueData(double *);
 void maxandexpectation();
private:
 struct individual
 {
  double chromosome[variablenum];         //染色體編碼長(zhǎng)度應(yīng)該為變量的個(gè)數(shù)
  double value;         
  double fitness;             //適應(yīng)度
 };
 double variabletop[variablenum];         //變量值
 double variablebottom[variablenum];         //變量值
 int popsize;              //種群大小
// int generation;              //世代數(shù)
 int best_index;  
 int worst_index;
 double crossoverrate;            //交叉率
 double mutationrate;            //變異率
 int maxgeneration;             //最大世代數(shù)
 struct individual bestindividual;         //最佳個(gè)體
 struct individual worstindividual;         //最差個(gè)體
 struct individual current;              //當(dāng)前個(gè)體
 struct individual current1;              //當(dāng)前個(gè)體
 struct individual currentbest;          //當(dāng)前最佳個(gè)體
 CList <struct individual,struct individual &> population;   //種群
 CList <struct individual,struct individual &> newpopulation;  //新種群
 CList <double,double> cfitness;          //存儲(chǔ)適應(yīng)度值
// double maxfitness;
// double minfitness;
// double avefitness;
 //怎樣使鏈表的數(shù)據(jù)是一個(gè)結(jié)構(gòu)體????主要是想把種群作成鏈表。節(jié)省空間。
};
#endif

執(zhí)行文件

// CMVSOGA.cpp : implementation file
//

#include "stdafx.h"
#include "CMVSOGA.h"
#include "math.h"
#include "stdlib.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMVSOGA.cpp

void CMVSOGA::initialpopulation(int ps, int gen ,double cr ,double mr,double *xtop,double *xbottom)  //第一步,初始化。
{
 int i ,j;
 popsize=ps ;
 maxgeneration=gen;
 crossoverrate=cr;
 mutationrate =mr;
 for (i=0;i<variablenum;i++)
 {
  variabletop[i] =xtop[i];
  variablebottom[i] =xbottom[i];
 }
 srand( (unsigned)time( NULL ) );
 for(i=0;i<popsize;i++)
 {
  for (j=0;j<variablenum ;j++)
  {
   current.chromosome[j]=double(rand()%1000)/1000*(variabletop[j]-variablebottom[j])+variablebottom[j];
  }
  current.fitness=0;
  current.value=0;
  population.InsertAfter(population.FindIndex(i),current);//除了初始化使用insertafter外,其他的用setat命令。
 }
}
void CMVSOGA::generatenextpopulation()//第三步,生成下一代。
{
 selectionoperator();
 crossoveroperator();
 mutationoperator();
}
void CMVSOGA::evaluatepopulation()   //第二步,評(píng)價(jià)個(gè)體,求最佳個(gè)體
{
// calculateobjectvalue();
 calculatefitnessvalue();   //在此步中因該按適應(yīng)度值進(jìn)行排序.鏈表的排序.
 findbestandworstindividual();
}
void CMVSOGA:: calculateobjectvalue()  //計(jì)算函數(shù)值,應(yīng)該由外部函數(shù)實(shí)現(xiàn)。主要因?yàn)槟繕?biāo)函數(shù)很復(fù)雜。
{
 int i,j;
    double x[variablenum];
 for (i=0; i<popsize; i++)
 {
  current=population.GetAt(population.FindIndex(i));  
  current.value=0;
  //使用外部函數(shù)進(jìn)行,在此只做結(jié)果的傳遞。
  for (j=0;j<variablenum;j++)
  {
   x[j]=current.chromosome[j];
   current.value=current.value+(j+1)*pow(x[j],4);
  }
  ////使用外部函數(shù)進(jìn)行,在此只做結(jié)果的傳遞。
  population.SetAt(population.FindIndex(i),current);
 }

}

void CMVSOGA::mutationoperator()  //對(duì)于浮點(diǎn)數(shù)編碼,變異算子的選擇具有決定意義。
          //需要guass正態(tài)分布函數(shù),生成方差為sigma,均值為浮點(diǎn)數(shù)編碼值c。
{
 int i,j;
 double r1,r2,p,sigma;//sigma高斯變異參數(shù)
 sigma=0.5;
 for (i=0;i<popsize;i++)
 {
  current=population.GetAt(population.FindIndex(i));
  //生成均值為current.chromosome,方差為sigma的高斯分布數(shù)
  srand((unsigned int) time (NULL));
  for(j=0; j<variablenum; j++)
  {
   r1 =double( rand()%1001)/1000;
   r2 = double(rand()%1001)/1000;
   p=double(rand()%1000)/1000;
   if(p<mutationrate)
   {
    //高斯變異
    current.chromosome[j] = (current.chromosome[j] 
     + sigma*sqrt(-2*log(r1)/0.4323)*sin(2*3.1415926*r2));
    if (current.chromosome[j]>variabletop[j])
    {
     current.chromosome[j]=variabletop[j];
    }
    if (current.chromosome[j]<variablebottom [j])
    {
     current.chromosome[j]=variablebottom [j];
    }
   }
  }
  population.SetAt(population.FindIndex(i),current);
 }
}
void CMVSOGA::selectionoperator()   //從當(dāng)前個(gè)體中按概率選擇新種群,應(yīng)該加一個(gè)復(fù)制選擇,提高種群的平均適應(yīng)度
   //第二次循環(huán)出錯(cuò)
{
 int i,j,pindex=0;
 double p,pc,sum=0;
 i=0;
 j=0;
 pindex=0;
 p=0;
 pc=0;
 sum=0.001;
 newpopulation.RemoveAll();
 cfitness.RemoveAll();
  //鏈表排序
// population.SetAt (population.FindIndex(0),current); //多余代碼
 for (i=1;i<popsize;i++)
 { 
  current=population.GetAt(population.FindIndex(i));
  for(j=0;j<i;j++)   //從小到大用before排列。
  {
   current1=population.GetAt(population.FindIndex(j));//臨時(shí)借用變量
   if(current.fitness<=current1.fitness)  
   {
    population.InsertBefore(population.FindIndex(j),current);
    population.RemoveAt(population.FindIndex(i+1));
    break;
   }
  }
//  m=population.GetCount();
 }
 //鏈表排序
 for(i=0;i<popsize;i++)//求適應(yīng)度總值,以便歸一化,是已經(jīng)排序好的鏈。
 {
  current=population.GetAt(population.FindIndex(i));
  sum+=current.fitness;
 }
 for(i=0;i<popsize; i++)//歸一化
 {
  current=population.GetAt(population.FindIndex(i));
  current.fitness=current.fitness/sum;
  cfitness.InsertAfter (cfitness .FindIndex(i),current.fitness);
 }
 
 for(i=1;i<popsize; i++)//概率值從小到大;
 {
  current.fitness=cfitness.GetAt (cfitness.FindIndex(i-1))
   +cfitness.GetAt(cfitness.FindIndex(i));   //歸一化
  cfitness.SetAt (cfitness .FindIndex(i),current.fitness);
  population.SetAt(population.FindIndex(i),current);
 }
 for (i=0;i<popsize;)//輪盤賭概率選擇。本段還有問(wèn)題。
 {
  p=double(rand()%1000)/1000+0.0001;  //隨機(jī)生成概率
  pindex=0;  //遍歷索引
  pc=cfitness.GetAt(cfitness .FindIndex(0));
  while(p>=pc&&pindex<popsize) //問(wèn)題所在。
  {
   pc=cfitness.GetAt(cfitness .FindIndex(pindex));
   pindex++;
  }
  //必須是從index~popsize,選擇高概率的數(shù)。即大于概率p的數(shù)應(yīng)該被選擇,選擇不滿則進(jìn)行下次選擇。
  for (j=popsize-1;j<pindex&&i<popsize;j--)
  {
   newpopulation.InsertAfter (newpopulation.FindIndex(0),
    population.GetAt (population.FindIndex(j)));
   i++;
  }
 }
 for(i=0;i<popsize; i++)
 {
  population.SetAt (population.FindIndex(i),
   newpopulation.GetAt (newpopulation.FindIndex(i)));
 }
// j=newpopulation.GetCount();
// j=population.GetCount();
 newpopulation.RemoveAll();
}

//current   變化后,以上沒(méi)有問(wèn)題了。


void CMVSOGA:: crossoveroperator()   //非均勻算術(shù)線性交叉,浮點(diǎn)數(shù)適用,alpha ,beta是(0,1)之間的隨機(jī)數(shù)
          //對(duì)種群中兩兩交叉的個(gè)體選擇也是隨機(jī)選擇的。也可取beta=1-alpha;
          //current的變化會(huì)有一些改變。
{
 int i,j;
 double alpha,beta;
 CList <int,int> index;
 int point,temp;
 double p;
 srand( (unsigned)time( NULL ) );
 for (i=0;i<popsize;i++)//生成序號(hào)
 {

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品免费看片| 国产美女一区二区| 亚洲韩国一区二区三区| 一区二区三区在线观看网站| 亚洲欧洲www| 日韩久久一区二区| 亚洲视频图片小说| 亚洲精品视频在线看| 午夜精品福利一区二区三区av | 久久99精品久久久久久动态图| 天堂蜜桃一区二区三区| 日韩专区一卡二卡| 全国精品久久少妇| 久久精品国产精品亚洲精品 | 一本大道久久a久久综合| 99精品国产视频| 在线观看视频欧美| 欧美三级韩国三级日本一级| 91精品国产欧美日韩| 欧美变态口味重另类| 国产欧美日韩三区| 亚洲男人电影天堂| 午夜精品久久久久久久久久| 免费精品视频最新在线| 国产精品888| 日本道免费精品一区二区三区| 欧美性受xxxx黑人xyx| 日韩一级免费观看| 国产精品免费视频一区| 亚洲自拍偷拍欧美| 久久99精品久久久久久动态图| 国产成人av电影在线播放| 99re这里只有精品首页| 欧美狂野另类xxxxoooo| 亚洲精品在线免费观看视频| 国产精品久久久99| 视频在线观看一区| 国产精品77777| 欧美婷婷六月丁香综合色| 日韩欧美中文字幕制服| 国产精品久久毛片| 爽好久久久欧美精品| 国产成人av一区二区| 欧美色综合网站| 久久久久亚洲蜜桃| 亚洲一区二区精品视频| 国内精品嫩模私拍在线| 色久综合一二码| 欧美精品一区二区三区蜜桃| 亚洲欧美日韩系列| 国内精品第一页| 欧美性生活久久| 中文字幕+乱码+中文字幕一区| 午夜av一区二区三区| 盗摄精品av一区二区三区| 欧美一区永久视频免费观看| 国产精品美女一区二区在线观看| 三级不卡在线观看| gogo大胆日本视频一区| 日韩欧美一区二区视频| 亚洲欧美经典视频| 国产综合久久久久影院| 欧美色成人综合| 国产精品毛片久久久久久| 美女网站一区二区| 欧美亚洲高清一区二区三区不卡| 国产日本欧洲亚洲| 久久精工是国产品牌吗| 欧美视频日韩视频在线观看| 欧美激情一区二区| 国精产品一区一区三区mba视频| 一本色道久久综合亚洲91| 久久先锋影音av鲁色资源| 午夜久久电影网| www.欧美亚洲| 久久精品人人做人人爽人人| 免费观看在线综合| 欧美另类高清zo欧美| 一区二区三区在线免费观看| 成人免费视频一区| 国产欧美视频一区二区| 精品在线播放免费| 欧美日韩高清影院| 一区二区三区四区不卡视频| 不卡在线观看av| 国产亚洲欧美一区在线观看| 精品综合久久久久久8888| 欧美精品乱人伦久久久久久| 一区二区三区中文字幕电影| 91丝袜国产在线播放| 国产精品久久久久久久久久久免费看| 麻豆精品蜜桃视频网站| 欧美一区二区三区公司| 午夜一区二区三区视频| 欧洲av一区二区嗯嗯嗯啊| 最近中文字幕一区二区三区| 成人免费的视频| 亚洲国产精华液网站w | 精品久久99ma| 蜜桃在线一区二区三区| 欧美一级高清大全免费观看| 日韩在线播放一区二区| 欧美丰满嫩嫩电影| 美女在线观看视频一区二区| 91精品午夜视频| 在线综合视频播放| 天天综合色天天综合| 3d动漫精品啪啪| 日本美女一区二区三区视频| 日韩欧美中文字幕制服| 精品一区二区国语对白| 久久精品视频网| aaa欧美色吧激情视频| 亚洲精品久久久蜜桃| 欧美午夜一区二区三区| 视频一区中文字幕国产| 91精品国产91久久久久久一区二区 | 香蕉成人伊视频在线观看| 91精品国产综合久久福利软件| 日本不卡不码高清免费观看| 欧美电视剧免费全集观看| 国产一区二区三区免费看| 国产亚洲欧美色| 色天天综合色天天久久| 亚洲一卡二卡三卡四卡五卡| 51精品秘密在线观看| 精油按摩中文字幕久久| 中国色在线观看另类| 色狠狠桃花综合| 男女激情视频一区| 久久精品亚洲精品国产欧美kt∨ | 精品欧美一区二区久久| 粉嫩蜜臀av国产精品网站| 亚洲欧美日韩小说| 日韩欧美一二三| hitomi一区二区三区精品| 亚洲一二三四区| 精品99一区二区| 一区二区三区在线视频免费 | 一区在线观看免费| 欧美视频一区二| 国产在线一区观看| 亚洲日本在线看| 欧美v日韩v国产v| 99久久免费国产| 日韩av一二三| 国产精品久久久久aaaa樱花| 777奇米四色成人影色区| 成人激情视频网站| 日韩高清不卡在线| 1024成人网色www| 欧美α欧美αv大片| 一本久久精品一区二区| 久久99精品视频| 一区二区三区影院| 久久蜜桃香蕉精品一区二区三区| 日本韩国精品一区二区在线观看| 麻豆成人91精品二区三区| 中文字幕一区二区不卡| 日韩欧美综合在线| 欧洲日韩一区二区三区| 国产精品一品二品| 秋霞午夜av一区二区三区| 亚洲色图在线看| 久久久蜜桃精品| 欧美一区二区在线免费播放| 99re6这里只有精品视频在线观看| 另类的小说在线视频另类成人小视频在线| 亚洲欧洲成人精品av97| 精品国产区一区| 91麻豆精品久久久久蜜臀| 色综合久久精品| 高清不卡在线观看av| 久久精品国产亚洲高清剧情介绍 | 成人av综合一区| 久久99精品久久久久婷婷| 亚洲国产日产av| 日本一二三不卡| 亚洲精品一区在线观看| 欧美午夜精品久久久久久超碰| fc2成人免费人成在线观看播放| 久久国产人妖系列| 亚洲成av人片一区二区| 亚洲男同性恋视频| 中文字幕中文在线不卡住| 久久亚洲欧美国产精品乐播| 日韩欧美精品三级| 欧美丰满嫩嫩电影| 欧美日韩国产美| 欧美午夜精品一区二区蜜桃| 色综合视频在线观看| bt7086福利一区国产| 国产精品99久久久久久久女警| 久久99国产乱子伦精品免费| 裸体在线国模精品偷拍| 午夜私人影院久久久久| 午夜精品一区二区三区电影天堂| 一区二区在线观看视频在线观看| 综合中文字幕亚洲| 亚洲精品成人精品456|