如何证明两种算法是等价的?

时间:2017-05-15 10:59:17

标签: algorithm computation

我已经编写了两种截然不同的算法,它们应该为相同的输入提供相同的输出。但是我如何证明它们是等价的呢? 它甚至可能吗?我知道没有通用算法来证明两种算法的相等性。但如果给出两种算法可能吗? ' 如果您链接到一些书籍或与此相关的Pdf,即使您没有给出这些步骤,我将不胜感激。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

您可能对formal algorithms analysis感兴趣。如果你能证明它们都能产生所需的输出,给定一个输入,那么从输入输出的角度来看它们是等效的。

  

正式分析(证明)。形式分析的目的是证明该算法   适用于任何数据输入实例。这种方法的主要优点是,如果是的话   严格应用它保证了算法的正确性。主要缺点是   寻找证据的难度,主要用于复杂的算法。在这种情况下,算法是   在子算法中分解,分析集中在这些(更简单的)子算法上。   另一方面,正式方法可以更好地理解算法。   由于使用正式的逻辑规则来显示算法,因此这种方法称为形式化   符合其规范。

答案 1 :(得分:0)

算法的平等几乎没有意义。你(可能)想要的是证明两个算法计算/实现相同的功能。所以你只是必须证明每个算法都能实现这个功能。 Hoare逻辑可能是你的朋友。