邻接矩阵python(图形着色)

时间:2018-12-08 17:38:32

标签: python matrix graph-coloring

我试图从下面的示例图中创建一个邻接矩阵,其中如果存在2个节点之间的边,则为真,但如果不存在,则为假。

graph (5:1-2,1-3,1-4,1-5,2-3,3-4,4-5)

代码如下:

for x in range(self.n_nodes):
            matriu.append([])
            for y in range(n_colors):
                matriu[x].append(color)

在哪里自我。 n_nodes是一个列表[1,2,3,4,5],matriu是一个矩阵,color是一个以false初始化的布尔值,n_colors是颜色的数量(在这种情况下为5)。 此代码后的矩阵如下:

[[False, False, False, False, False], 
[False, False, False, False, False], 
[False, False, False, False, False], 
[False, False, False, False, False], 
[False, False, False, False, False]]

另外,我有一本包含下一个内容的字典:

{1: [4, 2, 5, 3], 2: [3, 1], 3: [4, 2, 1], 4: [3, 1, 5], 5: [4, 1]}

其中键是节点,值是具有边的节点的数组。

如何修改矩阵(行为节点,列为彩色),以使每个节点仅具有一种颜色,如果一个节点与另一个节点之间有一条边,则用另一种颜色对另一个节点进行着色。

目标是获得像这样的矩阵:

[[True, False, False, False, False], 
 [False, False, True, False, False], 
 [False, False, False, True, False], 
 [False, True, False, False, False], 
 [False, False, False, False, True]]

0 个答案:

没有答案