在
可计算性理论与
计算复杂性理论中,所谓的决定性问题(Decision problem)是一个在某些
形式系统回答是或否的问题。例如:“给两个数字x与y,x是否可以整除y?”便是决定性问题,此问题可回答是或否,且依据其x与y的值。
综述
决定性问题在数学问题是否“可决定”中出现,即是否存在有效方法判定一个性质的存在性。数学中许多重要的问题都是不可决定的。
决定性问题与功能性问题(Function 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-time 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就有这种性质。
所有决定性问题也能转换成功能性问题,就是计算决定性问题集合的
特征函数。如果函数是可计算的,那么这个问题就是可决定的。然而,这种转化比在
计算复杂性理论里的转化(一般叫多至一多项式时间转化)更加自由。