対角線と固定対称線形システムは、事前計算後の2次時間で解くことができますか?


21

ある解決する方法、フォームのシステム線形(D_I + A)X_I = b_i Aが固定SPD行列でありD_Iは正の対角行列でありますか?O(n3+n2k)k A D i(Di+A)xi=biADi

たとえば、各Diがスカラーの場合、AのSVDを計算するだけで十分Aです。ただし、これは、可換性の欠如により、一般Dについて分類されます。

更新:これまでの答えは「いいえ」です。誰が理由について興味深い直感を持っていますか?回答がないということは、2人の非通勤オペレーター間で情報を圧縮する非自明な方法がないことを意味します。驚くほど驚くことではありませんが、それをよりよく理解することは素晴らしいことです。


SPD =半正定値?
rcollyer

はい。ただし、問題は本質的にSPDなしでも同じです。システムが特異なものにならないようにするためだけに、この制約を追加しました。
ジェフリーアーヴィング

回答:


19

私が見つけることができたあなたの質問に最も近い肯定的な答えは、まばらな対角摂動のためです(以下を参照)。

そうは言っても、SPD行列からすべての正方行列へのスカラーシフトについて述べた手法の一般化はありますが、一般的な場合のアルゴリズムは知りません。

正方行列与えられた場合、Schur分解が存在します。ここで、はユニタリ、は上三角、は Schur分解を提供します。したがって、事前計算のアイデアは、アルゴリズムを介してすべての正方行列に拡張されます。A = U T U H U T A +は、σ Iは= U T + σ I U H A + σ IをAA=UTUHUTA+σI=U(T+σI)UHA+σI

  • を最大で作業で計算します。ON 3[U,T]=schur(A)O(n3)
  • 各を経由で解く in作業(中間の反転は単純にバック置換)。、X = U T + σ I - 1 U H B ON 2(A+σI)x=bx:=U(T+σI)1UHbO(n2)

Schur分解は正規行列のEVDになり、EVDはエルミート正定行列のSVDと一致するため、がSPDの場合、この推論の行は前述のアプローチになります。A

更新への対応: 私が持っていない証拠を手に入れるまで、私は答えが「いいえ」であると主張することを拒否します。しかし、なぜそれが難しいのかについての洞察と、答えがイエスである別のサブケースを与えることができます。

本質的な難点は、更新が対角であるにもかかわらず、まだ一般的なフルランクであるため、逆行列を更新するための主要なツールであるSherman-Morrison-Woodbury公式が役に立たないように見えることです。スカラーシフトの場合もフルランクですが、前述のように、すべての行列で交換されるため、非常に特殊なケースです。

つまり、各がスパースである場合、つまり、それぞれに非ゼロがある場合、Sherman-Morrison-Woodburyの式は各ペアで解きます。たとえば、番目の対角要素にゼロ以外の単一の値がある場合、ます。O1 ON 2、{ D B } J D = δ E 、J 、E 、H 、JDO(1)O(n2){D,b}jD=δejejH

[A1+δejejH]1=A1δA1ejejHA11+δ(ejHA1ej),

ここで、は番目の標準基底ベクトルです。ejj

別の更新: @GeoffOxberryがPCGを使用していくつかのランダムSPD行列で提案した前提条件を試したことに言及する必要がありますは小さいですが、以上の場合はそうではありません。 1000 × 1000 | | D | | 2 / | | A | | 2 OA11000×1000||D||2/||A||2O(1)


12

場合ある斜めドミナントそれぞれについて、次いでKoutis、ミラー、及びポン(参照による最近の研究は、Koutisのウェブサイト対称斜めドミナント行列に作業のための)の各系を解くために使用することができる時間(実際には時間。ここで、はすべての非ゼロエントリの最大数です。なので、スパース性も利用できます)。その場合、合計実行時間は、これはよりも優れています。i On 2 log(Di+A)iO(n2log(n))O(mlog(n))m(Di+A)iO(n2log(n)k)O(n3k) 密な線形代数を使用して単純に各システムを解くアプローチですが、求めている2次実行時間よりわずかに悪いです。

