以流时尚方式计算置换的奇偶校验


16

我正在寻找一种计算排列奇偶校验的单遍算法。我假定输入置换由流。输出应为排列的奇偶校验。我对确定性算法应使用多少内存感兴趣。有没有针对该问题的随机算法?π[1],π[2],,π[n]

我知道一次计算反转次数会使用内存。使用任何BST都可以轻松获得上限。下限显示在此处:http : //citeseerx.ist.psu.edu/viewdoc/versions?doi=10.1.1.112.5622Θ(n)

las,本文下界的证明不能扩展到奇偶校验情况下(或者对我而言不是那么明显)。

我也知道可以通过确定性算法在时间和O log 2 n 内存中或在O n log n 时间和O log n 内存随机化。参见http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.2256O(nlogn)O(log2n)O(nlogn)O(logn)

主要思想是可以通过公式来计算置换的奇偶性,其中c是循环数,n是大小。作者对排列进行循环分解。因此,可以轻松计算出循环数。sgn(π)=(1)nccn

有人知道在流模型中计算奇偶校验的有效算法或内存下限吗?比随机硬币更好的随机算法对我来说也很有趣。


这真有趣。您可以草拟一个证明或命名一个问题,然后减少到平价吗?
Vsevolod Oparin 2014年

4
@András:O(n)空间算法不能简单地通过跟踪已经看到过哪些元素(例如在位向量中),然后为每个新元素x添加#个尚未校验的奇偶校验来工作可以看到小于x的元素?
拉斯洛·科马

1
@laszlo您的上限现在比我对更大下限的论点更具说服力。O(n)
安德拉斯·萨拉蒙

下限一个负结果。第一论文的作者提供了排列基于两组。他们使用它来计算AB是否相交。计算置换的奇偶校验仅需3位单向通信。通过计算相应矩阵的秩可以很容易地获得它。π=A0¯B1A0B1¯ABAB
Vsevolod Oparin 2014年

Answers:


2

我想请大家不要反对,因为这不是一个答案,而是一个扩展的评论,我想在这个评论中为什么这个问题没有得到任何答案。我的主要观点是,通信复杂性的下限将不起作用。借此,我的意思是,无论我们如何将输入分为两部分并将其分配给两个参与者A和B,A都可以将一位转移到B,从而可以从中计算置换的奇偶性。(在此之后,只需考虑反演即可。)

使用另一个界限的证明很难。请参阅Noam Nisan的评论(对于非确定性版本):L_k-distinct的最小NFA大小的界限

赫尔曼·格鲁伯(Hermann Gruber)亲自回答的这个相关问题表明,通信复杂度的下界可能与事实相差甚远(同样在非确定性版本中) ,NFA接受3字母语言的下界

与确定排列是否是单个周期有关也似乎很困难,请参阅Ran Raz和Boris Spieker撰写的FOCS论文:http : //www.computer.org/csdl/proceedings/focs/1993/4370/00 /0366870-abs.html

因此,我也非常有兴趣了解该问题的答案。


A,B[n]A0¯B1A0B1¯A1¯B0A1B0¯2x2x+1

@laszlo:在此问题中,只要您将输入仅提供给两个玩家,实际上如何切掉它都没关系,因为排列的奇偶性取决于其循环数(所以这就是为什么它与数字不同的原因反转)。
domotorp

是否容易看出A如何从她的输入中计算出一个位,哪个B可以计算出奇偶校验?我看到A和B都如何知道“在其内部”的循环数。但是他们如何找到“交叉”循环数的奇偶性呢?
拉斯洛·科马

2
@laszlo:假设A的输入是1-> 7、2-> 5、3-> 8、4-> 6。反转次数与1-> 5、2-> 6、3-> 8、4-> 7相同。更一般而言,B知道将A的数量映射到什么数字中。使用偶数个反转,A可以将这些数字排列为升序,最后两个可能除外。最后两个数字的关系是她发送的一位。
domotorp 2014年

a1,,anan+1,,a2na2n+1,,a3na[3n]o(n)
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.