0

假设您有一组节点 (1 2 3),并且这些节点通过弧 (1,2)、(1,3) 和 (2,3) 连接。一起代表一个网络。

如何创建包含所有相邻节点的节点子集?即我不希望以下子集类似于:

NeighborNode
1 2 3
2 1 3
3 1 2 

这段 Python 代码离我们很远,但也许你明白了:

def NNode_rule(model,i):
for i in model.Nodes:
    model.NNodes[i].add(model.ToNode[i]) if model.Nodes[i]==model.FromNode[i]
model.NNodes = Set(model.Nodes, initialize=NNode_rule)
4

1 回答 1

0

你知道什么是面向对象编程吗?

我认为最简单的解决方案是创建一个简单的类(例如节点),它具有一个属性邻居,它是其他节点的列表。

您还需要一种在两个节点之间添加边的方法,如下所示:

def add_edge(self, other_node):
    self.neighbors.append(other_node)
    other_node.neighbors.append(self)

然后每个节点都持有它拥有的邻居的信息。

希望这可以帮助 ;)

于 2016-03-09T22:56:09.943 回答