在可计算性理论与计算复杂性理论中,所谓的决定性问题(Decision problem)是一个在某些形式系统回答是或否的问题。例如:“给两个数字x与y,x是否可以整除y?”便是决定性问题,此问题可回答是或否,且依据其x与y的值。
综述介绍
决定性问题在数学问题是否“可决定”中出现,即是否存在有效方法判定一个性质的存在性。数学中许多重要的问题都是不可决定的。
决定性问题与功能性问题(
函数 problem)(或复杂型问题)密切相关,功能性问题的答案内容,较简单的是比“与非”复杂很多。范例问题:“给予一个正整数x,则哪些数可整除x?”
另一个与上述两类问题相关的是
最优化问题,此问题关心的是寻找特定问题的最佳答案。
解决决定性问题的方法称为 决策程式或算法。一个针对决定性问题的算法将说明给予参数x和y的情况下如何决定x是否整除y(就是小学学的长除法)。若是某些决定性问题可以被一些算法所解决,则称此问题 可决定。
计算复杂度的领域中,分类可决定问题的依据在于 此问题有多难被解决。在此标准下,所谓的 难是以解决某问题最有效率的算法所花费的计算资源为依据。在递归理论中,非决定性问题由
艾伦·麦席森·图灵度(不可解度)决定,指的是一种在任何解答中隐含的不可计算性量词。
计算性理论的研究集中在决定性问题上。在与功能性问题的等值问题中,并没有失去其普遍性。
一个判断决定性的重要手段是
莱斯定理(Rice's Theorem)。
定义介绍
决定性问题指的是在一个数量为无限大的输入集合中,可产出任何是或非解答的问题之集合。因此传统上定义决定性问题,乃依其解答为 是的输入之集合。在此情形下,一决定性问题亦等于一形式语言。
形式上,决定性问题是一
自然数子集 A。借由使用哥德尔数,也可学习诸如形式语言的其他集合。非正规的定义决定性问题,就是判别一个给予的数字是否在此集合内。
例子介绍
一个经典可决定的决定性问题是
质数问题。借由测试每一个可能的因子,有可能 有效决定一个自然数是否为质数。尽管存在很多效能更佳的质数判定方法,任何有效方法的存在就已足够建立可决定性。
在计算复杂性理论中,完备的决定性问题通常用来判别其他决定性问题的复杂度类别。重要的实例包括SAT问题与其数变种,还有无向与有向图可达性问题。
可决定性
一决定性问题 A,若 A是一个递归集合,则称做 可决定的(decidable)或 有效可解(effectively solvable)。若其 A是一递归可枚举集合则称为 部分可决定的(partially decidable)、半可决定的(semidecidable)、可解的(solvable)或 可证明(provable)。除此之外,此问题称为 不可决定的。
完备性介绍
决定性问题可以利用 多至一简化(Many-one reduction)以及其他相关的简化如
多项式时间简化(Polynomial-
时间 reduction)来分类。一个决定性问题P被称为 完备的,只要有一个集合包含一组决定性问题S,集合里所有问题都可以简化为P。完备的决定性问题一般用于计算复杂性理论来分决定性问题于复杂性类。例如布尔可满足性问题对于决定性问题中的NP问题在多项式时间简化下是完备的。
历史介绍
德语“Entscheidungsproblem”,亦即“判定性问题”(Decision-problem),最早出自于大卫·
戴维·希尔伯特的话:“在1928年的会议上,希尔伯特精确地描述了他的问题。首先,数学是否具有完备性?……其次,数学是否具有相容性?……再次,数学是否具有判定性?这些问题的意思是,是否存在这样一种确定的方法,在理论上可适用于任何假设,并且能够保证对无论是否正确的假设都能给出一个正确的结果”(Hodeges,p. 91)。希尔伯特相信“在数学上没有‘ignorabimus’”,亦即“我们将无从得之”。
等价性介绍
一个功能性问题是由一个局部函数f组成的,这个非正式的“问题”是计算f在它定义下的值。
所有功能性问题可以转化成决定性问题;这个决定性问题是这个函数的图(函数f的图是指数对(x,y)有f(x)=y),如果这个决定性问题是可解的,那么这个功能性问题同样可解。这个简化没有考虑计算复杂性,比如划归后在
多项式时间可决定的函数(运算时间是根据函数(x,y)计算的)不一定在多项式时间内可计算(这时只对x计算),函数f=2^x就有这种性质。
所有决定性问题也能转换成功能性问题,就是计算决定性问题集合的特征函数。如果函数是可计算的,那么这个问题就是可决定的。然而,这种转化比在计算复杂性理论里的转化(一般叫多至一多项式时间转化)更加自由。