问题教学的可计算性


22

我很难教授可计算函数的概念。我试图提出一个想法,为什么像希尔伯特(Hilbert)/阿克曼(Ackermann)/戈德尔(Godel)/图灵/教堂/ ...这样的研究人员发明了“可计算性”的概念。学生们立即问:“可计算性是什么意思?” 除非我教他们图灵机,然后回答“如果图灵机对其进行计算,则该函数是可计算的”,我不会回答。

所以,

是否有不需要使用图灵机,λ演算或类似计算模型的可计算性描述?即使是直观的描述也足够了。


10
“计算机可以计算的所有功能”?通常,我会使用编程语言,因为学生可能会知道一种。我也尝试过使用“任何配方来计算函数”作为算法的直观定义。
2011年

5
如果可以通过控制有限数量步长的离散动态系统演化的有限规则集来解决问题,则该问题是可计算的。
Mohammad Al-Turkistany

1
此外,您可以使用希尔伯特的第十个问题向学生解释为什么它不能解决,以及需要证明不可解决性,其中包括形式化数学中可计算性的概念。
Mohammad Al-Turkistany

另一个问题:Church-Turing论文指出,当且仅当函数可以由任何其他“合理且通用”的计算模型的机器进行计算时,该函数才可以由某些Turing机器进行计算[Goldreich,2008]。那么,是否可以想到与模型无关的可计算性概念?
MS Dousti 2011年

Answers:


37

75年前,周围没有计算机。因此,人们必须非常仔细地解释计算机的数学思想。

今天,每个人都知道计算机是什么,并且可能大部分时间都随身携带一台计算机。这可以非常成功地用于教学,因为您可以跳过带磁带机的过时想法。我的意思是,谁在用胶带?(我知道,我知道,您感到受侮辱了,图灵是个伟人,而我全都同意)。

您只要走进教室问一下:您的iPhone有什么无法计算的吗?这立即使您陷入有关有限资源的问题。然后您说:好吧,假设您的计算机实际上具有无限的内存,是否有无法计算的内容?而且,您可以更加理想化,并将注意力集中在数论功能上(因为您目前对Facebook不感兴趣)。您将需要解释一下计算机的工作方式(如注释中所述,如果学生知道一种编程语言,那是个好习惯,因为您可以使用它而不是描述硬件),但是在此之后,您可以使用所有可计算性的经典参数。理论得出结果。没关系,学生对机器的心理印象是iPhone。实际上,这很重要:对他们而言更重要的是知道他们的iPhone无法完成某些事情。


2
我很喜欢这种说法,因为它是从具体的(iPhone)到抽象的。
Suresh Venkat

2
这是一个有趣的难题:Haskell中的smn和utm定理是什么?
Andrej Bauer

18
“ 75年前没有电脑。” 这是完全错误的。75年前,周围有很多计算机。他们是人类,大多数是女性。他们拥有高级数学学位,一些基本的机械计算工具(例如添加机器和计算尺)以及大量纸张。这些计算机是第二次世界大战期间曼哈顿计划和布莱奇利公园的骨干(尽管有炸弹和庞贝)。图灵正在建模的计算环境是:有铅笔和纸的人。
Jeffε

10
@Jeffe:拜托,你知道我的意思。
Andrej Bauer

8
@JeffE:我们可以检验您的假设。去找你的同事,要求他们画一幅“一台穿着短裙的电脑”的图片。请报告有多少人。
Andrej Bauer

12

“如果有一个从输入到输出的'有效程序',则该函数是可计算的。” 在介绍这个主题时,我过去曾指出他们(学生)如何有一种有效的方法来求解二次方程,而没有一个人可以求解5度或更高的方程。这可以引起对如何将“有效程序”形式化的讨论,但是这种讨论是您希望发生的事情,因此我认为这是功能而不是错误。


3
细化:Abel-Ruffini定理指出,对于五阶或更高阶的多项式方程式,没有通用的代数解(即,根的解)。但是,可以使用诸如Bring自由基之类的方法来获得五次方程的闭式解。
MS Dousti 2011年

您的挑剔实际上是正确的。在讨论可计算性时,您想谈论诸如“允许的运算”之类的问题,而多项式的解就是其中的一件事,当您仔细观察时,它会变得越来越复杂。但是作为介绍,我认为“有效程序”一词和提及二次公式是一个很好的起点。他们并不完全正确,但是直觉非常正确,IMO。
彼得·布斯

8

也许关键是所有这些模型旨在捕捉可计算性的概念。它们都是等效的事实意味着它们试图捕获的概念是可靠的。因此,尽管这不能解决您的难题,但这种健壮性使人们相信“如果有一个图灵机对其进行计算,则该函数是可计算的”。


6

我开始问“是否有任何问题是没有计算机能够令人信服地回答的?” 并将讨论引向哲学问题,例如“如果一棵树掉在森林里,会发出声音吗?” 或“有来世吗?” 我们很快就达成共识,即人类语言可以表达是/否的问题,这些问题涉及无法用数学表达的悖论或概念,因此,是的,存在不可争议的问题。

然后,我用口头上的疑问询问关于可以在计算机中表示的概念(例如整数和图形)是否存在不可争议的问题。我说是的,其中一个例子是著名的暂停问题,该问题涉及检查程序描述并说明程序是否有无限循环。直观地讲,无限循环就像黑洞一样,任何观察无限循环的程序都可能陷入无限循环本身。因此,回答该问题的任何程序都可能永远运行,因此,按照“算法”的定义,没有算法可以解决停止问题。

然后,我又回到图灵机上的样张中。


0

好吧,如果函数接受由特定模式形成或生成的输入,则该函数是可计算的。特定模式表示所有输入都应具有关系,特定输入可以由其上一个或下一个输入生成。如果输入没有这种类型的序列,则不可能开发可以接受的模型或函数。我还要说的一件事是,机器与人之间存在根本的区别。不能为非顺序输入形成机器,但是人类可以。同样,这对制造实际的人类行为机器人造成了很大的干扰。


问题是关于教学的可计算性。如果将您的答案限制为实质性回答该问题,那将是很好的。请记住,OP正在教授本科生,因此个人意见(例如您的最后三个陈述)可能不在范围之内。
Vijay D
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.