理论计算机科学

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

2
用于更新解析树的高效算法
假设我有很多代码已经被字典化和解析了。 假设只有一个字符发生变化;我想更新我的解析,但是由于与整个事物相比修改很小,我想知道是否有可能不再次解析整个事物,但是是否有算法来确定重新解析的范围,并妥善处理移动的令牌边界。 提前致谢!

2
用nat或其他归纳数据类型进行微积分的切消?
是否有人将我引向一篇详细介绍命题直觉逻辑的割消除定理的论文,包括诸如自然数之类的归纳数据类型(列表或树也可以)?什么系统我对的一个例子是哥德尔T,其具有由所述语法给出类型。我对自然数或以自然数索引的谓词不太感兴趣。A::=N|A→A′A::=N|A→A′A ::= \mathbb{N} \;\;|\;\; A \to A' 我知道如何使用逻辑关系参数(或诸如NbE之类的相关技术)来证明这些系统的自然推导版本的beta归一化,但是我想知道是否存在有关如何使这些方法适应随后的结石的标准参考。 我问的原因是我正在研究添加定点运算符以保护语言的递归。否定性想法是一个相当古老的想法-通过Banach定理将类型解释为超空间和不动点-但是我所知道的证明消除剪切的纯粹语法技术似乎并不能很好地适应这种情况。

2
将匈牙利算法推广到一般无向图?
匈牙利算法是一种组合优化算法,它解决了多项式时间内的最大权重二部匹配问题,并预见了重要的原始对偶方法的后续发展。该算法是Harold Kuhn在1955年开发和发布的,他将其命名为“匈牙利算法”,因为该算法是基于两位匈牙利数学家DénesKőnig和JenőEgerváry的较早著作。蒙克雷斯(Munkres)在1957年对算法进行了审查,发现它确实是多时制。从那时起,该算法也称为Kuhn-Munkres算法。 尽管匈牙利语包含原始对偶方法的基本思想,但它无需使用任何线性编程(LP)机器即可直接解决最大权重二分匹配问题。因此,在回答以下问题时,Jukka Suomela评论 当然,您可以使用通用LP求解器来求解任何LP,但是专用算法通常具有更好的性能。[...]您通常还可以避免使用精确有理数与浮点数之类的问题;使用整数可以轻松完成所有操作。 换句话说,您不必担心如何从LP解算器中舍入有理数/浮点数来取回给定二部图的最大权重完美匹配。 我的问题如下: 是否有适用于一般无向图的匈牙利算法的概括,而无需像原始匈牙利算法的精神那样使用LP机制? 我更喜欢现代且易于阅读的展览,而不是一些原始的复杂论文。但是任何指针将不胜感激! 在此先感谢您和圣诞快乐!!! 更新:问题在下面的Arman中得到了很好的回答。我只想指出,研究Edmonds的Blossom算法(针对加权情况)的另一个不错的资料是Korte和Vygen的组合优化的第11章 。Google图书实际上显示了我了解该算法所需的几乎所有部分。


2
匈牙利方法的正当性(Kuhn-Munkres)
我根据在网上随处可见的讲义编写了Kuhn-Munkres算法的实现,以解决最小二分法完美匹配问题。即使在数千个顶点上,它也能很好地工作。我同意其背后的理论确实很美。但是我仍然想知道为什么我必须花这么长时间。我发现这些讲义并不能解释为什么我们不能简单地采用原始线性程序并将其传递给单纯形方法。当然,我怀疑这是可预测性能的问题,但是由于我没有看到它的明确说明,因此我不太确定。事实证明,多原点的原始极值位于0-1,因此似乎我们可以直接将其馈送到单纯形实现中,而无需制定对偶。还是我很简单?


