Die berühmte Arbeit von H. Lenstra aus dem Jahr 1983 über die Ganzzahlprogrammierung mit einer festen Anzahl von Variablen besagt, dass Ganzzahlprogramme mit einer festen Anzahl von Variablen zeitpolynomiell in der Länge der Daten lösbar sind.
Ich interpretiere das wie folgt.
- Ganzzahlige Programmierung ist im Allgemeinen immer noch NP-vollständig, aber wenn meine typische Problemgröße (sagen wir etwa 10.000 Variablen, eine beliebige Anzahl von Einschränkungen) in der Praxis realisierbar ist, dann könnte ich einen Algorithmus konstruieren, der polynomiell in der Anzahl von Einschränkungen skaliert, jedoch nicht in die Anzahl der Variablen und Nebenbedingungen.
- Das Ergebnis kann auch für die Binärprogrammierung verwendet werden, da ich eine beliebige Ganzzahl durch Hinzufügen einer entsprechenden Einschränkung auf 0-1 setzen kann.
Ist meine Interpretation korrekt?
Hat dieses Ergebnis praktische Auswirkungen? Gibt es also eine Implementierung oder wird sie in gängigen Solvern wie CPLEX, Gurobi oder Mosek verwendet?
Einige Zitate aus dem Papier:
Diese Länge kann für unsere Zwecke als n · m · log (a + 2) definiert werden, wobei a das Maximum der Absolutwerte der Koeffizienten von A und b bezeichnet. In der Tat ist es wahrscheinlich, dass kein derartiger Polynomalgorithmus existiert, da das fragliche Problem NP-vollständig ist
[...]
Es wurde vermutet [5], [10] dass für jeden festen Wert von n ein Polynomalgorithmus zur Lösung des ganzzahligen linearen Programmierproblems existiert. In der vorliegenden Arbeit beweisen wir diese Vermutung, indem wir einen solchen Algorithmus zeigen. Der Grad des Polynoms, durch den die Laufzeit unseres Algorithmus begrenzt werden kann, ist eine Exponentialfunktion von n.