计算机科学

为学生,研究人员和计算机科学从业者提供的问答

1
与普通语言的上下文自由交集
上下文无关语言L与常规语言M的交集被称为始终上下文无关。我了解跨产品构造的证明,但是我仍然不明白为什么它是上下文无关的但不是常规的。 由这种相交产生的语言具有PDA 和 DFA 都接受的字符串。由于DFA接受了该语言,因此它不应该是常规语言吗?另外,如果交集是规则的,则也意味着上下文无关,因为所有常规语言也是上下文无关的。 有人可以向我解释为什么通过这种交集获得的语言不规则吗?


3
学习编程语言理论
最近,我对理解和证明(功能)编程语言的各个方面非常感兴趣。 但是,随着我的深入研究,如果没有适当的解释,演算,类别理论和指称语义之类的东西将有些难以理解。λλ\lambda 我读过SICP(相当有启发性的书),但我希望深入研究函数式编程理论。是否有书籍/博客/站点/您的名字可以从头开始讨论功能编程语言的理论?

4
我对Floyd-Warshall,Dijkstra和Bellman-Ford算法之间的区别是否正确?
我一直在研究这三个,并在下面说明了他们的推论。有人可以告诉我我是否足够正确地理解它们?谢谢。 Dijkstra算法仅在您只有一个来源并且想知道从一个节点到另一个节点的最小路径时使用,但是在这种情况下会失败。 当所有节点中的任何一个都可以作为源时,将使用Floyd-Warshall算法,因此您希望从任何源节点到任何目标节点的距离最短。这仅在存在负循环时失败。 如果只有一个来源,则像Dijkstra一样使用Bellman-Ford。这可以处理负重,其工作原理与弗洛伊德·沃歇尔相同,除了一个来源,对吗?(这是我最不确定的那个。)

3
Brzozowski的DFA最小化算法
Brzozowski的DFA最小化算法可通过以下方式为DFA建立最小的DFA :GGG 反转所有边,使初始状态为接受状态,而接受状态为初始,以获得反向语言的NFA,N 'GGGñ′ñ′N' 使用powerset构造获得反语言的,G′G′G' 反转的边(和初始接受交换)以获得原始语言的NFA,并且 ÑG′G′G'ññN 进行powerset构造以获得。G分G分G_{\min} 当然,由于某些DFA具有指数较大的反向DFA,因此根据输入的大小,此算法在最坏的情况下会以指数形式运行,因此,请跟踪反向DFA的大小。 如果ññN是输入DFA 的大小,ññn是最小DFA 的大小,而米米m是最小反向DFA的大小,那么按照ññN,ññn和m计,Brzozowski算法的运行时间是米米m多少? 特别是,在ññn和m之间有什么关系时,米米m布佐佐夫斯基的算法优于霍普克罗夫特算法或摩尔算法? 我听说在实践/应用中的典型示例中,Brzozowski的算法优于其他算法。非正式地,这些典型示例是什么样的?

4
Quicksort向孩子们解释
去年,我读了一篇有关“幼儿园量子力学”的精彩论文。这不是件容易的事。 现在,我想知道如何用最简单的词来解释quicksort。我如何证明(或至少是手波)平均复杂度为,对于幼儿园班级,最佳和最差情况是什么?还是至少在小学?Ø (ñ日志n )Ø(ñ日志⁡ñ)O(n \log n)

3
切割字符串的动态编程练习
我一直在研究本书中的以下问题。 某种字符串处理语言提供了一种原始操作,该操作将字符串分成两部分。由于此操作涉及复制原始字符串,因此与剪切位置无关,长度为n的字符串要花费n个时间单位。现在,假设您要将一个字符串分成许多段。中断的顺序可能会影响总运行时间。例如,如果要在位置以切割20个字符的字符串和,然后在位置使第一切口即被的总成本,而这样做位置10首先具有更好的成本。10 3 20 + 17 = 37 20 + 10 = 3033310101033320+17=3720+17=3720 + 17 = 3720+10=3020+10=3020 + 10 = 30 我需要一种动态编程算法,该算法可给出剪切,以找到将字符串剪切成片段的最低成本。m + 1mmmm+1m+1m +1


