October 13, 2009.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
October 13, 2009.ppt

Theory of Computation Lecture 11: A Universal Program III October 13, 2009 Theory of Computation Lecture 11: A Universal Program III * Coding Programs by Numbers G?del numbers are usually very large, even for small programs. Let us look at the following example: [A] X ? X+1 IF X?0 GOTO A #(I1) = ?1, ?1, 1?? = ?1, 5? = 21 #(I2) = ?0, ?3, 1?? = ?0, 23? = 46 So the number of our small program is 221 ? 346 – 1. October 13, 2009 Theory of Computation Lecture 11: A Universal Program III * Coding Programs by Numbers Note that the number of the unlabeled instruction Y ? Y is ?0, ?0, 0?? = ?0, 0? = 0. Thus, the number of a program will be unchanged if an unlabeled instruction Y ? Y is appended to it. Although this ambiguity is harmless, we avoid it by adding a sentence to our definition of programs of L : The final instruction in a program is not permitted to be the unlabeled statement Y ? Y. October 13, 2009 Theory of Computation Lecture 11: A Universal Program III * Coding Programs by Numbers Then each number determines a unique program. As an example, let us determine the program whose number is 199: 199 + 1 = 200 = 23 ? 30 ? 52 = [3, 0, 2]. So if #(P ) = 199, P consists of 3 instructions, the second of which is the unlabeled statement Y ? Y. 3 = ?2, 0? = ?2, ?0, 0?? 2 = ?0, 1? = ?0, ?1, 0?? Thus, the program is: [B] Y ? Y Y ? Y Y ? Y+1 October 13, 2009 Theory of Computation Lecture 11: A Universal Program III * The Halting Problem Let us define the predicate HALT(x, y). For a given number y, let P be the program such that #(P ) = y. Then HALT(x, y) is true if ?P(1)(x) is defined and false if ?P(1)(x) is undefined. In other words: HALT(x, y) ? program number y eventually halts on input x. Here comes a surprise: Theorem 2.1: HALT(x, y) is not a computable predicate. October 13, 2009 Theory of Computation Lecture 11: A Universal Program III * The Halting Problem Proof (by contradiction): Assume that HALT(x, y) were computable. T

文档评论(0)

gshshxx + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档