Algorithmen für große spärliche Ganzzahlmatrizen

12

Ich bin auf der Suche nach einer Bibliothek, die Matrixoperationen mit großen, spärlichen Matrizen ausführt, ohne die numerische Stabilität zu beeinträchtigen. Matrizen werden 1000+ mal 1000+ sein und die Werte der Matrix werden zwischen 0 und 1000 liegen. Ich werde den Indexberechnungsalgorithmus ausführen , so dass ich (spärliche) Zeilenvektoren der Matrix seriell erzeugen werde. Während ich jede Zeile entwickle, muss ich auf lineare Unabhängigkeit testen. Sobald ich meine Matrix mit der gewünschten Anzahl linear unabhängiger Vektoren gefüllt habe, muss ich die Matrix in eine reduzierte Reihen-Staffelform umwandeln.

Das Problem ist jetzt, dass meine Implementierung die Gaußsche Eliminierung verwendet, um die lineare Unabhängigkeit zu bestimmen (Gewährleistung der Reihenebenenform, sobald alle meine Reihenvektoren gefunden wurden). Angesichts der Dichte und Größe der Matrix bedeutet dies jedoch, dass die Einträge in jeder neuen Zeile mit der Zeit exponentiell größer werden, da die lcm der führenden Einträge gefunden werden müssen, um die Löschung durchzuführen. Das Auffinden der reduzierten Form der Matrix verschärft das Problem weiter.

Meine Frage ist also, gibt es einen Algorithmus oder besser noch eine Implementierung, mit der die lineare Unabhängigkeit getestet und die reduzierte Reihenebenenform gelöst werden kann, während die Einträge so klein wie möglich gehalten werden? Ein effizienter Test für die lineare Unabhängigkeit ist besonders wichtig, da er im Indexberechnungsalgorithmus mit Abstand am häufigsten durchgeführt wird.

jgonagle
quelle

Antworten:

5

Sie können mehrere große Primzahlen modulo bearbeiten, um die Ergebnisse modulo dieser Primzahlen zu erhalten, und dann prüfen, ob es Rationals mit wenigen Ziffern gibt, die diese Kongruenzen erfüllen. Wenn ja, können Sie mit einem Matrixvektormultiplikator überprüfen, ob die gefundene Approximation exakt ist. Dies kann in einen genauen Entscheidungsalgorithmus umgewandelt werden.

101000

Verwandte Links:
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
quelle