Complexidade de verificar se as equações lineares têm uma solução positiva

7

Considere um sistema de equações lineares Ax=0, Onde A é um n×nmatriz com entradas racionais. Suponha que a classificação deA é <n. Qual é a complexidade de verificar se ele tem uma soluçãox de modo que todas as entradas de x são estritamente maiores que 0 (ou seja, xé um vetor positivo)? Obviamente, pode-se usar a eliminação de Gauss, mas isso parece não ser o ideal.

user29271
fonte
2
Simultaneamente cruzado em CSTheory . Por favor, não faça isso, pois sua pergunta parece mais importante que outras.
Juho
O "claro" é óbvio? Eu não conheço as várias formas padrão de LP em cima da minha cabeça, mas essa é uma configuração bastante geral.
Louis
2
O artigo "Sobre soluções positivas de um sistema de equações lineares" de Lloyd Dines parece abordar isso. Se você não tiver acesso através do JSTOR, vou ler e resumir o artigo em uma resposta.
precisa saber é o seguinte
4
@ user29271 Informe-nos se este documento responde à sua pergunta. Nesse caso, você pode postar uma resposta com uma breve descrição da técnica ... Tenho certeza de que você receberá reputação por fornecer um resultado tão útil para a comunidade.
precisa saber é o seguinte
2
É bastante simples pegar um programa linear arbitrário para uma questão de viabilidade (existe um ponto no interior de um polítopo dado por desigualdades lineares) e manipulá-lo para que ele fique na forma desejada. Como a viabilidade da programação linear é tão difícil quanto a programação linear arbitrária, seu problema é tão difícil quanto um programa linear arbitrário. E de fato pode ser resolvido por programação linear. Não tenho tempo agora, mas se mais ninguém explicar isso e você ainda não encontrou uma resposta satisfatória até o meio da próxima semana, posso tentar explicar os detalhes.
Peter Shor

Respostas:

14

Primeiro, isso pode ser resolvido por programação linear. Deixeix1, x2, , xnsejam suas variáveis. O programa linear que resolve sua pergunta é então

maxt
sujeito a
txi, para i=1...n,
Ax=0.

Se o máximo for 0, não haverá solução positiva. Se o máximo é(ou seja, o programa linear é ilimitado ), existe uma solução positiva.


Segundo, usando transformações padrão em programas lineares, o problema de viabilidade de um programa linear arbitrário com desigualdades estritas pode ser reduzido ao seu problema. Começamos com o problema de viabilidade

Existe x de tal modo que
Ax<b ?

Agora podemos adicionar uma nova variável xn+1 no lado direito de todas essas equações e uma desigualdade xn+1>0para tornar tudo homogêneo. Então, para okth equação, agora temos

ak,1x1++ak,nxnbkxn+1<0.

Isso gera um problema equivalente em uma nova matriz A:

Existe x de tal modo que
Ax<0 ?

Em seguida, podemos transformar as desigualdades em equações adicionando algumas variáveis yi e exigindo que yi>0. okA equação do novo problema se transforma em

ak,1x1++ak,nxn+ak,n+1xn+1+yk=0.

Finalmente, queremos permitir que todas as variáveis ​​sejam positivas. Como fazemos isso? Para cada variávelxi com um sinal arbitrário, substituímos xi de ziwie exigem zi>0, wi>0.

O problema de viabilidade é essencialmente tão difícil quanto um problema de programação linear arbitrário; portanto, em geral, não haverá maneira mais fácil de resolver seu problema do que usar a programação linear.

Peter Shor
fonte