(假?)函数可计算性的证明吗?


19

考虑,一个返回1且零的函数连续出现在。现在有人给我证明是可计算的:f(n)nπf(n)

对于所有n而言,要么出现在,要么存在出现在而则没有。对于第一种可能性 ; 对于第二个 iff,否则为0。0nπ0mπ0m+1f(n):=1f(n):=1nm

作者声称这证明了可计算性,因为存在一种计算它的算法。f(n)

这个证明正确吗?


2
您可以在问题中使用乳胶,以使其更具可读性。
戴夫·克拉克

7
该论点是正确的,但不是建设性的。这个人没有给您TM,而是给您两个TM,并告诉您其中一个正在计算所需的功能,但不知道哪个。
卡夫

1
您的版本是可计算的。但是,我误读并偶然发现了一个我认为不可争议的版本。唯一的变化:询问π是否最多具有n个零,而不是正好是n个零。如果确实如此,我相信您无法确认,因为π有无数个数字,并且(似乎?)没有任何模式重新出现。
chazisop

我曾经纠正过一个Wikipedia页面,该页面犯了一个相关的错误,声称Chaitin常数的存在证明了“不可计算的整数”的存在。
2014年

这些类型的问题往往是关于“琐碎的语言”的。但是请注意,通常是稍微重新格式化,例如在语言为下,其中m0 k字符串的第一个(或第1个)位置,如果没有这样的字符串,则为-1是不确定的。另请参见如何确定π具有一些数字序列?/ 计算机科学f(n,k)=mm0kπ
vzn 2015年

Answers:


23

想想这样的方式,麦克:这证明“分支”到多个可能的情况下,其中一个必须是真(使用排中律,对于每一个命题,要么p是真的还是¬ p是真实的)。但是,在每个分支的末尾,您总是设法证明函数f是可计算的。因此,无论现实生活中哪种情况真正成立,f都必须是可计算的。(然而,确切原因为何˚F是可计算将是不同的,这取决于分支)。pp¬pff f


16

它是正确的。这是相同的,如下:定义是常数函数X 0如果神存在,并且X 1如果神不存在。所得函数是一个常数函数,因此是可计算的。您可能无法做的就是提供该功能,但是该功能本身是可计算的。f(x)x0x1

在这里,两种可能性之一是正确的:要么存在这样的,要么不存在。该函数要么是常数函数X 1或简单的阈值函数,与定义mx1m


4
我将代替“如果上帝存在” 。:)PNP
卡夫

好的,很抱歉造成误解,我对证明的非构造性没有任何疑问。我的问题是,我们(或至少我)不知道是否可计算。为什么没有必要证明这一点?m
Mike B. 2010年

5
谈论整数是否可计算真的没有任何意义。无论m取什么值,都有一个图灵机输出它。当然,找到它可能很困难,但这与一般情况没有什么不同:发现算法很困难,这是使我们许多人继续工作的事实。
亚伦·罗斯

我还是不明白。哪台图灵机可能会输出此m?不只是它必须显示出现在π,更重要的是它必须验证0 中号+ 1不-这是国际海事组织的问题。0mπ0m+1
Mike B. 2010年

这是您所谈论的建设性方式。如果我给你一台机器,这样的输出,它并不需要说服你,这是正确的,因为它是机器outputing这种(嗯,机至少)。这与上帝的示例(BTW来自Sipser)相同:如果机器输出0,则无需说服您上帝不存在。就是这样。mmm0
迈克尔Cadilhac

14

我认为-并且希望-每个计算机科学专业的学生都面临这个感觉似悖论的问题。这是一个很好的例子,说明了TCS意义上的可计算性和实践意义上的可计算性的区别。

我当时的想法是:“是的,如果我知道答案,那显然是可以计算的。但是如何找出答案呢?” 诀窍是摆脱幻想,即必须发现是否具有此属性。因为,这显然(用imho阅读)不能用图灵机来完成(只要我们不比π具有更多的知识)。ππ

考虑你的定义可计算性:我们说是(Turing-)可计算当且仅当 中号ŧ 中号˚F 中号 = ˚F。那就是您只需要证明一台合适的图灵机的存在,而不必给出一个。您-我们-试图在那里做的就是计算可计算所需功能的Turing机器。这是一个更困难的问题!fMTM:fM=f

证明的基本思想是:我给您提供了无限类的函数,所有这些函数都是可计算的(此处仅作演示用)。然后,我证明您正在寻找的功能在该类中(以示;此处区分大小写)。ed


9

是的,没错,它是可计算的。问题在于您的函数实际上并没有为无限的问题提供解决方案,例如,计算暂停问题的解决方案的函数的方式(例如)是-因此,计算没有问题。取而代之的是,您以函数形式表示具有有限表示形式的某些数学事实,可以是整数,也可以是f是常数1的事实。

可以使用单个数来编码暂停问题,例如Chaitan常数,但是整数始终具有有限的表示形式,因此可以将其编码为图灵机。Ω

当然,找到正确的算法可能是一个难题。但是找到正确的算法通常很困难!


3

发布有点老,但想发布另一个答案。

这是可计算性的非建设性证明(或论据)。它只是说该函数必须在某种意义上存在,因为我可以在可计算函数的集合(或整个函数)中表示它(或更正确地对其进行索引)。但是,它既不构造机器本身(即算法),也不构造索引(假设可计算机器的有效枚举)。在这些情况下,英语短语“ 谢谢 ”一词似乎最为合适,如下所示:

-- Look, I proved there is water somewhere! 

Now you can be happy, while dying from thirst!

数学史上的人们已经对这种论证的实际有效性(或有效性范围)和含义争论了很多。最终结果是,相同类型的论点再次出现在Goedel的不完全性定理中,并违背了这种 “封闭宇宙假设”

如果您非常不喜欢这些论点,我不会怪您。

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.