Classe di complessità di Matrix Inversion


9

L'inversione di una matrice è nella classe di complessità ?P

Dal runtime direi di sì ma la matrice invertita può contenere voci in cui la dimensione non è limitata polinomialmente dall'input?O(n3)


1
In pratica O(n3)il più delle volte significa che è legato ai flop , supponendo che tu stia lavorando su matrici su numeri in virgola mobile, che sono ovviamente approssimazioni diR. Le consuete implementazioni vengono eseguite in questo limite di tempo, il cui avvertimento è che invece di sovraccarichi di tempo si ottiene instabilità numerica . Questo commento ha lo scopo di illuminare la solita affermazione, non di invalidare le risposte che seguono, che assumono "bignum" .
Fizz,

Risposte:


7

Sì, può essere fatto in tempi polinomiali, ma la prova è abbastanza sottile. Non è semplicementeO(n3)tempo, perché l'eliminazione gaussiana comporta la moltiplicazione e l'aggiunta di numeri e il tempo necessario per eseguire ciascuna di queste operazioni aritmetiche dipende dalla loro entità. Per alcune matrici, i valori intermedi possono diventare estremamente grandi, quindi l'eliminazione gaussiana non necessariamente avviene nel tempo polinomiale.

Fortunatamente, ci sono algoritmi che non vengono eseguiti in tempo polinomiale. Richiedono un po 'più di attenzione nella progettazione dell'algoritmo e nell'analisi dell'algoritmo per dimostrare che il tempo di esecuzione è polinomiale, ma può essere fatto. Ad esempio, il tempo di esecuzione dell'algoritmo di Bareiss è qualcosa di simileO(n5(logn)2) [in realtà è più complesso di così, ma per ora consideralo una semplificazione].

Per molti più dettagli, vedi il blog di Dick Lipton Dimenticando i risultati e qual è la complessità temporale effettiva dell'eliminazione gaussiana? e il sommario di Wikipedia .

Infine, una parola di cautela. Il tempo di esecuzione preciso dipende esattamente su quale campo stai lavorando. La discussione di cui sopra si applica se si lavora con numeri razionali. D'altra parte, se, ad esempio, stai lavorando su un campo finitosolF(2)(gli interi modulo 2), quindi viene eseguita l' ingenua eliminazione gaussianaO(n3)tempo. Se non capisci cosa significhi, puoi probabilmente ignorare questo ultimo paragrafo.


Queste osservazioni valgono per le decomposizioni LU e QR (invece di invertire "dritto")?
Fizz,

@RespawnedFluff, ottima domanda! Non lo so. Sembra che varrebbe una domanda separata.
DW

Se vuoi solo una soluzione esatta a UNX=Bcon coefficienti interi, ovvero una soluzione in razionali "bignum", il metodo standard è tramite espansione p-adica ; questo richiede soloO(n3log2n). Un'implementazione è ad esempio IML . Ne consegue che per invertire esattamente tale matrice è necessarioO(n4log2n); ci sono altri dettagli pratici in sciencedirect.com/science/article/pii/S0377042708003907
Fizz

2

Esiste una formula per le voci della matrice inversa che fornisce ciascuna voce come un rapporto di due determinanti, uno di una minore della matrice originale e l'altro dell'intera matrice originale. Questo dovrebbe aiutarti a limitare la dimensione delle voci nella matrice inversa, se stai attento, data una nozione ragionevole di "dimensione" (nota che anche se inizi con una matrice intera, l'inverso potrebbe contenere voci razionali).

Detto questo, spesso l'inverso della matrice viene studiato dal punto di vista della teoria della complessità algebrica, in cui si contano le operazioni di base indipendentemente dalla grandezza. In questo modello, si può dimostrare che la complessità dell'inverso della matrice equivale alla complessità della moltiplicazione della matrice, fino a termini pollogaritmici; questa riduzione può forse aiutarti anche a limitare la dimensione dei coefficienti.

Dato l'algoritmo efficiente nel modello della teoria della complessità algebrica, ci si chiede se implica un algoritmo altrettanto efficiente nel modello normale; può essere che sebbene le voci finali abbiano dimensioni polinomiali, il calcolo coinvolge quelle più grandi? Questo probabilmente non è il caso, e anche se lo fosse, il problema potrebbe forse essere evitato usando il teorema del resto cinese.

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.