📄 adaptabilitytsp.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 + -