hamiltonian-cycle相关内容

在DAG中寻找哈密顿路径的算法

我指的是斯凯耶纳关于算法的书。 测试图G是否包含Hamiltonian path的问题是NP-hard,其中哈密尔顿路径P是指恰好访问每个顶点一次的路径。与哈密尔顿循环问题不同,G中从P的结束顶点到起始顶点不一定要有一条边。 给定一个有向无圈图G(DAG),给出一个O(n + m)时间算法来测试它是否包含哈密顿路。 我的方法 我计划使用DFS和Topological sorti ..

在图中找到哈密顿圈的动态规划算法是什么?

在无向图中寻找哈密顿圈的动态规划算法是什么?我在某处看到存在一种算法,其时间复杂度为 O(n.2^n). 解决方案 确实有一个 O(n2n) 动态规划算法来寻找哈密顿循环.这个想法是一个通用的想法,可以将许多 O(n!) 回溯方法减少到 O(n22n) 或 O(n2n)(以使用更多内存为代价),是考虑具有指定“端点"的集合的子问题. 这里,既然你想要一个循环,你可以从任何顶点开始.所 ..

从边列表构建所有哈密顿路径

我无法找到从相关元组列表构建树路径的方法?我只想要每个节点被访问一次的每个路径的列表,也就是哈密顿路径. 我一直在靠近但错过了一些路径. 例如,假设我们有这个连接列表: connections = [(1, 4), (1, 5), (2, 5), (3, 4), (4, 1), (4, 3), (4, 5), (5, 1), (5, 2), (5, 4)] 所需的输出: [[1, ..
发布时间:2021-07-05 19:03:54 Python

骑士的巡回路线实现选择步长数组

因此,我想出了此解决方案,用于解决8 * 8棋盘的骑士巡回赛. 但是似乎要花很长时间才能运行(以至于我不得不停止它).但是,如果我用注释中写的那个替换dx,dy数组,程序将像魔术一样工作并给出输出.他们说,它是明智地选择阵列的方法,因此蛮力算法很幸运能够快速找到解决方案. 但是首先如何提出这个数组,我是从其他代码中得到的这个数组(dx,dy).因此,谁能解释我为什么此代码为何对那些数组有效( ..
发布时间:2020-08-22 19:00:07 C/C++开发

找到所有哈密顿循环

我正在尝试实现一种方法,使用递归将所有可能的哈密顿循环添加到列表中。到目前为止,我的停止条件还不够,我在列表中添加一个顶点的“OutOfMemoryError:Java堆空间”: private boolean getHamiltonianCycles(int first,int v,int [] parent, boolean [] isVisited,List ..
发布时间:2019-01-08 12:00:07 Java开发

检查密集图中是否存在Hamilton周期

定义1 一个图G如果对于每对不相邻的顶点u和v,d(u)+ d(v)> = n ,其中n = | V |和d(*)表示顶点的程度* 定义2 G上的一个“哈密尔顿圈”是一个顶点序列(vi1,vi2,... vin,vi1),使得对于所有的l!= h和{ vil,vil}是G的一个边。 问题是:编写一个程序,给定一个密集的无向图G = V; E)作为输入,确定G是否承认G上的 ..
发布时间:2018-05-25 17:49:16 C/C++开发

用1个有效的哈密尔顿周期生成图

我的要求是生成一个图形而不是解决一个解决方案。 我正在寻找一种算法来生成一个只有1个哈密尔顿循环的图(NxN网格)。请注意,只有一个独特的解决方案至关重要。该图将是N×N的节点网格,每个网格只有4个相邻节点,即顶部,右侧,底部,左侧。节点只能访问一次。除此之外,还可以有一些特殊的节点。 死亡节点即它们没有边缘连接 固定入口和出口节点,即已经定义了入口和出口节点,没有其他节点可以连接给 ..

证明有度连通图= 2的哈密顿圈

原谅我,如果我的问题是重复的,但我找不到一个完整的答案,证明一个连通图,所有的顶点有度= 2是一个Hamilton图。 我读解决方案 让给定的图形是。从图中的一个顶点 v 开始,让我们跟踪(与允许重复顶点的路径), P 任意散步,通过反复挑选一个顶点相邻的最后一个顶点加入 P ,没有任何重复的边缘。终止,如果你不能添加任何更多的顶点,或者如果你达到一个已经访问过一个顶点。这一过程将最终终止,因 ..
发布时间:2015-11-30 22:41:22 C/C++

鉴于有些话,找一个序列,使得序列中的任何相邻的话不能有相同的字符

由于一些话, 例如 香蕉,猫,狗,大象,类型,中间,湖 找到一个序列,使得 (1)每一个字都是对的序列 (2)任何相邻的话不能有相同的字符。 如果该序列无法找到,返回false。否则,返回true,且起。 没有重复。话没有排列。 我的想法: 建立一个图,并用汉弥尔顿路径查找起。 不过,这是一个NP完全。 如何避免哈密顿路径? 更好的想法? 感谢 解决方案 请注意,如果你已 ..
发布时间:2015-11-30 22:36:15 C/C++开发

帕尔默的算法哈密顿周期

在“密集”图​​中,我试图构建使用帕尔默的算法。不过,我需要更多的解释了这个算法,因为它不与我一起工作,当我实现它。它似乎有一个不明确的部分维基百科的解释。 如果有人更清楚地解释它,我会感激或者给我一些链接阅读。 下面的算法语句: 帕尔默(1997年)介绍了以下简单的算法构造一个汉密尔顿的周期在图表会议矿的条件。 任意排列的顶点成一个循环,忽略了图中邻接关系。 而周期包含连续两个顶点六和 ..
发布时间:2015-11-30 20:28:37 C/C++

算法找到在网格中随机汉弥尔顿路径?

我在寻找一个有效的算法,它能够找到一个尽可能的随机哈密尔顿路径的一个双向N * M网格。 有谁知道在哪里可以找到,或者如何去构建这样的算法? 我已经找到了一个有效的方法(见下图)。这里的最终结果是一个汉密尔顿的周期。删除随机优势将使其成为哈密尔顿路径。这个算法是有效的,但没有提供足够的随机性。这种做法总会有路径的开始和结束点紧挨着对方,而我想有那些在随机位置。 图片摘自解决方案 您可以与您提 ..
发布时间:2015-11-30 20:18:01 C/C++

完整权图和哈密顿游

我遇到了一个期中考试的问题。任何人都可以明确的答案? 问题答:给定一个完整的加权图G,找到一个汉密尔顿之旅以最小的重量 B题:给定一个完整权图G和实数R,并摹有一个汉密尔顿的游览与重量至多r ? 假设有一台机器,解决了B.多少次我们可以调用B(每次G和实数R给出),解决问题的一个与该机器?假设G中边的总结为M。 1),我们不能做到这一点,因为有无数的状态。 2)O(| E |)时间 3 ..
发布时间:2015-11-30 20:17:07 C/C++

算法在DAG中寻找一个Hamilton路

我指的是Skienna图书的算法。 测试的问题图表是否包含汉弥尔顿路径是 NP-硬,其中汉弥尔顿路径 P 是访问每个顶点恰好一次的路径。有不必是G中从结束顶点的边缘到P的起始顶点,不像在汉密尔顿的周期问题 由于有向无环图G( DAG ),举一个 O(N + M)时间算法测试是否包含了哈密尔顿路径。 我的做法, 我打算使用 DFS 和拓扑排序。但我不知道如何连接解决问题的两个概念。如何能拓扑 ..

什么是动态规划算法寻找一个汉密尔顿的周期在图表中?

什么是动态规划算法寻找一个汉密尔顿的周期在一个无向图? 我看到的地方,存在一个算法为O(n * 2 ^ n)的时间complextity 解决方案 的确存在O(N2 N )的动态编程查找汉密尔顿周期算法。这个想法,这是一个普遍的一种可以减少许多为O(n!)回溯的方法来为O(n 2 2 N )或O(N2 N )(在使用更多内存)的成本,是考虑的子是的设置与指定的“终点”的。 在这里,因为你想有 ..
发布时间:2015-11-30 14:47:15 C/C++

GCJ - 哈密顿圈

code拥堵问题如下: 您将得到一个完整的无向图有N个节点和K“禁止入内”的边缘。 N'其中; = 300,K&其中; = 15,查找哈密顿周期在图中不使用任何在K“禁”边缘的数量。 不幸的是这这里堆栈和整个网络的解释是很不够的。我可以找出HamCycles一定'N'(N-1)! / 2 和我可以做短一套具有动态规划。 不过,我没有得到所有的子集博洛尼亚,如何使它o ^ K'我在Pytho ..
发布时间:2015-11-30 14:37:32 C/C++