计算机科学

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

3
逻辑与计算入门书
您能给我一些有关逻辑和计算的入门(但全面)书籍的建议吗? 我想到的一些模糊主题是: Presburger artihm。,PA,ZF,ZFC,HOL 集合论,类型论 不同理论的建模计算(车床) 与计算复杂度(FMT,描述性复杂度)链接

1
图灵机-一两个方向上的无限胶带
我已经看到图灵机蜂鸣器在一个方向和两个方向上用无限大的胶带表示。这样的图灵机的功能是否有所不同,或者它们基本上是等效的?在我的脑海中,我认为它们是等效的,因为我猜必须有某种方法可以将双向无限带表示为单向无限带,但是我似乎找不到任何证明或示例。

1
查找伪逆矩阵的复杂性
查找任意场的Moore-Penrose伪逆矩阵需要多少算术运算? 如果矩阵是可逆的并且是复数值,那么它就是逆矩阵。找到逆需要时间,其中是矩阵乘法常数。它是算法简介第3版中的定理28.2。O(nω)O(nω)O(n^\omega)ωω\omega 如果矩阵具有线性独立的行或列和复值,然后伪逆矩阵,可以与计算或分别其中是共轭转置。特别是,这意味着需要时间来查找的伪逆。AAAA∗(AA∗)−1A∗(AA∗)−1A^*(A A^*)^{-1}(AA∗)−1A∗(AA∗)−1A∗(A A^*)^{-1}A^*A∗A∗A^*AAAO(nω)O(nω)O(n^\omega)AAA 对于通用矩阵,我见过的算法使用QR分解或SVD,在最坏的情况下,似乎需要算术运算。是否有使用较少运算的算法?O(n3)O(n3)O(n^3)

