整数のミンコフスキー和で証人を見つける


16

LET及びの部分集合である。ミンコフスキー和を見つけることに興味があります。AB{0,…,n}A+B={a+b | a∈A,b∈B}

X χ X(X )= { 1  であれば  、X ∈ X 0  、さもなければχX:{0,…,2n}→{0,1}は、場合、特性関数X

χX(x)={1 if x∈X0 otherwise

ましょう離散畳み込みことと、次いで場合に限り、F (X )> 0。したがって、A + Bは、FFTを介した離散畳み込みによってO (n log n )時間で計算できます。fχAχBx∈A+Bf(x)>0A+BO(nlog⁡n)

時には実際のペアを見つけることが重要です∈ AとB ∈ Bに合計そのXを。∈ Aが呼び出される証人のXが存在する場合、B ∈ Bよう+ B = Xは。関数W :A + B → Aが呼び出され証人関数場合、W (xは)の証人であるX。a∈Ab∈Bxa∈Axb∈Ba+b=xw:A+B→Aw(x)x

O(nlog⁡n)時間で監視関数を計算することは可能ですか?


3
O(npolylogn)は特に難しくありません。
— サリエルハーペレド

2
バイナリ検索を使用できます。例えば、パーティションA 2には、大きく分けて、同じサイズのセットAL,AR、及び計算AL+B及びAR+B。それらのどれをチェックxします; そして再帰。これにより、ようなものが得られますO(nlg2⁡n)。
— DW

@DWこれは単一の目撃者のみを見つけることができますxが、各要素の目撃者が必要ですA+B。(私の言葉遣いは不明のようですので、私はちょうど質問を更新)
— チャオ徐

しかし、O(n polylog n)ソリューションに興味がありますか?
— サリエルハーペレ

@ SarielHar-Peledはい、決定論的なO(npolylogn)アルゴリズムにも興味があります。
— チャオ徐

回答:


11

ここでは、ランダム化実行時間を取得する方法を説明しています。一連の観測が必要です。O(n∗polylogn)

  1. 証人値の数の組である(、B )∈ A × Bよう+ B = V。LET P A(X )= Σ I ∈ A X I及びP B(xは)同様に定義されます。観察その係数のx VにおけるP A(X )* PのB(Xv(a,b)∈A×Ba+b=vPA(x)=∑i∈AxiPB(x)xvは、値 vの目撃者の数です。PA(x)∗PB(x)v

  2. 仮定単一証人有する(、B )∈ A × Bを、多項式考えるQ A(X )= Σ I ∈ A I * X のI。明らかに、係数XのVにおけるQ A(X )* P B(X )であり、そのようなものとして、我々は今対知っている(、V - )v(a,b)∈A×BQA(x)=∑i∈Ai∗xixvQA(x)∗PB(x)a(a,v−a) これで完了です。

  3. それで、私たちは単一の証人がいるというケースで終わりました。がk個の目撃者(a 1、b 1)、… 、(a k、b k)を持っている場合を考えてください。してみましょうI (K )= ⌈ LG √vk(a1,b1),…,(ak,bk)。ことを観察する2I(K)-1≤√i(k)=⌈lg⁡k⌉。次に、Rj=(Aj、Bj)、j=1、…、m、m=O(logn)の場合、Aの各要素が確率p=でAiに選択される ように、ランダムサンプルとします。1/2 I (K )。確率はV2i(k)−1≤k≤2i(k)Rj=(Aj,Bj)j=1,…,mm=O(log⁡n)AAip=1/2i(k)v単一の証人はα = ( kRj、証人は、数字の互いに素な対が(あるので、各対の和であるので、V)。それことを確認することは容易であるαが一定である(0、1)の値とは無関係K。そのため、高い確率で、サンプルR1、…、Rmの1つにvが1つの証人を持っている必要があります。したがって、上記のように、そのようなサンプルに関連付けられた2つの多項式を計算することにより、α=(k1)p2(1−p2)k−1vα(0,1)kvR1,…,Rm時間(サンプルごと)、FFTを使用して、これを一定時間で決定できます。O(nlog⁡n)

  4. ほぼ完了です。解像度のためのランダムサンプル上に計算。そのような解像度ごとに、ランダムサンプルと関連する多項式を計算します。また、AおよびBの関連多項式を計算します。この前処理は単純にO (n log 3 n )を取りますが、log nファクターをもう少し慎重にすると除去できるはずです。i=1,…,⌈lg⁡n⌉ABO(nlog3⁡n)log⁡n

  5. アルゴリズム:すべての値について、多項式Q A(x )∗ P B(x )を参照して、一定時間内にいくつの証人、たとえばkが存在するかを計算します。次に、i (k )の関連データ構造に移動します。次に、それを単一の証人として持つランダムサンプルを見つけ、一定の時間でこの証人であるペアを抽出します。vQA(x)∗PB(x)i(k)

  6. 奇妙なことに、前処理時間はですが、目撃者が見つかるとすぐに検索を停止できるため、目撃者自身を見つけるのに予想される時間はO (n )だけです。これは、このアルゴリズムが改善可能であることを示唆しています。特に、i (k )≪ lg nの場合、生成される多項式は非常にまばらであり、FFTをはるかに高速に実行できるはずです。O(nlog3⁡n)O(n)i(k)≪lg⁡n


12

OK、私は本当にサリエルが答えを得るべきだから待っていましたが、私は待つのにうんざりしているので、ここでほぼ線形のランダム化アルゴリズムでの私のカットです。

  • サンプルを選択して点、iは= 0 、1 、...、元の問題からの各和が部分問題の一つ(に一意に表されている一定の確率を有するような部分問題の対数を取得することができサンプリングにより、予想される表現の数が1近くに削減されます。n(1−ϵ)ii=0,1,…
  • サンプリングプロセスを対数回数繰り返すことにより、すべての合計に高い確率で一意の表現を持たせることができます。
  • あなたのパーティションがある場合はとBの 2つのサブセットに、4で数を乗算における部分集合の一つの番号に2を加算することにより、次にAとにおけるサブセットのいずれかの番号に1を加えB、次のことができ加数の2つのサブセットのどちらが得られるかを達成可能な合計のmod-4値から読み取ります。ABAB
  • パーティションプロセスを対数で繰り返すことにより、サブ問題の値またはインデックスのバイナリ表現の各ビット位置を使用して各ステップでパーティションを選択することにより、一意に表現される合計の合計を一意に識別できます。

これにより、実行時間は3つの対数要因によって増大します。おそらくそれは減らすことができます。


3
ハハ;)。私は...それを書くの真ん中にあった、その後、昼食に行ってきました
— サリエルのHar-Peledは、

5

この答えは、決定的アルゴリズムを提供します。O(n polylogn)

SarielとDavidのアルゴリズムは、この論文と同様のアプローチでランダム化を解除できるようです。[2]プロセスを進めながら、この結果を暗示するより一般的な問題があることを発見しました。

k

S1,…,Sn⊂{1,…,m}SizeSumQ

  1. Size(Q)(|S1∩Q|,|S2∩Q|,…,|Sn∩Q|)
  2. Sum(Q)(∑s∈S1∩Qs,∑s∈S2∩Qs,…,∑s∈Sn∩Qs)

knS1′,…,Sn′Si′⊂Si|Si′|=min(k,|Si|)i

ff=Ω(m+n)O(fklog⁡n polylog(m))

1S1,…,S2n⊂{1,…,2n}Si={a|a+b=i,a∈A,b∈B}

χQ(x)=∑i∈QxiIQ(x)=∑i∈Qixi

xiχQχB(x)|Si∩Q|IQχB(x)∑s∈Si∩QsO(nlog⁡n)

O(n polylog(n))

[1] Yonatan Aumann、Moshe Lewenstein、Noa Lewenstein、Dekel Tsur: ピーリングによる証人の発見。アルゴリズム7(2)のACMトランザクション:24(2011)

[2] Noga Alon、Moni Naor:ランダム化解除、ブール行列乗算の証人、および完全なハッシュ関数の構築。Algorithmica 16(4-5)(1996)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.