理论计算机科学

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

2
Savitch定理的紧下界
首先,对于任何愚蠢行为,我都表示歉意。我绝不是复杂性理论的专家(远非如此!我是本科生,上复杂性理论的第一堂课)这是我的问题。现在Savitch定理指出 现在我很好奇这个下限是否紧,即 无法实现。 NSPACE (˚F (Ñ )) ⊆ DSPACE ((˚F (Ñ ))1.9)NSPACE (f(Ñ )) ⊆DSPACE((˚F(n ))2)NSPACE(f(n))⊆DSPACE((f(n))2)\text{NSPACE}\left(f\left(n\right)\right) \subseteq \text{DSPACE}\left(\left(f\left(n\right)\right)^2\right)NSPACE (f(Ñ )) ⊆DSPACE((˚F(n ))1.9)NSPACE(f(n))⊆DSPACE((f(n))1.9)\text{NSPACE}\left(f\left(n\right)\right) \subseteq \text{DSPACE}\left(\left(f\left(n\right)\right)^{1.9}\right) 似乎应该在此处进行简单的组合论证-确定性Turing机器的配置图中的每个节点只有一个输出边缘,而非确定性Turing机器的配置图中的每个节点可以具有更多的输出边。多于一个输出边缘。Savitch的算法正在将具有任意数量输出边缘的配置图转换为具有输出边缘的配置图。&lt; 2&lt;2<2 由于配置图定义了唯一的TM(对此不确定),因此后者的组合大小几乎可以肯定比前者大。这个“差异”可能是的因数,或者可能更小-我不知道。当然,还有很多小技术问题需要解决,例如您需要如何确保没有循环等等,但是我的问题是这是否是开始证明这种事情的合理方法。 ñ2n2n^2

6
为什么用自然而不是整数?
我对自然数为何受到编程语言理论和类型理论书籍(例如J. Mitchell,编程语言基础和B. Pierce,类型与编程语言)的作者如此钟爱的原因感兴趣。简单类型的lambda微积分的描述,尤其是PCF编程语言,通常是基于Nat和Bool的。对于使用和教学通用工业PL的人来说,用整数代替自然数更自然。您能提及PL理论家偏爱nat的一些好理由吗?除此之外,它还不那么复杂。有任何根本原因还是仅仅是一种荣誉? UPD对于所有关于自然的“基本性”的评论:我对所有这些很酷的东西都非常了解,但是我更希望看到一个示例,说明在PL理论的类型理论中拥有这些属性确实至关重要。例如,广泛提到的归纳法。当我们有任何一种逻辑(简单地键入LC就是这种逻辑)时,就像基本的一阶逻辑一样,我们确实使用归纳法,但是对派生树(在lambda中也有)进行归纳。 我的问题基本上来自行业人士,他们想要获得一些编程语言的基本理论。他们曾经在程序中使用整数,却没有具体的论据和对正在研究的理论(在本例中为类型论)的应用,为什么只用nat来学习语言,他们感到非常失望。

2
NFA普遍性的条件
考虑一个不确定的有限自动机和一个函数。另外,我们定义。A=(Q,Σ,δ,q0,F)A=(Q,Σ,δ,q0,F)A = (Q, \Sigma, \delta, q_0, F)f(n)f(n)f(n)Σ≤k=⋃i≤kΣiΣ≤k=⋃i≤kΣi\Sigma^{\leq k} = \bigcup_{i \leq k} \Sigma^i 现在让我们分析以下语句: 如果,则。Σ≤f(|Q|)⊆L(A)Σ≤f(|Q|)⊆L(A)\Sigma^{\leq f(|Q|)} \subseteq L(A)L(A)=Σ∗L(A)=Σ∗L(A) = \Sigma^* 很容易证明,对于它是正确的,因此,如果自动机产生的每个单词的长度最大为,那么它将产生。f(n)=2n+1f(n)=2n+1f(n) = 2^n+12|Q|+12|Q|+12^{|Q|}+1Σ∗Σ∗\Sigma^* 但是,如果是一个多项式,它仍然成立吗?fff 如果不是,那么给定多项式的NFA的构造应该是什么样子?st?p &Sigma; ≤ p (| Q |) ⊆ 大号(甲)⊊ &Sigma; *AAApppΣ≤p(|Q|)⊆L(A)⊊Σ∗Σ≤p(|Q|)⊆L(A)⊊Σ∗\Sigma^{\leq p(|Q|)} \subseteq L(A) \subsetneq \Sigma^*