1
生成具有平凡自同构的图
我正在修改一些密码模型。为了显示其不足之处,我设计了一种基于图同构的人工协议。 假定存在能够生成“图同构问题的硬实例”的BPP算法是“普遍的”(但有争议!)。(以及同构的见证人。) 在我设计的协议中,我将假设存在这样的BPP算法,该算法可以满足一个附加要求: 令生成的图为和G 2。只有一个见证人(排列)将G 1映射到G 2。G1个G1个G_1G2G2G_2G1个G1个G_1G2G2G_2 这意味着仅具有琐碎的自同构。换句话说,我假设存在某种BPP算法,其工作方式如下:G1个G1个G_1 在输入,生成一个n顶点图G 1,使其仅具有平凡的自同构。1个ñ1个ñ1^nññnG1个G1个G_1 选择一个随机排列以上[ Ñ ] = { 1 ,2 ,... ,Ñ },并将其应用在G ^ 1得到ģ 2。ππ\pi[ Ñ ] = { 1 ,2 ,... ,Ñ }[ñ]={1个,2,…,ñ}[n]=\{1,2,\ldots,n\}G1个G1个G_1G2G2G_2 输出。⟨ g ^1个,G2,π⟩⟨G1个,G2,π⟩\langle G_1,G_2,\pi \rangle G1个G1个G_1⟨ g ^1个,G2⟩⟨G1个,G2⟩\langle G_1,G_2 \rangle 我的假设合理吗?有人可以指点我一下吗?

