91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

利用C++語言模擬遺傳算法進行對Rosenbrocks函數的最小值求值。之前自動漲上去的,重新把積分減下來了

資源截圖

代碼片段和文件信息

//?GA_work.cpp?:?此文件包含?“main“?函數。程序執行將在此處開始并結束。
//

#include?“pch.h“
#include?
#include
#include?
#include?
#include?
using?namespace?std;

#define?DIMESIONS?2????//維度N

const?double?Fmax?=?97888.9;

int?best_indexworst_index;
int?gen?=?0;
const?int?M?=?50?T?=?100?s?=?17;//M代表群體大小,一般取20~100;T代表終止進化代數,一般取100~500
const?double?pc?=?0.75?pm?=?0.01;//pc交叉概率,一般取0.4~0.99;pm變異概率,一般取0.0001~0.1
const?double?Umax?=?5.12?Umin?=?-5.12;??//argx[DIMESIONS]在[UminUmax]
double?averagefit[T];
double?min[T];
double?max[T];

struct?population??????//定義每個個體的結構
{
int?x[DIMESIONS][s];??????????//定義編碼長度為17*DIMESIONS位,計算精度為1/10000
double?argx[DIMESIONS];?????//DIMESIONS?個變量的Rosenbrocks函數
double?fit;??????????//每個個體的適應度
double?sumfit;
double?value;
//struct?population?*next;
}p[M]*best=&p[0]*worst=&p[0];


double?bestIndividual?=?Fmax;
double?worstIndividual?=?Fmax;

double?currentBestIndividual?=?Fmax;
double?currentWorstIndividual?=?Fmax;





void?initial();?//初始化函數
void?evalueFitness();//計算適應度
void?select();//選擇復制函數
void?crossOver();//交叉函數
void?mutation();//變異參數
void?decoding();//解碼函數
void?print();//顯示函數
void?FindBestIndividual();
double?RosenbrockFunc(population?t);???//rosenbrocks函數
void?getNextGeneration();
int?setCharCode01();
double?randR(double?a?double?b);???????//在區間(ab)內產生一個隨機數r

/******************????遺傳算法主函數??????????******************/
int?main()???????????//Umax=5.12Umin=-5.12
{
srand((unsigned)time(NULL));
initial();//隨機獲得初始解
decoding();//先解碼
evalueFitness();//計算適應度值與累計適值
FindBestIndividual();
while?(gen?<=?T)
{
cout?< cout?< getNextGeneration();
gen++;
}
/*initial();//隨機獲得初始解
print();
//cout?< decoding();//先解碼
print();

evalueFitness();//計算適應度值與累計適值
//cout?< print();
while?(gen?<=?T)
{

cout?< cout?< cout?< FindBestIndividual();
select();//執行選擇操作
print();
decoding();
print();
evalueFitness();
//cout?< print();
crossOver();//執行交叉操作
print();
decoding();
evalueFitness();
//cout?< print();
mutation();//執行變異操作
print();
decoding();
evalueFitness();
//cout?< print();
FindBestIndividual();
gen++;
}
decoding();
evalueFitness();*/
//cout?< /*for?(int?i?=?0;?i? {
cout?< for?(int?m?=?0;?m? cout?< cout?< }*/
FindBestIndividual();
cout?< for?(int?k?=?0;?k? cout?< cout?< cout?<

評論

共有 條評論