正确性 (计算机科学)

✍ dations ◷ 2025-11-18 10:38:12 #理论计算机科学

在理论计算机科学中,算法的正确性(英语:correctness)是指一个算法在程序规范下被认定为正确的判定。其中,正确(英语:functional correctness)针对输入输出的行为(例如:对每一个输入,算法都能给出预期的输出)。

人们将正确性分为两类。一类被称为部分正确性(英语:partial correctness),它要求在算法返回结果时这一结果是正确的;另一类被称为完全正确性(英语:total correctness),它在部分正确性的基础之上还要求算法必须能够结束。由于对于停机问题没有通用的解决方案,因此判定完全正确性的断言有着更多需要深层次研究的地方。终止的证明是指一类数学证明,因为完全正确性需要证明一个算法会终止,所以它在程序的形式验证中起着至关重要的作用。

例如考虑这样一个问题:依次搜索整数列1, 2, 3, …来看是否存在某个特定现象——比如说存在一个奇数为完全数。对于这个问题而言,我们很容易写出一个部分正确的程序(直接对于每个数字做长除法判定其是否完全)。然而如果我们想证明这个程序是完全正确的,那就相当于我们在断言一个在数论里目前还未知的结论。

在算法和程序规范都是基于形式化来给出时,对正确性的证明应当为一个数学证明。然而我们并不期待能够给出特定机器上实现的特定程序的正确性断言,因为那样将需要考虑诸如内存限制在内的更多问题。

证明论中有一个结论柯里-霍华德同构。这一结论认为:任意一个在构造性逻辑下的功能正确性的证明都对应了一个λ演算程序。这种转换证明的方式被称为(英文:program extraction)。

霍尔逻辑是一个具体的能够严密验证程序正确性的形式系统。它用一系列的公理来定义程序语言的语义,从而通过称之为霍尔三元组的断言来验证程序的正确性。

软件测试是指验证一个程序或系统的某些属性或能力来判断它是否达到预期目的的行为。尽管软件测试在软件质量方面起着至关重要的作用,并且被程序员和测试员们广泛采用,但由于人们对软件的认识十分有限,它仍旧是一个艰深的领域。软件测试的最大难点在于如何控制其复杂性:我们没有办法在一个合理的复杂度内完整地测试一个程序。测试不只是调试。测试的目的包括但不限于确保软件质量、验证其正确性和估算其稳定性。我们对测试的定义也可以更加一般化,其中正确性测试和稳定性测试是两个最大的研究领域。软件测试是预算、时间和软件质量的一个平衡。

相关

  • 中心静脉置管中心静脉导管(central venous catheter, CVC)属于血管内管的一种,放置于大静脉中。常置入之大静脉包括有:全血 · PF24/新鲜冷冻血浆 (冷上清制剂 + 冷沈淀制剂)基于血红蛋白的
  • 性交术语列表性交术语列表列出与性交(泛指所有人类性行为)相关的术语及名词。一、以性器进入他人之性器、肛门或口腔,或使之接合之行为。二、以性器以外之其他身体部位或器物进入他人之性器
  • 雷利·斯科特雷德利·斯科特爵士(英语:Sir Ridley Scott,1937年11月30日-),英国著名电影导演,以风格多变、题材广泛著称。早期代表作为《异形》、《银翼杀手》。曾以《角斗士》获得2000年奥斯卡
  • 坦迪中心地铁坦迪中心地铁(英语:Tandy Center Subway)是一条于1963年2月15日至2002年8月30日期间在美国德克萨斯州沃思堡运营的有轨电车线路,总长0.7英里(1.1千米)。因其部分位于地下,故被称为
  • 法律上的演员《法律上的演员》(乌尔都语:ایکٹر ان لاء‎‎)是一部2016年上映的巴基斯坦喜剧电影,由纳比尔·库雷希(نبیل قریشی‎)执导,菲兹扎·阿利·米尔扎和梅迪·阿利编
  • 2017年苏格马袭击苏格马袭击是印度共产党(毛主义)为抵抗印度准军事部队而于2017年4月24日发动的攻击。这是自2010年发生在邻近的丹德瓦达县的类似事件以来最大的一起袭击事件。该袭击发生于印
  • 陈村 (作家)陈村(1954年-),本名杨遗华,回族。生于上海。毕业于上海师范学院政教系专科。1985年始任上海市作家协会专业作家。1999年兼职“榕树下”网站,任艺术总监,2002年辞职。2004年兼职“99
  • 汉书 (软件)汉书,原名书中仙,由大方广资讯发行,是从DOS时期发展至今的一套中文文书处理软件。其旧版本汉书4/5(HE4/5)相当于PE2的竞争对手。最新的版本为汉书V11.7。汉书的前身是建构于PE2之
  • 伊莎贝拉计划伊莎贝拉计划(英语:Project Isabela),是加拉帕戈斯保护区为了恢复加拉帕戈斯群岛生态而发起的一次行动。 加拉帕戈斯群岛位于太平洋东部,以物种的多样性而闻名。1959年,几个渔民从
  • 权重权即由测量值精度的不同在平差计算中所取的权重不同。精度越高,权越大。求权的基本公式为 p i