當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。