Questions tagged «computability»

可计算性理论又称为递归理论。

1
具有规范功能的编程语言
是否有所有功能都具有规范形式的(功能?)编程语言?也就是说,为所有输入集返回相同值的任何两个函数都以相同的方式表示,例如,如果f(x)返回x + 1,而g(x)返回x + 2,则f(f(x ))和g(x)在编译程序时将生成无法区分的可执行文件。 也许更重要的是,我在哪里/如何找到有关程序规范表示的更多信息(谷歌搜索“规范表示程序”效果不佳)?这似乎是一个很自然的问题,而且恐怕我只是不知道我要寻找的正确术语。我很好奇这种语言是否有可能成为图灵​​完整的语言,如果不能,那么在保持这种属性的同时,您可以拥有多么丰富的编程语言。 我的背景非常有限,因此我希望先决条件较少的资源,但是对更高级资源的引用也可能很酷,因为这样我就知道我要努力争取什么。

1
停顿问题,无可争议的集合:常见的数学证明?
众所周知,使用一组可数的算法(以Gödel数为特征),我们无法计算(构建检查归属的二进制算法)N的所有子集。 一个证明可以概括为:如果可以的话,则N的所有子集的集合都是可数的(我们可以将计算它的算法的Gödel数与每个子集相关联)。由于这是错误的,因此证明了结果。 我喜欢这个证明,因为它表明问题等同于N的子集不可数。 现在,我想证明仅使用相同的结果(N个子集的不可数性)就无法解决停止问题,因为我想这是非常接近的问题。有可能以此方式证明吗?

4
概率图灵机能否解决停机问题?
拥有无限个真正随机比特流的计算机比没有计算机的计算机更强大。问题是:它足以解决暂停问题吗? 也就是说,概率计算机可以确定确定性程序是否暂停? 概率计算机无法完成确定性操作的示例:考虑一个小的程序(长度小于一千字节),该程序输出的字符串的Kolmogorov复杂度大于千兆字节。该柯尔莫哥洛夫复杂性字符串的长度是产生该字符串的最短确定性程序的长度。因此,根据定义,确定性程序无法生成复杂度大于其自身长度的字符串。但是,如果给定无限量的真正随机比特流,那么一个小型程序就可以通过简单地回声(例如100亿个随机比特)并希望这些比特的Kolmogorov复杂度足够高来成功完成99.99999 ...%的任务。因此,产生一串优越的Kolmogorov复杂度在概率程序的可能性范围之内,但对于确定性程序则根本不可能。 就是说,我想知道是否有可能使用真正的随机位来对停顿问题进行钢锯。例如,一种算法可能会随机生成定理并证明/证明/放弃它们,直到它知道足以证明/证明给定的确定性程序停止为止。

2
系统F无法计算哪些功能?
在有关图灵完整性的维基百科文章中,它指出: 未类型化的lambda演算是图灵完备的,但包括系统F在内的许多类型的lambda演算不是。类型化系统的价值在于它们能够代表最典型的计算机程序并同时检测更多错误。 系统F无法计算的总可计算函数的示例是什么? 另外,由于hindley-milner是: 系统F的限制 由于以下事实: 类型检查对于System F的Curry样式变体是不确定的,也就是说,缺少显式的键入注释。 这是否意味着在Hindley-Milner类型系统下的lambda演算还没有完全完善? 如果是这样,由于haskell显然是图灵完成的,并且我们知道它是lambda演算和hindley-milner类型系统的基础,因此为了使haskell图灵完成,添加了lambda演算中不存在的哪些功能?

