当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX greedy_color用法及代码示例


本文简要介绍 networkx.algorithms.coloring.greedy_color 的用法。

用法:

greedy_color(G, strategy='largest_first', interchange=False)

使用各种贪心图形着色策略为图形着色。

尝试使用尽可能少的颜色为图形着色,其中节点的邻居不能具有与节点本身相同的颜色。给定的策略决定了节点着色的顺序。

这些策略在[1]中说明,smallest-last基于[2]。

参数

GNetworkX 图
strategy字符串或函数(G,颜色)

提供着色策略的函数(或表示函数的字符串),通过按应着色的顺序返回节点。 G 是图形,colors 是当前分配颜色的字典,由节点键控。该函数必须返回 G 中所有节点的可迭代对象。

如果策略函数是迭代器生成器(即带有 yield 语句的函数),请记住 colors 字典将在每个 yield 之后更新,因为该函数贪心地选择颜色。

如果strategy 是字符串,则必须是以下之一,每一个代表一个内置策略函数。

  • 'largest_first'
  • 'random_sequential'
  • 'smallest_last'
  • 'independent_set'
  • 'connected_sequential_bfs'
  • 'connected_sequential_dfs'
  • 'connected_sequential'(上一个策略的别名)
  • 'saturation_largest_first'
  • 'DSATUR'(上一个策略的别名)
interchange: bool

如果设置为 True ,将使用 [3] 中说明的颜色交换算法。

请注意,saturation_largest_firstindependent_set 不适用于互换。此外,如果您将交换与自己的策略函数一起使用,则不能依赖 colors 参数中的值。

返回

具有表示节点的键和表示的值的字典
相应的着色。

抛出

NetworkXPointlessConcept

如果 strategysaturation_largest_firstindependent_set 并且 interchangeTrue

参考

1

Adrian Kosowski, and Krzysztof Manuszewski, Classical Coloring of Graphs, Graph Colorings, 2-19, 2004. ISBN 0-8218-3458-4.

2

David W. Matula, and Leland L. Beck, “Smallest-last ordering and clustering and graph coloring algorithms.” J. ACM 30, 3 (July 1983), 417-427. <https://doi.org/10.1145/2402.322385>

3

Maciej M. Sysło, Marsingh Deo, Janusz S. Kowalik, Discrete Optimization Algorithms with Pascal Programs, 415-424, 1983. ISBN 0-486-45353-7.

例子

>>> G = nx.cycle_graph(4)
>>> d = nx.coloring.greedy_color(G, strategy="largest_first")
>>> d in [{0: 0, 1: 1, 2: 0, 3: 1}, {0: 1, 1: 0, 2: 1, 3: 0}]
True

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.coloring.greedy_color。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。