Algoritmos exatos de tempo exponencial para programas 0-1 com dados não negativos

9

Existem algoritmos conhecidos para o seguinte problema que superam o algoritmo ingênuo?

Entrada: matriz e vetores , em que todas as entradas de são números inteiros não negativos.b , c A , b , cAb,cA,b,c

Saída: uma solução ideal para . máx { c T x : A x b , x { 0 , 1 } n }xmax{cTx:Axb,x{0,1}n}

Esta pergunta é uma versão refinada da minha pergunta anterior Algoritmos de tempo exponencial exato para programação 0-1 .

Austin Buchanan
fonte

Respostas:

5

se o número de coeficientes diferentes de zero em for linear em , existe um algoritmo que resolve esse problema em menos de tempo.n 2 nAn2n

Aqui está como isso funciona. Usamos a conexão padrão entre um problema de otimização e seu problema de decisão correspondente. Para testar se existe uma solução de em que e , que irá formar um problema de decisão: vamos contíguo a restrição para a matriz , e teste se existe qualquer tal que e . Em particular, formaremos uma nova matriz pegando e adicionando uma linha extra contendo , e formaremos pegandoA x b c T x α c T x α A x A x b - c T x - α A A - c T b b - α x { 0 , 1 } n A x b α 2 n A n A nxAxbcTxαcTxαAxAxbcTxαAAcTbbe ao lado de uma linha extra com . Obtemos um problema de decisão: existe tal que ? A resposta para esse problema de decisão nos diz se existe uma solução para o problema de otimização original de valor ou superior. Além disso, conforme explicado na resposta à sua pergunta anterior , esse problema de decisão pode ser resolvido em menos de , se o número de coeficientes diferentes de zero em for linear em (e, portanto, se o número de coeficientes zero em é linear em ). Agora podemos usar a pesquisa binária emαx{0,1}nAxbα2nAnAn2 nαpara resolver seu problema de otimização em menos de tempo.2n

Meus agradecimentos a AustinBuchanan e Stefan Schneider por ajudarem a depurar uma versão anterior desta resposta.

DW
fonte
Você pode dar uma resposta mais forte: como "existe um algoritmo " ou "um algoritmo mais rápido que O ( 2 n ) refutaria ..."? O(2n/2)O(2n)
Austin Buchanan
@AustinBuchanan, se o número de dimensões de for pequeno o suficiente, existe um algoritmo O ( 2 n / 2 ) , conforme documentado na minha resposta à outra pergunta . É o melhor que sei fazer; Não sei fazer nada melhor do que isso. Talvez outros possam fornecer uma resposta mais forte! bO(2n/2)
DW
mantém o tempo sempre que o número de restrições é O ( 1 ) ? O(2n/2)O(1)
Austin Buchanan
4

Se considerarmos o problema de minimização , a seguinte redução mostra que um algoritmo em execução no tempo O ( 2 δ n / 2 ) para δ < 1 seria refutar a SETH. Uma reformulação prova o mesmo resultado para o problema pretendido (a versão de maximização).miny{cTy:UMAyb,y{0 0,1 1}n}O(2δn/2)δ<1 1

Dado um exemplo de CNF-SAT com variáveis { x j } n j = 1 , formular um IP 0-1 com duas variáveis y j , ¯ y j para cada variável x j no SAT instância. Como é habitual, a cláusula ( x 1¯ x 2x 3 ) seria representado como y 1 + ¯ y 2 +Φ=i=1mCi{xj}j=1nyj,y¯jxj(x1x¯2x3) . Em seguida, para cada variável x j na instância SAT, adicione uma restrição y j + ¯ y j1 . O objetivo é minimizarn j = 1 ( y j + ¯ y j ) . O objetivo do IP será n se a instância SAT for satisfatória.y1+y¯2+y31xjyj+y¯j1j=1n(yj+y¯j)n

Obrigado a Stefan Schneider pela correção.

Atualização: em Em problemas difíceis como CNF-Sat, os autores conjeturam que SET COVER não pode ser resolvido no tempo , δ < 1 , em que n se refere ao número de conjuntos. Se verdadeiro, isso mostraria que meu problema não pode ser resolvido no tempo O ( 2 δ n ) também.O(2δn)δ<1nO(2δn)

Atualização 2. Até onde sei, supondo SETH, meu problema não pode ser resolvido no tempo , pois foi demonstrado que o Conjunto de Acertos (com um conjunto básico de tamanho n ) não pode ser resolvido no tempo O ( 2 δ n ) .O(2δn)nO(2δn)

Austin Buchanan
fonte
3
Como você duplica o número de variáveis, acho que isso mostra apenas que um algoritmo para esse problema com o tempo de execução contradiz SETH. O(2δn/2)
Stefan Schneider
Espere ... os autores de Em problemas tão difíceis quanto CNF-SAT afirmam que "para cada , um algoritmo O ( 2 ϵ n ) para Hitting Set ... violaria SETH". Isso não funciona? ϵ<1O(2ϵn)
Austin Buchanan