mを法とする行列式


18

(法とする剰余環)の係数を持つ整数行列の行列式を計算するための既知の効率的なアルゴリズムは何ですか。数値は素数ではなく、複合で可能性があります(したがって、計算はフィールドではなくリングで実行されます)。 mmZmmm

私が知る限り(以下を参照)、ほとんどのアルゴリズムはガウス消去法の修正です。問題は、これらの手順の計算効率についてです。

何らかの異なるアプローチがあることが起こった場合、私はそれにも興味があります。

前もって感謝します。

更新:

この質問の原因を説明しましょう。は素数であると仮定します。したがって、はフィールドです。この場合、未満の数値を使用してすべての計算を実行できるため、数値のすべての操作に優れた上限があります:加算、乗算、反転---ガウス消去法を実行するために必要なすべての操作。Z m mmZmm

一方、が素数ない場合、一部の数値の反転を実行できません。したがって、行列式を計算するにはいくつかのトリックが必要です。m

そして今、私は仕事をするための既知のトリックは何であり、そのようなトリックは本や論文で見つけることができるかどうかに興味があります。


3
「効率的」とはどういう意味ですか?問題は明らかにます。P
デビッド

2
された Aは定数を固定しますか?どのように与えられますか?m
マイケルブロンディン

2
小さいとはどういう意味ですか?それらは単項で書けますか?
マイケルブロンディン

5
私はまだ質問を理解していません。整数行列の行列式は多項式時間で計算できるため、この値をモジュロ取得できます。除算を実行したり、の分解を見つける必要はありません。Z m mmZmm
デビッド

2
@ValeriySokolov:それは基本的な線形代数です。たとえば、Christos H. Papadimitriouによる計算の複雑さの問題11.5.3を確認してください。
伊藤剛

回答:


15

の因数分解がわかっている場合は、各法として別々に計算し、中国語の剰余を使用して結果を結合できます。場合、法とする計算は簡単です。これはフィールドであるためです。大きい場合は、ヘンゼルリフティングを使用できます。 p e i i e i = 1 p e i i e im=p1e1pnenpieiei=1pieiei


ありがとうございました!それは私が探していたもののようなものです。これは行列式の一般的な慣習ですか?(参照は大歓迎です)。
ヴァレリーソコロフ

6
これらは、計算代数の標準的な手法です。von zur Gathen and GerhardによるModern Computer Algebraまたはコンピューター代数に関する他の本をご覧ください。特定の問題については、次のPan、Yu&Stewartの論文も参照してくださいcomet.lehman.cuny.edu/vpan/pdf/pan146.pdf
MarkusBläser12年

17

可換リング上で動作するMahajanとVinayによる組み合わせアルゴリズムがありますhttp : //cjtcs.cs.uchicago.edu/articles/1997/5/contents.html


非常に興味深い論文へのリンクを添えてご返信いただきありがとうございます。
ヴァレリーソコロフ

また、この論文の著者がより一般的な問題を解決したため、より効率的なアルゴリズムがあると考えています(すべての可換リングについて)
ヴァレリーソコロフ

「ある」とは、「既知」または「存在する」という意味ですか(ただし、まだ見つかりません)。それは合理的な推測ですが、小さな合成数を法とするインタイガーのリングの構造があなたをすべて助けることができるということには少し懐疑的です。私が間違っている場合、私はそれが面白いと思います。
サショニコロフ

1
@ValeriySokolovは、答えはあなたの質問に答えるないので、あなたはそれを受け入れて検討するかもしれない(または、あなたが不合理ではないでしょう、おそらくより良い答えを待つしたい場合)、公平であるために
スレシュヴェンカト

@SashoNikolov Wolfram Mathematicaが何らかの方法でこれを計算することがわかりました。「実装ノート」では、Detはモジュラー方式と行削減を使用し、中国の剰余定理を使用して結果を構築します。彼らが何をするのか正確に知りたいのですが、簡単な検索では何も得られませんでした。「小さな合成」に関しては、このリングでの加算と乗算の複雑さをと見なしたいだけです。つまり、ようなすべての要因はと見なされます。mO(1)O(logm)O(1)
ヴァレリーソコロフ

11

この問題を解決するために、法とする整数での行列乗算のコストが最悪の複雑さの上限であるスミス正規形に基づく高速決定論的アルゴリズムがあります。任意の行列について、アルゴリズムはを簡単に計算できるスミス標準形を出力し。mAdet(A)

より具体的には、定義し、から取得した係数を持つ2つの行列が 、(整数加算基本算術演算を使用して乗算できるようにします、乗算、べき乗など)。次に、ωn×nZmO(nω)Zm

行列所与、計算することが決定論的なアルゴリズムが存在する用いて上に基本的な算術演算を [1]AZmn×ndet(A)O(nω)Zm

これが1996年に書かれたとき、漸近的に高速な代替手段はありませんでした(論文では、同じ境界を持つアルゴリズムの以前の存在について言及していますが、どのアルゴリズム、または確率的かはわかりません)。

アップデート(2013年7月17日):このアルゴリズムの素敵なボーナス機能は、それが実行されているということである多項式時間任意のための複合 プライムnuberの知らなくても、因数分解の!ファクタリングのための既知の効率的な(古典的な)アルゴリズムがないため、これは良いことです(もちろん、量子コンピューターがあれば、Shorのアルゴリズムを適用できます)。あなたがいる場合行う因数分解を持って、アルゴリズムMarkusが提案実装するための方法単純に思えます。mm

注:論文では、標準整数演算を使用する場合、「基本的な算術演算」の複雑さはですが、をより高速に達成できますテクニック。は、2つのビット整数を乗算するコストを制限します。の現在の記録は2.3727です。O M 対数M ログログメートルM T T ωO(log2m)O(M(logm)loglogm)M(t)tω


は通常と呼ばれるものではありませんか?ωθω
サショニコロフ

たぶん、私はこのための最も一般的な表記法を知りません。
フアンベルメホベガ

私はあなたが正しいと思う、私はそれを「主流」に変えるだろう
ファンベルメホベガ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.