6
C实现的最大计算能力
如果我们按照本书(或您愿意的话,可以选择其他任何语言规范版本)进行阅读,那么C实现可以具有多少计算能力? 请注意,“ C实现”具有技术含义:它是C编程语言规范的特定实例,其中记录了实现定义的行为。AC实施不必一定可以在实际计算机上运行。它确实必须实现整个语言,包括每个具有位字符串表示形式的对象和具有实现定义的大小的类型。 出于此问题的目的,没有外部存储。您可能执行的唯一输入/输出是getchar(读取程序输入)和putchar(写入程序输出)。同样,任何调用未定义行为的程序都是无效的:有效程序的行为必须由C规范以及附录J中列出的实现定义的行为的实现描述(对于C99)进行定义。请注意,标准中未提及的调用库函数是未定义的行为。 我最初的反应是,C实现只不过是有限的自动机,因为它对可寻址内存的数量有限制(您不能寻址的存储sizeof(char*) * CHAR_BIT位数更多,因为存储时不同的内存地址必须具有不同的位模式)在字节指针中)。 但是,我认为实现不仅仅可以做到这一点。据我所知,该标准对递归的深度没有限制。因此,您可以根据需要进行任意数量的递归函数调用,只有有限数量的调用中的所有调用都必须使用不可寻址(register)参数。因此,允许任意递归并且对register对象数量没有限制的C实现可以编码确定性下推自动机。 它是否正确?您能找到更强大的C实现吗?是否存在图灵完备的C实现?


4
教会定理和哥德尔不完备定理
最近,我一直在阅读各种逻辑学家和数学家就可计算性所做的开创性工作的一些想法和历史。尽管各个概念对我来说很清楚,但我正在设法牢牢把握它们之间的相互关系和抽象层次。 我们知道,丘奇定理(或者说是阿隆佐·丘奇和艾伦·图灵对希尔伯特的Entscheidungsproblem的独立证明)证明,一般而言,我们无法计算形式系统中给定的数学陈述是对还是错。据我了解,Church-Turing论文非常清楚地描述了Church的lambda演算与Turing机器之间的等价性(同构),因此我们有效地建立了统一的可计算性模型。(注意:据我所知,图灵的证明利用了暂停问题无法确定的事实。如果我错了,请纠正我。) 现在,哥德尔的第一个不完全性定理指出,在一个具有足够算术能力的一致形式系统中,并非所有陈述都可以在该系统中得到证明或被证明(确定)。在许多方面,我认为这对我来说与丘奇定理完全相同,因为考虑到lambda微积分和Turning机器都是有效的形式系统! 但是,这是我的整体解释,我希望有人可以对细节有所了解。这两个定理有效等效吗?是否有任何细微之处值得观察?如果这些理论本质上以不同的方式看待相同的普遍真理,那么为什么要从不同的角度来对待呢?(戈德尔的证明和教会的证明之间大约有6年的时间)。最后,我们是否可以说形式系统中的可证明性概念(证明演算)与递归理论中的可计算性概念(图灵机/λ演算)相同?


2
算法可以在多大程度上预测任意输入程序的时间复杂度?
该停机问题指出,这是不可能写一个程序,可确定是否存在另一个程序暂停,对于所有可能的输入程序。 但是,我当然可以编写一个可以计算如下程序的运行时间的程序: for(i=0; i<N; i++) { x = 1; } 并返回的时间复杂度,而无需运行它。ññN 对于所有其他输入程序,它将返回一个标志,表明它无法确定时间复杂度。 我的问题是这样的: 必须满足什么条件,以便我们可以算法确定给定程序的时间复杂度? *如果对此有规范的参考或评论文章,请在评论中提供链接。

3
可计算性理论中有没有相对论的结果?
我读安德烈·鲍尔的纸第一步合成可计算性理论。他在总结中指出, 我们的公理化有其局限性:它不能证明可计算性理论中没有相对于oracle计算相对论的任何结果。之所以如此,是因为该理论可以用有效的主题的变体来解释,该主题是通过具有访问oracle的部分递归函数构建的。 这让我想知道可计算性的非相对论性结果。我从可计算性理论中了解到的所有结果都与Oracle的计算相对应。 可计算性理论中是否存在没有相对论的结果?即,相对于某些oracle,结果是否适用于可计算性,但不适用于可计算性? 结果,我的意思是可计算性理论中的一个已知定理,而不是一些成熟的陈述。如果相对化的概念对结果没有意义,那不是我想要的。 知道结果是否可以用合成可计算性理论的语言陈述也很有趣。


