一、实验内容:
TSP
问题
二、所用算法的基本思想及复杂度分析:
1
、
蛮力法
1
)
基本思想
借助矩阵把问题转换为矩阵中点的求解。首先构造距离矩阵,任意节点
到自身节点的距离为无穷大。在第一行找到最小项
a[1][j]
,从而跳转到
第
j
行,
再找到最小值
a[j][k]
,
再到第
k
行进行查找。
。
。
然后构造各行允
许数组
row[n]={1,1
…
1}
,各列允许数组
colable[n]={0,1,1
…
.1}
,其中
1
表示允
许访问,即该节点未被访问;
0
表示不允许访问,即该节点已经被访问。
如果改行或该列不允许访问,跳过该点访问下一节点。程序再发问最后
一个节点前,所访问的行中至少有
1
个允许访问的节点,依次访问这些
节点找到最小的即可;在访问最后一个节点后,再次访问,会返回
k=0
,
即实现访问源节点,得出一条简单回路。
2
)
复杂度分析
基本语句是访问下一个行列中最小的点,主要操作是求平方,假设有
n
个点,则计算的次数为
n^2-n
。
T(n)=n*(n-1)=O(n^2)
。
2
、
动态规划法
1
)
基本思想