任何人都可以判断是否存在用于在部分有序集合中查找大小为k的反链的P时间算法? (或DAG)
我在网上找到的所有资源都涉及找到最大的反链。
答案 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
中的多项式。