ガウス消去法の実際の時間の複雑さは何ですか?


72

以前の質問への回答で、「ガウス」消去は時間で実行されるという一般的だが誤った信念に言及しました。アルゴリズムが算術演算を使用することは明らかですが、不注意な実装では指数関数的に多くのビットを持つ数値を作成できます。簡単な例として、次の行列を対角化するとします。O(n3)O(n3)

[2000120011201112]

1つの行の整数倍のみを別の行に加算する除算のないバージョンの消去アルゴリズムを使用し、常に行列の対角要素でピボットする場合、出力行列のベクトルは対角線に沿って。(2,4,16,256,,22n1)

しかし、何であるガウスの消去法の実際の時間の複雑さは? ほとんどの組み合わせ最適化の作成者は「強力な多項式」に満足しているように見えますが、多項式が実際に何であるか興味があります。

ジャックエドモンズの1967年の論文では、強力な多項式時間で実行されるガウス消去法(「ガウスによる可能性がある」)のバージョンについて説明しています。エドモンズの重要な洞察は、すべての中間行列のすべてのエントリが元の入力行列のマイナーの決定要因であるということです。以下のためと行列ビット整数エントリ、エドモンズは、彼のアルゴリズムは、せいぜいと整数を必要とすることを証明しているビットです。という「合理的な」仮定の下で、Edmondsのアルゴリズムは、教科書の整数演算を使用する場合は時間で実行され、または、時間で実行する実行できる標準整数RAMでFFTベースの乗算を使用するn×nmO(n(m+logn))m=O(logn)O(n5)O~(n4)O(logn)一定時間でのビット演算。(エドモンズはこの時間分析を行いませんでした。彼は自分のアルゴリズムが「良い」と主張しただけです。)

これはまだ知られている最高の分析ですか?より良い明示的な時間制限、または少なくとも必要な精度のより良い制限を与える標準参照はありますか?

より一般的に:線形方程式の任意のシステムを解くために知られている最速のアルゴリズムの実行時間(整数RAM)は?


2
(暴力的なハンドウェーブを挿入する)この特別な場合、小さな素数のトリックを法とするハッシュを使用して、大きな整数の問題を回避できませんでしたか?アルゴリズムはランダム化されますが、それでも..確かに、これはあなたが尋ねた質問に答えません...
Suresh Venkat

1
次の参考文献が役立つでしょうか?lovaszのレクチャーノートYapの行列式に関する章(Yapはを提供します。Yapの本(運動10.1.1(iii))から、ガウス還元がビットサイズが指数関数的に増加する中間値を与えるかどうかは不明であるという印象を受けていましたが、今はわかりません。O(n3MB[n(logn+L)])
user834

1
標準のガウス消去アルゴリズムは、後の行を削減する前にピボット行をピボット要素で除算します。未解決の質問は、この標準バージョンを指します。質問の冒頭で挙げた例では、ピボット要素で分割されない別のバリアントを使用しています。
ジェフ

3
奇妙な。Bereissのアルゴリズムに対するYapの時間制限は、ガウス消去法のエドモンズの分析によって暗示された時間制限と同一です
ジェフ

1
rjlipton は最近この地域を調査し、このテーマに関するKannan博士論文を引用しています。分析の重要な部分は、WRTあるスミス標準形
vzn

回答:


35

答えはであると思いますが、ここでは(多)対数係数を省略します。境界は、「W。Eberly、M。Giesbrecht、P。Giorgi、A。Storjohann、G。Villard。スパース整数線形システムの解決。Proc。ISSAC'06、ジェノバ、イタリア、ACM Press、63-70、7月しかし、それはディクソンの論文に基づいています:「P進展開を使用した線形方程式の厳密解、ジョン・D・ディクソン、NUMERISCHE MATHEMATIK、Volume 40、Number 1、137-141」。O~(n3log(A+b))


参照いただきありがとうございます!これは私の2番目の質問に答えますが、最初の質問には答えません。
ジェフ

3
ピボットを使用する場合、ガウス消去法(GE)の中間結果のビットサイズは多項式であり、指数関数的な爆発はありません。これはベアリスの結果だと思います。GEの複雑さについては、GathenとGerhardの本に、GE、モジュラー算術、および中国の剰余定理に基づいた行列の行列式を計算するための「Modern Computer Algebra」というアルゴリズムがあります。 pp 101-105)。複雑さはです。高速演算を使用すると、係数を節約できると思います。私が間違っていなければ、これはuser834が言及した限界です。AO(n4log2A)n
エリアス

@Elias、その式のノルムの定義は何ですか?絶対サイズで最大の係数ですか?ビットサイズですか?また、この結果は任意の有理行列に対してですか?
フアンベルメホベガ

13

あなたの最初の質問への答えは、次の議論のためにと思います。しかし、アルゴリズムのステップで計算された数値は、Aの部分行列の行列式であることを証明しています。線形および整数プログラミングの理論に関するSchrijverの本では、Aのエンコードにbビットが必要な場合(bはO~(n3log(A+b))O~(log(A))次に、そのサブ決定子のいずれかが最大2bビットを必要とします(定理3.2)。ガウス消去法を多項式時間アルゴリズムにするには、計算された商に注意する必要があります:中間ステップで計算するすべての分数から共通因子をキャンセルする必要があり、その後、すべての数値はAのエンコーディング長で線形のエンコーディング長を持ちます。

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