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


Python NetworkX equivalence_classes用法及代码示例


本文简要介绍 networkx.algorithms.minors.equivalence_classes 的用法。

用法:

equivalence_classes(iterable, relation)

当应用于 iterable 时,返回 relation 的等价类。

等价类或块由来自iterable 的对象组成,它们都是等价的。如果 relation 函数在传递该类的任意两个对象时返回 True ,则它们被定义为等效,否则为 False 。要定义等价关系,函数必须是自反的、对称的和传递的。

参数

iterable列表、元组或集合

元素/节点的可迭代。

relation函数

一个布尔值函数,它在iterable 的元素上实现等价关系(自反、对称、传递二元关系) - 它必须采用两个元素,如果它们相关则返回 True ,否则返回 False

返回

一组frozensets

一组表示由等价关系函数 relationiterable 的元素上引起的分区的冻结集。返回集中的每个成员集代表分区的一个等价类或块。

重复的元素将被忽略,因此 iterable 成为 set 是最有意义的。

注意

此函数不检查relation 是否表示等价关系。您可以使用 is_partition 检查您的等价类是否提供了分区。

例子

X 是从 09 的整数集合,并考虑 X 上的等价关系 R 同余模 3 :这意味着两个整数 xyXR 下是等价的,如果它们在除以 3 时留下相同的余数,即 (x - y) mod 3 = 0

该关系的等价类为 {0, 3, 6, 9}{1, 4, 7}{2, 5, 8}0369 均可被 3 整除,且余数为零; 147 保留余数1;而 258 留下余数 2 。我们可以通过使用 X 调用 equivalence_classesR 的函数实现来看到这一点。

>>> X = set(range(10))
>>> def mod3(x, y): return (x - y) % 3 == 0
>>> equivalence_classes(X, mod3)    
{frozenset({1, 4, 7}), frozenset({8, 2, 5}), frozenset({0, 9, 3, 6})}

相关用法


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