理论计算机科学

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

3
Pi型的分裂和极性
在阿格达(Agda)邮件列表上的最新帖子中,出现了法律的问题,彼得汉考克(Peter Hancock)在其中发人深省。ηη\eta 我的理解是法则带有否定类型,即。引入规则是可逆的连接词。要禁用功能,Hank建议使用定制消除器funsplit,而不是通常的应用程序规则。我想了解汉克关于两极的说法。ηη\etaηη\eta 例如,有两个演示类型。有传统的马丁- LOF 分裂消除,以积极的风格:ΣΣ\Sigma Γ⊢f:(a:A)(b:Ba)→C(a,b)Γ⊢p:Σa:A.BΓ⊢splitfp:CpΓ⊢f:(a:A)(b:Ba)→C(a,b)Γ⊢p:Σa:A.BΓ⊢splitfp:Cp \begin{array}{l} \Gamma \vdash f : (a : A)(b : B\: a) \to C (a , b) \\ \Gamma \vdash p : \Sigma a : A. B \\ \hline \\ \Gamma \vdash \mathrm{split}\: f\: p : C\: p \end{array} 还有否定版本: Γ⊢p:Σa:A.BΓ⊢π0p:AΓ⊢p:Σa:A.BΓ⊢π1p:B[π0p/a]Γ⊢p:Σa:A.BΓ⊢π0p:AΓ⊢p:Σa:A.BΓ⊢π1p:B[π0p/a] \begin{array}{l} \Gamma \vdash …

5
是否可以测试可计算数字是有理数还是整数?
是否可以通过算法测试可计算数是有理数还是整数?换句话说,将有可能为图书馆实现可计算数提供的功能isInteger还是isRational? 我猜测这是不可能的,并且这在某种程度上与以下事实有关:无法测试两个数字是否相等,但是我看不出如何证明这一点。 编辑:可计算的数字xxx由函数给出,该函数fx(ϵ)fx(ϵ)f_x(\epsilon)可以返回精度为ϵ的的有理近似值:| x − f x(ϵ )| ≤ ε,对于任何ε > 0。鉴于这样的功能,就是可以测试,如果X ∈ Q或X ∈ ž?xxxϵϵ\epsilon|x−fx(ϵ)|≤ϵ|x−fx(ϵ)|≤ϵ|x - f_x(\epsilon)| \leq \epsilonϵ>0ϵ>0\epsilon > 0x∈Qx∈Qx \in \mathrm{Q}x∈Zx∈Zx \in \mathrm{Z}
18 computability  computing-over-reals  lambda-calculus  graph-theory  co.combinatorics  cc.complexity-theory  reference-request  graph-theory  proofs  np-complete  cc.complexity-theory  machine-learning  boolean-functions  combinatory-logic  boolean-formulas  reference-request  approximation-algorithms  optimization  cc.complexity-theory  co.combinatorics  permutations  cc.complexity-theory  cc.complexity-theory  ai.artificial-intel  p-vs-np  relativization  co.combinatorics  permutations  ds.algorithms  algebra  automata-theory  dfa  lo.logic  temporal-logic  linear-temporal-logic  circuit-complexity  lower-bounds  permanent  arithmetic-circuits  determinant  dc.parallel-comp  asymptotics  ds.algorithms  graph-theory  planar-graphs  physics  max-flow  max-flow-min-cut  fl.formal-languages  automata-theory  finite-model-theory  dfa  language-design  soft-question  machine-learning  linear-algebra  db.databases  arithmetic-circuits  ds.algorithms  machine-learning  ds.data-structures  tree  soft-question  security  project-topic  approximation-algorithms  linear-programming  primal-dual  reference-request  graph-theory  graph-algorithms  cr.crypto-security  quantum-computing  gr.group-theory  graph-theory  time-complexity  lower-bounds  matrices  sorting  asymptotics  approximation-algorithms  linear-algebra  matrices  max-cut  graph-theory  graph-algorithms  time-complexity  circuit-complexity  regular-language  graph-algorithms  approximation-algorithms  set-cover  clique  graph-theory  graph-algorithms  approximation-algorithms  clustering  partition-problem  time-complexity  turing-machines  term-rewriting-systems  cc.complexity-theory  time-complexity  nondeterminism 


