Ganzzahlige lineare Programmierung in logarithmischer Anzahl von Variablen

16

Ich habe gelesen, dass die ganzzahlige lineare Programmierung in Polynom-Zeit lösbar ist, wenn die Anzahl der Variablen fest ist, dh n O ( 1 ) . Wenn die Anzahl der Variablen logarithmisch ansteigt, dh n O ( log 2 ( N ) ) für eine gegebene Eingabe der Größe N , ist das Problem in der Polynomzeit noch lösbar oder ist dies ein offenes Problem?nnO(1)nO(log2(N))N

user3613886
quelle
Können Sie nicht trivial wahre Einschränkungen hinzufügen, um die Größe der Eingabe zu erhöhen?
Joro
Warum solltest du die Größe der Eingabe erhöhen wollen?
user3613886
Die Eingabe so groß zu machen, dass die Anzahl der Variablen logarithmisch ist und Ihrer Frage entspricht.
Joro
aber in der
frage
Ich habe darüber nachgedacht, alle Instanzen als Ihre zu definieren, aber dies könnte den Input exponentiell erhöhen.
Joro

Antworten:

15

Ich kann diese Frage nur teilweise beantworten.

Ein Ergebnis von Lenstra (später von Kannan und Frank und Tardos verbessert) besagt, dass ILP mit Variablen in der Zeit k O ( k ) gelöst werden kann (mal ein Polynom in der Größe des ILP). Daher ist ILP in P, wenn die Anzahl der Variablen 0 ist ( log n / log log n ) . Ich bin nicht sicher, ob ein 2 O ( k ) -Algorithmus bekannt ist oder ob ein solcher Algorithmus der ETH widersprechen würde.kkO(k)O(logn/loglogn)2O(k)

Diese Information habe ich in der Dissertation von Daniel Lokshtanov gefunden. Hier finden Sie die relevanten Referenzen.

  1. HW Lenstra. Ganzzahlige Programmierung mit einer festen Anzahl von Variablen. Mathematics of Operations Research, 8: 538–548, 1983.

  2. R. Kannan. Minkowskis konvexer Körpersatz und Integer-Programmierung. Mathematics of Operations Research, 12: 415–440, 1987.

  3. Andras Frank und Eva Tardos. Eine Anwendung der simultanen Diophantinen Approximation in der kombinatorischen Optimierung. Combinatorica, 7: 49–65, 1987.

Michael Lampis
quelle
Ich denke, Sie brauchen einen O (k ^ p) -Algorithmus für ein festes p, da sogar ein Algorithmus mit 2 ^ O (k) exponentiell wäre?
user3613886
Entschuldigung, ich habe eine andere Notation als die Frage verwendet. Mit meine ich die Anzahl der Variablen, und n ist die Größe der Eingabe, so dass ein 2- k- Algorithmus eine Polynomzeit wäre, wenn k = O ( log n ) ist . kn2kk=O(logn)
Michael Lampis
Aber nehmen wir an, Sie haben nur binäre Variablen, wäre das nicht Brute Force ? 2k
user3613886
@ user3613886, natürlich, aber das ist ein anderes Problem / eine andere Frage. In der Frage, dass die Variablen binär sind, wurde uns nicht versprochen.
DW
Können Sie nicht trivial wahre Einschränkungen hinzufügen, um die Größe der Eingabe zu erhöhen?
Joro