Questions tagged «halting-problem»

有关暂停问题的问题,即决定给定程序是否在给定输入上暂停。

12
为什么停运问题如此重要?
我不明白为什么经常使用“ 暂停问题”来消除确定程序是否暂停的可能性。维基百科[article] [1]正确地解释了具有有限内存的确定性机器将停止或重复先前的状态。您可以使用算法来检测链表是否循环以实现具有O(1)空间复杂度的停止功能。 在我看来,“停顿问题”证明无非就是所谓的“悖论”,它是自欺欺人的自相矛盾(至少是周期性的),与说谎者的悖论一样。它得出的唯一结论是,停止功能容易受到此类格式错误的问题的影响。 因此,除矛盾的程序外,停止功能是可以确定的。那么,为什么我们认为它是相反的证据呢? 4年后:当我写这篇文章时,我只是看了这段视频。程序员得到了一些程序,必须确定哪些程序终止,然后视频继续解释为什么这是不可能的。我很沮丧,因为我知道给定一些任意程序,主角可能会证明它们是否终止。普遍性的概念以某种方式丢失了。说“无法证明某些程序终止”与“不能证明程序终止”之间是有区别的。正式证明了许多算法可以做到这一点。根据我在网上找到的每一个参考文献,未能做出这种区分是我如何找到该问题的标题。因此,我非常感谢您的回答 将停止功能重新定义为三元而不是布尔值。

5
哥德尔不完备定理,停止问题和通用图灵机之间是否有具体关系?
我一直模糊地认为,对上述问题的回答在以下几方面是肯定的。哥德尔的不完备性定理和停止问题的不可判定性都是关于可判定性的负面结果,并由对角线论证(以及在1930年代)确立,因此它们在某种程度上必须是两种方式来审视同一件事。而且我以为图灵使用了通用的图灵机来表明停止问题是无法解决的。(另请参阅此math.SE问题。) 但是,现在(在学习可计算性课程方面)我更加仔细地研究了这些问题,我对发现的结果感到困惑。因此,我需要一些帮助以理顺我的想法。我意识到,一方面,哥德尔的对角线论点非常微妙:构建一个算术语句需要很多工作,该算术语句可以解释为说出它自己的可导性。另一方面,我在这里发现的停止问题的不确定性证明非常简单,甚至没有明确提到图灵机,更不用说通用图灵机了。 关于通用图灵机的一个实际问题是,通用图灵机的字母与它所模拟的图灵机的字母相同是否重要?我认为这是必要的,以便编造适当的对角线参数(让机器自己模拟),但是我在网上发现的关于通用机器的令人困惑的描述集中,并没有发现对此问题的任何关注。如果不是因为停顿问题,通用的图灵机在任何对角线论点中都有用吗? 最后,我对这进一步的部分感到困惑同一篇WP文章的另一篇文章说,哥德尔不完整的一种较弱形式来自于停顿问题:“无法实现所有关于自然数的陈述的完整,一致和合理的公理化”,其中“声音”应被削弱。我知道,如果一个理论不能得出矛盾,那么该理论是一致的,关于自然数的完整理论似乎意味着可以从中得出关于自然数的所有真实陈述。我知道哥德尔说这样的理论不存在,但是我看不到这样一个假设的野兽怎么可能听起来不对劲,即,也得出对自然数是错误的陈述:否定这样的陈述是正确的,因此从完整性上也可以导出,这会与一致性相矛盾。 我希望您能对其中之一进行澄清。

10
人类的计算能力:人类可以决定图灵机上的暂停问题吗?
我们知道(图灵机上的)暂停问题对于图灵机是无法确定的。有一些研究人的大脑能够如何处理这个问题,可能帮助通过图灵机或通用计算机? 注意:显然,从最严格的意义上讲,您总是可以拒绝,因为图灵机是如此之大,以至于在一个人的生命周期中都无法读取。但这是一个荒谬的限制,对实际问题没有帮助。因此,为了使事情变得均匀,我们必须假设人类具有任意的寿命。 因此,我们可以问:给定图灵机T以任何合适的方式表示,任意寿命的人类H和任意数量的缓冲区(即纸和笔),H可以决定T是否停止该空单词吗? 推论:如果答案是肯定的,那么如果任何一台计算机都有机会通过图灵测试,这是否还会解决?

