算法的完整性和完整性

Jin*_*ing 14 algorithm

我对算法的完整性和完整性感到困惑.

声音算法永远不会返回错误结果.该算法有可能不返回任何内容吗?

完整的算法将解决所有输入.算法返回的结果会影响算法的完整性.例如,如果排序算法将获取所有输入并返回一个列表,但它不保证返回一个排序列表,它只是一个不健全的算法,但它是否完整?

Eri*_*c Z 16

让S成为一组正确的答案.

一个完善的算法从未包括一个错误的答案S,但它可能会错过一些正确的答案.=>不一定"完整".

一个完整的算法应该得到每个正确的答案S:包括完整的正确答案集.但它可能包括一些错误的答案.它可能会为单个输入返回错误的答案.=>不一定是"声音".

所以,

声音算法永远不会返回错误结果.该算法有可能不返回任何内容吗?

一定是对的.但它什么都不会返回.(错过了部分)

例如,如果排序算法将获取所有输入并返回一个列表,但它不保证返回一个排序列表,它只是一个不健全的算法,但它是否完整?

这得看情况.

如果算法返回的列表形成了集合S,那么它就完整了,因为包含了每个正确的答案.它并不一定意味着每一个输出都是正确的.例如S = {b1, b2}.假设,对于输入a1,正确的输出是b1; 对于输入a2,正确的输出是b2.如果算法返回b2a1,b1a2,它是完整的,但不健全.

在另一方面,如果算法总是返回解决b1两个a1a2,这显然不完整.

因此,您不能仅通过其健全性来推断算法是否完整,反之亦然.

请参阅7种的方式接近可靠性和完备性,同时在这里.

  • 此外,您不能从完整性推断健全性。 (2认同)

Ram*_*lat 10

这个比喻会让你理解这个概念.

有钓鱼比赛.目标是捕获重量超过1公斤的鱼.有两个竞争者,Sunada和Compila.每个人都用自己的湖泊钓鱼.每个湖泊都有完全相同数量的鱼类(100种鱼类),其中鱼类的鱼类数量完全相同,重量超过1公斤(50条鱼类).

裁判以哨子开始比赛.他们都捕到许多鱼,直到时间结束.现在它来计算符合规则的鱼类.裁判首先开始对Sunada捕获的所有鱼类进行加重.令人惊讶的是,所有被Sunada捕获的鱼体重超过1公斤!但他只捕获了45条鱼.

另一方面,Compila捕获了60条鱼.似乎Compila赢了,但裁判还没决定.因为可能少于45条鱼的重量超过1公斤.在统计和加权后,裁判称有50条符合规则的鱼类使Compila成为赢家.

现在在这个类比中,Sunada捕获的所有鱼都符合规则,这使他完美无瑕!另一方面,Compila捕获了符合规则的所有鱼类,这使得Compila完全完整!