ストリーミング形式での順列のパリティの計算


16

順列のパリティを計算するワンパスアルゴリズムを探しています。入力順列がストリームによって与えられると仮定します。出力は、順列のパリティでなければなりません。決定論的アルゴリズムが使用するメモリ量に興味があります。問題のランダム化アルゴリズムはありますか?π[1],π[2],,π[n]

1回のパスで反転数を計算する際にメモリを使用することを知っています。上限は、任意のBSTで簡単に取得できます。下限は次のとおりです。http//citeseerx.ist.psu.edu/viewdoc/versions?doi = 10.1.1.112.5622Θ(n)

残念ながら、論文の下限の証明をパリティの場合に拡張することはできません(または、私にはそれほど明白ではありません)。

また、順列へのランダムアクセスを使用した小さなスペースでのパリティの計算は、決定論的アルゴリズムによって時間とO log 2 n メモリで、またはO n log n 時間とO log n ランダム化されたメモリ。http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.2256を参照してくださいO(nlogn)O(log2n)O(nlogn)O(logn)

主な考え方は、順列のパリティが式で計算できることです。ここで、cはサイクル数、nはサイズです。著者は、順列のサイクル分解を行います。したがって、サイクル数を簡単に計算できます。sgn(π)=(1)nccn

ストリーミングモデルでパリティを計算するための効果的なアルゴリズムまたはメモリの下限を知っている人はいますか?ランダムコインよりもランダムアルゴリズムの方が面白いです。


それは面白い。証拠をスケッチするか、問題に名前を付けて、それをパリティに減らしますか?
Vsevolodオパリン14

4
@András:O(n)空間アルゴリズムは、(ビットベクトルなどで)既に見られた要素を追跡するだけでは機能せず、新しい要素ごとにxのパリティを追加しますxより小さい要素を表示しますか?
ラスロコズマ14

1
@laszlo your 上限は、より大きな下限についての私の議論よりも、私にとってより説得力があるようです。O(n)
アンドラスサラモン14

下限に対する1つの否定的な結果。最初の論文の著者は、順列提供二組に基づいて、AおよびB。彼らはそれを使用して、ABが交差するかどうかを計算します。順列のパリティの計算に必要なのは、片方向通信の3ビットのみです。対応する行列のランクを計算することで簡単に取得できます。π=A0¯B1A0B1¯ABAB
Vsevolodオパリン14

回答:


2

これは答えではなく、拡張されたコメントであるため、これを支持しないよう皆にお願いしたいと思います。この質問に答えが得られなかった理由を議論したいと思います。私の主なポイントは、通信の複雑さの下限が機能しないことです。つまり、入力を2つの部分に分けて2人のプレーヤーAとBに渡す場合、Aは1ビットをBに転送し、そこから順列のパリティを計算できます。(これは、単に反転を考慮することによります。)

別の境界を使用する証明は困難です。(非決定版用)ノアン・ニッサンことで、ここでこのコメントを参照してください:L_K的に異なるため、最小のNFAのサイズに限界を

ハーマン・グルーバーが答えたこの関連する質問は、コミュニケーションの複雑さの下限が真実から非常に遠くなる可能性があることを示しています(再び非決定論的なバージョンで) NFAが3文字の言語を受け入れる下限

また、順列が単一サイクルであるかどうかを判断するのは難しいようです。RanRazと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:この問題では、入力のカット方法は、置換のパリティがそのサイクルの数によって決定されるため、2人のプレイヤーに入力する限り、実際には問題ではありません(したがって、これは数とは異なる理由です反転)。
domotorp 14

どのBがパリティを計算できるかを使用して、Aが入力からビットをどのように計算できるかを確認するのは簡単ですか?AとBの両方が「それらの部分内で」サイクルの数をどのように知っているかを見る。しかし、「交差」サイクルの数のパリティをどのようにして見つけるのでしょうか?
ラスロコズマ14

2
@laszlo:Aの入力が1-> 7、2-> 5、3-> 8、4-> 6などであるとします。これには、1-> 5、2-> 6、3-> 8、4-> 7と同じ数の反転があります。より一般的には、BはAの番号がどの番号にマッピングされているかを知っています。偶数回の反転を使用して、Aは、最後の2つを除いて、これらの数値を昇順に並べ替えることができます。これらの最後の2つの数値の関係は、彼女が送信する1ビットです。
domotorp

a1,,anan+1,,a2na2n+1,,a3na[3n]o(n)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.