1
有规范的非相对论技术吗?
在许多领域中,有一些规范技术,每个领域的工作人员都应该掌握。例如,对于减少日志空间,组成的“位技巧”包括不构造组合函数的完整输出,而是始终要求为输出的每一位重新计算结果,从而保留日志空间约束。 我的问题是关于非相对论技术。理论家是否概述了一些基本的非相对论性操作,或者每个已知的非相对论性证明都有不同的技巧?

5
从RSA快速还原为SAT
斯科特·亚伦森(Scott Aaronson)今天的博客文章列出了有趣的,复杂的未解决问题/任务。特别引起我注意的是: 建立一个包含3SAT实例的公共库,其中包含尽可能少的变量和子句,如果解决,将产生值得注意的后果。(例如,对RSA分解挑战进行编码的实例。)研究此库上当前最佳的SAT解算器的性能。 这引发了我的问题:将RSA /分解问题减少到SAT的标准技术是什么?速度有多快?是否有这样的标准削减? 只是为了清楚起见,“快速”并不是指多项式时间。我想知道我们是否对缩减的复杂性有更严格的上限。例如,是否存在已知的立方还原?

2
无限序列的有界输入双射
这是我没有解决的难题。我想知道这个问题是否已经知道,或者有一个简单的解决方案。 它可以定义一个双射使用bicartesian封闭类别的属性。安德烈·鲍尔(Andrej Bauer)在他的博客上以“ 建设性的宝石:杂耍指数 ”的形式发布了对此含义的解释。3ñ≅5ñ3N≅5N 3^\mathbb{N} \cong 5^\mathbb{N} 这个双射有一个有趣的特性:它是“有界输入”,意味着输出的每个组成部分仅取决于输入的有很多组成部分。然而,对于似乎这种结构只能说明ķ Ñ和升Ñ是同构的,如果ķ和升都是奇数或都是偶数。这留下了一个问题:ķ ,升≥ 2k,l≥2k,l\geq 2ķñkN k^\mathbb{N} 升ñlN l^\mathbb{N} ķkklll 是否有到3 N的有界输入双射?2N2N 2^\mathbb{N} 3N3N 3^\mathbb{N} 以下是简短描述问题的简短注释: 关于无限序列的有界输入双射的一个猜想。 定义: 函数是有界的输入,如果存在一个整数ķ 使得输出的每个分量˚F至多仅取决于ķ 输入的组件。更正式地,˚F是有界的输入,如果为每个索引Ĵ ∈ Ĵ 有索引我1,⋯ ,我ķ ∈ 我 和一个函数˚F 米:Xf:∏i∈IXi→∏j∈JYjf:∏i∈IXi→∏j∈JYjf : \prod_{i \in I} X_i \rightarrow \prod_{j\in J} Y_j kkkfffkkkfffj∈Jj∈Jj \in Ji1,⋯,ik∈Ii1,⋯,ik∈Ii_1,\dotsb,i_k \in I …

4
最强大的解析器是什么?
作为附带项目,我正在使用Python编写语言。我从使用称为Ply的flex / bison克隆开始,但是在那种语法风格所能表达的功能方面,我处于优势地位,并且由于与阻抗不匹配,我对破解我的语言不感兴趣。工具。因此,我不反对自己编写。 那么,最强大的解析器类型是什么?欢迎引用论文(以及更多介绍性文章)。 (我知道“功能强大”的定义不明确,但让我们稍微放松一点,看看答案在哪里)

