行列パワーの計算の複雑さ


14

私は計算に興味「が乗行列。時間で実行される行列乗算のアルゴリズムがあるとします。そして、1は簡単計算することができるにおける時間。より短い時間の複雑さでこの問題を解決することは可能ですか?n × n A O(M (n ))A n O(M (n )log (n ))nn×nAO(M(n))AnO(M(n)ログ⁡(n))

一般に、マトリックスエントリはセミリングから作成できますが、役立つ場合は追加の構造を想定できます。

注:一般に、時間でを計算、べき乗のアルゴリズムが得られることを理解してい。しかし、多くの興味深い問題が、m =である行列のべき乗の特殊なケースに帰着し、この単純な問題について同じことを証明できませんでした。 o (M (n )log (m ))o (log m )O(n )Amo(M(n)ログ⁡(m))o(ログ⁡m)O(n)


行列のエントリは何ですか?整数?
— カベ

1
一般的に、エントリはセミリングからのものですが、役立つ場合は追加の構造を想定できます。
— シチカンス

上記の提案された方法(つまり(A±B)2)から、乗算から平方への減少を得ることができませんでした。ただし、(0AB0)2機能します。ただし、これは計算でのみをます。A nΩ(M(n))An
— シチカント

回答:


11

行列の場合対角化次にとる番目のパワーは、時間で行うことができる ここで、対角化する時間である。O (D (n )+ n log n )D (n )An

O(D(n)+nログ⁡n)
D(n)A

が対角場合、詳細を完成させるために、 D A n = (P − 1 D P )n = P − 1 D n PA=P−1DPD

An=(P−1DP)n=P−1DnP

そしてちょうど対角の各要素(各固有値とることによって計算することができるする)番目のパワー。 A nDnAn


6
行列が対角化可能である場合でも、固有分解の最もよく知られているアルゴリズムは時間かかります。Coppersmith-Winogradアルゴリズムを使用して、A mを計算するためのO (n 2.3727 log (m ))アルゴリズムが既にあります。O(n3)O(n2.3727ログ⁡(m))Am
— -Shitikanth

1
(1)引用する期間は、Coppersmith-Winogradによるものではありません(おそらくご存知でしょう)。(2)その形式のすべてのアルゴリズムはリングでのみ機能します。一般的なセミリングでは機能しません(質問で許可されているとおり)。
— ライアンウィリアムズ

5

1つの良い方法は、特異値分解SVDです。与えられた実行列Aのフルランク、SVDは、AS離し、それを分割し、A = U Σ U T Σは時間で、対角行列であり、O (N 3)。SVDの特性によって、A 、M = U Σ M U T、これだけ対角行列を累乗する必要があり、これがで行うことができるO (n×nAA=うんΣうんTΣO(n3)Am=うんΣmうんTO(nログ⁡m)時間。実行最終乗算 M )動作を制御します。 かかり O (N 2.3727を)我々は完全に持っているので、 O (N 3 + N ログをうん×Σm×うんTO(n2.3727)O(n3+nログ⁡m)

コメント後の更新ポイントは、SVDが見つかると、任意の電力が独自のCWアルゴリズムで計算するのに時間しかかかりません。しかし、これはあなたの質問ではありません。実際にo (M (n )log (m )) アルゴリズムがあれば、すぐにo (log n )に変換されます。O(n2.3727+nログ⁡m)o(M(n)ログ⁡(m))o(ログ⁡n)、整数のアルゴリズムにれます。そのようなものは存在しないと思う。


Coppersmith–Winogradアルゴリズムは時間で2つの行列の積を見つけるため、A mを計算するためのO (n 2.3727 log (m ))アルゴリズムが既にあります。特にm = O (n )の場合、より良い行列乗算アルゴリズムを必要とせずにこれを改善できるかどうかを知ることに興味があります。O(n2.3727)O(n2.3727ログ⁡(m))Amm=O(n)
— -Shitikanth

1
SVDは与えない一般的に-右辺の行列はV ≠ U ⊤A=うんΣうん⊤V≠うん⊤
— スレシュ

1
同様にをべき乗にすると誤解を招くので、mを使用します。場合N = 1それが取るべきO (M (1 )ログMの検索に時間がMの整数を乗算と等価である、nmn=1O(M(1)ログ⁡mAm
— PKG

2
@Shitikanthは、高速指数アルゴリズムの調査についてはccrwest.org/gordon/jalg.pdfを参照してください。一般に、未満の乗算を使用することはできません。ログ⁡m
— ジョー

1
述べられているように、これはあなたの質問から不明確でした。
— PKG
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.