部分有序集(DAG)中的反链

时间:2013-10-08 13:01:33

标签: graph complexity-theory combinatorics directed-acyclic-graphs poset

任何人都可以判断是否存在用于在部分有序集合中查找大小为k的反链的P时间算法? (或DAG)

我在网上找到的所有资源都涉及找到最大的反链。

1 个答案:

答案 0 :(得分:1)

我认为问题的表述不够精确,因为有两个参数:

  • k大小的antihain;
  • n大小P;
  • 的大小

有一个明确的算法,它是n中的多项式和k中的指数:

  • 枚举k大小P的所有子集。使用某种格雷码可以获得O(1)中的每个子集。因此,成本明显与k子集的数量成比例,k子集是二项式系数choose(n, k)。因此,复杂性为O(n^k)

  • 对于每个子集,检查它是否为反链。假设你在O(1)中比较了poset的两个元素。您可以在O(k^2)

  • 中执行此操作

所以愚蠢的算法是O(k^2+n^k)的复杂性,它是n中的多项式。