3
了解加油站问题的算法
在加油站问题中,我们给了个城市以及它们之间的道路。每条道路都有长度,每个城市都定义了燃料价格。一单位的道路需要一单位的燃料。我们的目标是以最便宜的方式从货源到目的地。我们的战车受到一些价值的限制。nnn{0,…,n−1}{0,…,n−1}\{ 0, \ldots, n-1 \} 我试图理解算法,所以我手动写下了计算解决方案的步骤。不幸的是,我被卡住了-在某些时候没有考虑的余地,我不知道为什么,也许我错过了一些东西。 示例: 道路: 0 ----------- 1 ------------ 2 -------------- 3 (不一定要这么简单,可以是任何图形,即0-> 2、0-> 3、1-> 3之间的道路等) 来源:0,目的地:3,坦克:10单位 燃油价格:0:10单位,1:10单位,2:20单位,3:12单位 长度:0-> 1:9单位,1-> 2:1单位,2-> 3:7单位 最佳解决方案:以0填充9个单位,以1填充8个单位,则总成本为170个单位(9 * 10 + 8 * 10)。 因此,我尝试按此处所示进行计算(第2.2段) GV[u] is defined as: GV[u] = { TankCapacity - length[w][u] | w in Cities and fuelPrice[w] < …

1
我们可以多快决定给定的DFA是否最小?
最小化确定性有限自动机(DFA)是一个在文献中已经深入研究的问题,并且已经提出了几种算法来解决以下问题:给定DFA,计算对应的最小DFA并接受与。这些算法大多数都在多项式时间内运行。A一种A\mathscr{A}一种A\mathscr{A} 但是,我不知道该问题的决策变量是否为“给定了DFA,最小”?-比实际计算最小自动机更有效地解决。显然,这还可以通过运行例如Hopcroft的分区细化算法,然后确定是否所有分区都精确地包含一个状态来有效地完成。A一种A\mathscr{A}一种A\mathscr{A} 正如Yuval Filmus 在他的回答中所建议的那样,可以通过使用标准算法来更快地解决可判定性变量。不幸的是,我看不到如何做(希望我在这里没有遗漏明显的观点)。 Yuval在此处的注释中指出,对于恒定大小的字母,最著名的算法(如上述算法)在时间中运行。因此,我不仅对运行时的渐进式显着收益感兴趣,因为这些收益似乎不太可能。最让我困扰的是,我无法想象任何“捷径”都可能源于我们只对“是-否”答案感兴趣的事实,甚至没有可以节省渐近时间的时间的捷径。我认为,每种决定DFA最小化的明智算法都必须实际最小化DFA,并查看在此过程中是否有任何变化。Ø(ñ日志n )O(nlog⁡n)\mathcal{O}(n \log n)

1
使用处理器在时间中找到最大值的并行算法
我们在课堂上介绍了一种算法,该算法可在台计算机上以时间复杂度并行查找数组中的最大值。n 2O (1 )O(1)O(1)ñ2n2n^2 该算法是: 给定长度为n的数组A: 制作一个长度为n的标志数组B,并在台计算机上将其初始化为零。ñnn 比较每2个元素,并使用台计算机以最小值的索引在B中写入1 。ñ2n2n^2 在台计算机的A中找到带有0的索引。ñnn 讲师嘲笑我们可以使用计算机和时间复杂度来完成。登录nñ日志ñnlog⁡n\frac{n}{\log n}日志ñlog⁡n\log n 经过一番思考,我不知道该怎么做。任何的想法?

3
用最少的移动次数匹配数字的算法
这是一种编辑距离问题,非常简单。我只是在这个问题上脑子死了,到目前为止还不能弄清楚。 给定一系列数字,例如 [3, 1, 1, 1] 如何以最少的“移动”数将所有数字最有效地转换为相同的数字?“移动”是指从数字中添加或删除一个。 在上面的示例中,最有效的举动是: [1, 1, 1, 1] 这将需要2步,将第一个数字减少两次。 给定大得多的数百个数字数组,我无法找出找到此结果的最佳方法。 我最初尝试计算四舍五入的平均值(所有值的总和除以长度),然后将其减小为计算的平均值,但是上面的示例破坏了这一点,需要4步而不是2步。 我想我可以算: 平均 模式, 中位数 并获得它们各自的编辑距离,并选择最小距离。但是,我不确定在每个实例中这是否正确。我怎么知道?

1
使用实时编码的教学技巧
我参加了第一年的编程和算法课程。在最近的一次演讲中,我决定使用实时编码来介绍这些资料,这实际上意味着我坐在键盘后面,编写代码并使用emacs对其进行评估,以对其进行评估。 这是相当成功的,学生们评论了他们对这种(互动式)互动形式的欣赏程度。因为这是我第一次尝试使用这种教学格式,所以我知道它运行得并不完美。有些问题与对emacs的了解不尽如人意有关,而其他问题则与允许学生提出的问题使我离脚本太远了。我知道我可以做得更好。 使用现场编码讲座进行讲座(和其他演示)的一些准则是什么? 有哪些陷阱要避免?

1
这个NP难吗?我无法证明。
我有一个问题,我想这很困难,但是我无法证明。 这是一个层图,其中层0是最高层,层L是最低层。 层之间有一些有向边,边(A,B)表示节点A可以覆盖节点B。当A可以覆盖B时,从A到B的任何路径上的每个节点都可以覆盖B,B可以覆盖本身。 最后是一组节点S。我需要选择另一组节点ANS,并确保对于S中的每个节点q,在ANS中都存在一个节点p,并且p覆盖q。 对于每个节点,都有一个成本,我需要使ANS集的总成本最小。 这是一个NP难题吗?我认为是这样,但我无法证明这一点。 你可以帮帮我吗? 非常感谢你。
11 graphs  np 

2
具有非上下文无关补语的上下文无关语言示例
上下文无关的语言不会在补充条件下封闭。在讲座中,我们得到了与Wikipedia相同的论点:对于 既和是上下文无关,但它们的交点不是。由于无上下文语言在联合之下是封闭的,因此它们在补充时也不能封闭。A={anbncm; m,n∈N0}andB={ambncn; m,n∈N0},A={anbncm; m,n∈ℕ0}andB={ambncn; m,n∈ℕ0},A = \{\mathtt a^n \mathtt b^n \mathtt c^m;~m, n ∈ ℕ_0\}\quad\text{and}\quad B = \{\mathtt a^m \mathtt b^n \mathtt c^n;~m, n ∈ ℕ_0\},AAABBBA∩BA∩BA ∩ B 但是,这仅表明三种语言,和是一种上下文无关的语言,具有非上下文无关的补语,但对于哪一种语言而言,这不是真的。那是什么AAABBBA¯¯¯¯∪B¯¯¯¯A¯∪B¯\overline A \cup \overline B 另外,是否有一个最小且优雅的示例,它提供了上下文无关的语言以及非上下文无关的补语(可能是二进制字母)?

2
特殊类二部图的硬计算问题
我对一类二部图的性质感兴趣,其中中的所有节点都是3正则,中的所有节点都是2正则,并且。首先,这是一类众所周知的图吗?其次,X ÿ | X | = | 2 ÿ / 3 |ģ (X∪ ÿ,E)G(X∪Y,E)G(X \cup Y, E)XXXÿYY| X| = | 2ÿ/ 3 ||X|=|2Y/3||X|=|2Y/3| 是否存在仅限于此类二部图的棘手的计算问题的示例?

1
背包问题的变体
如果现在必须将背包中的项目数限制为常数那么在动态编程情况下如何解决背包问题?这是相同的问题(最大重量,每个商品的值均为,重量),但您只能将项添加到背包,显然需要优化背包的值。pppWWWvvvwwwppp 我们需要三维还是没有三维我们可以找到其他方法。我试图简单地在单元格中的背包中添加项目数,并在最后加上最大值,即项目数<=但这不是最佳解决方案。ppp

1
间隔图的数据结构
令nnn为整数,令ZZ\mathbb{Z}表示所有整数的集合。令[a,b][a,b][a,b]表示整数的间隔{a,a+1,a+2,…,b}{a,a+1,a+2,…,b}\{a,a+1,a+2,\dots,b\}。 我正在寻找一种数据结构来表示映射f:[1,n]→Zf:[1,n]→Zf:[1,n] \to \mathbb{Z}。我希望数据结构支持以下操作: get(i)get(i)\text{get}(i)应该返回f(i)f(i)f(i)。 set([a,b],y)set([a,b],y)\text{set}([a,b],y)应更新fff使得f(a)=f(a+1)=⋯=f(b)=yf(a)=f(a+1)=⋯=f(b)=yf(a)=f(a+1)=\cdots=f(b)=y,即更新fff到一个新的地图f′f′f'使得f′(i)=yf′(i)=yf'(i) = y用于i∈[a,b]i∈[a,b]i \in [a,b]并且f′(i)=f(i)f′(i)=f(i)f'(i) = f(i)为i∉[a,b]i∉[a,b]i \notin [a,b]。 应该返回最大间隔 [ 一,b ],使得我∈ [ 一,b ]并且 ˚F是常数 [ 一,b ](即, ˚F (一)= ˚F (一个+ 1 )= ⋯ = ˚F (b ))。stab(i)stab(i)\text{stab}(i)[a,b][a,b][a,b]i∈[a,b]i∈[a,b]i \in [a,b]fff[a,b][a,b][a,b]f(a)=f(a+1)=⋯=f(b)f(a)=f(a+1)=⋯=f(b)f(a)=f(a+1)=\cdots=f(b) 应更新 ˚F到一个新的地图 ˚F '使得 ˚F '(我)= ˚F (我)+ δ为我∈ [ 一,b ]并且 …

1
8拼图的可到达状态空间
我刚刚开始研究人工智能,并且想知道为什么8难题的可到达状态空间为。我看到磁贴的排列数是但是,尚不清楚为什么在任何给定状态下都无法达到拼图的一半可能状态。谁能详细说明?9!/29!/29!/29!9!9! 供参考的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.