考虑以下算法任务:
输入:一个正整数,连同它的因式分解
查找:正整数,最大限度地减少,受到了限制
这个问题的复杂性是什么?有多项式时间算法吗?是NP难吗?
这个问题基本上是在问:在体积为,尺寸均为整数的所有矩形实体中,表面积最小的是哪一个?
这个问题是由丹·迈耶(Dan Meyer)提出的,题为“ 1,000名数学老师无法解决的数学问题”。到目前为止,与他一起工作的数学老师都没有找到解决这个问题的合理算法。在他的上下文中,“合理”的定义有点不精确,但是作为计算机科学家,我们可以提出一个关于此问题的复杂性的更精确的问题。
显而易见的方法是枚举所有可能性,但这需要花费指数时间。丹·迈尔(Dan Meyer)博客的评论者提出了许多有效的候选算法,不幸的是,所有这些算法都被证明是不正确的。马丁·斯特劳斯( Martin Strauss)表示,这个问题似乎让人联想到3分区,但我看不到这种减少。
让我也清除一些我在评论/答案中看到的误解:
不能从3分区通过简单地更换每个数字减少与其功率,由于这两个问题的目标函数是不同的。明显的减少根本行不通。
最优解涉及选择中的一个作为与3的最接近除数是不正确的√。我看到多个人都认为情况确实如此,但实际上这是不正确的。Dan Meyer博客文章已对此进行了证实。例如,考虑;和4将68,所以你可能会认为,至少一个应为4; 但是,这是不正确的。最佳解是,,。另一个反是,,但最佳的解决方案是,,。(这可能是真实的,对于所有,最优解决方案涉及制造在至少一个等于任一的最小除数大于 或最大除数小于我现在没有反例-但是如果您认为这句话是正确的,那就需要证明。您绝对不能认为这是真的。)
“使的大小相同”似乎并不一定在所有情况下都能产生最佳答案。有关反例,请参见Dan Meyer的博客文章。或者,至少对于短语“使其大小大致相同”的一些合理解释,有一些反例表明该策略实际上并不是最佳的。如果您想尝试某种策略,请确保您准确地声明索赔,然后提供仔细的数学证明。
运行时间不是多项式。为了使该问题出现在P中,运行时间必须是输入长度的多项式。输入的长度类似于lg n,而不是n。可以使明显的蛮力算法在O (n 3)或O (n 2)时间中运行,但是在lg n中是指数式的,因此算作指数时间算法。因此,这没有帮助。