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

📄 gacode.h

📁 一个遗传算法的程序,实现了48个城市的TSP算法.用VC++环境下使用
💻 H
字号:
#include <vector>

struct SYCoordinate
{
	SYCoordinate()
	{
		m_fcodx = 0.0;
		m_fcody = 0.0;
	}

	double m_fcodx;
	double m_fcody;
};

struct SYCity
{
	SYCity()
	{
		m_nIndex = 0;
		m_strName.Empty();
	}

	int m_nIndex;					//城市编号
	CString m_strName;				//城市名称
	SYCoordinate m_Coordinate;		//城市坐标
};

struct SYCityDistance
{
	SYCityDistance()
	{
		m_nFromCity = 0;
		m_nToCity = 0;
		m_fDistance = 0.0;
	}

	int m_nFromCity;				//源城市
	int m_nToCity;					//目标城市
	double m_fDistance;				//城市之间的距离
};

typedef std::vector<int>	CityRouterDef;

void CreateCityRouter( CityRouterDef &CityRouter );
void CreateCityRouter2opt( CityRouterDef &preCityRouter, CityRouterDef &CityRouter );
double CountTotalDistance( CityRouterDef &CityRouter );
double CountCityDistance( SYCity &FromCity, SYCity &ToCity, SYCityDistance &CityDistance );
double FindCityDistance( int FromCityIndex, int ToCityIndex );

struct SYRouter
{
	SYRouter()
	{
		CreateCityRouter( m_CityRouter );
		m_fTotalDistance = CountTotalDistance( m_CityRouter );
		m_fFitness = 0.0;
	}

	SYRouter( CityRouterDef &preCityRouter )
	{
		CreateCityRouter2opt( preCityRouter, m_CityRouter );
		m_fTotalDistance = CountTotalDistance( m_CityRouter );
		m_fFitness = 0.0;
	}

	void operator=(const SYRouter& srcRouter )
	{
		m_CityRouter = srcRouter.m_CityRouter;
		m_fTotalDistance = srcRouter.m_fTotalDistance;
		m_fFitness = 0.0;
	}

	CityRouterDef m_CityRouter;
	double m_fTotalDistance;
	double m_fFitness;
};

⌨️ 快捷键说明

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