理论计算机科学

理论计算机科学家和相关领域的研究人员的问答

2
识别超图的折线图
超图的线图是(简单的)图G,其具有H的边缘作为顶点,如果它们具有非空的交点,则H的两个边缘在G中相邻。甲超图是- [R -hypergraph当它的每个边缘均具有至多ř顶点。HHHGGGHHHHHHGGG[Rrr[Rrr 以下问题的复杂性是什么:给定一个图,是否存在一个3超图H使得G是H的线图?GGG333HHHGGGHHH 众所周知,识别超图的线图是多项式,并且已知(由Poljak等人,Discrete Appl.Math.3(1981)301-312)识别r-超图的线图是NP。 -complete对于任何固定ř ≥ 4。 222[Rrrř ≥ 4r≥4r \ge 4 注意:在简单的超图的情况下,即所有超边都是不同的,如Poljak等人的论文所证明的,问题是NP完全的。

1
最小无弦奇数循环图完成度:NP难吗?
我的研究最近出现了以下有趣的问题: 实例:图。ģ (V,E)G(V,E)G(V, E) 解决方案:无弦奇数循环完成,定义为边集的超集,这样完成的图形具有以下特性:中的每个边都包含在无弦奇数循环中。Ë′E′E'ËEEG 'G′(五,E′)G′(V,E′)G'(V, E')G′G′G' 度量:完成的大小,即。| Ë′− E||E′−E||E' - E| 到目前为止,我们已经能够证明该问题的修改版本是NP完全的,在此,我们要求“包含所有边缘”的更强属性,而不是要求“每个边缘都包含在无弦奇数循环中”以三角形(长度为3的循环)”。(请注意,这与MINIMUM CHORDAL GRAPH COMPLETION问题无关。)G′G′G' 很容易看出前者是后者的概括,但是到目前为止,我为证明它所做的所有努力都失败了。谁能提出一个指针/引用/等等?

4
无限图有什么用?
我刚刚在德国维基百科上读到无限图是具有无限个节点或无限个边的图。我只知道有限图的应用和算法。 无限图有什么用? 这些有什么应用?我无法想象可以在无限图上运行的算法,因为您无法存储无限图。因此,您无法对其进行操作。

1
后果?
尽管阿德曼定理表明,但我尚不了解任何文献研究可能包含。这种包含将带来什么复杂性理论的后果?BPP⊆P/polyBPP⊆P/poly\mathsf{BPP} \subseteq \mathsf{P}/\text{poly}BQP⊆P/polyBQP⊆P/poly\mathsf{BQP} \subseteq \mathsf{P}/\text{poly} 阿德曼定理有时被称为“去随机化论证的始祖”。被认为是可随机化的,而没有证据表明的“量子性” 可以通过某种方式消除。这是否可能证明不太可能位于?BPPBPP\mathsf{BPP}BQPBQP\mathsf{BQP}BQPBQP\mathsf{BQP}P/polyP/poly\mathsf{P}/\text{poly}

2
树木和Levenshtein距离的高效diff算法
我最近阅读了有关在树间进行区分的问题的摘要,这使我对了解此问题的最新状态感兴趣。 另外,假设您允许的编辑操作之间是传统的添加/删除节点,您在编辑内容中添加了复制/移动子树的扩展操作,这是否使问题(寻找最佳差异)更容易或更难?

5
编译器正确性证明
我正在寻找涵盖编译器正确性证明的教程材料,最好是在初等研究生的水平上使用指称方法。 另外,您是否知道一些我可以用来说明问题的简单编译器示例?(我想到的第一个示例是从infix到postfix表达式的转换器。但是除了如何对语法进行归纳之外,它没有显示出任何有趣的东西。)

3
使用黑匣子排序
假设我们想要一个列表排序,SSS的nnn实数。假设我们得到一个黑匣子,它可以立即对实数进行排序。使用这个黑匣子,我们可以获得多少优势?n−−√n\sqrt n 例如,是否可以仅使用调用黑盒来对数字进行排序?我发现的最佳算法是对黑盒使用调用。但是我无法进一步改进它。这是我的算法,类似于merge-sort:nO(n−−√)O(n)O(\sqrt n)nnn 首先将列表划分为大小约为列表。然后使用调用黑盒对这些列表进行排序。最后,使用黑框合并排序列表,如下所示:√SSS小号1,s ^2,。。。,ş √n−−√n\sqrt n √s1个,秒2,...,sn√s1,s2,...,sns_1, s_2, ..., s_{\sqrt n} √n−−√n\sqrt nn−−√n\sqrt n 将列表中的最小元素放入新列表,然后调用黑盒对其进行排序。在数(第一和的最小元素)将在最小数目。我们可以将其放在输出列表的第一位。 假设已从选择元素,我们将替换为排序列表的第二个最小元素,然后再次运行黑盒以计算的第二个最小成员。 我们继续进行,直到所有元素都被排序为止。此部分的黑匣子调用总数为L [ 1 ] L S s j L [ 1 ] s j S n - √LLLL[1]L[1]L[1]LLLSSSsjsjs_jL[1]L[1]L[1]sjsjs_jSSSn−n−−√n−nn - \sqrt n。因此,总的通话总数为nnn。 另一方面,看起来我们应该能够使用排序所需的数字比较中的下界来获得下界:我们可以使用√来实现黑盒n−−√lgn−−√=12n−−√lgnnlg⁡n=12nlg⁡n\sqrt n \lg \sqrt n = \frac{1}{2} \sqrt n \lg n比较。如果我们可以通过调用来解决该问题,并在线性时间内进行合并,则可以使用比较对实数进行排序,这是不可能的。no(nlgn)o(n−−√)o(n)o(\sqrt …

4
数据结构同构
免责声明:我不是CS理论家。 来自抽象代数,我习惯于处理等同于同构的事物,但是我很难将这个概念转换为数据结构。我首先以为,设置理论上的双射态射影就足够了,但是我很快遇到了麻烦-它们只是编码而不能捕捉数据结构的计算本质。 有没有更严格(但更有用)的定义?(或者,如果不是,为什么?)“构造数据结构”类别的规范定义吗?

2
n维图案匹配
在n维数组中找到精确的n维子数组有哪些已知结果? 在1D中,这只是一个字符串匹配问题,KMP在线性时间内完成。 在2D模式下,本文显示了它可以在线性时间内完成,几乎没有多余的空间。 对于任何固定尺寸,是否可以在线性时间最坏情况下解决此问题?

3
如果抽象机可以自我模拟,那么图灵系统是否完整?
例如,在编程语言中,通常会编写X-in-X编译器/解释器,但在更一般的层次上,许多已知的图灵完备的系统都可以通过令人印象深刻的方式进行自我模拟(例如,在Conway的《生命游戏》中模拟Conway的《生命游戏》) )。 所以我的问题是:一个能够自我模拟的系统足以证明它的图灵完成了吗?这当然是必要条件。


2
MAX 3SAT的超多项式时间逼近算法
的PCP定理指出,存在用于MAX 3SAT找到满意的分配没有多项式时间算法7/8+ϵ7/8+ϵ7/8+ \epsilon令人满意3SAT式除非的条款。P=NPP=NPP = NP 有一个简单的多项式时间算法可以满足这些条款的。那么,如果我们允许超多项式算法,我们可以做得比好吗?拟多项式时间算法()或次指数时间算法()可以实现什么近似比率?我正在寻找任何此类算法的参考。7/87/87/87/8+ϵ7/8+ϵ7/8+ \epsilon nO(logn)nO(log⁡n)n^{O(\log n)}2o(n)2o(n)2^{o(n)}

5
通过多次传递来减少st-connectivity的空间使用?
假设将具有个顶点的图表示为m个边的流,但是允许对该流进行多次遍历。Ñ 米GGGnnnmmm Monika Rauch Henzinger,Prabhakar Raghavan和Sridar Rajagopalan观察到Ω(n/k)Ω(n/k)\Omega(n/k)空间对于确定G中两个给定顶点之间是否存在路径是必要的GGG,如果允许对数据进行kkk次传递。(另请参阅技术报告版本。)但是,它们没有提供实际实现此限制的算法。我假设一种最佳算法实际上将在现实的计算模型中占用O((nlogn)/k)O((nlogn)/k)O((n\, \log\, n)/k)空间,因为如果一个人不能使用恒定大小的指针索引内存,则必须区分nnn不同的顶点。 如何使用O((n \,\ log \,n)/ k)空间确定kkk传递的图形连通性?O((nlogn)/k)O((nlogn)/k)O((n\, \log\, n)/k) 如果只允许一次通过,则输入数据可以存储为一组顶点的分区,如果在两个不同集合中的顶点之间看到一条边,则合并这些集。显然,这最多需要O(nlogn)O(nlogn)O(n\, \log\, n)空间。我的问题是关于k>1k>1k > 1:如何才能使用更多的通道来减少所需的空间? (为避免琐碎性,kkk是不能被常数先验限制的参数,而空间界限是涉及nnn和k的函数的表达式kkk。) 更新:即使对于k=2k=2k=2,也有一种只存储n/2n/2n/2个顶点的方法确实很有用。还是实际上对于某个常数c都存在一个更强的下界cn,而与k无关?cncncnccckkk

4
排列游戏redux
这是对先前问题的重述。 考虑以下两个爱丽丝和鲍勃之间公正, 完美的信息游戏。给玩家一个从1到n的整数的排列。在每个回合中,如果当前排列增加,则当前玩家输掉,另一玩家赢。否则,当前玩家删除其中一个号码,然后将游戏传递给另一位玩家。爱丽丝先打。例如: (1,2,3,4)-根据定义,鲍勃立即获胜。 (4,3,2,1)-不管别人怎么玩,爱丽丝在三回合后获胜。 (2,4,1,3)-鲍勃可以在第一回合获胜,无论爱丽丝如何比赛。 (1,3,2,4)-爱丽丝立即通过移除2或3获胜;否则,Bob可以通过删除2或3来赢得第一轮胜利。 (1,4,3,2)-爱丽丝在第一回合拿下1 最终胜出;否则,Bob可以在不移除1的情况下赢得第一轮胜利。 是否存在多项式时间算法来确定假设完美玩法的情况下哪个玩家从给定的起始排列中赢得这场比赛?更笼统地说,因为这是标准的公正博弈,所以每个排列都有Sprague-Grundy值;例如(1,2,4,3)的值为* 1,而(1,3,2)的值为* 2。计算此值有多难? 尽管可以通过动态编程将其减少为时间,但显而易见的回溯算法以O(n!)时间运行。O (2ñp Ò 升ÿ(n ))O(2npoly(n))O(2^n poly(n))

1
NP中存在问题,但平均P / poly中没有问题
该卡普-立顿Theoem指出,如果,然后合拢为。因此,假设与之间存在分隔,则没有任何问题将属于。NP⊂P/polyNP⊂P/poly\mathsf{NP} \subset \mathsf{P/poly}PHPH\mathsf{PH}ΣP2Σ2P\mathsf{\Sigma^P_2}ΣP2Σ2P\mathsf{\Sigma^P_2}ΣP3Σ3P\mathsf{\Sigma^P_3}NPNP\mathsf{NP}P/polyP/poly\mathsf{P/poly} 我对以下问题感兴趣: 假设不会崩溃,或者假设在结构复杂性上有任何其他合理的假设,那么很难证明平均水平的问题不在(如果有)?PHPH\mathsf{PH} NPNP\mathsf{NP}Average-P/polyAverage-P/poly\mathsf{Average\mbox{-}P/poly} 的定义可以发现平均情况和最坏情况的复杂性间的关系。由于刚用于指出我实际上需要使用甲v é ř 一克ë - P / p ø 升ÿ代替P / p ö 升ÿ。Average-P/polyAverage-P/poly\mathsf{Average\mbox{-}P/poly}Average-P/polyAverage-P/poly\mathsf{Average\mbox{-}P/poly}P/polyP/poly\mathsf{P/poly} 我认为有诸如(的决定版本)问题FACTORING或DLOG被推测为位于,但猜想是没有证明基于之间的分离复杂度类别。(如果我错了,请纠正我。)NP−Average-P/polyNP−Average-P/poly\mathsf{NP} - \mathsf{Average\mbox{-}P/poly}

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.