Classe de complexité de l'inversion de matrice


9

Inverse une matrice dans la classe Complexity ?P

À partir de l'exécution, je dirais oui mais la matrice inversée peut contenir des entrées où la taille n'est pas limitée polynomialement par l'entrée?O(n3)


1
En pratique O(n3)signifie le plus souvent que c'est la limite des flops , en supposant que vous travaillez sur des matrices sur des nombres à virgule flottante, qui sont évidemment des approximations deR. Les implémentations habituelles s'exécutent dans ce délai, la mise en garde étant qu'au lieu de dépassements de temps, vous obtenez une instabilité numérique . Ce commentaire vise à éclairer la prétention habituelle, et non à invalider les réponses ci-dessous, qui supposent des "bignums" .
Fizz

Réponses:


7

Oui, cela peut se faire en temps polynomial, mais la preuve est assez subtile. Ce n'est pas simplementO(n3)temps, car l'élimination gaussienne implique la multiplication et l'ajout de nombres, et le temps pour effectuer chacune de ces opérations arithmétiques dépend de leur taille. Pour certaines matrices, les valeurs intermédiaires peuvent devenir extrêmement grandes, donc l'élimination gaussienne ne s'exécute pas nécessairement en temps polynomial.

Heureusement, il existe des algorithmes qui ne fonctionnent en temps polynomial. Ils nécessitent un peu plus de soin dans la conception de l'algorithme et l'analyse de l'algorithme pour prouver que le temps d'exécution est polynomial, mais cela peut être fait. Par exemple, le temps d'exécution de l'algorithme de Bareiss est quelque chose commeO(n5(Journaln)2) [en fait, c'est plus complexe que cela, mais prenez cela comme une simplification pour l'instant].

Pour beaucoup plus de détails, voir le blog de Dick Lipton Forgetting Results et Quelle est la complexité temporelle réelle de l'élimination gaussienne? et le résumé de Wikipedia .

Enfin, un mot de prudence. La durée de fonctionnement précise dépend exactement du domaine sur lequel vous travaillez. La discussion ci-dessus s'applique si vous travaillez avec des nombres rationnels. D'un autre côté, si, par exemple, vous travaillez sur le champ finigF(2)(les entiers modulo 2), puis élimination de Gauss naïf n'exécuté enO(n3)temps. Si vous ne comprenez pas ce que cela signifie, vous pouvez probablement ignorer ce dernier paragraphe.


Ces observations valent-elles pour les décompositions LU et QR (au lieu d'une inversion "droite")?
Fizz

@RespawnedFluff, grande question! Je ne sais pas. Cela semble mériter une question distincte.
DW

Si vous voulez seulement une solution exacte UNEX=bavec des coefficients entiers, c'est-à-dire une solution dans des logiques "bignum", la méthode standard est par expansion p-adique ; cela ne prend queO(n3log2n). Une implémentation est par exemple IML . Il s'ensuit que pour inverser une telle matrice exactement, vous avez besoinO(n4log2n); il y a plus de détails pratiques dans sciencedirect.com/science/article/pii/S0377042708003907
Fizz

2

Il existe une formule pour les entrées de la matrice inverse qui donne chaque entrée en tant que rapport de deux déterminants, l'un d'une mineure de la matrice d'origine et l'autre de la matrice d'origine entière. Cela devrait vous aider à limiter la taille des entrées dans la matrice inverse, si vous faites attention, étant donné une notion raisonnable de "taille" (notez que même si vous commencez avec une matrice entière, l'inverse peut contenir des entrées rationnelles).

Cela dit, souvent l'inverse de la matrice est étudié du point de vue de la théorie de la complexité algébrique, dans laquelle vous comptez les opérations de base indépendamment de leur ampleur. Dans ce modèle, on peut montrer que la complexité de la matrice inverse est équivalente à la complexité de la multiplication matricielle, jusqu'aux termes polylogarithmiques; cette réduction peut peut-être aussi vous aider à limiter la taille des coefficients.

Étant donné l'algorithme efficace dans le modèle de théorie de la complexité algébrique, on se demande s'il implique un algorithme tout aussi efficace dans le modèle habituel; se peut-il que, bien que les entrées finales soient de taille polynomiale, le calcul en implique de plus grandes? Ce n'est probablement pas le cas, et même s'il l'était, le problème pourrait peut-être être évité en utilisant le théorème du reste chinois.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.