• 大小: 21KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C/C++
  • 标签: 遗传算法  

资源简介

模拟退火遗传算法,采用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

评论

共有 条评论