我正在尝试设计一个获取全球定位数据的项目,例如城市和州名以及纬度和位置。我还将了解每对城市之间的距离。我想用所有这些信息制作一个图形,并操纵它来执行一些图形算法。我决定让城市对象包含每个位置的数据。现在我应该有一个散列函数来区分对象吗?我应该如何处理组合节点和删除边的图形算法?
def minCut(self):
"""Returns the lowest-cost set of edges that will disconnect a graph"""
smcut = (float('infinity'), None)
cities = self.__selectedcities[:]
edges = self.__selectededges[:]
g = self.__makeGRAPH(cities, edges)
if not nx.is_connected(g):
print("The graph is already diconnected!")
return
while len(g.nodes()) >1:
stphasecut = self.mincutphase(g)
if stphasecut[2] < smcut:
smcut = (stphasecut[2], None)
self.__merge(g, stphasecut[0], stphasecut[1])
print("Weight of the min-cut: "+str(smcut[1]))
它的状态真的很糟糕。我正在重写我的原始程序,但这是我从以前的版本中采用的方法。