计算机科学

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

3
只能使用2个正则表达式操作无法表达的常规语言
我以为所有常规语言都可以用正则表达式表示(如果某种语言是常规语言,则可以用正则表达式表示),但是有人告诉我,您需要所有这三种常规运算(并置,并集和星号)举行。 例如,有人告诉我,如果我只能使用union和concatenation regex操作(3个中的2个),那将是我不能仅用这两个描述的常规语言。 与Kleene明星和工会相同。有哪些例子?

1
对装满垃圾桶
如果一个垃圾箱至少包含球,则称该垃圾箱为满。我们的目标是使尽可能多的垃圾箱充满。kkk 在最简单的情况下,我们得到球,可以任意排列。在那种情况下,显然,我们能做的最好的就是任意捡起垃圾桶,并在每个垃圾桶中放入球。nnn⌊n/k⌋⌊n/k⌋\lfloor n/k \rfloorkkk 我对以下情况感兴趣:给我们对球。我们必须将每对的两个球放在两个不同的箱中。然后,一个对手来到并从每对对手中删除一个球。移除后如何使最大数量的满箱数成为可能?nnn 一个简单的策略是:选择对垃圾箱。用球对填充每个箱对(每个箱包含球,每对一个)。然后,无论我们的对手删除了什么,我们都在每个垃圾箱对中至少有一个完整的垃圾箱。⌊n/(2k−1)⌋⌊n/(2k−1)⌋\lfloor n/(2k-1) \rfloor2k−12k−12k-12k−12k−12k-1 我们是否有一种策略可以实现更多的满仓(大于)?⌊n/(2k−1)⌋⌊n/(2k−1)⌋\lfloor n/(2k-1) \rfloor

2
如何证明P NP?
我知道这似乎是一个非常愚蠢(或太明显而无法陈述)的问题。但是,我有时会感到困惑。 我们可以证明P NP===当且仅当我们可以设计一种在多项式时间内解决NP中任何给定问题实例的算法时。 但是,我不明白我们到底如何证明P NP。请原谅我以下类似的说法,因为它可能无关紧要,但在我看来告诉某人证明P不等于NP就像告诉某人证明上帝不存在。≠≠\neq 存在一系列问题,无论当前技术如何,具有多项式状态数的不确定性有限自动机(NFA)都无法解决这些问题(我知道这是一个草率的定义)。此外,我们拥有大量算法,这些算法会带来一些关键问题(最短路径,最小生成树,甚至是整数)多项式时间问题。1 + 2 + ⋯ + n1+2+⋯+n1 + 2 + \dots + n 简而言之,我的问题是:如果我相信P NP=== ≠,那么您会说“然后显示您的算法可以在多项式时间内解决NP问题!”。假设我相信P NP。那你到底要问什么?您要我显示什么?≠≠\neq 答案显然是“您的证明”。但是,什么样的证据表明算法不存在?(在这种情况下,用于NP问题的多项式时间算法)

2
NP中的邮政对应问题吗?
我刚刚读了Sipser的书《关于后对应问题的计算理论入门》中的几页,并且我认为PCP实际上在NP中。证明者是:对于桩的输入配置 将串联为字符串并串联作为字符串,然后比较和,看两者是否相等,然后得出结论,该输入实际上是PCP的解决方案。(t1/b1,t2/b2,...tn/bn)(t1/b1,t2/b2,...tn/bn)(t_1/b_1, t_2/b_2,...t_n/b_n)t1,t2,...,tnt1,t2,...,tnt_1, t_2,...,t_ntttb1,b2,...,bnb1,b2,...,bnb_1, b_2, ..., b_nbbbtttbbb

1
使用唯一元素编辑列表的距离
列表之间的Levenshtein-Distance编辑距离是一个经过充分研究的问题。但是如果知道每个列表中没有元素出现超过一次,我在可能的改进上找不到很多东西 。 我们还假设元素是可比较的/可排序的(但是要比较的列表并不是从头开始排序的)。 O(min(m,n)s)O(min(m,n)s)O(\min(m,n)s)sO (分钟(s ,m ,n )s )O(min(s,m,n)s)O(\min(s,m,n)s)sss 更正式地说, 我们如何有效地计算两个给定字符串s,t \ in \ Sigma ^ *之间的编辑距离 小号,吨∈ Σ∗s,t∈Σ∗s,t \in \Sigma^* ,并保证它们没有重复的字母? ΣΣ\Sigma是一个非常大的字母。

1
自动机中正则表达式与语法的区别
我是自动机的新手,仅在昨天才对正则表达式进行了简要介绍。我已经阅读了定义正则表达式的各种规则。但是我无法区分正则表达式和某种语言的语法(没有教我正则表达式的语法)。 我知道语法可以帮助我们生成一种语言中的有效字符串,但这就是定义正则表达式状态的规则。那么区别在哪里呢?我问我的教授,他说正则表达式是一种语言中最基本的字符串,语法是任何一种语言的规则集,其顺序比正则表达式高。有人可以提供一些更深入的信息吗?

