Algorithmes pour les grandes matrices entières clairsemées

12

Je recherche une bibliothèque qui effectue des opérations matricielles sur de grandes matrices clairsemées sans sacrifier la stabilité numérique. Les matrices seront 1000+ par 1000+ et les valeurs de la matrice seront comprises entre 0 et 1000. Je vais exécuter l' algorithme de calcul d'index donc je vais générer des vecteurs de lignes (clairsemés) de la matrice en série. Au fur et à mesure que je développe chaque ligne, je devrai tester l'indépendance linéaire. Une fois que j'ai rempli ma matrice avec le nombre souhaité de vecteurs linéairement indépendants, je devrai ensuite transformer la matrice en forme d'échelon de ligne réduite.

Le problème est maintenant que mon implémentation utilise l'élimination gaussienne pour déterminer l'indépendance linéaire (garantissant la forme de l'échelon de ligne une fois que tous mes vecteurs de ligne ont été trouvés). Cependant, compte tenu de la densité et de la taille de la matrice, cela signifie que les entrées de chaque nouvelle ligne deviennent exponentiellement plus grandes au fil du temps, car le lcm des entrées principales doit être trouvé afin d'effectuer l'annulation. La découverte de la forme réduite de la matrice aggrave encore le problème.

Donc, ma question est, existe-t-il un algorithme, ou mieux encore une implémentation, qui peut tester l'indépendance linéaire et résoudre la forme d'échelon de ligne réduite tout en gardant les entrées aussi petites que possible? Un test efficace d'indépendance linéaire est particulièrement important car dans l'algorithme de calcul d'index, c'est de loin le plus.

jgonagle
la source

Réponses:

5

Vous pouvez travailler modulo un certain nombre de nombres premiers grands pour obtenir les résultats modulo ces nombres premiers, puis vérifier s'il existe des rationnels avec assez peu de chiffres satisfaisant ces congruences. Si oui, vous pouvez vérifier par une multiplication matrice-vecteur si l'approximation trouvée est exacte. Cela peut être transformé en un algorithme de décision exact.

Cependant, si le déterminant de la matrice a une taille de l'ordre de (tout à fait possible dans votre scénario), vous ne trouverez génériquement pas de solutions dont les composants nécessitent moins de quelques milliers de chiffres.dix1000

liens connexes:
http://cs.ucsb.edu/~koc/docs/j21.pdf
http://dl.acm.org/citation.cfm?id=355767
http://dl.acm.org/citation. cfm? id = 355765

Arnold Neumaier
la source