📄 tspsep.cpp
字号:
#include "TSPSep.h"
TSPSep::TSPSep()
{
// set conditions
m_Nodes.resize(5);
m_Nodes[0].x = 0.0;m_Nodes[0].y = 0.0;
m_Nodes[1].x = 5.0;m_Nodes[1].y = 0.0;
m_Nodes[2].x = 10.0;m_Nodes[2].y = 0.0;
m_Nodes[3].x = 10.0;m_Nodes[3].y = 10.0;
m_Nodes[4].x = 5.0;m_Nodes[4].y = 5.0;
m_IfRepeat = false;
// set domain first
m_Domain.resize(3);
m_Domain[0].m_Type = DT_PERMUTATE;
m_Domain[0].m_Set.resize(2);
for(int a=0;a<2;a++)
m_Domain[0].m_Set[a] = a;
m_Domain[1].m_Type = DT_PERMUTATE;
m_Domain[1].m_Set.resize(1, 2);
m_Domain[2].m_Type = DT_PERMUTATE;
m_Domain[2].m_Set.resize(2);
for(int a=0;a<2;a++)
m_Domain[2].m_Set[a] = a+3;
// set param
m_Param.resize(5);
m_Param[0].m_Val = 0;
m_Param[0].m_pDomain = &(m_Domain[0]);
m_Param[1].m_Val = 1;
m_Param[1].m_pDomain = &(m_Domain[0]);
m_Param[2].m_Val = 2;
m_Param[2].m_pDomain = &(m_Domain[1]);
m_Param[3].m_Val = 3;
m_Param[3].m_pDomain = &(m_Domain[2]);
m_Param[4].m_Val = 4;
m_Param[4].m_pDomain = &(m_Domain[2]);
}
double TSPSep::GetResult(vector<CParam> &cs)
{
double dist = 0.0;
for(size_t a=0;a<cs.size()-1;a++)
dist += Distance(m_Nodes[cs[a].m_Val],m_Nodes[cs[a+1].m_Val]);
return dist;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -