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


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.