すべてのに対する著しいスパース性は、スパースソルバーによって悪用されてアルゴリズムを生成する可能性がありますが、かなりのスパース性がある場合は、それに言及したでしょう。(Di+A)iO(n2k)

また、使用することができます反復法を使用して、各システムを解決するために、前提条件として、それがうまくいく方法を参照してください。A1

更新への応答:@JackPaulsonは、数値線形代数とアルゴリズムの観点から大きなポイントになります。代わりに、計算の複雑さの引数に焦点を当てます。

線形システムのソリューションの計算の複雑さと行列乗算の計算の複雑さは本質的に同じです。(代数的複雑性理論を参照してください。)2つの非可換演算子の間の情報を圧縮し(正の半確定部分を無視)、 2次時間で提案しているシステムのコレクションを直接解決できるアルゴリズムを見つけることができれば、そのようなアルゴリズムを使用して、より高速な行列乗算について推論できる可能性があります。線形システムが計算の複雑さを軽減するための高密度で直接的な方法で、正の半正定構造をどのように使用できるかを確認することは困難です。n

@JackPaulsonのように、答えが証拠なしでは「ノー」であるとは言いたくないが、上記の関係を考えると、問題は非常に難しく、現在の研究の関心事である。特別な構造を利用せずに漸近的な観点からできる最善の方法は、Coppersmith and Winogradアルゴリズムの改良で、アルゴリズムを生成します。ここでです。このアルゴリズムはコーディングが難しく、小さな行列の場合は遅い可能性があります。これは、漸近推定に先行する定数係数がおそらくガウス消去法に比べて非常に大きいためです。α 2.375O(nαk)α2.375


3
クロスオーバーがどこにあるかについての具体的な声明はまだ見ていませんが、いくつかの評判の良い情報筋は、(実装の問題は別として)、Coppersmith-Winogradは、近い将来メモリに収まるマトリックスサイズの標準的な方法を打ち負かすことができないと述べています(数十年)。Linpackベンチマークが現在のトップマシンで実行されるのに1日以上かかることを考えると、Coppersmith-Winogradが実際に使用される可能性は低いようです。Strassenは実際には大きな問題に対して実用的ですが、数値的には多少安定しています。
ジェドブラウン

それは私を驚かせません。実装の詳細については+1。
ジェフオックスベリー

6

1次のテイラー展開を使用して、単純な遅れよりも収束を改善できます。で使用可能な前提条件(または直接解決の係数)があり、それを前提条件に使用するとします。計算できますA+DA

A1=(A+DD)1(A+D)(A+D)1=[(A+D)1(A+DD)]1(A+D)1=[I(A+D)1D]1(A+D)1[I+(A+D)1D](A+D)1

最後の行を記述するためにテイラー展開が使用されました。この前提条件の適用には、 2つの解が必要です。A+D

前提条件が0から、解決しようとしている演算子(たとえば)と同等またはそれ以上の量だけシフトした場合、かなりうまく機能します。前提条件のシフトが小さい場合()、事前条件演算子は不定になります。D σ A D0Dminσ(A)

前提条件のシフトが演算子のシフトよりもはるかに大きい場合、このメソッドは、時間差演算子による前提条件の約半分の条件数を生成する傾向があります(私が実行したランダムテストでは、特定のクラスでより良いまたは悪い可能性がありますマトリックス)。条件数の係数は、反復カウントの係数2を与えます。反復コストが解によって支配される場合、これは一次のテイラー展開を正当化するのに十分な要因ではありません。行列の適用がそれに比例して高価な場合(たとえば、適用するのに安価なプリコンディショナーしかない場合)、この1次の方法は理にかなっています。 A+DA+D2A+DA+D

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