Complessità dei poteri della matrice di calcolo


14

Sono interessato a calcolare il n 'esima potenza di un matrice . Supponiamo di avere un algoritmo per la moltiplicazione di matrici che gira in tempo . Quindi, si può facilmente calcolare in tempo. È possibile risolvere questo problema in una minore complessità temporale?n×nUNO(M(n))UNnO(M(n)log(n))

Le voci della matrice possono, in generale, provenire da un semiring, ma puoi assumere una struttura aggiuntiva se ti aiuta.

Nota: capisco che nel calcolo generale in tempo darebbe un algoritmo per esponenziazione. Tuttavia, un certo numero di problemi interessanti si riduce al caso speciale dell'espiazione della matrice in cui m = , e non sono stato in grado di dimostrare lo stesso riguardo a questo problema più semplice.Amo(M(n)log(m))o(logm)O(n)


quali sono le voci della matrice? Interi?
Kaveh,

1
Le voci possono, in generale, provenire da un semiring ma è possibile assumere una struttura aggiuntiva se aiuta.
Shitikanth,

Non ho potuto ottenere una riduzione dalla multiplazione alla quadratura dal metodo sopra proposto (ovvero utilizzando ). Tuttavia, l'utilizzo di ( 0 A B 0 ) 2 funziona. Tuttavia, ciò fornisce solo un Ω ( M ( n ) ) sul calcolo A n . (A±B)2(0AB0)2Ω(M(n))An
Shitikanth,

Risposte:


11

Se la matrice è diagonalizzabile poi prendendo la esima potenza può essere fatto in tempo O ( D ( n ) + n log n ) , dove D ( n ) è il momento di diagonalizzare A .n

O(D(n)+nlogn)
D(n)A

Solo per completare i dettagli, se con una diagonale D , quindi A n = ( P - 1 D P ) n = P - 1 D n PA=P1DPD

An=(P1DP)n=P1DnP

e può essere calcolato solo prendendo ogni elemento della diagonale (ogni autovalore di A ) al n esima potenza.DnUNn


6
Anche se la matrice è diagonale, gli algoritmi più noti per la composizione elettronica richiedono tempo . Utilizzando l'algoritmo Coppersmith-Winograd, abbiamo già un algoritmo O ( n 2.3727 log ( m ) ) per il calcolo A m . O(n3)O(n2.3727log(m))Am
Shitikanth,

1
(1) Il tempo che citi non è di Coppersmith-Winograd (come probabilmente saprai). (2) Tutti gli algoritmi di quella forma funzionano solo per gli anelli; non funzionano per le semirazioni generali (come consenti nella tua domanda).
Ryan Williams,

5

n×nAA=UΣUTΣO(n3)Am=UΣmUTO(nlogm)U×Σm×UTO(n2.3727)O(n3+nlogm)

O(n2.3727+nlogm)o(M(n)log(m))o(logn)


O(n2.3727)O(n2.3727log(m))Amm=O(n)

1
A=UΣUVU

1
nmn=1O(M(1)logmAm

2
logm

1
Questo non era chiaro dalla tua domanda, come affermato.
PKG
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.