Я хотел бы добавить в свой дизайн функциональность цикла Гамильтона, но не знаю, как это сделать. Я знаю, что есть такие алгоритмы, как nx.is_tournament.hamiltonian_path
и c. Но я не знаю, как именно их реализовать. Ниже приведен пример цикла Эйлера, который мне подходит, и я хотел бы создать цикл Гамильтона аналогичным образом.
def isEulerian():
isEulerian = nx.is_eulerian(myGlobalGraph)
if isEulerian == True:
trueInfo = 'this is Eulerian graph'
trueInfo2 = '\n'
Log.insert(INSERT, trueInfo)
Log.insert(INSERT, trueInfo2)
eulerianCircuit = list(nx.eulerian_circuit(myGlobalGraph))
eulerianCircuitInfo = 'Order of action:'
eulerianCircuitInfo2 = '\n'
Log.insert(INSERT, eulerianCircuitInfo)
Log.insert(INSERT, eulerianCircuitInfo2)
for i in range(len(eulerianCircuit)):
x = eulerianCircuit[i][::2]
eulerianCircuitInfo3 = x
eulerianCircuitInfo4 = ' > '
Log.insert(INSERT, eulerianCircuitInfo3)
Log.insert(INSERT, eulerianCircuitInfo4)
eulerianCircuitInfo5 = '\n'
Log.insert(INSERT, eulerianCircuitInfo5)
eulerianCircuitInfo6 = '\n'
Log.insert(INSERT, eulerianCircuitInfo6)
elif isEulerian == False:
falseInfo = 'this is not Eulerian graph'
falseInfo2 = '\n'
falseInfo3 = '\n'
Log.insert(INSERT, falseInfo)
Log.insert(INSERT, falseInfo2)
Log.insert(INSERT, falseInfo3)