理论计算机科学

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

2
Alternative,MonadPlus(LeftCatch)和MonadPlus(LeftDistributive)之间有什么关系?
跟进什么是替代而不是MonadPlus的Monad示例?: 假设是单子。什么是关系betweem 米是一个另类,一个MonadPlusCatch和MonadPlusDistr?mmmmmm对于六种可能的组合中的每一种,我都希望有一个证据表明一个隐含着另一个,或者有一个反例却没有。 (我在用着 MonadPlusCatch用来区分满足Left-Catch规则的MonadPlus: mplus (return a) b = return a MonadPlusDistr区分MonadPlus是satifies 左分配规则: mplus a b >>= k = mplus (a >>= k) (b >>= k) 请参阅HaskellWiki上的MonadPlus。) 我目前的知识和直觉是: MonadPlusDist 替代 - 可能是正确的 - 似乎很简单,我相信我有一个证明的草图,我将对其进行检查,如果它是正确的,我会将其张贴在 AndrewC回答的这一部分。→→\rightarrow →→\rightarrow Maybe →→\rightarrow MaybeT (Either e)MaybeT m' ((pure x) <|> g) <*> a = …

3
如何定义类型的对偶性?
在Wadler的递归类型中免费![1],他证明两种类型,和∃ X 。(X → F (X ))× X,并声称它们是对偶的。他特别指出,类型∃ X 。X → (X → ˚F (X ))是不∀ X。(F(X)→ X)→ X∀X.(F(X)→X)→X\forall X . (F(X) \rightarrow X) \rightarrow X∃ X。(X→ F(X))× X∃X.(X→F(X))×X\exists X . (X \rightarrow F(X)) \times X∃ X。X→ (X→ F(X))∃X.X→(X→F(X))\exists X . X \rightarrow (X \rightarrow F(X))前者的对偶。似乎这里讨论的二元性在逻辑上不同于De Morgan的二元性。我想知道如何定义类型的对偶性,特别是针对上述三种类型,为什么第二种是第一种的对偶而第三种却没有。谢谢。 [1] http://homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/free-rectypes.txt

