Considere um sistema de equações lineares , Onde é um matriz com entradas racionais. Suponha que a classificação de é . Qual é a complexidade de verificar se ele tem uma solução de modo que todas as entradas de são estritamente maiores que 0 (ou seja, é um vetor positivo)? Obviamente, pode-se usar a eliminação de Gauss, mas isso parece não ser o ideal.
algorithms
complexity-theory
linear-algebra
user29271
fonte
fonte
Respostas:
Primeiro, isso pode ser resolvido por programação linear. Deixeix1 , x2 , … , xn sejam suas variáveis. O programa linear que resolve sua pergunta é então
sujeito a
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
Existex de tal modo que
Ax<b ?
Agora podemos adicionar uma nova variávelxn+1 no lado direito de todas essas equações e uma desigualdade xn+1>0 para tornar tudo homogêneo. Então, para ok th equação, agora temos
Isso gera um problema equivalente em uma nova matrizA′ :
Existex de tal modo que
A′x<0 ?
Em seguida, podemos transformar as desigualdades em equações adicionando algumas variáveisyi e exigindo que yi>0 . ok A equação do novo problema se transforma em
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 zi−wi e 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.
fonte