資源簡介
模擬退火遺傳算法,采用C++程序語言設計
代碼片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
using?namespace?std;
const?int?M=373;
const?int?N=22;
const?int?L=4;
const?int?maxgeneration=50;
const?int?popsize=30;
const?double?pc=0.6;
const?double?pm=0.004;
const?int?X=22;
//----------------------------------------------定義全局變量---------------------------------
int?jdgenerationbestindexworstindex;
int?num1=Mtj[N];
float?V[M+1][L]VGA[popsize][L]qjqt[M][N]vmax[L]vmin[L];
float?SAVGA[popsize][L]SAGAqxs[popsize][N]SAGAqxx[popsize][N]SAGAqxssy[popsize][N]SAGAqxxsy[popsize][N];
float?fzs[L][X]fvs[L][X]fzx[N][X]fqx[N][X]zcsw[N]clxs[N];
float?Nzh[N]zdq[N]gzNp[N]zxq[N]Np;
float?xxz1[L]xxz2[L]sz[L]zcz[L]xxv1[L]xxv2[L]sv[L]zcv[L];
float?clGA[popsize][N]hGA[popsize][N]fdqxGA[popsize][N]zxGA[popsize][N];
float?clzhGA[popsize][N]hzhGA[popsize][N]fdqxzhGA[popsize][N]zxzhGA[popsize][N];
float?fitness[popsize]sumfitnessaveragefitnessbestfitnessworstfitnessSAfitness[popsize];
float?GAqxs[popsize][N]GAqxx[popsize][N]GAqxssy[popsize][N]GAqxxsy[popsize][N];
//------------------------------------函數的定義--------------------------
void?generationinitialpopulation(void);
void?evaluatepopulation(void);
void?selectionoperator(void);
void?crossoveroperation(void);
void?mutationoperaor(void);
void?simulatedannealing(void);
void?SAevaluatepopulation(void);
float?chazhi(float?x0float?y1[]float?y2[]int?num);
//----------------插值函數-----------------------------------------------------------
float?chazhi(float?x0float?y1[]float?y2[]int?num)
{
int?m1;
for(m1=1;m1<=num-1;m1++)
if(x0<=y1[m1]&&x0>y1[m1-1])
??return(y2[m1?-?1]?+?(x0?-?y1[m1?-?1])?*?(y2[m1]?-?y2[m1?-?1])?/?(y1[m1]?-y1[m1?-?1]));
????????if(x0<=y1[0])
return(y2[0]);
if(x0>y1[num-1])
return(y2[num-2]?+?(x0-?y1[num-2])?*?(y2[num-1]?-?y2[num-2])?/?(y1[num-1]?-?y1[num-2]));
}
//-----------------------主函數------------------------------------------------
int?main()
{
//-----------?變量的定義?---------------------------------------------------
int?ijklzjsjs[N];
float?sum[50]Nprzz;
float?QT[M][N]QX[M][N]H[M][N]R[M][N]QS[M][N]QFD[M][N]Z[M+1][L];
float?pjfdl[N]pjcl[N]bzl[N]zcl[N]zbzl;
//-----------------------------------------------------------------------------------------
//-------?數據的輸出輸入?---------------
char?*fname=“result.txt“;??//physical?file?name
ofstream?fout(fnameios::out);??//opening?file?for?output
if(?!fout?)????????????????//handles?errors?in?file?opening?
{
cerr<<“Error?in?opening?file?for?output!“;
exit(1);
}
string?ifname;
ifstream?fin;
cout<<“Enter?the?filename?of?in?file“< cin>>ifname;
fin.open(ifname.c_str());
if(?fin.fail()?)
{
cout<<“ERROR?open?the?in?file?“< exit(1);
}
else
{
for(i=0;i for(j=0;j fin>>qjqt[i][j];
for(i=0;i
- 上一篇:c語言五子棋代碼
- 下一篇:mfc做的局域網聊天室
評論
共有 條評論