1
在无类型的λ微积分中,最里面的约简是否是永久的?
(我已经在MathOverflow上问过这个问题,但是那里没有答案。) 背景 在无类型lambda演算,一个术语可以包含许多redexes,而不同的选择关于哪一个,以减少可能会产生非常不同的结果(例如,其在一步(β-)减小到y或自身)。减少位置的不同(顺序)选择称为减少策略。一个术语牛逼据说是正火,如果存在一个削减战略带来ŧ(λ X 。ÿ)((λ X 。X X )λ X 。X X )(λX。ÿ)((λX。XX)λX。XX)(\lambda x.y)((\lambda x.xx)\lambda x.xx)ββ\betaÿÿyŤŤtŤŤt正常形式。如果每种简化策略都将t转化为正常形式,则项将被强烈归一化。(我不担心会发生什么,但是合流保证不会有不止一种可能性。)ŤŤtŤŤt 如果每当t具有正常形式时,就可以说是一种归约策略正在规范化(从某种意义上说,这是最好的),这就是最终的结果。最左端的策略正在规范化。ŤŤt 在频谱的另一端,如果每当有t项存在无限的还原序列时,就认为该还原策略是永久的(从某种意义上讲,这是最坏的可能性),然后该策略找到了这样的序列-换句话说,我们可能无法正常化,那么我们将。ŤŤt 我知道永久减少策略和˚F b ķ分别由下式给出: ˚F b ķ(Ç [ (λ X 。小号)吨] )= c ^ [ 小号[ 吨/ X ] ] 如果 吨 强烈正火˚F b ķ(ç [ (λ X 。小号)吨] )= C ^ [F∞F∞F_\inftyFb …

1
如何在Coq中的两个参数上归纳定义一个函数?
我如何才能说服Coq以下给出的递归函数终止?该函数带有两个归纳参数。从直觉上讲,由于任何一个参数都已分解,因此递归终止。 具体来说,该函数将两棵树作为输入。 Inductive Tree := | Tip: Tree | Bin: Tree -> Tree -> Tree. 在“树”上,我喜欢执行以下归纳样式。 Inductive TreePair := | TipTip : TreePair | TipBin : Tree -> Tree -> TreePair | BinTip : Tree -> Tree -> TreePair | BinBin : TreePair -> TreePair -> TreePair. Fixpoint pair (l …

3
关联哈希混合
考虑纯功能设置中的单链链接。它的赞美声从山顶传来,并将继续传给人们。在这里,我将讨论其众多优势之一,以及如何将其扩展到基于树的更广泛的纯功能序列类别的问题。 问题如下:您想通过强哈希在O(1)时间内测试几乎某些结构相等性。如果哈希函数在结构上是递归的,即哈希(x:xs)=混合x(哈希xs),则可以将哈希值透明地缓存在列表中,并在元素被限制在现有列表中的情况下,在O(1)时间更新它们。大多数哈希列表算法在结构上都是递归的,因此这种方法在实践中非常有用。 但是,假设您不是基于单链列表,而是具有基于树的序列,该序列支持在O(log n)时间内连接两个长度为O(n)的序列。为了使散列缓存在这里起作用,散列混合函数必须具有关联性,以便尊重树在表示相同线性序列时所具有的自由度。混合器应获取子树的哈希值,并计算整个树的哈希值。 这是六个月前的一天,当时我花了一天时间思考并研究这个问题。在有关数据结构的文献中似乎没有引起注意。我确实遇到了来自密码学的Tillich-Zemor哈希算法。它依赖于2x2矩阵乘法(关联),其中位0和1对应于在Galois字段中具有条目的子代数的两个生成器。 我的问题是,我错过了什么?我在搜索中找不到的关于密码学和数据结构的文献中必定有相关的论文。任何对此问题的评论以及可能探索的场所将不胜感激。 编辑:我对频谱的软性和加密性强端都对这个问题感兴趣。在较软的方面,它可以用于哈希表,在该表中应避免冲突,但不会造成灾难性的后果。从更有利的方面,它可以用于相等性测试。

1
机器表征
是一类决策问题,可通过具有无穷范宁OR和有穷范宁AND门的 O (log i n)深度电路族解决。取反仅在输入级别允许。已知的是,小号甲Ç 我为我≥ 1是根据补体和封闭小号甲Ç 0是没有的。此外,由于LogCFL, S A C 1 = L o g C F L并因此具有机器特征。S一种C一世SAC一世SAC^iO (对数一世n)O(日志一世ñ)O({\log}^i{n})小号A C一世小号一种C一世SAC^i我≥ 1一世≥1个i \geq 1小号A C0小号一种C0SAC^0SAC1=LogCFLSAC1=LogCFLSAC^1 = LogCFL是空间有界和多项式有时间限制的辅助PDA 接受的语言集。是否有类似的机器刻画小号一Ç 我为我≥ 2?O(logn)O(logn)O({\log}n)SACiSACiSAC^ii≥2i≥2i \geq 2

2
(算法)博弈论中的突出猜想和未解决的问题?
什么样的猜想和主要的开放性问题在算法博弈论(或与CS有关的一般博弈论)中最重要?例如,在解决之前,我认为NASH的决议是完全PPAD的决议。 (补充:解决PPAD与P和NP的关系是一个很好的开放问题,但是在计算复杂度上不那么根深蒂固的其他问题也是不错的。)

1
子集和或NPP的整数关系检测?
有没有一种方法可以对子集和或数字分区问题的实例进行编码,以便对整数关系的(小)解能得出答案?如果不是绝对的话,那么从某种意义上说呢? 我知道LLL(也许还有PSLQ)在解决“低密度”区域中的子集和问题方面已经取得了一定的成功,在该区域中,选择的数字范围大于,但是这些方法不能很好地扩展到当选择的数字范围远小于2 N时,实例较大且在“高密度”区域中失败。这里,低密度和高密度是指解决方案的数量。低密度区域是指很少或根本没有解决方案,而高密度区域是指具有很多解决方案的区域。2N2N2^N2N2N2^N 在高密度区域中,LLL在给定的实例之间发现(小的)整数关系,但是随着实例大小的增加,发现该关系成为可行的子集总和或数字分区问题解决方案的可能性变得越来越小。 整数关系检测是在最佳指数范围内的多项式,而子集Sum和NPP显然是NP-Complete,因此通常这是不可能的,但是如果随机地均匀绘制实例,这是否会使它更简单? 还是我什至不问这个问题,而是问是否有办法代替最优计算来减少最优答案的指数界限?



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.