?? sacode.h
字號(hào):
#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; //城市編號(hào)
CString m_strName; //城市名稱
SYCoordinate m_Coordinate; //城市坐標(biāo)
};
struct SYCityDistance
{
SYCityDistance()
{
m_nFromCity = 0;
m_nToCity = 0;
m_fDistance = 0.0;
}
int m_nFromCity; //源城市
int m_nToCity; //目標(biāo)城市
double m_fDistance; //城市之間的距離
};
typedef std::vector<int> CityRouterDef;
void InitialSA();
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 );
double CountInitialTemperature();
double CountDownTemperature( int DownMode );
BOOL JudgeOverInnerLoop( int JudgeMode );
BOOL JudgeOverExternalLoop( int JudgeMode );
struct SYRouter
{
SYRouter()
{
m_CityRouter.clear();
m_fTotalDistance = 0.0;
m_fTemperature = 0.0;
m_nExternalIterNumber = 0;
m_nInnerIterNumber = 0;
}
SYRouter( double nowTemp,
int nowExtIterNum,
int nowInIterNum )
{
CreateCityRouter( m_CityRouter );
m_fTotalDistance = CountTotalDistance( m_CityRouter );
m_fTemperature = nowTemp;
m_nExternalIterNumber = nowExtIterNum;
m_nInnerIterNumber = nowInIterNum;
}
SYRouter( CityRouterDef &preCityRouter,
double nowTemp,
int nowExtIterNum,
int nowInIterNum )
{
CreateCityRouter2opt( preCityRouter, m_CityRouter );
m_fTotalDistance = CountTotalDistance( m_CityRouter );
m_fTemperature = nowTemp;
m_nExternalIterNumber = nowExtIterNum;
m_nInnerIterNumber = nowInIterNum;
}
void operator=(const SYRouter& srcRouter)
{
m_CityRouter = srcRouter.m_CityRouter;
m_fTotalDistance = srcRouter.m_fTotalDistance;
m_fTemperature = srcRouter.m_fTemperature;
m_nExternalIterNumber = srcRouter.m_nExternalIterNumber;
m_nInnerIterNumber = srcRouter.m_nInnerIterNumber;
}
CityRouterDef m_CityRouter;
double m_fTotalDistance;
double m_fTemperature;
int m_nExternalIterNumber;
int m_nInnerIterNumber;
};
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -