In einer Antwort auf eine frühere Frage erwähnte ich die verbreitete, aber falsche Annahme, dass die „Gaußsche“ Eliminierung in Zeit abläuft . Während es offensichtlich ist, dass der Algorithmus -Arithmetikoperationen verwendet, kann eine unachtsame Implementierung Zahlen mit exponentiell vielen Bits erzeugen. Nehmen wir als einfaches Beispiel an, wir möchten die folgende Matrix diagonalisieren:
Wenn wir eine Version des Eliminierungsalgorithmus ohne Division verwenden, bei der nur ganzzahlige Vielfache einer Zeile zu einer anderen hinzugefügt werden, und wir immer an einem diagonalen Eintrag der Matrix drehen, hat die Ausgabematrix den Vektor entlang der Diagonale.
Aber wie hoch ist die tatsächliche zeitliche Komplexität der Gaußschen Eliminierung? Die meisten Autoren der kombinatorischen Optimierung scheinen mit „starkem Polynom“ zufrieden zu sein, aber ich bin gespannt, was das Polynom eigentlich ist.
Eine Veröffentlichung von Jack Edmonds aus dem Jahr 1967 beschreibt eine Version der Gaußschen Eliminierung („möglicherweise aufgrund von Gauß“), die in stark polynomieller Zeit abläuft. Die wichtigste Erkenntnis von Edmonds ist, dass jeder Eintrag in jeder Zwischenmatrix die Determinante eines Minors der ursprünglichen Eingangsmatrix ist. Für eine Matrix mit -Bit ganzzahlige Einträge erweist sich , dass seine Edmonds Algorithmus ganze Zahlen mit höchstens erfordert Bits. Unter der „vernünftigen“ Annahme, dass , läuft der Edmonds-Algorithmus in der -Zeit, wenn wir eine ganzzahlige Lehrbucharithmetik verwenden, oder in der -Zeit, wenn wir FFT-basierte Multiplikation für einen Standard-Integer-RAM verwenden, der ausführen kann-Bit-Arithmetik in konstanter Zeit. (Edmonds hat diese Zeitanalyse nicht durchgeführt; er hat lediglich behauptet, sein Algorithmus sei „gut“.)
Ist dies immer noch die beste bekannte Analyse? Gibt es eine Standardreferenz, die eine bessere explizite Zeitbegrenzung oder zumindest eine bessere Begrenzung der erforderlichen Genauigkeit bietet?
Allgemeiner: Wie lang ist die Laufzeit (auf dem Integer-RAM) des schnellsten bekannten Algorithmus zum Lösen beliebiger linearer Gleichungssysteme?