1
是否存在任何已知的AM完全问题/是否已明确定义AM完全?
我很好奇Arthur-Merlin复杂度类中是否有完整的问题。图表非同构(GNI)似乎是一个问题的典型的例子在上午,但它可能不是一个完整的一个。 我想我还想知道AM是否明确定义了“完整”问题。由于AM = BP.NP,“减少”到AM似乎依赖于随机减少到3SAT,而不是我们用于确定性复杂性类别的Karp减少。因此,也许因为Karp归约法没有错误,“ Karp归结为AM问题”实际上没有任何意义,从而使我们使用“完全”问题的通常观念无效了吗?

2
良好的快照表数据结构可用于内存索引
我正在为一个非常特殊的用例设计内存对象数据库。它是单个编写器,但必须支持有效的并发读取。读取必须隔离。没有查询语言,数据库仅支持: 通过属性/属性集获取对象(例如,可能支持表达式x.count < 5) 获取对象的属性 查询是命令脚本,由任意数量的上述操作组成。数据大小将是<< <<内存,因此大多数属性上的所有对象和索引都应舒适地容纳而无需交换。 我需要的是对象属性索引的数据结构,该数据结构在写入时可以为O(n),不支持写入并发,但理想情况下应支持O(1)快照(可能在写入时进行复制)和O(logN)访问。理想情况下,这将允许读取时具有高并发性,并在版本之间实现最大的结构共享。 我当时在看CTries,并发BST和并发Splay 树,但是我不确定我是否真的在朝正确的方向看。上面的结构非常关注我不关心的插入物的复杂性。 问题:是否有一个现成的数据结构适合我的用例? 编辑:经过更多思考之后,似乎持久的BST / Splay树将起作用。编写者将更新“主”副本,查询将在执行开始时获得该树,并在完成后将其丢弃。但是,我仍然对是否有更好的解决方案感兴趣。


2
广义XOR-SAT是否可以有效解决?
我已经了解了XOR-3-SAT是如何有效解决的(例如,有关布尔可满足性问题,请参见Wikipedia条目中的“ XOR-可满足性”部分)。 我想知道一个基本问题: 对于每个子句具有不同数量的文字的公式,XOR-k-SAT是否可以有效求解? 我真的很想知道是否可以将每个子句的文字量增加到3以上,以及是否可以混合使用子句长度。

