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

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

?? cmvsoga.txt

?? 遺傳算法源程序(C++), 無壓縮密碼
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
修改之后的源程序!

// CMVSOGA.h : main header file for the CMVSOGA.cpp
////////////////////////////////////////////////////////////////////
/////                                                          /////
/////                沈陽航空工業(yè)學(xué)院 動力工程系               /////
/////                       作者:李立新                       /////
/////                   完成日期:2006.08.02                   /////
/////                   修改日期:2007.04.10                                       /////
////////////////////////////////////////////////////////////////////

#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 14
class CMVSOGA
{
public:
 CMVSOGA();
 ~CMVSOGA();
 void selectionoperator();
 void crossoveroperator();
 void mutationoperator();
 void initialpopulation(int, int ,double ,double,double *,double *);           //種群初始化
 void generatenextpopulation();          //生成下一代種群
 void evaluatepopulation();           //評價個體,求最佳個體
 void calculateobjectvalue();          //計算目標函數(shù)值
 void calculatefitnessvalue();          //計算適應(yīng)度函數(shù)值
 void findbestandworstindividual();         //尋找最佳個體和最差個體
 void performevolution();   
 void GetResult(double *);
 void GetPopData(CList <double,double>&);
 void SetFitnessData(CList <double,double>&,CList <double,double>&,CList <double,double>&);
private:
 struct individual
 {
  double chromosome[variablenum];         //染色體編碼長度應(yīng)該為變量的個數(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;         //最佳個體
 struct individual worstindividual;         //最差個體
 struct individual current;              //當(dāng)前個體
 struct individual current1;              //當(dāng)前個體
 struct individual currentbest;          //當(dāng)前最佳個體
 CList <struct individual,struct individual &> population;   //種群
 CList <struct individual,struct individual &> newpopulation;  //新種群
 CList <double,double> cfitness;          //存儲適應(yīng)度值
 //怎樣使鏈表的數(shù)據(jù)是一個結(jié)構(gòu)體????主要是想把種群作成鏈表。節(jié)省空間。
};
#endif

 

執(zhí)行文件:

// CMVSOGA.cpp : implementation file
//

#include "stdafx.h"
//#include "vld.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
CMVSOGA::CMVSOGA()
{
 best_index=0;  
 worst_index=0;
 crossoverrate=0;            //交叉率
 mutationrate=0;            //變異率
 maxgeneration=0;
}
CMVSOGA::~CMVSOGA()
{
 best_index=0;  
 worst_index=0;
 crossoverrate=0;            //交叉率
 mutationrate=0;            //變異率
 maxgeneration=0;
 population.RemoveAll();   //種群
 newpopulation.RemoveAll();  //新種群
 cfitness.RemoveAll(); 
}
void CMVSOGA::initialpopulation(int ps, int gen ,double cr ,double mr,double *xtop,double *xbottom)  //第一步,初始化。
{
 //應(yīng)該采用一定的策略來保證遺傳算法的初始化合理,采用產(chǎn)生正態(tài)分布隨機數(shù)初始化?選定中心點為多少?
 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 ) );  //尋找一個真正的隨機數(shù)生成函數(shù)。
 for(i=0;i<popsize;i++)
 { 
  for (j=0;j<variablenum ;j++)
  {
   current.chromosome[j]=double(rand()%10000)/10000*(variabletop[j]-variablebottom[j])+variablebottom[j];
  }
  current.fitness=0;
  current.value=0;
  population.InsertAfter(population.FindIndex(i),current);//除了初始化使用insertafter外,其他的用setat命令。
 }
}
void CMVSOGA::generatenextpopulation()//第三步,生成下一代。
{
 //srand( (unsigned)time( NULL ) );
 selectionoperator();
 crossoveroperator();
 mutationoperator();
}
//void CMVSOGA::evaluatepopulation()   //第二步,評價個體,求最佳個體
//{
// calculateobjectvalue();
// calculatefitnessvalue();   //在此步中因該按適應(yīng)度值進行排序.鏈表的排序.
// findbestandworstindividual();
//}
void CMVSOGA:: calculateobjectvalue()  //計算函數(shù)值,應(yīng)該由外部函數(shù)實現(xiàn)。主要因為目標函數(shù)很復(fù)雜。
{
 int i,j;
    double x[variablenum];
 for (i=0; i<popsize; i++)
 {
  current=population.GetAt(population.FindIndex(i));  
  current.value=0;
  //使用外部函數(shù)進行,在此只做結(jié)果的傳遞。
  for (j=0;j<variablenum;j++)
  {
   x[j]=current.chromosome[j];
   current.value=current.value+(j+1)*pow(x[j],4);
  }
  ////使用外部函數(shù)進行,在此只做結(jié)果的傳遞。
  population.SetAt(population.FindIndex(i),current);
 }
}

