Algorithm 为什么是&<;B在多项式约化中总是真的吗?

Algorithm 为什么是&<;B在多项式约化中总是真的吗?,algorithm,computer-science,complexity-theory,np,np-complete,Algorithm,Computer Science,Complexity Theory,Np,Np Complete,我对计算机科学非常了解,尤其是理论方面,因此我试图理解(没有一个答案超出我的头脑)为什么多项式时间缩减总是正确的,以及我的天真理论是否解释了它(我怀疑不是) 我的想法: 前提:首先,我有两个问题A和B,要么我发现A在计算时间上比B要昂贵得多,要么我根本没有A的算法(这确实非常“困难”——尽管我希望我在这里正确地使用了这个术语?)。我意识到,虽然我可以将A转换成B,并做到这一点 当有人说,经过这样的简化后,a的解总是和B的解一样难,他们并不意味着任何解a的算法都和B一样难,但事实上严格地说,从现在

我对计算机科学非常了解,尤其是理论方面,因此我试图理解(没有一个答案超出我的头脑)为什么多项式时间缩减总是正确的,以及我的天真理论是否解释了它(我怀疑不是)

我的想法:

前提:首先,我有两个问题A和B,要么我发现A在计算时间上比B要昂贵得多,要么我根本没有A的算法(这确实非常“困难”——尽管我希望我在这里正确地使用了这个术语?)。我意识到,虽然我可以将A转换成B,并做到这一点

当有人说,经过这样的简化后,a的解总是和B的解一样难,他们并不意味着任何解a的算法都和B一样难,但事实上严格地说,从现在开始,我们将为a提供目前已知的最有效的解(当然,当我们发现一个问题的算法越来越好时,这些算法可能会发生变化)最多会像B一样难还是更容易

为什么:简单的3种情况-首先,如果A使用我的算法很难解决,但是B更容易解决,我使用B来解决A,那么现在我对A最有效的解决方案是对B的算法。其次,如果我对A没有解,但将A简化为B,那么现在我对A有一个解-所以“我所有解的并集”第三,我说我对A的最佳解决方案总是比B容易,但为了好玩,我把它“简化”为B,我的最佳解决方案确实比B容易

A的解可能比B的解要多得多(例如,一个直接解出2+x=4的算法,而另一个算法做同样的事情,但出于某种原因,在再次减去它之前,会在方程中加上一百万倍,然后再求解)

批判性:因此,既然有很多方法可以解决比任何特定解决方案都难的问题,那么就目前已知的每个问题的最有效的解决方案而言,谈论这些方法才有意义

是这样吗


非常感谢您的帮助,我真的很感激。

一般来说,当人们讨论“问题”和“他们有多难解决”时,他们指的是问题类别(例如旅行推销员问题),而不是问题的特定实例(例如,城市A、B、C……和距离X、Y、Z……的旅行推销员问题)。此外,当他们讨论一个问题有多难/容易时,他们指的是最有效的可能解决方案。谈论使用随机解决方案解决一个问题有多难(可能真的效率很低)不是很有趣,所以解决方案往往伴随着证明没有比这更有效的解决方案

因此,如果问题A的类别可以转化为问题B的类别,那么你知道有一个解决A的方案至少和B一样有效,因为一个解决方案是将它转化为B并以这种方式解决。它可能更有效,因为可能有一个解决A型问题的独特方案比那些更有效B型的,但至少和B型一样有效


所以你的思路是正确的,但不要太关注“你碰巧知道的解决方案”更多关于理论上最有效的问题解决方案。

我投票将这个问题作为离题题来结束,因为这不是一个编程问题。这是一个关于计算理论的问题。啊,非常感谢,这就是我想说的,但你把它写得更准确了。非常感谢!