3-SUMの乗算バージョン


22

3-MULと呼ばれる次の問題の時間の複雑さについて何が知られていますか?

集合所与nは整数、そこ要素はB C Sように、B = CSna,b,cSab=c

この問題は、3つの要素があるかどうかを尋ねる3和問題と類似しているB CはSよう+ B + C = 0(または同等に+ B = C)。3-SUMは、nの約2次時間を必要とすると推測されます。3-MULについて同様の推測がありますか?具体的には、3-MULは3-SUMとして知られていますか?a,b,cSa+b+c=0a+b=cn

時間の複雑さは、「合理的な」計算モデルに適用されることに注意してください。例えば、我々はセットに3-SUMから減少させることができるセットに3-MULにS '、ここで、 S ' = { 2 X | X S }。次いで、3-MULの溶液、22 、B = 2 、Cは、場合にのみ存在+ B = C。ただし、この指数の爆発的な拡大は、たとえばRAMモデルなどのさまざまなモデルで非常に悪くなります。SSS={2xxS}2a2b=2ca+b=c


入力数を指数表記(別名科学表記)で表現できる場合、3-MULTは3-SUM困難であることがわかります。
ウォーレンシューディ

4
加算がグループであるという事実のみに依存する3-SUMのアルゴリズムは、3-MULTのアルゴリズムに変換でき、その逆も同様です。したがって、2つを分離するアルゴリズムは、数値を使用して異常な処理を行う必要があります。
ウォーレンシューディ

1
ひどく退屈であるためには、セミグループのみが必要な場合があります。
スレシュヴェンカト

回答:


11

SUMから3 MUL への削減は、わずかな標準修正で機能します。元の整数が{ 1 M }にあったとします。変換x 2 xの後、新しい整数は{ 2 2 M }にあります。範囲を縮小します。331,,Mx2x2,,2M

新しいセットS 'の整数トリプルを考えます。ゼロ以外a b cの素数の数は< 2 Mです。そのようなトリプルの数はn 3です。したがって素数の数Qの少なくとも一方で除算B - Cゼロ以外の番号が最大である2 M nは3a,b,cSabc<2Mn3qabc2Mn3

ましょう最初の組である2 M N 4つの素数。最大のそのような素数のサイズは最大でO M n 4 log M n です。ランダムプライム選びのp Pを。高い確率でpはゼロ以外の任意の分割されませんB - 、Cを我々が表現できるように、各A S 'その残基、MODによってP、及び場合3 MULは、いくつかの発見B = CSをP2Mn4O(Mn4logMn)pPpabcaSp3ab=c、高い確率で、元の 3 SUMインスタンスに対して正しいでしょう。数値の範囲を{ 0 O M n 4 log M n }に減らしました。S30,,O(Mn4logMn)

(これは、標準サイズの減少であるあなたがいるという事実を考慮することで、より良い行うことができるかもしれない。B - cはいつもの2つの大国の違いです2。)abc2


1
3MULではなく素数を3MUL modに減らしていませんか?そのかもしれB = Cが、 B Cab=c(mod()p)abc
ウォーレンシューディ

1
はい、そのままで、これは3MUL mod pの削減です。いい視点ね。
virgi

これは非常に興味深いアプローチです。ただし、3-SUMから3-MULへの決定論的な削減に特に関心があります。サイズ削減技術のランダム化を解除することはおそらく可能でしょうか?
マルクスヤルセニウス

3

Have you tried the reduction S={2x/M|xS} where M=maxSminS? The results are real numbers so you'd have to round to some number of digits. To ensure that the numbers add correctly despite the rounding you may need to add a bit of random noise.


Oops, random noise doesn't seem sufficient to fix the rounding error. However these ideas do seem promising for reducing the other way to show 3-MULT is no harder than 3-SUM, since e.g. (x+1)+y=x+y+1.
Warren Schudy

1
The equation doesn't seem correct ( try x and y = 2.1 ). Could you clarify what you meant?
Raphael
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.