3
无限域上张量秩的复杂度
甲张量是向量和矩阵更高的尺寸和的一般化秩张量的还概括的矩阵的秩。即,张量的秩是求和于T的一阶张量的最小数目。向量和矩阵分别是1度和2度的张量。ŤTTŤTT 中的元素来自现场˚F。如果F是有限的,那么Håstad 证明了确定3度张量的秩是否至多r是NP完全的,但是当F是像有理Q一样的无限字段时,他没有给出(或引用)上限。ŤTTFF\mathbb{F}FF\mathbb{F}rrrFF\mathbb{F}QQ\mathbb{Q} 问题:确定3次张量对于Q的秩最多是否为r的复杂度,最著名的上限是什么?TTTQQ\mathbb{Q}rrr

5
问题教学的可计算性
我很难教授可计算函数的概念。我试图提出一个想法,为什么像希尔伯特(Hilbert)/阿克曼(Ackermann)/戈德尔(Godel)/图灵/教堂/ ...这样的研究人员发明了“可计算性”的概念。学生们立即问:“可计算性是什么意思?” 除非我教他们图灵机,然后回答“如果图灵机对其进行计算,则该函数是可计算的”,我不会回答。 所以, 是否有不需要使用图灵机,λ演算或类似计算模型的可计算性描述?即使是直观的描述也足够了。

3
如果抽象机可以自我模拟,那么图灵系统是否完整?
例如,在编程语言中,通常会编写X-in-X编译器/解释器,但在更一般的层次上,许多已知的图灵完备的系统都可以通过令人印象深刻的方式进行自我模拟(例如,在Conway的《生命游戏》中模拟Conway的《生命游戏》) )。 所以我的问题是:一个能够自我模拟的系统足以证明它的图灵完成了吗?这当然是必要条件。

2
范数保持图灵机
量子阅读最近的一些线程运算(在这里,在这里,和这里),让我记住了某种的力量一个有趣的问题范数保持机器。ℓpℓp\ell_p 对于从事复杂性理论研究的人们来说,要实现量子复杂性,Fortnow的论文是一篇很好的介绍性文章,该链接由Joshua Grochow 在此处发布。在那篇论文中,量子图灵机被描述为广义概率图灵机。基本上,机器概率有一个状态下的归一化ℓ 1范数,即∥ 小号∥ 1 = 1。机器的时间演变是通过应用给定的随机矩阵P,使得∥ P 小号∥ 1 = 1,即P保留了sssℓ1个ℓ1\ell_1∥ 小号∥1个= 1∥s∥1=1\parallel s\parallel_1=1PPP∥ P小号∥1个= 1∥Ps∥1=1\parallel Ps\parallel_1=1PPP范数。因此,时间 t处的状态为 P t s(表示法可能不精确,因为 P的左或右乘法取决于 s是行向量还是列向量,或者 P的行或列是保留范数的子空间)。因此,在这个意义上的概率图灵机是一个 ℓ 1范数保持机器表示中号ℓ 1。ℓ1个ℓ1\ell_1ŤttPŤsPtsP^tsPPPsssPPPℓ1个ℓ1\ell_1中号ℓ1个Mℓ1M^{\ell_1} 然后量子图灵机可以被看作是具有状态与∥ 小号∥ 2 = 1和酉矩阵P(即蜜饯ℓ 2个 -norms),使得P 吨小号是在时间的状态吨其中∥ P 吨小号∥ 2 = 1。这是一个ℓ 2范数保持机表示中号ℓ 2。sss∥ 小号∥2= 1∥s∥2=1\parallel s\parallel_2=1PPPℓ2ℓ2\ell_2PŤsPtsP^tsŤtt∥ PŤ小号∥2= 1∥Pts∥2=1\parallel …

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.