3
无限语言与有限语言
对于在计算机理论中使用“无限”语言还是“有限”语言,我还不清楚。 我认为麻烦的根源在于,像这样的语言是无限的,因为它可以生成无限(但可数)的字符串。但是,它仍然可以通过有限状态自动机来识别。L={ab}∗L={ab}∗L=\{ab\}^* Sipser的书没有真正区分这一点也没有帮助(至少据我所知)。样本考试中提出了有关无限/有限语言及其与常规语言的关系的问题。

6
为什么不能使用DFS在未加权图中查找最短路径?
我了解按原样使用DFS不会在未加权图中找到最短路径。 但是,为什么要对DFS进行调整,以使其能够在未加权图中找到最短路径,却前景如此?关于该主题的所有文字都简单地指出无法完成。我不敢相信(自己没有尝试过)。 您是否知道允许DFS在未加权图中找到最短路径的任何修改?如果不是,那么使它变得如此困难的算法又是什么呢?

1
2D卷积:翻转内核?
为什么我们首先需要在2D卷积中翻转内核?这有什么好处?那么,为什么我们不能把它放倒呢? http://www.songho.ca/dsp/convolution/convolution2d_example.html 输入 核心 输出 “首先,在水平和垂直方向翻转内核,即阴影框”

5
图灵机+时间膨胀=解决暂停问题?
有相对论的时空(例如MH时空;请参见Hogarth 1994),其中无限持续时间的世界线可以包含在有限观察者的过去中。这意味着普通观察者可以访问无限数量的计算步骤。 假设一台计算机可以在无限长的时间内完美运行(我知道这是一个很大的要求):可以构造一台沿着此无限世界运行的计算机HM,计算给定M的停止问题。如果M停止,HM将信号发送给有限的观察者。如果经过无数步后观察者没有收到信号,则观察者知道M循环,从而解决了停止问题。 到目前为止,这对我来说还可以。我的问题是:如果我到目前为止所说的是正确的,这将如何改变图灵关于停顿问题无法确定的证据?为什么他的证明在这些时空中失败了?

2
点图定义一个空间分区的数据结构/概念是什么
我遇到了一个解决现实世界问题的算法,并且记得在上一堂课时,我为一些家庭作业问题做了一些非常相似的事情。 基本上,这是点的图,并且绘制的线在两个点之间是等距的。它形成了一个完美的分区,其中围绕该点的线形成了最接近该点的区域形状。这会给任何人敲钟吗?我度过了艰难的时光,谷歌搜索描述并获得结果。而且我不知道该怎么形容。希望图片有帮助。

1
多项式为yes的NP完全问题?
我的印象中,每一个NP完全问题,对于无限多个输入尺寸,唯唯诺诺的情况下接管尺寸的所有可能的输入数量,(至少)在指数。nnnnnnnnn 这是真的?是否可以证明(可能仅在的假设下)?还是我们可以人为地找到一个问题,对于所有(足够大)来说,yes-instances的数量最多为多项式?P≠NPP≠NPP\neq NPnnnnnn 我的推理基本上是给定3-SAT的yes实例,我们可以在每个子句中识别出使它为true的文字,并用另一个变量替换该子句中的另一个变量,而不会改变它的可满足性。由于我们可以对每个子句执行此操作,因此它会导致数量成倍的yes-instances。汉密尔顿路径等许多其他问题也是如此:我们可以自由更改路径上不存在的边。然后,我提出一个非常重要的理由,因为涉及到以某种方式必须保留解决方案的可简化性,所以它必须适用于所有NP完全问题。 这似乎也适用于图同构的NP中间问题(如果我们知道映射关系,就可以在两个图上自由应用相同的更改)。我想知道它是否也适用于整数分解。

8
算法集的基数
有人在讨论中提出(他认为)至少可以有连续数量的策略来解决特定问题。具体的问题是交易策略(不是算法而是策略),但是我认为这不是我要问的重点。 这让我开始思考算法集的基数。我一直在搜索,但是什么也没想出来。我一直在想,由于图灵机使用有限的字母集运行,并且磁带必须是可索引的,因此可数,所以不可能有无数的算法。我的集合论无疑是生疏的,因此我不确定我的推理是完全正确的,而且我可能无法证明这一点,但这是一个有趣的想法。 这套算法的基数是什么?

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.