考虑幂集2 |上的单调谓词n | (按包含顺序排序)。通过“单调”我的意思是:∀ X ,ÿ ∈ 2 | n | 使得X ⊂ ÿ,如果P (X )然后P (Ý )。我在寻找一种算法来找到所有的最小元素P,即X ∈ 2 | n | 使得P (x )但,。由于宽度是,可能会有成倍的最小元素,因此这种算法的运行时间通常可能是指数的。但是,是否存在针对该任务的算法,该算法的输出大小是多项式?
[上下文:提出了一个更笼统的问题,但没有尝试在答案中尝试根据输出大小评估算法的复杂性。例如,如果我假设只有一个最小元素,那么我可以按照该答案执行二进制搜索并找到它。但是,如果我想继续查找更多的最小元素,则需要以某种方式保持我对P的当前信息,这使得在不浪费时间进行已知搜索的情况下继续搜索变得很容易。是否可以这样做并找到多项式时间内所有最小元素的输出大小?]
理想情况下,我想了解是否可以使用常规DAG来完成,但我已经不知道如何回答。
通过包含而定的幂集是DAG(的各个部分为顶点,一对对之间的一个边彼此包含,仅保留此图的传递性减少,以消除传递性所隐含的冗余边)。对任意DAG提出相同的问题似乎很自然。{ 1 ,。。。,n }
—
a3nm