对于理想计算机上的纯程序,暂停问题是否可以确定?


25

很容易理解为什么暂停问题对于不纯程序(例如,具有I / O和/或依赖于机器全局状态的状态的程序)无法确定的原因;但是从直观上看,似乎可以通过例如静态分析来确定在理想计算机上停止纯程序。

实际上是这样吗?如果不是,那么哪些反例或论文反驳了这一主张?


35
请注意,有关暂停问题无法确定的标准证明(例如Wikipedia上描述的那一部分:en.wikipedia.org/wiki/Halting_problem#Sketch_of_proof)均适用于甚至不尝试表示I / O的计算模型。虽然图灵机是有状态的,但它们的行为是根据纯函数正式定义的。因此,从某种意义上说,“理想计算机上的纯程序”实际上是通常无法确定停止问题的环境。
2016年

1
你做了什么研究?谷歌搜索“停止问题”应该已经为您回答了这个问题。
乔纳森·

Answers:


38

这是通过减少暂停问题而无法确定的证据。

减少:由于机器和输入,建立一个新的图灵机不读任何输入,但是写入和在磁带上,并模拟的,直到暂停。MxHMxMxM

新机器的行为与输入磁带无关,因此它是图灵机,仅适用于静态分析。如果静态分析足够,那么它可以显示是否停止,这将表明上是否停止,这将解决不纯机器的停顿问题,我们知道这是无法确定的,因此您的问题也无法确定。HHMx



精确地@HendrikJan!
Lieuwe Vinkhuijzen

16

不,不是,而且它不依赖于I / O。

一个简单的反例:编写一个程序以找到一个完美的奇数(这是一个开放的问题:我们尚不知道是否存在)-它不需要任何输入,也不会执行任何不纯的任务;找到一个数字时它可能会停止运行,或者可能无限运行(在这种数字不存在的情况下)。现在,如果静态分析的功能足以确定停止情况,它将用于回答此问题(以及更多问题),其中停止将意味着存在该数字,而没有停止将意味着没有该数字,但是不幸的是,静态分析没有那么强大。


18
我真的看不出这个答案的意义。仅仅因为当前我们不知道是否存在这样的数字并不意味着它不存在,也不意味着我们将来无法编写能够确定该数字的静态分析器。更好的选择是使用一些已知的不确定性问题。例如,众所周知,没有任何程序可以求解所有双色子方程,并且求解此类方程与答案中所示的任务相似。
巴库里

2
好吧,如果停止问题是可以确定的,那么,如果我们可以将其放到询问程序是否停止的形式中,那么每个问题都是可以确定的。或任何形式的问题:有一个可数的集合,我可以决定集合中是否有任何单独的潜在元素。集合是空的吗?Diophantine方程具有一组可数的潜在解,我可以检查每个单独的潜在解是否为一个解。如果停顿问题是可以确定的,那么丢丢丁方程是可以确定的。
gnasher729

10
@ gnasher729是的,由于它们不是暂停问题,所以无法确定。这就是我的意思。虽然此答案中的陈述没有任何实际含义:“考虑一下此数学定义。目前,我们尚不知道一个决定它的程序是否会停止,但是明天一个人会发现它会或不会,并且答案变为100 % 无意义的”。
巴库里

6
这与“ 如何确定π是否具有某些数字序列 ”不是类似的情况吗?,停机问题是不可判定上的问题,而不是单一的问题。
npostavs

2

对角化 的经典证明是一台纯机器,不仅是一台纯图灵机,而且也不依赖于“开放问题”。

例如,执行Collat​​z猜想的Turing机器具有未知的停止状态,但是这取决于我们对Collat​​z猜想的无知,有一天我们可以证明Collat​​z是正确的,然后我们就能够决定该猜想的停止状态(对于某些输入而言,要么不停止,要么始终停止)。

因此,Collat​​z猜想可能已经回答了您的问题(至少暂时是这样),但这取决于我们不知道的事情。相反,经典证明是一个已解决的问题:我们已经知道这是无法确定的


0

仅作记录之用,关于暂停问题无法判定的标准证明依赖于与quines相同的想法:可以编写一个程序,该程序的某些子项将评估整个程序的源代码。然后,如果有一个函数halts,在给定程序源代码的情况下,如果该程序在所有输入上都停止,则返回True,否则返回False,这将是合法程序:

prog() = if halts "prog" then prog() else ()

在哪里"prog"可以算出源代码的表达式prog; 但是,您可以很快看到prog(如果所有输入)如果不停止就停止(这是矛盾的)。此证明中的任何内容均不以任何方式依赖I / O(您需要I / O来写一个Quine吗?)。

顺便说一句,您可能希望查看“基于对话框的I / O”以获取进一步的证据,证明I / O与您的问题完全无关(基本上,执行I / O的程序可以简化为将输入作为输入的程序。 (显式)函数参数,并以惰性语言返回输出(作为(显式)附加结果)。不幸的是,我现在无法在网络上找到一个合理的,没有偏见的页面。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.