⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adaptabilitytsp.cpp

📁 c++语言实现的遗传算法的例子,需要的快下啊
💻 CPP
字号:
// AdaptabilityTSP.cpp: implementation of the AdaptabilityTSP class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "AdaptabilityTSP.h"
#include "stdio.h"
#include "math.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

AdaptabilityTSP::AdaptabilityTSP(Parameter * p):Adaptability(p)
{
	char * d=new char[strlen(p->GetCombo(5))];
	strcpy(d,p->GetCombo(5));
	strcat(d,".zn");
	FILE  * datafp=fopen(d,"r");/* pointer of experimental data file */
	distance=new double *[dimension];
	for(int i=0;i<dimension;i++)
		distance[i]=new double[dimension];
	double m=0;
	for (i=0;i<dimension;i++ )
		for(int j=0;j<dimension;j++)
		{
			float t;
			fscanf(datafp,"%f", &t);
			distance[i][j]=t;
			if(m<distance[i][j])
				m=distance[i][j];
		}
	dup=m*pow(dimension,0.5)*50;
	fclose (datafp) ;
//	delete[] d;
}

double AdaptabilityTSP::adaption(double * location)
{
    int   i ;
    double serr=0;
//	FILE * temp=fopen("1.zn","w");
//		fprintf(temp,"%f   ",serr);
    for(i=0;i<dimension-1;i++)
    {
		serr=serr+distance[(int)location[i]][(int)location[i+1]];
//		fprintf(temp,"%d \n  ",(int)location[i]);
    }
	serr+=distance[(int)location[0]][(int)location[dimension-1]];
//		fprintf(temp,"%f  \n ",serr);
	serr=dup/serr;
//		fprintf(temp,"%f \n  ",serr);
//	fclose(temp);
	return (serr);
}

double AdaptabilityTSP::GetDistance(int i,int j)
{
	return distance[i][j];
}

AdaptabilityTSP::~AdaptabilityTSP()
{
	for(int i=0;i<dimension;i++)
		delete[] distance[i];
	delete[] distance;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -