Questions tagged «computation-models»

用于计算的允许操作集的定义及其各自的成本。模型的一些示例包括图灵机,递归函数,lambda演算和生产系统。


6
为什么图灵机是流行的计算模型?
我是CS本科生。我了解Turing是如何提出他的抽象机器(建模一个进行计算的人)的,但是在我看来,这是一个笨拙,优雅的抽象。我们为什么要考虑“磁带”,而机器头部要写符号,改变状态,来回移动磁带? 潜在的意义是什么?DFA非常优雅-似乎可以准确地捕获识别常规语言所必需的内容。但是根据我的新手判断,图灵机只是一个笨拙的抽象装备。 考虑一下之后,我认为最理想的计算模型是说,与输入字符串相对应的某个物理系统在被设置为运动后,将达到静态平衡,经解释,该平衡等于用于形成的静态平衡。从原始字符串开始的系统,将对应于正确的输出字符串。这捕获了“自动化”的概念,因为系统将仅基于原始状态确定性地进行更改。 编辑: 在阅读了一些答复之后,我意识到让Turing机器感到困惑的是,它似乎并不是最小的。规范的计算模型是否应该明显传达可计算性的本质? 另外,如果不清楚,我知道DFA并不是完整的计算模型。 感谢您的答复。

7
图灵机“按定义”是功能最强大的机器吗?
我同意图灵机可以解决“所有可能的数学问题”。但这是因为它只是算法的机器表示:首先执行此操作,然后执行该操作,最后输出该算法。 我的意思是,任何可以解决的问题都可以用算法来表示(因为这正是“可解决”的定义)。这只是一个重言式。我在这里没说新话。 通过创建算法的机器表示,它也将解决所有可能的问题也不是什么新鲜事。这也仅仅是重言式。因此,当说图灵机是最强大的机器时,实际上,这实际上意味着最强大的机器是最强大的机器! “最强大”的定义:可以接受任何语言的语言。 “算法”的定义:做任何事情的过程。“算法”的机器表示:一台可以做任何事情的机器。 因此,合乎逻辑的是算法的机器表示将成为功能最强大的机器。艾伦·图灵给我们带来了什么新东西?


7
在多核CPU上必须做些什么?
当考虑我们的程序必须具有多线程友好性时,我的团队对是否有绝对不能在单核CPU上完成的事情感到困惑。我认为图形处理需要大量的并行处理,但是他们认为像DOOM这样的事情是在没有GPU的单核CPU上完成的。 有什么,必须在多核心处理器做什么? 假设开发和运行都有无限的时间。

3
如何为功能语言建模算法复杂度?
算法复杂度被设计为与较低级别的细节无关,但是它基于命令式模型,例如,数组访问和修改树中的节点需要O(1)时间。在纯功能语言中不是这种情况。Haskell列表需要线性时间才能访问。修改树中的节点需要制作树的新副本。 那么功能语言是否应该有替代的算法复杂性建模?

2
量子λ演算
通常,有3种流行的方法来考虑计算:图灵机,电路和lambda演算(我将其用作大多数功能视图的全部)。这三种方法都是思考不同类型问题的卓有成效的方法,因此,不同领域使用不​​同表述。 但是,当我使用量子计算时,我只会考虑电路模型。最初,质量控制是用量子图灵机来定义的,但是据我了解,这个定义(虽然等同于量子电路,如果两者都经过精心制定的话)还没有那么有效。我完全不熟悉第三个公式(就Lambda微积分或类似的功能设置而言)。因此,我的问题是: 量子λ演算(或其他功能范例)的有用定义是什么? 通过使用此公式而不是电路模型,QIP的哪些子领域会获得更深入的了解? 笔记 我知道我忽略了许多其他流行的形式主义,例如元胞自动机,RAM模型等。我之所以将它们排除在外是因为我没有经典地考虑这些模型的经验,更不用说量子论了。 我也知道,在量子环境中还有流行的替代方法,例如基于测量的,拓扑的和绝热的。我不讨论它们,因为我不熟悉经典的对应语言。

