O(n log n)時間で二乗したスパース多項式の合計を計算しますか?


18

次数が最大、多項式あり、非ゼロ係数の総数があると仮定し(つまり、多項式はスパースです)。多項式を計算するための効率的なアルゴリズムに興味があります。 n n > m np1,...,pmnn>mn

∑ipi(x)2

この多項式の次数は最大、入力サイズと出力サイズの両方がです。の場合、時間 FFTを使用して結果を計算でき。これは任意のに対して実行できますか?何らかの違いがある場合、係数が0と1である特別なケースに興味があり、整数に対して計算を行う必要があります。O (n )m = 1 O (n log n )m < n2nO(n)m=1O(nlog⁡n)m<n

更新。上記の高速な解決策は、高速行列乗算の進歩を意味することを理解しました。特に、場合、の係数としてで。したがって、計算は2つのベクトルの外積の計算に対応し、和計算は行列積の計算に対応します。計算に時間を使用する解がある場合、時間つの行列の行列を乗算できます。 a i k b k j x i + n j p k(x )2 p k(x )2 ∑ k p k(x )2 f (pk(x)=∑i=1naikxi+∑j=1nbkjxnjaikbkjxi+njpk(x)2pk(x)2∑kpk(x)2∑ k p k(x )2 n n f (n 2、n )f(n,m)∑kpk(x)2nnf(n2,n)、これは、に大きなブレークスルーが必要であることを意味し。ただし、、ここでは行列乗算の現在の指数である可能性があります。アイデア、誰か?M ≤ N F (N 、M )= N ω / 2 ωf(n,m)=O(nlog⁡n)m≤nf(n,m)=nω/2ω


1
こんにちはラスマス。あなたはこれがメインサイトに行くことを意図していたと思う。これは、サイトに関する質問のためのメタサイトです。
— スレシュヴェンカト

回答:


3

非ゼロ係数で多項式を二乗すると、通常の項ごとの乗算を使用して時間がかかるため、これは多項式のFFTよりも優先され。もしと多項式のその後数より大きいである、これらはかかる時間を二乗して結合します(残りの多項式も同様)。これは、が場合の明白な限界を超える改善です。 O (x 2 i)x i < √xiO(xi2) ΣIX、I=nがxはIを √xi<nlog⁡n∑ixi=nxi O( √nlog⁡nO(n 3 /O(n/log⁡n)O(MNログN)MΘ( √O(n3/2(log⁡n)1/2)O(mnlog⁡n)mΘ(n/log⁡n)


1
私が興味を持っているのは、各項を計算せずに合計を計算する方法です。各製品でFFTまたは項ごとの乗算を行うのは、私が考えているアプリケーションには遅すぎます。
— ラスマスパグ

2

完全な答えではありませんが、役に立つかもしれません。

警告:サポートが小さい場合にのみ有効です。pi2

多項式場合、サポートとし、サポートのサイズになります。ほとんどはまばらです。つまり、小さなサポートがあります。q=a0+a1x+⋯+anxns q = | S q | p個のISq={i∣ai≠0}sq=|Sq|pi

製品サポートのサイズで、スパース多項式とを準線形時間で乗算するアルゴリズムがあります。たとえば、http://arxiv.org/abs/0901.4323を参照してください。b a babab

のサポートは(に含まれる)であり、2つのセットと合計はとして定義されます。すべての製品のサポートが小さく、たとえば合計で線形の、製品を計算してすべての単項式を加算できます。S a + S babSa+SbT S + T := { S + T | S ∈ S 、T ∈ T } n個STS+T:={s+t∣s∈S,t∈T}n

ただし、のサポートのサイズがおよびサポートのサイズで2次であるような多項式およびを見つけるのは非常に簡単です。この特定のアプリケーションでは、多項式を二乗しています。したがって、問題はと比較してがどれだけ大きいかです。このための通常の尺度は、倍増数。無制限の倍増数を持つセットがあります。しかし、サポートとして大きな2倍数のセットを除外できる場合、問題の高速アルゴリズムを取得できます。 b a b a b S + S S | S + S | / | S | p個のIabababS+SS|S+S|/|S|pi


1
私は加法的組み合わせ論に精通していませんが、一般化された算術級数とフライマン・ルザの定理は、小さな倍加の集合に関するものだと思います。
— 伊藤剛

@剛:あなたは正しいです、私は私の答えを編集します。それにもかかわらず、倍増定数が大きいGAPがあります。
— 5501

個人的には、このアプローチは有望だとは思いません。Freiman-Ruzsaの定理の(かなり不正確な)意味は、| S + S | / | S |です。は、特別な場合にのみ小さいため、「p_iのサポートとしてより大きな2倍数のセットを除外できる場合」の部分は、ifが非常に大きいです。しかし、私が言ったように、私は加法的組み合わせ論に精通していません。
— 伊藤剛

もちろん、念頭に置いてアプリケーション(これはわかりません)が素晴らしいサポートを提供する場合にのみ機能します。
— 5501

そうすれば、答えの中でその仮定をより明確にすると理解しやすくなります。答えに仮定を書く現在の方法は、小さな倍増数の仮定は大したことではないと考えることを示唆しています。
— 伊藤剛

2

自然な近似アルゴリズムに注目したかっただけです。ただし、これはスパース性を利用しません。

ランダムシーケンス を使用できますを使用すると、FFTを使用して時間でを計算でき。それからおよび。そのため、時間近似を取得できます。(σi)i∈[n]X=∑iσipi(x)X2nlog⁡nEX2=∑ipi(x)2=SVX2=O(S)1+εO(ε−2nlog⁡n)


素敵なアプローチ!しかし、すべての係数を高い確率で正しく取得するために、さらに繰り返しが必要ではありませんか?
— ラスマスパグ

@RasmusPagh そうです、すべての係数を確率1 - δで保存したい場合は、おそらく項を取得します。log⁡(n/δ)1−δ
— トーマスエール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.