3
如何产生没有哈密顿循环的随机图?
令A类表示所有具有哈密顿环的大小为的图。从此类中生成随机图很容易-获取孤立的节点,添加随机的汉密尔顿周期,然后随机添加边。ññnnñnn 令B类表示不具有哈密顿环的所有大小为的图。我们如何从此类中选择随机图?(或做些接近的事情)ñnn

3
可以满足多少个3-SAT实例?
考虑关于n个变量的3-SAT问题。可能的不同子句的数量为: C= 2 n × 2 (n − 1 )× 2 (n − 2 )/ 3 != 4 n (n - 1 )(n - 2 )/ 3 。C=2ñ×2(ñ-1个)×2(ñ-2)/3!=4ñ(ñ-1个)(ñ-2)/3。C = 2n \times 2(n-1) \times 2(n -2) / 3! = 4 n(n-1)(n-2)/3 \text. 问题的实例的数目是一组可能条款中的所有子集的数量:。琐碎地,对于每个,至少存在一个可满足的实例和一个不满足的实例。是否可以计算或至少估计任何给定n的可满足实例的数量? Ñ ≥ 3一世= 2C一世=2CI = 2^CÑ ≥ 3ñ≥3n …


4
在多项式时间内可以找到最大的独立集的最大类?
该ISGCI列出了1100类图。对于许多这样的函数,我们知道是否可以在多项式时间内确定独立集。这些有时称为IS简易类。我想编译一个最大的 IS-easy类列表。这些类共同构成了此问题的(已知)易处理性的边界。 由于可以在不影响易处理性的情况下,将无限数量的图添加到任何无限的IS-easy类中,因此有一些限制。让我们将类限制为遗传性的类(在获取归纳子图的情况下封闭,或者等效地,由一组排除的归纳子图定义)。此外,让我们只考虑那些带有简短描述的集合X不含X的族。有可能 是还是易处理的类的无限上升链(如(P,star1,2,k)(P,star1,2,k)(P,\text{star}_{1,2,k})-free和下面由David Eppstein描述的类),但让我们将注意力集中在实际上被证明是IS易用的类上。 这是我所知道的: 完美图 -free(P,star1,2,5)(P,star1,2,5)(P,\text{star}_{1,2,5}) -free(K3,3−e,P5)(K3,3−e,P5)(K_{3,3}-e, P_5) 梅尼尔 几乎二分 无椅子 (无,板球)P5P5P_5 -free(P5,Kn,n)(P5,Kn,n)(P_5,K_{n,n})(对于任何固定的)nnn -free(P5,X82,X83)(P5,X82,X83)(P_5, X_{82}, X_{83}) 是否知道其他此类最大类? 编辑:另请参阅Yaroslav Bulatov提出的与排除的未成年人定义的类有关的相关问题,对于未成年人的图有什么方便呢?并查看世袭阶层的整体属性?对于一个更一般的问题,我之前曾问过有关世袭阶级的问题。 正如Jukka Suomela在评论中指出的那样,未成年人排除案件也很有趣(并且会提出一个有趣的问题),但这不是这里的重点。 为了避免David的示例,最大类也应定义为无X图,其中X中并非每个图都有独立的顶点。 下面的答案中给出的类: 无苹果(由StandaŽivný建议) (无,房子)P5P5P_5(由David Eppstein建议) (爪)-freeK2∪K2∪K_2 \cup(由David Eppstein的建议) 添加了2013-10-09: Martin Vatshelle在回答中提到的Lokshtanov,Vatshelle和Villanger的最新结果取代了一些先前已知的最大类。 尤其是,无是IS易包含的,无P 5,板球,无P 5,K n ,n,无P 5,X 82,X 83,和P 5。,免费)都变得轻松。P5P5P_5P5P5P_5P5P5P_5Kn,nKn,nK_{n,n}P5P5P_5X82X82X_{82}X83X83X_{83}P5P5P_5 这意味着,现在可以将一个禁止的诱导子图最多包含五个顶点的所有遗传图类最终确定为IS-easy或not IS-easy。 不幸的是,证明无图形成IS-easy类的证明似乎不适用于无P 6的图,因此下一个领域是对由单个六顶点图定义的所有遗传图类进行分类。P5P5P_5P6P6P_6 我仍然特别是在IS-易类的形式感兴趣的 -免费为一些集合X的图形与无限多的同构类的,但在那里ÿ不含不IS-容易对任何Ÿ ⊂ …