2
是否可以确定系统F(或其他归一化类型的λ演算)中的
我知道,无法确定未类型化的lambda演算的等价性。引用Barendregt,HP Lambda微积分:其语法和语义。北荷兰省阿姆斯特丹(1984)。:ββ\beta 如果A和B是不相交的非空Lambda项集,且它们在相等条件下关闭,则A和B递归不可分割。因此,如果A是在相等条件下封闭的一组非平凡的Lambda项,则A不会递归。因此,我们无法确定问题“ M = x?”。对于任何特定的M。同样,Lambda没有递归模型。 如果我们有一个规范化系统,例如System F,则可以通过减少两个给定的项并比较它们的范式是否相同来确定“ 等效性”。但是,我们可以“从内部”做到吗?是否存在一个System-F组合器E,对于两个组合器M和N,如果M和N具有相同的范式,则我们的E M N = 真,否则,E M N = 假?还是至少可以在M s内完成?构造一个组合器E Mββ\betaËEE中号MMñNNË中号ñ= 真EMN=trueE M N = \mbox{true}中号MMñNNË中号ñ= 错误EMN=falseE M N = \mbox{false}中号MMË中号EME_M这样是当且仅当真正ñ ≡ β中号?如果没有,为什么?Ë中号ñEMNE_M Nñ≡β中号N≡βMN\equiv_\beta M

2
在理论使用卡普-减少的动机 -completeness
多项式时间缩减(Cook缩减)的概念是一个非常直观的概念的抽象:通过使用针对其他问题的算法来有效地解决问题。 然而,在理论 -completeness,概念 -hardness经由映射减量(卡普减少)捕获。这种“受限”减少的概念远没有那么直观(至少对我而言)。它甚至看起来有点虚构,因为它创建了一个不太直观的硬度概念。由此,我指的是不包含的事实。尽管在复杂度理论中我们非常习惯于这样的概念,即能够解决这样的问题并不意味着我们可以在自然环境中解决,假设我们有一个算法可以解决NPNP\mathcal{NP}NPNP\mathcal{NP}NPNP\mathcal{NP}co−NPco−NPco-\mathcal{NP}SATSAT\mathsf{SAT}SAT¯¯¯¯¯¯¯¯¯¯SAT¯\overline{\mathsf{SAT}}SATSAT\mathsf{SAT},我们可以通过运行的算法并返回相反的值来解决。SAT¯¯¯¯¯¯¯¯¯¯SAT¯\overline{\mathsf{SAT}}SATSAT\mathsf{SAT} 我的问题是,为什么要对完整性理论使用Karp约简?它捕获了什么直观的概念?它与我们了解现实世界中“计算难度”的方式有何关系?NPNP\mathcal{NP}