void CMVSOGA::mutationoperator()  //對于浮點數(shù)編碼,變異算子的選擇具有決定意義。
          //需要guass正態(tài)分布函數(shù),生成方差為sigma,均值為浮點數(shù)編碼值c。
{
// srand((unsigned int) time (NULL));
 int i,j;
 double r1,r2,p,sigma;//sigma高斯變異參數(shù)
 
 for (i=0;i<popsize;i++)
 {
  current=population.GetAt(population.FindIndex(i));

  //生成均值為current.chromosome,方差為sigma的高斯分布數(shù)
  for(j=0; j<variablenum; j++)
  {   
   r1 = double(rand()%10001)/10000;
   r2 = double(rand()%10001)/10000;
   p = double(rand()%10000)/10000;
   if(p<mutationrate)
   {
    double sign;
    sign=rand()%2;
    sigma=0.01*(variabletop[j]-variablebottom [j]);
    //高斯變異
    if(sign)
    {
     current.chromosome[j] = (current.chromosome[j] 
      + sigma*sqrt(-2*log(r1)/0.4323)*sin(2*3.1415926*r2));
    }
    else
    {
     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]=double(rand()%10000)/10000*(variabletop[j]-variablebottom[j])+variablebottom[j];
    }
    if (current.chromosome[j]<variablebottom [j])
    {
     current.chromosome[j]=double(rand()%10000)/10000*(variabletop[j]-variablebottom[j])+variablebottom[j];
    }
   }
  }
  population.SetAt(population.FindIndex(i),current);
 }
}
void CMVSOGA::selectionoperator()   //從當(dāng)前個體中按概率選擇新種群,應(yīng)該加一個復(fù)制選擇,提高種群的平均適應(yīng)度
{
 int i,j,pindex=0;
 double p,pc,sum;
 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));//臨時借用變量
   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)); //取出來的值出現(xiàn)問題.
  sum+=current.fitness;
 }
 for(i=0;i<popsize; i++)//歸一化
 {
  current=population.GetAt(population.FindIndex(i)); //population 有值,為什么取出來的不正確呢??

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91蜜桃网址入口| 国产盗摄一区二区三区| 欧美视频一区二区三区| 午夜视频一区在线观看| 日韩一区二区影院| 男男成人高潮片免费网站| 欧美不卡一区二区| 国产精品白丝av| 日韩一区在线看| 欧洲国产伦久久久久久久| 日韩国产在线一| 亚洲精品一区二区三区香蕉 | 色综合久久66| 亚洲国产精品久久艾草纯爱| 91精品国产美女浴室洗澡无遮挡| 人禽交欧美网站| 精品日韩欧美在线| 99久久婷婷国产精品综合| 亚洲激情中文1区| 日韩欧美一级片| 成人99免费视频| 亚洲午夜久久久久久久久久久| 欧美丰满少妇xxxbbb| 国产一区二区三区久久久| 亚洲欧洲国产日本综合| 欧美片网站yy| 国产成人aaa| 亚洲mv在线观看| 国产欧美一区二区精品仙草咪| 91在线观看污| 美女网站色91| 一区二区三区**美女毛片| 欧美成人精品1314www| 99精品国产一区二区三区不卡| 亚洲高清不卡在线观看| 国产午夜久久久久| 欧美人xxxx| 97成人超碰视| 激情图片小说一区| 一区二区三区在线播放| 久久久久久久久久久久电影| 色狠狠综合天天综合综合| 韩国成人在线视频| 亚洲午夜免费福利视频| 中文字幕第一区综合| 在线成人午夜影院| 一本色道久久综合亚洲aⅴ蜜桃 | 午夜免费欧美电影| 国产精品美女久久福利网站 | 日韩美一区二区三区| 91蝌蚪porny成人天涯| 国内成人精品2018免费看| 亚洲国产中文字幕| 亚洲黄色av一区| 国产欧美久久久精品影院| 日韩一区国产二区欧美三区| 欧美在线短视频| 亚洲在线视频免费观看| 成人黄色一级视频| 一区二区三区国产| 日韩一区二区免费视频| 国产欧美久久久精品影院| 欧美日韩成人综合天天影院| 99久久精品免费精品国产| 国产精选一区二区三区| 欧美精品日日鲁夜夜添| 久久99精品视频| 亚洲欧美视频在线观看| 4438x亚洲最大成人网| 国产精品系列在线观看| 亚洲国产欧美一区二区三区丁香婷| 欧美一级高清片在线观看| 成人v精品蜜桃久久一区| 香蕉久久一区二区不卡无毒影院| 日韩三级视频中文字幕| 99久久精品免费看| 激情文学综合丁香| 亚洲一二三级电影| 久久精品亚洲国产奇米99| 欧美三级电影网| 国产盗摄视频一区二区三区| 一区二区三区精品| 欧美国产成人在线| 日韩欧美资源站| 日本精品一区二区三区四区的功能| 日韩av午夜在线观看| 中文字幕日韩欧美一区二区三区| 欧美精品丝袜久久久中文字幕| 国产91精品在线观看| 秋霞影院一区二区| 一区二区三区欧美视频| 亚洲国产精品99久久久久久久久| 宅男噜噜噜66一区二区66| 91在线精品一区二区| 久久 天天综合| 三级不卡在线观看| 亚洲精品高清在线| 国产精品久久久久久久蜜臀 | 久久久精品黄色| 欧美一区二区三区视频在线观看| gogogo免费视频观看亚洲一| 精品一区二区免费在线观看| 午夜av一区二区| 亚洲精品成人精品456| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 蜜桃视频一区二区三区在线观看| 亚洲欧美日韩国产中文在线| 国产午夜精品久久久久久免费视| 欧美一二三区在线| 日韩一区二区视频| 91麻豆精品国产综合久久久久久| 欧美图片一区二区三区| 一本久久精品一区二区| 一本大道久久a久久综合| 99国产欧美久久久精品| 国产在线视视频有精品| 另类综合日韩欧美亚洲| 亚洲精品一线二线三线无人区| 91精品免费观看| 欧美日韩的一区二区| 色综合久久中文综合久久97| 色综合天天综合色综合av| 国产高清不卡二三区| 精品一区二区在线视频| 日韩av一区二区在线影视| 亚洲一区二区三区视频在线播放| 久久久天堂av| 精品99999| 欧美成人一区二区三区片免费| 欧美久久久久久久久久| 欧美亚洲国产怡红院影院| 欧美高清hd18日本| 制服丝袜成人动漫| 欧美精品色综合| 精品视频在线看| 在线日韩一区二区| 欧美综合视频在线观看| 欧美日韩在线一区二区| 91成人网在线| 精品欧美黑人一区二区三区| 日韩西西人体444www| 欧美成人一级视频| 精品久久久久久久人人人人传媒| 欧美另类高清zo欧美| 欧美精品色综合| 精品日本一线二线三线不卡| 精品成人一区二区三区四区| 精品国产99国产精品| 国产精品国产a| 亚洲激情图片小说视频| 偷拍与自拍一区| 美腿丝袜在线亚洲一区| thepron国产精品| 欧美最新大片在线看 | 国产精品资源在线| 成av人片一区二区| 这里是久久伊人| 精品理论电影在线| 亚洲国产高清aⅴ视频| 亚洲人一二三区| 六月婷婷色综合| 99久久久国产精品免费蜜臀| 91成人网在线| 精品国产髙清在线看国产毛片| 2021国产精品久久精品| 亚洲国产va精品久久久不卡综合| 男女视频一区二区| 成人午夜视频免费看| 精品视频1区2区| 久久久99久久| 亚洲亚洲精品在线观看| 黄色资源网久久资源365| 9久草视频在线视频精品| 欧美成人伊人久久综合网| 中文字幕在线不卡| 奇米影视一区二区三区| 波多野结衣精品在线| 在线观看国产精品网站| 国产精品嫩草影院com| 亚洲成国产人片在线观看| 国产成人精品免费一区二区| 91网站在线播放| 久久精品视频一区二区| 午夜免费久久看| eeuss鲁片一区二区三区在线观看| 欧美日韩国产一级| 亚洲国产精品精华液网站| 国产精品1区2区| 9191成人精品久久| 国产精品久久777777| 成人免费毛片片v| 日韩欧美国产不卡| 亚洲成av人影院在线观看网| 成人丝袜高跟foot| 欧美一级日韩免费不卡| 亚洲精品中文字幕在线观看| 国产精品一区免费在线观看| 欧美一区二区不卡视频| 日韩不卡一二三区| 在线观看不卡视频|