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?nn∈O(1)n∈O(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(log⁡n/log⁡log⁡n)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(log⁡n)
— 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.