图灵停机问题

1. 首先你要知道:为什么在证明一个命题时,反证法是有用的。

反证法即首先假设结论不成立,由该假设推导出某个命题的正反两方面,这违反了矛盾律(理论体系发相容性/自恰性),故假设不成立,故结论成立。

可以去知乎上搜:反证法是什么?——东京理科大学2002年高考第三题(数学系)

 

2. 解决图灵停机问题的程序存在吗?答案是“不存在这样的程序”。

怎么证明这个命题呢?用反证法。

首先假设:“存在这样的程序”。(为了方便,下面代码中我省去了a的输入---原图灵停机中,a是有输入的):

function halting(program a)

{

   if(a停机) return true;   //a停机,halting就返回真

   else false;    //a不停机,halting就返回假

}

按照反证法,现在我要引出一个该程序对应的矛盾。

program bug(halting f, program bug)    //使传递的program参数就是自身

{

    if(f(bug)) repeat;  //如果通过f验证出bug停机,则bug不停机

    else return;  //如果通过f验证出bug不停机,则bug停机

}

现在运行:

bug(f,bug)

去看bug到程序,并推导结论:如果里面的参数bug停机,则repeat,最外层的bug不停机。如果里面的参数bug不停机,则return,即外面的bug停机。

因此得到矛盾:当bug的参数为自身时,bug又停机又不停机。

因此假设不成立 => 因此最初要证明的命题成立:"不存在这样的程序"。

上述内容参考:martix67的blog(“不可解问题”)。

 

3. 这个悖论和罗素悖论(理发师悖论)以及类似的“我说的话都是假话”一样,都是集合自指,产生了a=!a的矛盾。

 

图灵停机问题属于CS中的内容。建议继续看看图灵机的模型思想,然后你就大概理解了计算机的体系。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值