一般化されたヴァンデルモンド行列の行列式


10

ムーア行列はヴァンダーモンド行列に似ていますが、定義が少し変更されています。 http://en.wikipedia.org/wiki/Moore_matrix

ある整数を法とする与えられたn×nフルランクムーア行列の行列式を計算する複雑さは何ですか

缶ムーアから減少させることが決定基O(n3)にFFT技術を用いてO(nlogan)一部のaR+{0}

Moore det moduloの複雑性は整数であり、Vandermonde detも同じですか?Vandermonde行列式の複雑さはO(nlog2n)(理論計算機科学ハンドブックのページ644:Jan Leeuwenによるアルゴリズムと複雑さ)

現在の投稿と同様の投稿:mを法とする行列式


ムーア行列式はO(n ^ 3)時間(整数RAM上)でも計算できますか?
Jeffε

1
私は法とランダムに述べた理由であるE FFJɛ@ NN
T ....

ちなみに、私は気になるのですが、そのような「超高速」アルゴリズムのメリットを享受できる既知のアプリケーションはありますか?
Juan Bermejo Vega

@J FFE、あなたは以上の二重のべき乗剰余計算かどうかを知ることが起こるのかNは些細なためBPPであるN?。それは、行列の係数を計算するのが問題だからです。εNN
Juan Bermejo Vega

回答:


4

一般に、Coppersmith–Winogradアルゴリズムを使用して任意の行列のLU分解を見つけるための理論的な時間アルゴリズムがあり、これにより行列式(O n 時間の追加)が明らかに得られます。ただし、Coppersmith–Winogradアルゴリズムが実際に使用できるとは見なされないという問題があります。Afaik、人々は主にO n 2.807時間のStrassenアルゴリズムを使用しています。Boost UBLASのlu_factorizeはこれを使用しませんか?O(n2.376)O(n)O(n2.807)

あなたの場合、基本的にLU分解のような手順のようなガウスの消去法は抽象的に行うことができるので、ムーア行列はかなりの最適化を認めるべきです。実際、ウィキペディア参照されているムーア行列式を計算するための素晴らしい式が見つかります。これは、LU分解を一般的に実行することでおそらく証明されます。O(n)


こんにちは、ジェフ:O(n ^ 2)公式でどのリファレンスを参照していますか。Vandermonde detはO(nlogn)で計算できると思いますが、参照が見つかりません。ムーアdetもO(nlogn)にある必要がありますか?
T ....

はい、私はO(n)を明らかに言ったはずですが、実際には大きなnに対してO(n log n)です。
Jeff Burdges、2012年

こんにちはジェフ:参照がありますか?
T ....

7
@JeffBurdges:実行時間がO(n log n)である場合、「大きなnの場合」の定義では、実行時間はO(n log n)であり、O(n)ではありません。
Jeffε

O(n)Θ(n2)

3

ZmmaqemodmO(log(mn)M(logm))

aqiaqi(modφ(m))(modm)
m

場合は素数であるか、効率的に因数分解することができ、最悪の場合の複雑さは、あなたが行列乗算のために必要なステップの数によって支配されて。たとえば、パートナーの投稿で述べたスミスの正規形アプローチでは、「遅い」を使用した場合、行列式を時間内に計算します乗算アルゴリズム。は2.373を選択できます。mO(nω)O(nωlog2mlog(mn))ω

マトリックスの係数を2乗べき乗する必要があるため、ムーア対ヴァンダーモンドでは速度が低下します。を因数分解できる場合、このスローダウンは単なる多対数です。そうでない場合、提示されアルゴリズムは Double-Modular-ExponentiationへのCook削減を提供します。mmZm

注*:整数乗算の高速アルゴリズムでは、をに置き換えることができます 。log2mM(logmloglogm)


更新:を達成する可能性について。O(nlogan)

これについて明確な答えはありませんが、検索を厳しくする可能性のある情報が見つかりました。

時間の行列式のような量を計算する構造化行列の アルゴリズムは、文献では「超高速」と呼ばれています。構造化行列(Vandermonde、Toeplitz、Hankel)のすべての既知の「超高速」アルゴリズムは、低い「変位ランク」と呼ばれるこの行列の共通プロパティに依存しているようです。この本の最初の章(オープンアクセスページ)、またはこの記事[ACM][PDF]での議論を話し合います。O(nlogan)

私が読んだものから、新しい行列(または)であるような行列、を見つけることができた場合、ムーア行列与えられます。次の構造を持っていますM A B L M = A M M B L M = M A M Bm×nMABL(M)=AMMBL(M)=MAMB

L(M)=k=1rgkhkT

であり、ランクが小さい(定数または囲まれている)場合、既存の手法を適用できます(本の第5章をチェックして、open-ページにアクセス)を三角化し、を使用して計算し。上記の、はベクトルを示します。上記の本で全体を読むことができない場合、この記事にはこれらの方法に関する多くの情報も含まれています。o r>0M det Mo(min{m,n})MdetMg k h kO(nlog2n)gkhk

残念ながら、ムーア行列の低変位ランク構造を見つけることはできませんでした(ヴァンダーモンドが持っています)。ここでの主な問題は、二重指数関数の「非線形」の性質から生じているようです。それが役に立てば、ヴァンダーモンデ、コーシー、テプリッツ、ハンケルの事例が本で解決されます。


マトリックスをcharフィールドでライブにすることができます。ただし、使用するアプリケーションのアルファベットのサイズは大きくなります。そう形式であるいくつかの十分な大きさのために。m 3 k k3m3kk
T ....

トーテント関数を計算できるので、それは問題ありません:)3k
Juan Bermejo Vega

フィールドが非常に大きいため、これは複雑さを単純化しません。
T ....

それは私が二重累乗で述べた問題を単純化します。以降、あなたが二重累乗のにオイラーの定理を使用することができまず、計算:、次に。時間内にこれを行うことができます。スクール乗算アルゴリズムを使用すると、最終的な「ネット」コストはこれは効率的です。 a q iφ(3k)=3k3k1b = q iaqimodma bb=qimodφ(3k) O ログN 3 KM k個のログ3 )、M N = N 2 O N ω K 2 L O G 2 3 ログN + Kのログ3 abmod3kO(log(n3k)M(klog3))M(n)=n2O(nωk2log23(logn+klog3))
フアンベルメホベガ

を置き換えることはできますか?それは私が興味を持っているコスト削減です(マトリックス構造から可能かもしれません)。、私は私の目的のために何かを得ることはありません。1 + ε ω 2ω1+ϵω2
T ....
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.