Tag: travel salesman

实施特定的旅行推销员变体

我正在寻找一种算法(C / C ++ / Java – 无所谓),它将解决一个问题,即找到图形的2个节点(A和B)之间的最短路径。 问题是路径必须访问某些其他给定节点(城市)。 一个城市可以不止一次访问。 路径示例( A- HDCE- F – G – F – B )(其中A是源,B是目的地,F和G是必须访问的城市)。 我认为这是旅行推销员问题的变体,但我无法找到或编写基于我的搜索的工作算法。 我试图找到一个解决方案,从这些主题开始,但没有任何运气: https : //stackoverflow.com/questions/24856875/tsp-branch-and-bound-implementation-in-c和访问多个城市的TSP的变化

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 […]