Questions tagged «intuition»

需要帮助建立正式或复杂概念的直觉的问题。

8
对数复杂度的算法直觉
我相信我对,和这样的复杂性有一定的了解。Θ (n )Θ (n 2)O(1)O(1)\mathcal{O}(1)Θ(n)Θ(n)\Theta(n)Θ(n2)Θ(n2)\Theta(n^2) 就列表而言,是一个常量查找,因此它只是成为列表的开头。 是我遍历整个列表的位置,而对于列表中的每个元素遍历该列表一次。Θ (n )Θ (n 2)O(1)O(1)\mathcal{O}(1)Θ(n)Θ(n)\Theta(n)Θ(n2)Θ(n2)\Theta(n^2) 除了只知道位于和之间,有没有类似的直观方法来掌握它?Θ(logn)Θ(log⁡n)\Theta(\log n)Θ (n )O(1)O(1)\mathcal{O}(1)Θ(n)Θ(n)\Theta(n)

2
为什么我们相信PSPACE≠EXPTIME?
我在直觉上很难理解为什么通常认为PSPACE与EXPTIME不同。如果PSPACE是在输入大小为f (n )的空间多项式中可解决的问题集f(n)f(n)f(n),那么怎么会有一类经历较大指数时间膨胀且不利用指数空间的问题呢? Yuval Filmus的回答已经非常有用。但是,任何人都可以画出我的一个松散的说法,为什么它可能的情况是PSPACE≠EXPTIME(即PSPACE不是EXPTIME的真子集)?我们是否需要指数空间来突破系统配置总数的上限,而系统配置的总数可以随输入大小成倍地扩展?只能说,我可以理解为什么EXPTIME≠EXPSPACE是一个待解决的问题,但是我对PSPACE和EXPTIME之间的关系缺乏了解。

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
凭经验判断问题是否可以完全解决
这个问题的灵感来自对StackOverflow的评论。 除了了解Garey Johnson这本书中的NP完全问题,以及其他许多问题之外;有一条经验法则可以知道问题是否看起来像是NP完整的问题吗? 我并不是在寻找严格的东西,而是在大多数情况下都能找到可行的东西。 当然,每次我们必须证明一个问题是NP完全问题,或者是NP完全问题的轻微变体时;但是在急于证明之前,对证明的肯定结果抱有一定的信心会很棒。

7
有什么特点
有时候,仔细检查一下,很容易确定算法的时间复杂度。具有两个嵌套循环算法显然为。该探索的所有可能的组合的算法两个值中的基团是明显。N 2 N 2 NñNNñ2N2N^2ñNN2ñ2N2^N 但是,我不知道如何“发现”具有复杂度的算法。例如,递归mergesort实现就是一个。mergesort或其他算法的共同特征是什么,如果我正在分析的话会给我一个提示?Θ (N log N )Θ (N日志ñ)Θ(Nlog⁡N)\Theta(N \log N)Θ (N日志ñ)Θ(Nlog⁡N)\Theta(N \log N) 我敢肯定,算法具有复杂度的方法不止一种,因此任何答案都值得赞赏。顺便说一句,我正在寻求一般特征和提示,而不是严格的证明。Θ (N日志ñ)Θ(Nlog⁡N)\Theta(N \log N)

4
不了解TCS的策略
我是一名正在学习计算理论课程的研究生,一旦被要求,我在制作内容方面存在严重的困难。我能够按照教科书(Michael Sipser的计算理论简介)和讲座进行学习;但是,当被要求证明某件事或提出特定TM的正式描述时,我只是cho之以鼻。 在这种情况下我该怎么办?我想我的问题是完全理解抽象概念,以至于我可以实际使用它们。是否有一种结构化的方法来处理新的抽象概念并最终建立直觉?

2
通过拥有“依赖类型”,我们可以获得什么?
我以为我正确理解了依赖类型(DT),但是这个问题的答案是:https : //cstheory.stackexchange.com/questions/30651/why-was-there-a-need-for-martin-l%C3% B6f要创建直觉型的理论使我产生了其他想法。 在阅读了DT并试图理解它们之后,我想知道,从DT的概念中我们可以得到什么?它们似乎比简单的lambda演算(STLC)更灵活,功能更强大,尽管我无法确切地理解“如何/为什么”。 用STLC无法完成的DT可以做什么?似乎增加DT会使理论变得更加复杂,但是有什么好处呢? 从以上问题的答案: 依赖类型由de Bruijn和Howard提出,他们希望将Curry-Howard对应关系从命题逻辑扩展到一阶逻辑。 从某种程度上讲,这似乎是有道理的,但我仍然无法掌握“如何/为什么”的全局图?也许一个例子明确表明了将CH对应关系扩展到FO逻辑可以帮助理解DT有什么大不了的地方?我不确定我也应该理解这一点。

3
为什么更大的输入量意味着更难的实例?
在下面,假设我们正在使用无限磁带的图灵机。 在向某人解释时间复杂性的概念以及为什么要相对于实例的输入大小对其进行度量时,我偶然发现了以下说法: [..]例如,很自然,与将两个整数与3位相乘相比,您需要更多的步骤来将两个整数与100000位相乘。 这项主张令人信服,但不知何故。在我遇到的所有算法中,输入大小越大,您需要的步骤就越多。换句话说,时间复杂度是输入大小的单调递增函数。 时间复杂度始终是输入大小增加的函数吗?如果是这样,为什么会这样呢?除了挥舞手外,还有其他证据吗?

1
推断优化类型
在工作中,我的任务是推断一些有关动态语言的类型信息。我将语句序列重写为嵌套let表达式,如下所示: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 由于我从一般类型信息开始,并试图推断出更具体的类型,因此自然的选择是精简类型。例如,条件运算符返回其真假分支类型的并集。在简单的情况下,它效果很好。 但是,在尝试推断以下类型时遇到了障碍: function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

1
图灵可识别=>可枚举
我得到了从枚举器转到图灵机的证明(继续运行枚举器,看看它是否与输入匹配),但是我看不到另一种方式。 根据我的笔记和这本书(计算理论简介-Sipser),要从图灵机中获取图灵枚举器,我们基本上会写出所有字母组合。然后,您可以在此输入上运行TM,如果它接受将其打印出来,则用无限的新字符串重复广告替换。 我遇到的问题肯定是这要求语言是可决定的。否则,它可能会陷入某个无限循环中的第三个单词,注定永远不会接受或拒绝,当然也绝不会打印出整个语言。 我想念什么?

3
图像处理中的卷积直觉
我已经阅读了许多有关图像处理中卷积的文档,其中大多数都涉及卷积的公式和一些其他参数。没有人解释对图像进行卷积背后的直觉和真正含义。例如,图上的直觉使它更线性。 我认为该定义的简短摘要是:卷积乘以图像和内核之间的重叠平方,然后再将其求和并放入锚点。这对我来说毫无意义。 根据这篇有关卷积的文章,我无法想象为什么卷积可以做一些“令人难以置信的”事情。例如,此链接最后一页上的线条和边缘检测。只需选择适当的卷积核即可取得很好的效果(检测线或检测边缘)。 任何人都可以就如何做到这一点提供一些直觉(不必一定要有一个整洁的证据)吗?

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.