3
框架规则作为变更保存者?
一帧的规则,像下面给出的一个,捕获的想法,给定一个计划c与前提p保存在运行前和后置条件q保存后,一些不相交的条件r应之前和之后都保持c运行。(连接词*要求其参数不相交。)通常,前置条件和后置条件是堆的状态,并且c是一种有效的程序,可以某种方式修改堆。 {p} c {q} ----------------- (where no free variable in r is modified by c) {p * r} c {q * r} 我所看到的关于框架规则的讨论似乎总是集中在如何r保留堆的不相交部分上。这将启用“局部推理”:在对具有影响的效果进行推理时c,我们可以忽略r堆的一部分,而只关心实际更改的部分。但是另一种看待它的方法是,即使从那里p到qr现在都保留了从到的更改。换句话说,重要的是我们要以后置条件结束{q * r},而不是{q' * r}其他条件q'。 所以,我的问题是,是否有框架规则,讨论或利用保存-的变化-从-的任何治疗p至- q事情。


3
随机性会为我们购买P内的任何东西吗?
令BPTIME(f(n))BPTIME(f(n))\mathsf{BPTIME}(f(n))为决策问题的类,该决策问题具有在时间运行的有界双向误差随机算法O(f(n))O(f(n))O(f(n))。 我们知道任何问题的Q∈PQ∈PQ \in \mathsf{P}使得Q∈BPTIME(nk)Q∈BPTIME(nk)Q \in \mathsf{BPTIME}(n^k),但?它的不存在被证明吗?Q∉DTIME(nk)Q∉DTIME(nk)Q \not \in \mathsf{DTIME}(n^k) 此处在cs.SE上提出了此问题,但未得到满意的答案。

2
是否有一种将范畴论/抽象代数与计算复杂性相结合的理论?
范畴论和抽象代数处理函数可以与其他函数组合的方式。复杂度理论涉及函数的计算难度。我很奇怪我没有看到任何人将这些研究领域相结合,因为它们看起来像是天生的对。有人做过吗? 作为一个激励性的例子,让我们看一下monoid。众所周知,如果一个操作是一个monoid,那么我们可以并行化该操作。 例如在Haskell中,我们可以简单地将加法定义为整数,如下所示: instance Monoid Int where mempty = 0 mappend = (+) 现在,如果我们要计算0到999的总和,可以依次执行以下操作: foldl1' (+) [0..999] 或者我们可以并行执行 mconcat [0..999] -- for simplicity of the code, I'm ignoring that this doesn't *actually* run in parallel 但是并行化此类半体唯一有意义的原因是mappend在恒定时间内运行。如果不是这种情况怎么办?例如,列表是等分体,其中mappend的运行时间不是恒定的(或空格!)。我猜这就是为什么Haskell中没有默认的并行mconcat函数。最佳的实现取决于类半体动物的复杂性。 似乎应该有一种方便的方法来描述这两个类半体动物之间的差异。然后,我们应该能够使用这些差异来注释我们的代码,并让程序根据Monoid的复杂性自动选择最佳算法来使用。

1
在SC内部寻找一个不错的问题,但不在前两个级别中
动物园的复杂性与小号çSC\mathsf{SC}无关。我正在寻找一个更好的†问题,该问题位于层次结构的更高级别,即D T i m e S p a c e(n O (1 ),lg O (1 ) n )中的问题,但未知在D T i m e S p a c e(n O (1 )††^\daggerd Ť 我中号Ë 小号p 一个Ç ë( ÑÔ (1 ),lgÔ (1 )n )DTimeSpace(nO(1),lgO(1)⁡n)\mathsf{DTimeSpace}(n^{O(1)},\lg^{O(1)} n)。d Ť 我中号Ë 小号p 一个Ç ë( ÑÔ (1 ),lg2n …

2
黑手党有多难?
《黑手党》是聚会上流行的角色扮演游戏,有关详细说明,请访问Wikipedia http://en.wikipedia.org/wiki/Mafia_%28game%29。 基本上,它的工作方式如下: 最初,玩家中的每一个都被暗中分配了一个角色,与黑手党或城镇保持一致。每个角色可能都有特殊的能力;稍后再讨论。ñNN 游戏分为两个阶段:白天和黑夜。在晚上,黑手党可以彼此秘密交流;他们可能会同意当晚他们谋杀的一名目标球员。在Day,所有(活跃的)玩家都在一个开放的论坛中进行交流。玩家可能同意私下一名玩家,因此绝对需要所有玩家的绝大部分。 如果仅剩黑手党或仅剩城镇,则游戏结束。幸存党获胜。 让我们假设有三个角色:Citizen,Investigator和Mafioso。公民没有权力。黑手党成员除了晚上能够互相交流并每晚可以为一名谋杀受害者投票外,也无能为力。调查人员可以在每晚的晚上调查另一位玩家,以了解他们的确切角色。 假设游戏开始于一天,并且玩家的角色在死亡时就被揭示 取胜策略 给定一个设置的我调查,Ç公民,米黑手党,我们说的设置是赢得了镇,如果有一个城市的玩家的策略,这样他们就赢,无论怎样的黑手党扮演。(i,c,m)(i,c,m)(i,c,m)iiicccmmm 请注意,我们可以假设黑手党发挥了全面的作用,因为我们想考虑他们可以做出的任何决定。 例如:该设置赢得了镇。(4,1,1)(4,1,1)(4,1,1) 第1天:所有城镇玩家如实报告自己在公开聊天中的角色。黑手党玩家必须声称自己是调查员或公民。 如果他声称拥有公民身份,那么黑手党人就是两名被指控的公民之一。每个调查员可以调查其中一个,然后找出真实的一个。最多只有一名调查员可以在夜间死亡,而其他两名则只是将黑手党吊死。 因此,黑手党组织必须要求调查员。有5名涉嫌调查者。在公开聊天中,调查人员同意进行排列以相互检查。 晚上1:调查人员检查目标,黑手党杀害了目标。 第2天:还剩下3名调查员。所有据称的调查人员均报告其调查结果。无论谁被杀,至少还有一个被另一位活着的调查员证实。由于黑手党声称是调查员,因此他还需要说明他指定的目标是否是黑手党。如果他陷害某人,则该镇知道他或被陷害的一个人是黑手党,与另一个已确认的3镇相对。如果他不框框任何人,则还将有3个已确认的城镇。无论哪种方式,都不要将任何人吊死,并调查剩下的仅有的两名嫌疑人赢得了Town。 问题 决定给定设置是否接受Town的获胜策略有多难?从直觉上讲,这听起来像是一个问题。有人可以提出减少的建议吗?PSPACEPSPACEPSPACE 我们可以找到最少的制胜法宝吗?就像我们可以最小化或(i + c ):m的比率吗?我:m一世:米i:m(i + c ):米(一世+C):米(i+c):m

2
从分隔符查询重构树
假设是一棵不知道其结构的恒定度树。问题是通过询问以下形式的查询来输出树:“节点是否位于从节点到节点的路径上?”。假设每个查询都可以由Oracle在固定时间内回答。我们知道的值,即树中节点的数量。目的是使输出树所需的时间最小化为。T x a b n nTTTTTTxxxaaabbbnnnnnn 是否存在针对上述问题的算法?o(n2)o(n2)o(n^2) 假设中任何节点的度数最大为3。TTT 我知道的 有直径的情况很容易。如果树的直径为,则可以得到分治算法:DDD 任何二叉树都有一个很好的分隔符,可以将树分成大小不小于1 / 3n的分量。 选择任何顶点x。如果它是一个很好的分隔符,则标签并递归。 找到x的所有3个邻居。 向节点数最多的邻居方向移动。与邻居重复步骤2。 由于找到分隔符最多需要步,因此我们得到了算法。O (n D log n )DDDO(nDlogn)O(nDlog⁡n)O(nD\log n) 一个随机化算法O(nlog2n)O(nlog2⁡n)O(n\;\log^2 n)。(从下面的评论中删除) 随机选择两个顶点x和y。它们以1/9的概率位于分隔符的相对侧。选择从到的路径的中间节点。看看是否是分隔符,如果不是,则执行二进制搜索。ÿxxxyyy 查找分隔符需要预期时间。这样我们得到了随机算法。O (nO(nlogn)O(nlog⁡n)O(n\;\log n)O(nlog2n)O(nlog2⁡n)O(n\;\log^2 n) 背景。我从一个在概率图形模型中工作的朋友那里得知了这个问题。上面的问题大致对应于使用一个预言机学习结点树的结构,该预言机在给定三个随机变量X,Y和Z的情况下,可以根据给定的Z值来判断X和Y之间的互信息的值。为零,我们可以假设Z位于从X到Y的路径上。

3
为什么我们使用单磁带图灵机来增加时间复杂度?
如您所知,当时间为时,单个磁带图灵机有很多异常情况:多带TM模拟,仅的较大带字母模拟,时间可构造性,时间等级定理的非紧性,...{ 0 ,1 ,b }ø (Ñ2)o(n2)o(n^2){ 0 ,1 ,b }{0,1,b}\{0,1,b\} 还可以得到,以及针对特定问题的非常特定于模型的时间下限(甚至不能转换为两个上的超线性下限磁带TM)。 O (n 2)d Ť 我中号È(ø(ÑLGn )= R e gDTime(o(nlg⁡n)=Reg\mathsf{DTime}(o(n\lg n)=\mathsf{Reg}O(n2)O(n2)O(n^2) 对于空间复杂性,我们使用一个模型,在该模型中,我们有一个单独的只读输入磁带,这更加自然且健壮。 带有多个磁带(或至少2个工作磁带)的TM模型将更加健壮,并且不会导致像我上面列出的那些异常。我曾经问过一位杰出的复杂性理论家,他在复杂性理论的早期阶段就已经证明了模拟结果,是否他知道对这些旧结果之一有任何改进,并且回答是他不认为“关于一个磁带模型的问题是重要”。 如果将时间复杂度的标准模型更改为两个磁带TM,则复杂性理论的合理结果将不会改变,并且可以避免由特定模型引起的这些异常。所以我的问题是: 为什么仍然要根据单个磁带TM定义时间复杂度?(除历史原因外)

1
随机2-SAT的计数复杂度是多少?
#2-SAT随机实例的复杂度如何随子句密度变化而做过任何工作吗?即:随着子句密度的变化,对随机生成的2-SAT实例的满意解进行计数的难度如何变化?特别是,是否存在涉及临界阈值的严格结果? 当然,因为 2-SAT ∈ P,典型的计数复杂部分取决于与一个实例是可满足的概率; 实例,其子句密度高于用于SAT / UNSAT临界阈值通常将具有一个简单的计数复杂性,答案是“ 零 ”几乎可以肯定,在极限Ñ 。但是,对于密度接近或刚好大于有限n的临界阈值的2-SAT实例,计数复杂度可能仍然很容易:可能会希望一个可满足的实例只有少量解,这可能很容易列举由于约束的紧密性。→ ∞→∞\to \infty 对于ķ -SAT与ķ ≥3,确定的实例是否可满足或不可满足的困难 似乎是接近作为一个分离的尝试从UNSAT相的SAT相位,部分地临界阈值最高,以确定是否存在至少一个令人满意的解决方案。对于#2-SAT,困难不在于确定是否存在至少一种解决方案。因此,应该预期困难可能在于确定有意义但不大的可满足公式的解数 约束的数量-也就是说,有足够的约束来引起变量之间的非平凡依赖关系,但又不足以过度确定可能的分配。

3
行列式模
什么是用于计算与系数的整数矩阵的行列式的已知有效的算法,残基的环模米。数米可能不是素数,但复合材料(以便计算在环执行,而不是一个场)。ž米Zm\mathbb{Z}_m米mm米mm 据我所知(请参阅下文),大多数算法都是对高斯消去算法的修改。问题是这些程序的计算效率。 如果碰巧有其他方法,我也对此感到好奇。 提前致谢。 更新: 让我解释一下这个问题的根源。假设,是质数。因此Z m是一个场。在这种情况下,我们可以使用小于m的数字执行所有计算,因此我们对数字的所有运算都有一些不错的上限:加法,乘法和求逆---运行高斯消除所需的所有运算。米mmZmZm\mathbb{Z}_mmmm 另一方面,在不是素数的情况下,我们无法对某些数字进行求逆。因此,我们需要一些技巧来计算行列式。mmm 现在,我很好奇完成这项工作的已知技巧是什么,以及是否可以在书籍和论文中找到这些技巧。

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.