停机问题

停机问题

1、定义:

停机问题(halting problem)逻辑数学可计算性理论的一个问题。通俗的说,停机问题就是判断任意一个程序是否会在有限的时间之内结束运行的问题。如果这个问题可以在有限的时间之内解决,那么就可以有一个程序判断其本身是否会停机。但是,在程序停止之前,没有办法判断它会不会停止。所以这是一个不可解的问题。

2、本质:

停机问题本质是一阶逻辑的不自洽性和不完备性,类似的命题有理发师悖论全能悖论等。

3、理发师悖论:

我认为,它类似“理发师悖论”,或者说“理发师悖论”就是一种“停机”问题:理发师只给不给自己剪头发的人剪头发,那理发师是否为自己剪头发呢?如果理发师为自己剪头发,那他就不是“不给自己剪头发的人”,他就不应该为自己剪头发;如果理发师不为自己剪头发,那他就是“不给自己剪头发的人”,他就应该为自己剪头发。无论怎么做都不对。

4、那么该如何应用呢?

利用“限制范围”的思想,设计一些“启发式的算法”来解决部分问题:

虽然不能写出一个程序来判定任何给定程序是否会停机,但是可以写出一个简单的程序,让它只是识别出某些一定会停机的程序。例如,如果一个程序的第一条指令就是停机,那么,这个程序一定可以停机。如果一个程序内没有循环,它也一定可以停机等等。Java虚拟机中字节码检验器好像就是利用这种思想来实现的~~~

有兴趣的读者可以关注一下~~~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值