Questions tagged «computability»

与可计算性理论(又称为递归理论)有关的问题

9
上下文相关(类型1)语言的重要性是什么?
看到在乔姆斯基层次结构中,类型3语言可以由没有外部存储器的状态机(即有限自动机)识别,类型2由具有单个堆栈的状态机(即下推自动机)识别,类型0可以通过类型识别。一个具有两个堆栈的状态机(或者等效地,一个磁带,就像图灵机的情况一样),类型1的语言如何适合这张图片?而且,确定一种语言不仅是Type 0还是Type 1会带来什么优势?

5
证明编译器无法检测到无效代码
我打算讲授有关各种主题的冬季课程,其中之一将是编译器。现在,我在考虑整个季度要分配的作业时遇到了这个问题,但是这让我很困惑,因此我可以用它作为示例。 public class DeadCode { public static void main(String[] args) { return; System.out.println("This line won't print."); } } 在上面的程序中,很明显,由于,print语句将永远不会执行return。编译器有时会给出有关死代码的警告或错误。例如,以上代码将无法在Java中编译。但是,javac编译器不会在每个程序中检测到所有死代码实例。我如何证明没有编译器可以这样做?

2
什么是暂停状态未知的超短程序?
Binary Lambda微积分中的这个579位程序的暂停状态未知: 01001001000100010001000101100111101111001110010101000001110011101000000111001110 10010000011100111010000001110011101000000111001110100000000111000011100111110100 00101011000000000010111011100101011111000000111001011111101101011010000000100000 10000001011100000000001110010101010101010111100000011100101010110000000001110000 00000111100000000011110000000001100001010101100000001110000000110000000100000001 00000000010010111110111100000010101111110000001100000011100111110000101101101110 00110000101100010111001011111011110000001110010111111000011110011110011110101000 0010110101000011010 即,不知道该程序是否终止。为了确定它,您必须求解Collat​​z猜想 -或至少求解所有2≤256的数字。在此存储库中,有关于如何获取此程序的完整说明。 是否有(很多)较短的BLC程序也具有未知的停止状态?


2
NP中不存在但可以确定的NP-Hard问题
我想知道是否有一个很好的例子说明了一个易于理解的,不是NP完全且不确定的NP-Hard问题? 例如,暂停问题是NP-Hard,而不是NP-Complete,但无法确定。 我认为这意味着可以解决问题的解决方案而不是多项式时间内的问题。(如果不是这种情况,请更正此声明)。

2
量子TM和非确定TM有什么区别?
我正在讨论关于如何定义量子图灵机的问题。我觉得量子TM和非确定 TM是一模一样的。另一个问题的答案与此无关。这两个模型是一模一样的吗? 如果不, Quantum TM和NDTM有什么区别? 有没有NDTM比Quantum TM更快的计算? 如果是这种情况,那么Quantum TM是DTM,那么为什么对此技术有如此多的疑问,我们已经有那么多DTM。为什么最后要设计一个新的DTM?

1
赖斯非语义定理
赖斯定理告诉我们,我们可以决定的图灵机的唯一语义属性(即由机器计算的函数的属性)是两个琐碎的属性(即始终为true和始终为false)。 但是,图灵机还有其他无法确定的属性。例如,在给定的图灵机中存在不可达状态的属性是不确定†。††^{\dagger} 是否有与赖斯定理相似的定理,将相似性质的可判定性分类?我没有确切的定义。涵盖我所举示例的任何已知定理对我而言都将是有趣的。 ††^\dagger使用Kleene的递归/固定点定理很容易证明此集合是不确定的。

7
是否有比对角化更直观地证明停顿问题的不确定性?
我理解基于对角化的停顿问题的不确定性证明(例如,在Papadimitriou的教科书中给出)。 尽管证据令人信服(我理解其中的每个步骤),但从我看不到有人会如何从一个问题出发的角度来看,这对我来说并不直观。 在书中,证明是这样的:“假设MHMHM_H解决了输入的停止问题;xM;xM;xM;x,即确定图灵机是否MMM停止输入xxx。构造一个图灵机DDD,将图灵机MMM作为输入,运行MH(M;M)MH(M;M)M_H(M;M)并反转输出。” 然后继续表明D(D)D(D)D(D)无法产生令人满意的输出。 它是在看似随意的建设DDD,饲养的特别的想法MMM本身,然后DDD本身,我想有一个直觉。是什么导致人们首先定义那些构造和步骤? 如果有人不知道以哪种类型的论点开头,那么有人是否会解释如何解释对角化论点(或其他证明)? 附录给出了第一轮答案: 因此,第一个答案指出,证明停顿问题的不确定性是基于Cantor和Russell先前的工作以及对角化问题的发展,而“从头开始”将仅意味着必须重新发现该论点。 很公平。但是,即使我们接受对角化论点作为一个很好理解的给定,我仍然发现从它到停止问题还有一个“直觉差距”。我发现Cantor关于实数不可数的证明非常直观。罗素的悖论更是如此。 我仍然看不到是什么会激励某人基于M的“自我应用” M来定义;M,然后再次将D应用于自身。这似乎与对角化关系不大(从某种意义上说,Cantor的论点没有类似的东西),尽管一旦定义了对角化显然很有效。D(M)D(M)D(M)MMMM;MM;MM;MDDD 聚苯乙烯 @babou总结了让我比自己更困扰的事情:“许多版本的证明都存在这样的问题,即结构似乎是从魔术帽上拔下来的。”

