在幂单调谓词的最小元素


12

考虑幂集2 |上单调谓词n | (按包含顺序排序)。通过“单调”我的意思是:X ÿ 2 | n | 使得X ÿ,如果P X 然后P Ý 。我在寻找一种算法来找到所有的最小元素P,即X 2 | n | 使得P x P2|n|x,y2|n|xyP(x)P(y)Px2|n|P(x)yx¬P(y)。由于宽度2|n|是,可能会有成倍的最小元素,因此这种算法的运行时间通常可能是指数的。但是,是否存在针对该任务的算法,该算法的输出大小是多项式?(nn/2)

[上下文:提出了一个更笼统的问题但没有尝试在答案中尝试根据输出大小评估算法的复杂性。例如,如果我假设只有一个最小元素,那么我可以按照该答案执行二进制搜索并找到它。但是,如果我想继续查找更多的最小元素,则需要以某种方式保持我对P的当前信息P,这使得在不浪费时间进行已知搜索的情况下继续搜索变得很容易。是否可以这样做并找到多项式时间内所有最小元素的输出大小?]

理想情况下,我想了解是否可以使用常规DAG来完成,但我已经不知道如何回答2|n|


通过包含而定的幂集是DAG(的各个部分为顶点,一对对之间的一个边彼此包含,仅保留此图的传递性减少,以消除传递性所隐含的冗余边)。对任意DAG提出相同的问题似乎很自然。{ 1 n }2|n|{1,...,n}
a3nm

Answers:


14

您的问题在学习文献中被称为“使用成员资格查询来学习单调函数”。一类可以识别所有最小项的单调函数称为“使用隶属关系查询可多项式学习”。

似乎多项式时间算法的存在仍然存在。Schmulevich等。证明“几乎所有的单调布尔函数都可以使用成员资格查询进行多项式学习”。如果我们还要求在和时间多项式中生成第个最小项,则该问题等效于单调对偶,如Bioch和Ibaraki所示。这是一个针对单调对偶的调查ñ Ťtnt


感谢您提供这个非常有用的答案。您是否了解对任意DAG的概括(即,比Eiter等人的5.2节中的特殊情况还多)?
a3nm 2012年

不,不幸的是没有。
Yuval Filmus 2012年

好吧,我还是会接受这个答案。补充说明:(1)这个答案是关于计算的复杂性,而不是的评估数量的复杂性(关于最后一种情况,请参阅cstheory.stackexchange.com/a/14862/4795),以及(2)确切的公开问题是“你能学会在多项式时间内单调布尔函数ñ及其最小值和最大值的数量”,也没有在做这件事在多项式时间的希望ñ和最大值的数目,因为可以有极大的线性数但是最小值的指数值(请参阅上述调查的第6.1节第2段)。Pnn
a3nm 2012年

有关任意DAG的全局最坏情况查询复杂性的信息,请参阅我的其他问题cstheory.stackexchange.com/q/16258/4795
a3nm

re单调对偶化(CNF←→DNF)和DAG。听起来很像juknas书布尔函数复杂度 9.4中的一个定理。“下限标准”,thm 9.17
vzn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.