0-1 Programação linear: computando a formulação ideal


14

Considere o espaço dimensional e deixe ser uma restrição linear no formato , em que , e .{ 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 n ≥ k a i ∈ R x i ∈ { 0 , 1 } k ∈ Rn{0,1}nca1x1+a2x2+a3x3+ ... +an−1xn−1+anxn≥kai∈Rxi∈{0,1}k∈R

Claramente, tem o efeito de dividir em dois subconjuntos S_c e S _ {\ lnot c} . S_c contém todos e apenas os pontos que satisfazem c , enquanto S _ {\ lnot c} contém todos e apenas os pontos que falsificam c .{ 0 , 1 } n S c S ¬ c S c c S ¬ c cc{0,1}nScS¬cSccS¬cc

Suponha que |Sc|≥n . Agora, seja O um subconjunto de Sc modo que todas as três instruções a seguir sejam válidas :

  1. O contém exatamente n pontos.
  2. Tais n pontos são linearmente independentes.
  3. Tais n pontos são aqueles à distância mínima do hiperplano representado por c . Mais precisamente, seja d(x,c) a distância de um ponto x∈{0,1}n do hiperplano c . Então, ∀B⊆Sc modo que B satisfaça 1 e 2, é o caso ∑x∈Bd(x,c)≥∑x∈Od(x,c) . Em outras palavras, O é, dentre todos os subconjuntos de Sc atendem às condições 1 e 2, aquele que minimiza a soma das distâncias de seus pontos do hiperplano c .

Questões

  1. Dado c , é possível calcular O eficiência?
  2. Qual é o algoritmo mais conhecido para computá-lo?

 

Exemplo com n=3

Exemplo com n = 3

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

 

Atualização 05/12/2012

Motivação

A motivação é que o uso de O deverá ser possível para determinar o óptimo de restrição c∗ , como deve ser o hiperplana definido pelos n pontos em O .

A restrição ideal c∗ é aquela que leva ao polítopo ótimo P∗ .

O polítopo ideal é aquele cujos vértices são todos e apenas os vértices inteiros do polítopo inicial (um vértice inteiro é um vértice cujas coordenadas são todas inteiras). PP∗P

Formulação ideal

O processo pode ser iterado para cada restrição de uma instância 0-1 , substituindo sempre com sua restrição ideal correspondente . No final, isto levará à óptima poliepítopo de . Então, como os vértices de são todos e somente os vértices inteiros do polítopo inicial de , qualquer algoritmo para pode ser usado para calcular a solução inteira ideal. Eu sei que ser capaz de calcular eficiência implicaria , no entanto, a seguinte pergunta adicional ainda permanece:L P I c c ∗ P ∗ I P ∗ P I L P P ∗ P = N PcLPIcc∗P∗IP∗PILPP∗P=NP

Pergunta adicional

Existe algum trabalho anterior nesse sentido? Alguém já investigou a tarefa da computação, dado um polítopo , seu correspondente polítopo ótimo ? Qual é o algoritmo mais conhecido para fazer isso?P ∗PP∗


Isso parece ser NP-difícil de fazer exatamente, pela redução da soma do subconjunto. Dados inteiros binários , para testar se existe um subconjunto somando , podemos testar se há um ponto no hiperplano . Você está interessado em aproximações? s v 1 x 1 + ⋯ + v 1 x n = sv1,…,vnsv1x1+⋯+v1xn=s
— Colin McQuillan

@ColinMcQuillan: A pergunta foi feita para uma solução exata, no entanto, certamente estou interessado também em aproximações. Por que você não transforma seu comentário em resposta?
— Giorgio Camerani 04/12/12

@ColinMcQuillan: Além disso, seu hiperplano é definido usando uma igualdade, enquanto o meu é definido usando uma desigualdade. Tem certeza de que isso não faz diferença em termos de dureza? Ainda não chequei, então só estou perguntando.
— Giorgio Camerani

Estou um pouco confuso sobre todas as restrições . Se você está procurando informações sobre o casco convexo de , há muitos resultados na literatura de pesquisa de operações sobre o polítopo da mochila 0-1. Em termos de formulações aproximadas, veja isso . S cOSc
— Austin Buchanan

Respostas:


6

Parece ser NP-difícil de fazer exatamente, pela redução da soma do subconjunto. Suponhamos que temos um procedimento eficiente para computação . Dados inteiros positivos codificados em binário, desejamos testar se existe um subconjunto somando . Pré-processe jogando fora números inteiros maiores que .v 1 , … , v n s sOv1,…,vnss

Chame o procedimento para obter um pequeno conjunto de pontos que satisfaçam , satisfazendo suas condições de minimalidade (o pré-processamento garante ). Esse conjunto certamente conterá um ponto no hiperplano se houver um.v 1 x 1 + ⋯ + v 1 x n ≤ s | S c | ≥ n v 1 x 1 + ⋯ + v 1 x n = sOv1x1+⋯+v1xn≤s|Sc|≥nv1x1+⋯+v1xn=s


Talvez eu esteja ignorando algo macroscópico aqui, mas tenho 2 perguntas: 1) Quando você diz "Dados inteiros binários ", o que você quer dizer com binário ? pertence a . Talvez você queira dizer codificado em binário? Ou talvez você quisesse dizer positivo? 2) Por que jogar fora todos os números inteiros maiores que ? Eles podem contribuir para a solução. Por exemplo: se você jogar fora v 2, perderá a única solução { v 2 , v 3 } . v1,...,vnRsv1=−3,v2=7,v3=−5,s=2v2{v2,v3}
— Giorgio Camerani

2
Penso que o que Colin quer dizer é que, se os coeficientes de restrição são números racionais, em sua representação binária usual, então seu problema parece difícil para o NP. (Misturar números reais e NP-difícil é sempre complicado.)ai
— Jeffε

1
@GiorgioCamerani: Eu precisava dizer positivo - atualizei minha resposta.
— Colin McQuillan

1

Parece-me que você está tentando chegar ao casco convexo do IP - em essência, é isso que os algoritmos de corte tentam alcançar. Embora existam apelações apelativas, esses métodos se dão mal na prática.

Existe toda a teoria sobre a geração de desigualdades válidas. Um bom ponto de partida seria a teoria dos livros de shrijver da programação inteira.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.