我认为你不太可能找到一个有效的通用算法来解决这个问题,因为我相信它是 NP 完备的。
如果你有一个有效的算法来解决这个问题,那么你可以解决最大独立集问题。
证明草图
假设你有一个图,然后为每条边构造一个包含 {i,j} 的集合,其中 i 和 j 是由边连接的顶点。
那么这些集合的最大子集 T 将是您的图形的最大独立集。
转换为最大独立集
更有用的是,您还可以通过为图找到最大独立集来表达您的问题,其中 a 和 b 之间存在边,当且仅当存在一个同时包含 a 和 b 的集合时。
然后,您可以使用一些标准求解器来解决最大独立集问题,例如Pythons NetworkX 中的求解器。