3
如果P = NP,则决策问题未知在PH中,但将在P中
编辑:作为拉维Boppana正确地指出了他的答案和斯科特·阿伦森还增加了在另一个例子中他的回答中,这个问题的答案竟然是“是”在我没想到的所有办法。首先,我认为他们没有回答我的问题要问,但经过一番思考,这些建筑在我想问,这是问题的至少一个回答,“有什么办法来证明一个条件结果“P = NP⇒ 大号 ∈P”无需证明无条件结果大号 ∈PH?”谢谢你,拉维和斯科特! 是否存在满足以下两个条件的决策问题L? 未知L在多项式层次结构中。 已知的是,P = NP将意味着大号 ∈P。 人工的例子和自然的例子一样好。另外,尽管我使用字母“ L ”,但如果有帮助,它可能是一个承诺问题,而不是语言。 背景。如果我们知道一个决策问题大号是多项式层次,那么我们就知道“P = NP⇒ 大号 ∈P。”这样做的目的的问题是问反过来是否成立。如果存在满足以上两个条件的语言L,则可以将其视为反面失败的证据。 这个问题是由乔·菲茨西蒙斯(Joe Fitzsimons)对我对沃尔特·毕晓普(Walter Bishop)的问题“ #P = FP的后果 ”的回答的有趣评论引起的。

6
C实现的最大计算能力
如果我们按照本书(或您愿意的话,可以选择其他任何语言规范版本)进行阅读,那么C实现可以具有多少计算能力? 请注意,“ C实现”具有技术含义:它是C编程语言规范的特定实例,其中记录了实现定义的行为。AC实施不必一定可以在实际计算机上运行。它确实必须实现整个语言,包括每个具有位字符串表示形式的对象和具有实现定义的大小的类型。 出于此问题的目的,没有外部存储。您可能执行的唯一输入/输出是getchar(读取程序输入)和putchar(写入程序输出)。同样,任何调用未定义行为的程序都是无效的:有效程序的行为必须由C规范以及附录J中列出的实现定义的行为的实现描述(对于C99)进行定义。请注意,标准中未提及的调用库函数是未定义的行为。 我最初的反应是,C实现只不过是有限的自动机,因为它对可寻址内存的数量有限制(您不能寻址的存储sizeof(char*) * CHAR_BIT位数更多,因为存储时不同的内存地址必须具有不同的位模式)在字节指针中)。 但是,我认为实现不仅仅可以做到这一点。据我所知,该标准对递归的深度没有限制。因此,您可以根据需要进行任意数量的递归函数调用,只有有限数量的调用中的所有调用都必须使用不可寻址(register)参数。因此,允许任意递归并且对register对象数量没有限制的C实现可以编码确定性下推自动机。 它是否正确?您能找到更强大的C实现吗?是否存在图灵完备的C实现?


5
二元搜索的二元搜索概括?
假设我在S上有一个位姿“ S”和一个单调谓词“ P”。我想找到S的一个或所有满足P的最大元素。 编辑:我有兴趣减少P的评估数量。 存在针对此问题的哪些算法,它们在S上需要哪些属性和其他操作? 重要的特殊情况如何,例如: S是线性顺序-只要您执行“查找中间”操作,常规二进制搜索就可以工作 S是一个晶格 S是子集格 S是一个多集格 ... 后两种情况似乎特别重要,例如对于实验设计-您具有一组布尔值或实际参数,并且您希望找到它们的最小组合以重现特定模式(例如失败的测试)。

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.