Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Networkx哈密顿圈_Python_Algorithm_Graph_Networkx - Fatal编程技术网

Python Networkx哈密顿圈

Python Networkx哈密顿圈,python,algorithm,graph,networkx,Python,Algorithm,Graph,Networkx,我想在我的设计中加入汉密尔顿循环的功能,但我不知道怎么做。我知道有一些算法像nx.is\u锦标赛.哈密顿路径等,但我不知道如何准确地实现它们。下面是一个欧拉循环的例子,对我来说很好,我想以类似的方式创建一个汉密尔顿循环 def isEulerian(): isEulerian=nx.是欧拉(myGlobalGraph) 如果isEulerian==真: trueInfo='这是欧拉图' trueInfo2='\n' Log.insert(insert,trueInfo) Log.insert(i

我想在我的设计中加入汉密尔顿循环的功能,但我不知道怎么做。我知道有一些算法像
nx.is\u锦标赛.哈密顿路径等,但我不知道如何准确地实现它们。下面是一个欧拉循环的例子,对我来说很好,我想以类似的方式创建一个汉密尔顿循环

def isEulerian():
isEulerian=nx.是欧拉(myGlobalGraph)
如果isEulerian==真:
trueInfo='这是欧拉图'
trueInfo2='\n'
Log.insert(insert,trueInfo)
Log.insert(insert,trueInfo2)
欧拉回路=列表(nx.欧拉回路(myGlobalGraph))
eulerianCircuitInfo='行动顺序:'
eulerianCircuitInfo2='\n'
Log.insert(insert,eulerianCircuitInfo)
Log.insert(insert,eulerianCircuitInfo2)
对于范围内的i(len(eulerianCircuit)):
x=欧拉循环[i][::2]
欧拉循环INFO3=x
欧拉循环信息4='>'
Log.insert(insert,eulerianCircuitInfo3)
Log.insert(insert,eulerianCircuitInfo4)
欧拉循环信息5='\n'
Log.insert(insert,eulerianCircuitInfo5)
欧拉循环信息6='\n'
Log.insert(insert,eulerianCircuitInfo6)
elif isEulerian==假:
falseInfo='这不是欧拉图'
falseInfo2='\n'
falseInfo3='\n'
Log.insert(insert,falseInfo)
Log.insert(insert,falseInfo2)
Log.insert(insert,falseInfo3)
您在networkx中所指的仅适用于锦标赛图,即每个节点之间只有一条有向边的图。我假设您需要一个通用的图形实现,因此它不适合您

原因(我相信)是networkx中没有哈密顿路径的实现,因为找到哈密顿路径的问题是NP完全的。因此,如果你想创建一个暴力算法,这将是你能做的最好的

这是我在github上找到的一个