相关疑难解决方法(0)

分治算法与动态规划的区别

Divide和Conquer算法和动态规划算法有什么区别?这两个术语有何不同?我不明白他们之间的区别.

请举一个简单的例子来解释两者之间的差异以及它们看起来相似的基础.

algorithm dynamic-programming divide-and-conquer

125
推荐指数
7
解决办法
8万
查看次数

Java:旅行推销员 - 找到多项式算法

编辑:找到了对此算法的改进.欢迎您来看看.

这个问题是我问题的改进.现在我想向您展示Java代码示例,并更详细地解释我的算法.

我认为我找到了一个多项式算法来获得旅行商问题的精确解.我的实现是从5个步骤构建的:

  • 1)快速设置
  • 2)搜索解决方案
  • 3)停止条件1
  • 4)停止条件2
  • 5)停止条件3

我想从第2步和第3步开始,如果我没有错,我会告诉你其余部分.

所以我现在要向您展示的不是多项式算法,而是对Held-Karp算法的改进,它解决了时间问题O(n ^ 2 2 ^ n)

让我们说我们想用brout算法解决6个城市的路线.有(6-1)!= 120选项,我们需要测试它们并返回最短的路线.所以它看起来像那样(城市名称是:A,B,C,D,E,F):

  • 选项1:A - > B - > C - > D - > E - > F - > A.
  • 选项2:A - > B - > C - > D - > F - > E - > A.
  • 选项3:A - > C - > B - > D - …

java graph np-complete traveling-salesman np-hard

-9
推荐指数
2
解决办法
5247
查看次数