2
Church-Turing论文和神经网络的计算能力
Church-Turing论文指出,所有可以物理计算的东西都可以在Turing Machine上进行计算。论文“通过神经网络进行模拟计算”(Siegelmannn和Sontag,理论计算机科学,131:331-360,1994;PDF)声称某种形式的神经网络(在本文中介绍了设置)更为强大。作者说,他们的模型可以在指数时间内识别出图灵机模型中不可计算的语言。 这与“教会图灵”论证不矛盾吗?

4
图灵说“机器不会引起意外”是由于谬论引起的?
我遇到过下面的语句由阿兰·图灵M. 这里: “我认为,机器不能引起意外的观点是由于哲学家和数学家特别容易受到谬论的影响。这是基于这样的假设,即一旦将事实呈现给人们,该事实的所有后果就会浮现。在许多情况下,这是一个非常有用的假设,但很容易忘记它是错误的。” 我不是英语母语人士。谁能用简单的英语解释它?

2
为什么非可计算函数比可计算函数更多?
我目前正在阅读有关算法和复杂性的书。目前,我正在阅读有关可计算和不可计算的函数的书,并且我的书中指出,不可计算的函数比可计算的函数多,实际上,大多数函数都是不可计算的。从某种意义上说,我可以直观地接受这一点,但是这本书没有给出正式的证明,也没有对此主题进行详尽的阐述。 我只是想看一个证明/让这里的人详细介绍一下/更严格地理解为什么不可计算的功能比可计算的功能多得多的原因。

2
为什么总功能无法枚举?
我们了解了函数枚举的概念。实际上,它们对应于编程语言。 这位教授在一个通俗的评论中提到,所有总功能(即始终为每个输入终止的功能)的类别不可枚举。那将意味着我们不能设计一种编程语言来允许我们编写所有全部功能,而不能编写其他所有功能,这将是一件很高兴的事情! 那么,如果我们想要体面的计算能力,我们(显然)如何不得不接受非终止的可能性呢?

2
除了对角线化,自引用或可归约性之外,是否还有其他原因无法确定的特定问题?
我知道的每个不确定的问题都属于以下类别之一: 由于对角线化(间接自引用)而无法确定的问题。这些问题(如暂停问题)是无法确定的,因为您可以使用该语言的所谓决策器来构造行为会导致矛盾的TM。您还可以将有关Kolmogorov复杂性的许多不确定的问题混入这个阵营中。 由于直接自参考而无法确定的问题。例如,由于以下原因,通用语言可能无法确定:如果可以确定,则可以使用Kleene的递归定理来构建获得自己编码的TM,询问是否接受自己的输入,则相反。 由于减少了现有的不确定性问题而无法确定的问题。这里的很好的例子包括邮政函授问题(从停顿问题中减少)和Entscheidungs问题。 当我向学生讲授可计算性理论时,许多学生也开始学习可计算性理论,并且经常问我是否有任何问题可以证明是无法决定的,而最终并没有追溯到某种自指技巧。我可以用一个简单的基数参数将TM的数量与语言的数量相关联,来无条件地证明存在无限多的不确定性问题,但这并未给出不确定性语言的具体示例。 是否存在由于以上未列出的原因而无法确定的任何语言?如果是这样,它们是什么?使用什么技术来显示其不确定性?

6
是否有可以在任何两种语言之间“翻译”源代码的程序?
是否存在可以在任何两种语言之间“翻译”源代码的程序(假设翻译者可以访问必需的库)? 如果存在,它们如何工作(使用的技术,所需的知识等)?它们将如何可行地构造? 如果不是,阻碍其发展的限制因素是什么?这是AI的完整问题(自然语言翻译列为其中一个)吗? 仅当语言具有相同的表达能力时,才可以预期 EDIT转换,可以解决相同类型的问题,并且要转换的代码可以用目标语言表示。(例如,不建议将Shell脚本转换为MATLAB)。

2
为什么C的void类型不同于Empty / Bottom类型?
维基百科以及我发现的其他来源都将C的void类型列为单位类型,而不是空类型。我觉得这很混乱,因为在我看来,它void更适合于空/底类型的定义。 void据我所知,没有价值观存在。 返回类型为void的函数指定该函数不返回任何内容,因此只能执行某些副作用。 类型的指针void*是所有其他指针类型的子类型。同样,void*在C中进行来回转换是隐式的。 我不确定最后一点是否可以作为void空类型的参数,void*或多或少是与无关的特例void。 另一方面,void它本身不是所有其他类型的子类型,据我所知,这是将类型作为底部类型的要求。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

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.