注意,旅行商问题一般有一个默认的起点.
一.问题分析
1.状态结点的数据类型:
int cl; 表示已走的路程
int id; 表示当前准备判断的结点序号
int x[N]; 表示一个最佳策略
2.约束条件:下一个结点和当前结点有通路,并且解 < 当前的最优解,并且终点和起点形成回路
3.限界条件:当前状态的最大价值上界 > 当前最优解
4.初始条件:进入队列的第一个结点是数组元素[0],已走过的路程=0,下一步该判断结点1:最佳路径是默认值{0,1,2}
cl=0; id=1; x[N]={0,1,2,3,4,5....};
5.终止循环条件:
解向量序号 | 0 | 1 | 2 | 3 | 4 | ... | N-2 | N-1 |
id | 1 | 2 | 3 | 4 | 5 | ... | N-1 | N |
在排列树中,当遍历到倒数第二层(N-2)时,该层结点的子节点只有1个 ,x[N]已完全确定
活结点终止循环(约束)条件为
id==N-1