Programación lineal 0-1: cálculo de la formulación óptima

14

Considere el espacio dimensional , y deje que sea ​​una restricción lineal de la forma , donde , y .{ 0 , 1 } n c a 1 x 1 + a 2 x 2 + a 3 x 3 + . . . + a n - 1 x n - 1 + a n x nk a iR x i{ 0 , 1 } k Rn{0,1}ncun1X1+un2X2+un3X3+ ... +unnorte-1Xnorte-1+unnorteXnortekaiRxi{0,1}kR

Claramente, tiene el efecto de dividir en dos subconjuntos y . contiene todos y solo aquellos puntos que satisfacen , mientras que contiene todos y solo aquellos puntos que falsifican .{ 0 , 1 } n S c S ¬ c S c c S ¬ c cc{0,1}nScS¬cSccS¬cc

Suponga que . Ahora, dejemos que sea ​​un subconjunto de tal forma que se las siguientes tres declaraciones:O S c|Sc|nOSC

  1. O contiene exactamente puntos.norte
  2. Tales puntos son linealmente independientes.norte
  3. Tales puntos son aquellos a una distancia mínima del hiperplano representado por . Más precisamente, sea la distancia de un punto desde el hiperplano . Entonces, modo que satisfaga 1 y 2 es el caso de que . En otras palabras, es, entre todos los subconjuntos de satisfacen ambas condiciones 1 y 2, el que minimiza la suma de las distancias de sus puntos desde el hiperplano .c d ( x , c ) x { 0 , 1 } n c B S c B x B d ( x , c ) x O d ( x , c ) O S c cnorteCre(X,C)x{0,1}ncBScBxBd(x,c)xOd(x,c)OScc

Preguntas

  1. Dado , ¿es posible calcular eficiente? OcO
  2. ¿Cuál es el algoritmo más conocido para calcularlo?

 

Ejemplo con n=3

Ejemplo con n = 3

S¬c={(1,0,1)} , .O={(0,0,1),(1,1,1),(1,0,0)}

 

Actualización 12/05/2012

Motivación

La motivación es que el uso de que debería ser posible determinar la óptima restricción c * , como debe ser el hiperplano definido por los n puntos en O . OcnO

La restricción óptima es la que conduce al politopo óptimo .cP

El politopo óptimo es aquel cuyos vértices son todos y solo los vértices enteros del politopo inicial (un vértice entero es un vértice cuyas coordenadas son todas enteras).PP

Formulación óptima

El proceso puede iterarse para cada restricción de una instancia 0-1 , cada vez que sustituya con su correspondiente restricción óptimacLPIc . Al final, esto dará lugar a la óptima politopo P * de I . Entonces, dado que los vértices de P son todos y solo los vértices enteros del politopo inicial P de I ,se puede usarcualquier algoritmo para L P para calcular la solución entera óptima. Sé que ser capaz de calcular P ∗ de manera eficiente implicaría P =cPIPPILPP , sin embargo, la siguiente pregunta adicional sigue en pie:P=NP

Pregunta adicional

¿Hay algún trabajo previo en este sentido? ¿Alguien ya se investigó la tarea de calcular, dado un politopo , su correspondiente óptima politopo P * ? ¿Cuál es el algoritmo más conocido para hacer eso?PP

Giorgio Camerani
fuente
Esto parece ser NP-difícil de hacer exactamente, por reducción de la suma del subconjunto. Dados los enteros binarios , para probar si hay un subconjunto que suma a s , podemos probar si hay un punto en el hiperplano v 1 x 1 + + v 1 x n = s . ¿Te interesan las aproximaciones? v1,...,vnortesv1X1++v1Xnorte=s
Colin McQuillan
@ColinMcQuillan: La pregunta estaba destinada a una solución exacta, sin embargo, también estoy interesado en las aproximaciones. ¿Por qué no conviertes tu comentario en una respuesta?
Giorgio Camerani
@ColinMcQuillan: Además, su hiperplano se define usando una igualdad, mientras que el mío se define usando una desigualdad. ¿Estás seguro de que esto no hace ninguna diferencia en términos de dureza? Todavía no lo he comprobado, así que solo pregunto.
Giorgio Camerani
Estoy un poco confundido acerca de todas las restricciones a . Si está buscando información sobre el casco convexo de S c , hay muchos resultados en la literatura de investigación de operaciones sobre el politopo de mochila 0-1. En términos de formulaciones aproximadas, vea esto . OSC
Austin Buchanan

Respuestas:

6

Esto parece ser NP-difícil de hacer exactamente, por reducción de la suma del subconjunto. Supongamos que tenemos un procedimiento eficaz para calcular . Dados enteros positivos v 1 , ... , v n codificados en binario, deseamos probar si hay un subconjunto que sume a s . Preprocese arrojando cualquier número entero mayor que s .Ov1,...,vnortess

Llame al procedimiento para obtener un pequeño conjunto de puntos que satisfagan v 1 x 1 + + v 1 x ns , satisfaciendo sus condiciones de minimidad (el preprocesamiento asegura | S c |n ). Este conjunto ciertamente contendrá un punto en el hiperplano v 1 x 1 + + v 1 x n = s si hay uno.Ov1X1++v1XnortesEl |SCEl |nortev1X1++v1Xnorte=s

Colin McQuillan
fuente
Tal vez estoy pasando por alto algo macroscópico aquí, pero tengo 2 preguntas: 1) Cuando dices "Dados enteros binarios ", ¿qué quieres decir con binario ? pertenecen a R . ¿Quizás te refieres a codificado en binario? ¿O tal vez quisiste decir positivo? 2) ¿Por qué tirar todos los enteros más grandes que s ? Pueden contribuir a la solución. Por ejemplo: v 1 = - 3 , v 2 = 7 , v 3 = - 5 ,v1,...,vnorteRs si tira v 2 , pierde la única solución { v 2 , v 3 } . v1=-3,v2=7 7,v3=-5 5,s=2v2{v2,v3}
Giorgio Camerani
2
Creo que lo que Colin quiere decir es que si los coeficientes de restricción son números racionales, en su representación binaria habitual, entonces su problema parece NP-duro. (Mezclar números reales y dureza NP siempre es complicado.)unyo
Jeffε
1
@GiorgioCamerani: Tenía que decir positivo, he actualizado mi respuesta.
Colin McQuillan
1

Me parece que está tratando de llegar al casco convexo de la IP; en esencia, esto es lo que intentan lograr los algoritmos de corte. Aunque, desde el punto de vista lógico, estos métodos no funcionan bien en la práctica.

Existe toda la teoría sobre la generación de desigualdades válidas. Un buen punto de partida sería la teoría del libro de shrijver de la programación de enteros.

AJ Student
fuente