2
空间复杂度以计算Levenshtein编辑距离的最佳字符串对齐方式
如果给定两个大小分别为n1n1n_1和字符串n2n2n_2,则标准的Levenshtein编辑距离是通过具有时间复杂度O(n1n2)O(n1n2)O(n_1 n_2)和空间复杂度的动态算法来计算的O(n1n2)O(n1n2)O(n_1 n_2)。(可以根据编辑距离进行一些改进ddd,但我们不对d做任何假设dddO(max(n1,n2))O(max(n1,n2))O(\max(n_1, n_2)) 但是,如果您想获得最佳编辑脚本的实际编辑,是否可能比内存使用情况做得更好,可能会花费运行时间?O(n1n2)O(n1n2)O(n_1 n_2)

1
可以使用跨度程序重新计算具有指数级速度的量子算法吗?
由于Reichardt等人的突破性工作,现在已知一般对手的下界代表了量子查询的复杂性。同一工作线还建立了与span程序框架的连接以设计量子算法。 可以在量子查询模型中表达许多有趣的量子算法,包括具有指数级加速功能的诸如西蒙(Simon)算法和索尔(Shor)用于周期查找的算法。 在一般对手模型中,是否有任何工作显示这些算法的下界? 在跨度程序框架中是否有任何工作可以重新推导Simon或Shor的算法? 显然,仅使用跨度程序(或Belov的学习图)框架重新推导了具有多项式提速的量子算法,例如Grover的算法。 有Korian等人的著作。使用多项式方法显示Simon的下界,但是显然没有已知的方法可以将多项式方法的下界转换为一般对手的下界。

3
关于和的熵
我正在寻找两个独立的离散随机变量和的和的熵的界限。当然,但是,将其应用于独立的伯努利随机变量的总和,得出 换句话说,当重复应用时,边界随线性增长。但是,大小为的集合支持,因此其熵最多为。实际上,根据中心极限定理,我猜X Ý ħ (X + Ý )≤ ħ (X )+ H ^ (Ý )(* )Ñ Ž 1,... ,ž Ñ ħ (ž 1 + ž 2 + ⋯ + Ž Ñ)≤ Ñ H (Z 1)n Z 1 + ⋯ ZH(X+Y)H(X+Y)H(X+Y)XXXYYYH(X+Y)≤H(X)+H(Y) (∗)H(X+Y)≤H(X)+H(Y) (∗)H(X+Y) \leq H(X) + H(Y) ~~~~~~(*)nnnZ1,…,ZnZ1,…,ZnZ_1, \ldots, Z_nH(Z1+Z2+⋯+Zn)≤nH(Z1)H(Z1+Z2+⋯+Zn)≤nH(Z1) H(Z_1 …

1
超立方体上卷积的熵
说,我们有一个功能,使得Σ X ∈ Ž Ñ 2 ˚F (X )2 = 1(所以我们可以想到的{ ˚F (X )2 } X ∈ Ž Ñ 2作为分布) 。很自然地限定这样的功能的熵如下: H ^ (˚F )= - Σ X ∈ Ž Ñ 2 ˚F (Xf:Zn2→Rf:Z2n→Rf:\mathbb{Z}_2^n \to \mathbb{R}∑x∈Zn2f(x)2=1∑x∈Z2nf(x)2=1\sum _{x\in \mathbb{Z}_2^n} f(x)^2 = 1{f(x)2}x∈Zn2{f(x)2}x∈Z2n\{ f(x)^2\} _{x\in \mathbb{Z}_2^n}H(f)=−∑x∈Zn2f(x)2log(f(x)2).H(f)=−∑x∈Z2nf(x)2log⁡(f(x)2).H(f) = -\sum _{x \in \mathbb{Z}_2^n} f(x)^2 …


1
关于偏序线性扩展的一个问题
如果为您提供了部分订单的集合,则拓扑排序将告诉您集合是否存在扩展到总订单的情况(在这种情况下,扩展名是与每个部分订单一致的总订单)。 我遇到了一个变化: 修正了一个集。你给出的序列σ 1,... σ ķ从绘制的元素的V没有重复(序列是长度在1个之间| V |)。VVVσ1个,… σķσ1,…σk\sigma_1, \ldots \sigma_kVVV| V||V||V| 是否有一种方法可以固定每个序列的方向(正向或反向),以使所得到的链集合(视为部分顺序)允许扩展? 这个问题众所周知吗? 注意:方向是为整个序列选择的。因此,如果顺序是,你可以保持这种状态,或将其翻转到5 - 4 - 2 - 1,但你不能做任何事情。1 - 2 - 4 - 51−2−4−51-2-4-55 - 4 - 2 - 15−4−2−15-4-2-1

2
高效的通用问题解决器?
定义一个“问题”是一个算法接受的自然数,并返回0或1返回1的至少一个上Ñ ∈ Ñ。任何这样的n称为A的“解决方案”一个AA1个11n∈Nn∈Nn \in \mathbb{N}nnnAAA 将“通用问题求解器”定义为接受问题并返回其解决方案之一的算法例如,U可以通过遍历所有自然数并在其上运行其输入直到获得1个结果(它只必须暂停有效输入)而起作用。UUUUUU111 我对探索通用问题解决程序的性能界限感兴趣 给定一个通用问题解决者,给A一个问题,表示t (U ,A )U接受输入A产生输出所花费的时间UUUAAAt(U,A)t(U,A)t(U, A)UUUAAA 当对于任何通用问题求解器V,我们都有一个通用问题求解器称为“有效”UUUVVV t(U,A)&lt;t(V,A)+tVt(U,A)&lt;t(V,A)+tVt(U, A) < t(V, A) + t_V 这里取决于V,但不取决于AtVtVt_VVVVAAA 是否存在有效的通用问题解决者? 编辑:我意识到可以将“问题”和“通用问题解决器”的定义更改为稍微更优雅且本质上等效的东西。“问题”是一种没有输入返回0或1(会暂停)的算法。“通用问题求解器”是一种接受问题并返回其结果的算法。它或多或少是通用图灵机 可以将旧定义简化为新定义,因为给一个旧意义上的问题,我们就可以构造B一个新意义上的问题,只需将平凡的旧感通用问题求解器应用于A(上面所述的求解器) )AAABBBAAA 新定义可以简化为旧定义,因为给一个新意义上的问题,我们可以构造A一个旧意义上的问题,它只计算B并将输入与结果进行比较BBBAAABBB 一个新感觉的通用问题求解器的简单例子是一个仅运行其输入的算法

2
比奇vs CTL(*)的表现力
LTL,Büchi / QPTL,CTL和CTL *的表达之间有什么关系? 您能否提供一些参考,以涵盖尽可能多的这些时间逻辑(尤其是在线性时间和分支时间之间)? 带有时间逻辑和一些实用属性的维恩图将是完美的。 例如: 是否确实存在可在Büchi中指定但在CTL *中未指定的属性?你有很好的榜样吗? 在Büchi和CTL中如何,但在LTL中如何? 细节: 逻辑的表达方式比示例更适合我。后者只是有助于理解和激励。 我已经从[Clarke and Draghicescu,1988]知道了CTL *和LTL之间的可表达性定理,但是我不喜欢CTL中而不是LTL中的公平性的通常示例,因为存在过多的公平性变体,其中一些是可在LTL中表达。 我还没有像均匀度步琪属性的通常示例中,给定的,例如,在[Wolper83]关于LTL的限制,因为添加另一命题变量可以解决这个问题()。È v ë Ñ (p )≡ q∧ □ (q⟹X¬ q)∧ □ (¬ q⟹Xq)∧ □ (q⟹p )even(p)≡q∧◻(q⟹X¬q)∧◻(¬q⟹Xq)∧◻(q⟹p)even(p) \equiv q \wedge \Box ( q \implies X \neg q ) \wedge \Box ( \neg q \implies X …


2
Multipebble自动机能否确定所有确定性的上下文相关语言?
MPA(多卵石自动机)是2DFA(双向确定性有限自动机),可以在给定输入w上使用任意数量的卵石(实际上卵石)-输入写在两端之间的磁带上-标记为#w #)。在计算过程中,MPA可以检测头部下方的符号是否具有卵石,然后在没有卵石(卵石)的情况下可以放置卵石(除去卵石)。|w|+2|w|+2 |w|+2 ww w #w##w# \# w \# 是同态,其中 σ是符号和 ķ &gt; 0。hk(σ)=σ⋯σk times=σkhk(σ)=σ⋯σ⏟k times=σk h_k(\sigma) = \underbrace{\sigma \cdots \sigma}_{k \mbox{ times}} = \sigma^k σσ \sigma k&gt;0k&gt;0 k>0 对于任何确定的上下文有关语言它是不难证明存在一个ķ &gt; 0,使得ħ ķ(大号)可以通过MPA识别。所以,粗略地说,我们可以说L (L∈DSPACE(n)),L (L∈DSPACE(n)), \mathtt{L} ~~ \left( \mathtt{L} \in \mathsf{DSPACE(n)} \right), k&gt;0 k&gt;0 k>0~ hk(L)hk(L) h_k( \mathtt{L} ) 由线性空间DTM(确定性图灵机)确定的任何“问题”都可以由MPA确定。 …

3
AM / MA和NP类似于P和BPP
Arora的和Barak表明可以表示为乙P ⋅ Ñ P,即该组已随机减少到3SAT语言。M A也是N P的自然随机化概括,因为您将确定性验证者替换为随机验证者。AMAM\mathsf{AM}BP⋅NPBP⋅NP\mathsf{BP}\cdot \mathsf{NP}MAMA\mathsf{MA}NPNP\mathsf{NP} 在“ P与BPP就像NP与BPP一样”中,有一种感觉更适合吗?关系 ?

3
排序“ k-tonic”序列
我希望有人对此有所了解,所以我不必阅读文献... 考虑数字的序列。考虑序列为n − 1间隔[ x 1,x 2 ] ,[ x 2,x 3 ] ,… ,[ x n - 1,x n ]。显然,如果实线上的任何点最多以2个间隔刺穿,则原始序列是双子序列的。我们将点最多以k个间隔刺入的序列称为kX1个,… ,xñx1,…,xnx_1, \ldots, x_nn − 1n−1n-1[ x1个,X2] ,[ x2,X3] ,… ,[ xn − 1,Xñ][x1,x2],[x2,x3],…,[xn−1,xn][x_1, x_2], [x_2, x_3], \ldots, [x_{n-1},x_n]ķkkķkk-idiotic。视觉上,如果绘制序列图(即按顺序连接点),则以上内容对应于以下条件:没有水平线与图相交超过k次。p一世= (i ,x一世)pi=(i,xi)p_i =(i,x_i)ķkk 看到可以在O (n log k )时间内对惯用序列进行排序并不难(但也不是太容易),这显然是最佳的。ķkkØ (ñ 日志ķ )O(nlog⁡k)O( …

2
将文本均匀分成几行
有一个线性时间算法可以将文本均匀地分成最大宽度的行。它使用SMAWK(或Knuth&Plass),“ evenly”的意思是:http : //en.wikipedia.org/wiki/Word_wrap#Minimum_raggedness 是否有一种算法或该算法的凹成本函数可以在其中考虑我希望文本插入的行数,而不是最大行宽?也是线性时间? 换句话说,我正在寻找一种换行(或段落形成或自动换行)算法,其中输入是所需的行数,而不是所需的行宽。 仅描述一种实际上不可用的方法:每个单词对之间有N个单词和N-1个空格,M是所需的行数(M &lt;= N)。每个空格之后最多可能有一个(可能为零)换行符。现在,该算法将尝试将中断放置在每个可能的组合中,计算“参差不齐”并返回最佳组合。如何更快地做到呢? 另外,这样的问题有名字吗?问题属于什么“家庭”?(例如“装箱”)如果我不需要一个完美的最佳解决方案,那只是一个非常好的解决方案,是否可以更快地解决呢?(如果对于给定的输入总是有相同的,可能不是最优的解决方案,则可以使用某种形式的试探法)。 更新资料 钱德拉·切库里(Chandra Chekuri)提出了“在动态编程的Kleinberg和Tardos一章中的一个问题”。这是一本不错的书,但它基于宽度而不是行数来处理换行。我现在正在尝试解决这个问题,它可能适用于此问题。这是解决方案的一个很好的链接,他们甚至声称可以在线性时间内解决它:http : //web.media.mit.edu/~dlanman/courses/cs157/HW5.pdf 而且,Skiena的《算法设计手册》中有一章“ 8.5分区问题”,这似乎正好是主题,我仍然很难读。(不幸的是,据我了解,它具有二次时间复杂度)

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.