动态规划 DP 应用 HamiltonPath 及 TSP
文章目录
Hamilton Path 及 TSP 都属于 NP 完全问题,目前理论上尚无多项式算法,穷举法的时间复杂度是 O(N!),通过运用动态规划 DP,可以缩短至 O(2^N * N^2)。
输入:无向图 G = (V, E),点集 V = {0, 1, … , n-1},起始点 0
最优子结构:考虑路径上的最后一条边
dp[s,j] = min ( dp[s-{j},i] + adj[i,j] )
dp[s+{j},j] = min ( dp[s,i] + adj[i,j] )
i、j:点。
s:点集合。
dist[s,j]:经过 S 中所有点一次且最后一点是 j 的路径长度。
adj[i,j]:adjacency matrix。
递归
|
|
非递归 Java
|
|
参考 http://codeforces.com/blog/entry/337
文章作者 josephpei
上次更新 2014-08-05