7
停止问题和热力学熵之间有联系吗?
艾伦·图灵(Alan Turing)提出了一种用于计算机(图灵机,TM)的模型,该模型可以进行计算(数字,函数等),并证明了Halting定理。 TM是机器(或引擎)的抽象概念。停止定理是不可能的结果。卡诺发动机(CE)是热机的抽象概念,卡诺证明了卡诺定理,这是与热力学熵有关的另一种不可能的结果。 假设TM在物理上是可以实现的(至少与CE一样多,或者可能不是?),是否存在TM或CE的映射或表示或“同构”,可以统一这些结果,并且还可以与熵联系起来? 当然,在算法信息论(例如Chaitin,Kolmogorov等)和熵(在这种情况下)方面,有TM和Halting定理的表述。这个问题要求一个更物理的熵概念(如果在潜在答案的过程中出现了算法熵,那很好,但是这并不是问题的确切含义)。 人们还可以检查Phys.se中的另一个问题,该问题将量子不确定性与热力学第二定律联系起来。另请参阅:熵的代数表征,熵的算法表征,熵的各种公式之间的回顾和联系

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
为什么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 



1
是否有可能证明Coq中的暂停问题尚不确定?
我正在观看安德烈·鲍尔(Andrej Bauer)的“ 接受建构主义数学的五个阶段 ”,他说存在两种矛盾的证明(或者数学家称之为矛盾证明的两件事): 假设是错误的……等等等等,矛盾。因此,P为真。PPPPPP 假设是真的...等等等等,矛盾。因此, P为假。PPPPPP 第一个等效于排除中间定律(LEM),第二个等效于如何证明否定。 停止问题(HP)的不确定性证明是通过矛盾证明:假设有一台机器可以决定HP ...等等等等,这是矛盾的。因此,D不存在。dDDdDD 因此,让为“ D存在并可以决定HP”。假设P是真的...等等等等,矛盾。因此,P为假。PPPdDDPPPPPP 这看起来像是第二种矛盾的证明,因此可以证明Coq中暂停问题的不确定性(不假设LEM)吗? 编辑:我会看到一些有关使用矛盾证明这一点的观点。我知道使用对角线化也可以证明这一点。


6
解决图灵“停顿问题”的算法
此问题是从理论计算机科学堆栈交换迁移而来的,因为可以在计算机科学堆栈交换上回答。 迁移 7年前。 “ Alan Turing于1936年证明,不存在解决所有可能的程序输入对暂停问题的通用算法” 我是否可以找到一种通用算法来解决某些可能的程序输入对的暂停问题? 我是否可以找到一种或多种编程语言,对于每种使用该语言的程序,我都可以决定该程序是否终止或永远运行?


5
可以通过转义更高级的计算描述来“解决”停止问题吗?
我最近听到一个有趣的类比,其中指出图灵关于停顿问题的不确定性的证明与拉塞尔的理发师悖论非常相似。 所以我想知道:数学家最终确实设法通过从Cantor朴素的领域表述过渡到更复杂的公理系统(ZFC集合论)(在此过程中进行了重要的排除(约束)和加法)使集合论保持一致。 因此,也许有可能尝试并提出一种比图灵机更强大,更具表现力的通用计算的抽象描述,通过这种抽象描述,既可以得到存在的证明,甚至可以找到一种算法来解决以下问题:一台任意的图灵机?

6
停止为特定输入/假设计算的问题
根据我对停止问题不可计算的证明的理解,该问题不是可计算的,因为如果我们有一个程序P(x)计算该程序x是否停止,则在将P作为输入输入时得到了一个悖论。相同的P,具有:P(P),试图确定P是否暂停使用P本身。 所以我的问题是:暂停程序是否可以由程序P计算为P本身用作输入的所有其他程序?换句话说:止步问题是否仅在这种特殊情况下无法计算,或者证明更笼统,而我缺少某些东西?

4
运行时环境可以检测到无限循环吗?
运行时环境是否有可能检测到无限循环并随后停止相关的进程,或者实现这样的逻辑是否等效于解决暂停问题? 出于这个问题的目的,我定义了一个“无限循环”来表示一系列指令和相关的起始堆栈/堆数据,这些数据在执行时将过程返回到与之前完全相同的状态(包括数据)启动无限循环。(换句话说,生成pi的无限长十进制扩展的程序不会“卡在”“无限循环”中,因为在每次迭代中,它在关联的内存中都有更多的pi数字。) (从/programming//q/16250472/1858225移植)

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.