Programación lineal entera en número logarítmico de variables

16

Leí que la programación lineal entera se puede resolver en tiempo polinominal si el número de variables es fijo, es decir, n O ( 1 ) . Si el número de variables crece logarítmicamente, es decir, n O ( log 2 ( N ) ) para una entrada dada de tamaño N , ¿el problema aún se puede resolver en tiempo polinominal o es un problema abierto?nnO(1)nO(log2(N))N

usuario3613886
fuente
¿No puede agregar restricciones trivialmente verdaderas para aumentar el tamaño de la entrada?
joro
¿Por qué debería querer aumentar el tamaño de la entrada?
user3613886
Para que la entrada sea tan grande que el número de variables sea logarítmico y se ajuste a su pregunta.
joro
pero en la pregunta ya asumimos que las variables son logarítmicas en comparación con el tamaño de entrada
user3613886
Pensé en hacer todas las instancias como suyas, pero esto podría aumentar exponencialmente la entrada.
joro

Respuestas:

15

Solo puedo dar una respuesta parcial a esta pregunta.

Un resultado de Lenstra (luego mejorado por Kannan y Frank y Tardos) afirma que ILP con variables se pueden resolver en el tiempo k O ( k ) (multiplicado por un polinomio en el tamaño de ILP). Por lo tanto, ILP está en P cuando el número de variables es O ( log n / log log n ) . No estoy seguro de si se conoce un algoritmo de 2 O ( k ) , o si dicho algoritmo contradeciría el ETH.kkO(k)O(logn/loglogn)2O(k)

Encontré esta información en la disertación de Daniel Lokshtanov. Aquí están las referencias relevantes.

  1. HW Lenstra. Programación de enteros con un número fijo de variables. Mathematics of Operations Research, 8: 538–548, 1983.

  2. R. Kannan. Teorema del cuerpo convexo de Minkowski y programación de enteros. Mathematics of Operations Research, 12: 415–440, 1987.

  3. Andras Frank y Eva Tardos. Una aplicación de aproximación de diofantina simultánea en la optimización combinatoria. Combinatorica, 7: 49–65, 1987.

Michael Lampis
fuente
Creo que necesitarías un algoritmo O (k ^ p) para una p fija, ya que incluso un algoritmo con 2 ^ O (k) sería exponencial?
user3613886
Lo siento, usé una notación diferente de la pregunta. Por quiero decir el número de variables, y n es el tamaño de la entrada, por lo que un algoritmo de 2 k sería de tiempo polinomial si k = O ( log n ) . kn2kk=O(logn)
Michael Lampis
Pero supongamos que tiene solo variables binarias, ¿no sería fuerza bruta ? 2k
user3613886
@ user3613886, claro, por supuesto, pero ese es un problema / pregunta diferente. No se nos prometió en la pregunta que las variables son binarias.
DW
¿No puede agregar restricciones trivialmente verdaderas para aumentar el tamaño de la entrada?
joro