7
随机算法与不确定算法之间的区别和关系?
随机算法与不确定算法之间有什么区别和关系? 来自维基百科 甲随机算法是一种算法,其采用一程度的随机性作为其逻辑的一部分。该算法通常使用统一的随机位作为辅助输入来指导其行为,以期在所有随机位的可能选择的“平均情况”下获得良好的性能。形式上,算法的性能将是由随机位确定的随机变量;因此,运行时间或输出(或两者)都是随机变量。 与确定性算法相反,非确定性算法是在不同的运行过程中表现出不同行为的算法。每次运行算法都有几种不同的行为方式。一个并行算法可因竞争条件不同在不同的运行执行。一个概率算法的行为取决于随机数发生器。解决非确定性多项式时间问题的算法可以在多项式时间或指数时间内运行,具体取决于其在执行过程中所做的选择。 随机算法和概率算法是同一概念吗? 如果是,则随机算法只是一种不确定性算法吗?

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

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 

6
有图灵机的物理类比吗?
最近在我的CS课上,我被介绍给Turing Machine。 课后,我花了两个多小时试图弄清楚磁带和机器之间的关系。 直到今天,我还完全不知道计算机磁带的存在或磁带与机器如何相互作用。我仍然看不到为什么机器会读取磁带,但是扫描仪也许比图灵机更接近概念,在图灵机中,纸张被视为磁带,而扫描仪内部的任何东西都将成为图灵机的工作。 但是无论如何,图灵机的想法不是很陈旧吗?我们办公室或客厅中有如此多的物理(而不是假设的)设备,似乎可以完成图灵机的工作。 有人可以提供一个从现实中汲取经验的更好的例子,以便抓住这种假想概念的基本功能吗?

8
每个表达式都有意义的编程语言
根据建议,我将从Stack Overflow重新发布。 最近,我一直在考虑以下问题。 考虑标准“ Hello world!”的代码。程序: main() { printf("Hello World"); } 现在,此代码中的几乎任何更改都将使其完全无用,实际上,几乎所有更改都会阻止代码进行编译。例如: main(5 { printf("Hello World"); } 现在到实际的问题。是否存在一种编程语言,其中每种符号的可能组合(即每种表达式)都有意义?我尝试考虑某种解决方案,并提出了两种解决方案: 后缀数量有限。基本上,在编写任何代码之前,所有变量都已经定义好了,您只需要使用它们。从理论上讲,您可以通过形成许多简单程序的链来执行任意数量的操作,每个简单程序将结果馈给其他程序。代码可以用后缀符号表示为一系列字符。 “ Postfix”带有一堆变量。变量存储在堆栈中;每个操作从顶部开始取两个变量,并将结果放在它们的位置。程序在到达最后一个操作或变量时结束。 我个人讨厌这两个。它们不仅局限,而且优雅。它们甚至不是真正的解决方案,更像是变通方法,本质上是将某些工作“外包”到外部流程中。 有谁有其他想法如何解决这个问题?

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

3
如何显示两个计算模型是等效的?
我正在寻求有关如何证明两种计算模型等效的解释。我一直在阅读有关该主题的书籍,只是省略了等效证明。我对两个计算模型等效是什么有一个基本的想法(自动机视图:如果它们接受相同的语言)。还有其他考虑等效性的方法吗?如果您可以帮助我了解如何证明图灵机模型等效于lambda微积分,那就足够了。

1
无上下文语言的机器,不会因不确定性而获得额外的功能
考虑计算的机器模型时,Chomsky层次结构通常由(按顺序),有限自动机,下推自动机,线性界自动机和图灵机来表征。 对于第一个和最后一个级别1(常规语言和递归可枚举语言),无论我们考虑确定性机器还是非确定性机器,即DFA等同于NFA,DTM等同于NTM 2,对模型的功能都没有影响。 但是对于PDA和LBA,情况则有所不同。与非确定性PDA相比,确定性PDA识别的语言严格更少。确定性LBA是否与非确定性LBA一样强大,这也是一个重大的开放性问题[1]。 这提示了我的问题: 是否存在一种可以描述上下文无关语言的机器模型,但对于非确定性而言,机器模型没有额外的功能吗?(如果没有,那么CFL是否具有某些特性可以说明其原因?) (对我而言)似乎不太可能证明无上下文语言以某种方式需要非确定性,但是似乎没有(确定的)确定性机器足以满足要求的机器模型。 扩展问题是相同的,但是对于上下文相关的语言。 参考文献 S.-Y. Kuroda,“语言和线性绑定自动机的类”,信息与控制,7:207-223,1964。 脚注 意见的补充问题是,乔姆斯基层次结构的级别(按集合包含排序)是否为3到0而不是0到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.