Programmazione lineare intera in numero logaritmico di variabili


16

Ho letto che la programmazione lineare intera è risolvibile in tempo polinominale se il numero di variabili è fisso, cioè n O ( 1 ) . Se il numero di variabili aumenta logaritmicamente, cioè n O ( log 2 ( N ) ) per un dato input di dimensione N , il problema è ancora risolvibile in tempo polinominale o è un problema aperto?nnO(1)nO(log2(N))N


Non è possibile aggiungere vincoli banalmente veri per aumentare le dimensioni dell'input?
joro,

Perché dovresti voler aumentare la dimensione dell'input?
user3613886

Rendere l'input così grande da rendere logaritmico il numero di variabili e soddisfare la tua domanda.
joro,

ma nella domanda supponiamo già che le variabili siano logaritmiche rispetto alla dimensione dell'input
user3613886

Ho pensato di creare tutte le istanze come tue, ma ciò potrebbe aumentare in modo esponenziale l'input.
joro,

Risposte:


15

Posso solo dare una risposta parziale a questa domanda.

Un risultato di Lenstra (successivamente migliorato da Kannan e Frank e Tardos) afferma che ILP con variabili può essere risolto nel tempo k O ( k ) (volte un polinomio delle dimensioni dell'ILP). Pertanto, ILP è in P quando il numero di variabili è O ( log n / log log n ) . Non sono sicuro se sia noto un algoritmo 2 O ( k ) o se tale algoritmo contraddirebbe l'ETH.kkO(k)O(logn/loglogn)2O(k)

Ho trovato queste informazioni nella tesi di Daniel Lokshtanov. Ecco i riferimenti rilevanti.

  1. HW Lenstra. Programmazione intera con un numero fisso di variabili. Mathematics of Operations Research, 8: 538-548, 1983.

  2. R. Kannan. Teorema del corpo convesso di Minkowski e programmazione di numeri interi. Mathematics of Operations Research, 12: 415–440, 1987.

  3. Andras Frank ed Eva Tardos. Un'applicazione di approssimazione diofantea simultanea nell'ottimizzazione combinatoria. Combinatorica, 7: 49–65, 1987.


Penso che avresti bisogno di un algoritmo O (k ^ p) per una p fissa, dal momento che anche un algoritmo con 2 ^ O (k) sarebbe esponenziale?
user3613886,

Mi dispiace, ho usato una notazione diversa dalla domanda. Per intendo il numero di variabili, e n è la dimensione dell'input, quindi un algoritmo di 2 k sarebbe un tempo polinomiale se k = O ( log n ) . Kn2KK=O(logn)
Michael Lampis,

Ma supponi di avere solo variabili binarie, non sarebbe una forza bruta ? 2K
user3613886

@utente3613886, certo, ma questo è un problema / domanda diversa. Non ci era stato promesso nella domanda che le variabili sono binarie.
DW

Non è possibile aggiungere vincoli banalmente veri per aumentare le dimensioni dell'input?
joro
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.