找到一个偏序集的子集的极大元(Finding maximal elements of a poset

2019-09-16 13:07发布

问题是:给定一个序集的子集S找到S的最大元素

例如,考虑在偏序集的HASS图http://ndp.jct.ac.il/tutorials/Discrete/node34.html 。 鉴于它的前一个子集:{12,2,8}的最大元件12和8。

我不知道我形容precisly问题。 我认为这个问题可能涉及一些排序或传递闭包的计算,但我有点困惑。

你能给我一个快速算法的一些做法? 我想保持它为O(n ^ 2)

谢谢。

有一点澄清。 我的应用程序使用RDF图。 两个节点是可比如果存在表示所述<关系的特定边缘。 如果有这样的明确关系或隐式传递一个两个节点可能会相媲美。

所以假设HASS图正是我的RDF图。 如果我从2开始做深度优先搜索我怎么知道,8和12没有可比性? 他们可能不明确,但他们可能是含蓄。

Answer 1:

如果你知道排序关系的一个小子集,你可以做到这一点在线性时间:把它作为一个DAG,然后做一个深度优先遍历发现没有后继的所有顶点。



文章来源: Finding maximal elements of a poset's subset