2
为什么谢弗定理不能证明P = NP?
这可能是一个愚蠢的问题,但我只是不明白。在另一个问题中,他们提出了舍费尔的二分法定理。对我来说,它似乎证明了每个CSP问题都在P或NP完全中,但不在两者之间。由于每个NP问题都可以在多项式时间内转换为CSP(因为CSP是NP完全的),为什么不能证明P和NP-Complete之间没有空间,所以P = NP? 例如,我的想法是,可以将整数分解分解为可满足性问题,因此使用Schaefer定理,它应该是P或NP完全的,但不能介于两者之间(即使我们无法确定它是哪一个)。 看待整个问题的另一种方式:为什么我们不能使用Schaefer定理来确定整数分解是P还是NP-complete? 编辑:回应大卫·里希比的回答(评论太久了): 有趣,但我尚未完全理解。在使用舍弗定理定义关系伽玛集时,我们可能对其施加限制。例如,我们可以将伽玛限制为仅使用Arity 2关系(然后问题出在P中)。我们可以对伽玛施加什么样的限制? 我们为什么不能强加所有CSP(gamma)实例与(同构为)L完全相同的限制?例如,当对不均匀数进行整数分解时,两个除数之一用二进制表示为xn .. x3 x21。现在,我希望此数字大于1。因此,我具有以下关系(xn或..或x3或x2)。因此,我说伽玛可以与n-1有一个OR关系。但是我不希望该or-relation用于在语言中包含L以外的其他实例,因此我还强加了or-relation中的x2..xn不允许取反。当然,我还需要施加限制,即仅在其中使用特定变量。 是否可以通过这种方式让CSP(γ)同构为整数分解?主要问题是:我们可以对伽玛施加什么样的限制? 编辑2:回应尤瓦尔·菲利弗斯的回答。 我理解您的回答,尽管与David的回答大致相同,但它似乎是正确的。例如,我们可以将因式分解简化为3-sat,然后得出因式分解是NP完全的结论,这是错误的,因为3-sat还有其他实例可能不是因式分解的。 我不了解的部分是实例是(非)任意的。例如,2-SAT在我看来也不是任意的,因为只允许使用arity 2的子句(尽管我必须承认,证明仍然成立,因为它是一个上限,在这种情况下,上限是P)。 NP完整性是一个更好的例子:上面的问题。一个回答者提供了完整的Schaefer证明。但是我对输入施加了重要的限制(允许2-SAT子句和异或子句,但没有其他限制)。当然,证明仍然成立,因为证明中考虑的CSP问题与原始问题完全相同。 我不理解的部分是为什么我们不能对分解进行类似的处理?当然,将其简化为3-SAT是没有用的,但是请允许我给出一个CSP实例,该实例分解一个数字,仅分解一个数字(4位)。(如果您认为可行,请跳至END-OF-SKIP)。 分解实例。 输入: ñ4ñ3ñ2ñ1个n4n3n2n1n_4n_3n_2n_1米4米3米2米1个m4m3m2m1m_4m_3m_2m_1 现在,让我们将其转换为CSP实例 ñ5。。ñ1个n5..n1n_5..n_1米5。。米1个m5..m1m_5..m_1 d4d3d2d1个d4d3d2d1d_4d_3d_2d_1Ë4Ë3Ë2Ë1个e4e3e2e1e_4e_3e_2e_1 关系: Ë4∨ è3∨ è2e4∨e3∨e2e_4 \lor e_3 \lor e_2 (d4∧¬m4)∨(d4=m4∧d3∧¬m3)∨(d4=m4∧d3=m3∧d2∧¬m2)∨(d4=m4∧d3=m3∧d2=m2∧d1∧¬m1)(d4∧¬m4)∨(d4=m4∧d3∧¬m3)∨(d4=m4∧d3=m3∧d2∧¬m2)∨(d4=m4∧d3=m3∧d2=m2∧d1∧¬m1)(d_4 \land \neg m_4) \lor (d_4=m_4 \land d_3 \land \neg m_3) \lor (d_4=m_4 \land d_3=m_3 \land d_2 …

3
如何不使用NFA从正则表达式创建DFA?
目标是从正则表达式创建DFA,并且不能使用“ Regular exp> NFA> DFA转换”。应该怎么做呢? 我向我们的教授问了这个问题,但他告诉我,我们可以使用直觉,并拒绝提供任何解释。所以我想问你。 不能选择“正则表达式> NFA> DFA转换”,因为这样的转换要花费大量时间来转换一个相当复杂的正则表达式。例如,对于某个正则表达式,“ regex> NFA> DFA”对于人类来说要花费1个小时。我需要在不到30分钟的时间内将正则表达式转换为DFA。

3
停止问题的不确定性证明是否会通过反转结果作弊?
我很难理解图灵的暂停问题。 他的证明假设存在一个神奇的机器,该机器可以确定对于给定的输入,计算机将永远停止还是循环。然后,我们连接了另一台使输出反转的机器,我们有一个矛盾,因此不存在。HHHHHH 我担心的是,好像我们说的答案是错误的,因为我们将其颠倒了。打个比方,如果有一台名为的机器,它在某些输入上输出正确答案,而在其他输入上输出错误答案。然后,我们连接另一台机器,该机器反转的结果,因此这两台机器的组合与的定义方式矛盾。现在,这两台机器会为定义为输入生成错误答案以输出正确答案,并为定义为输入输出正确答案以输出错误答案。这会被称为矛盾,因此不存在一种在某些输入上输出正确答案而在其他输入上输出错误答案的机器吗?AAAAAAAAAAAAAAA

4
布谷鸟哈希比动态完美哈希有什么优势?
动态完美哈希表和布谷鸟哈希表是两个不同的数据结构,它们支持最坏情况下的O(1)查找和预期的O(1)时间插入和删除。两者都需要O(n)辅助空间,并需要访问散列函数系列才能进行操作。 我认为这两个数据结构本身都是美丽而辉煌的,但是我不确定我如何,何时将其中一个比另一个更好。 这些数据结构中的一个结构是否具有明显的优势,是否存在特定的环境?还是它们大多数都可以互换?

2
组同构到图同构
在阅读一些有关计算复杂性的博客时(例如,在此处),我吸收了这样一种观念,即确定两组是否同构比测试两个图的同构容易。例如,在所述页面上说图形同构是比组同构更普遍的问题。 因此,我提出以下内容 给定一个组,有人可以给出|的大小多项式图Γ (G )的构造。 G | 使得Γ (G ^ )≅ Γ (ħ )GGGΓ (G )Γ(G)\Gamma(G)| G ||G||G|团体 g ^和 ^ h ?Γ (G )≅Γ (ħ)⟺摹≅HΓ(G)≅Γ(H)⟺G≅H\Gamma(G) \cong \Gamma(H) \iff G \cong HGGGH?H?H?

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.