Betrachten Sie ein lineares Gleichungssystem , wo ist ein Matrix mit rationalen Einträgen. Angenommen, der Rang von ist . Was ist die Komplexität zu überprüfen, ob es eine Lösung hat so dass alle Einträge von sind strikt größer als 0 (nämlich ist ein positiver Vektor)? Natürlich kann man die Gauß-Eliminierung verwenden, aber dies scheint nicht optimal zu sein.
algorithms
complexity-theory
linear-algebra
user29271
quelle
quelle
Antworten:
Erstens kann dies durch lineare Programmierung gelöst werden. Lassenx1 , x2 , … , xn seien Sie Ihre Variablen. Das lineare Programm, das Ihre Frage löst, ist dann
unterliegt , für , .
Wenn das Maximum 0 ist, gibt es keine positive Lösung. Wenn das Maximum (dh das lineare Programm ist unbegrenzt ), gibt es eine positive Lösung.∞
Zweitens kann mithilfe von Standardtransformationen für lineare Programme das Machbarkeitsproblem für ein beliebiges lineares Programm mit strengen Ungleichungen auf Ihr Problem reduziert werden. Wir beginnen mit dem Machbarkeitsproblem
Existiert so, dass ?x
Ax<b
Wir können jetzt eine neue Variable auf der rechten Seite all dieser Gleichungen und eine Ungleichung hinzufügen , um alles homogen zu machen. Für die te Gleichung haben wir jetztxn+1 xn+1>0 k
Dies ergibt ein äquivalentes Problem für eine neue Matrix :A′
Existiert so, dass ?x
A′x<0
Als nächstes können wir die Ungleichungen in Gleichungen indem wir einige Variablen hinzufügen und verlangen . Die te Gleichung für das neue Problem wird zuyi yi>0 k
Schließlich möchten wir zulassen, dass alle Variablen positiv sind. Wie machen wir das? Für jede Variable mit einem beliebigen Vorzeichen ersetzen wir durch und benötigen , .xi xi zi−wi zi>0 wi>0
Das Machbarkeitsproblem ist im Wesentlichen so schwierig wie ein beliebiges lineares Programmierproblem. Daher gibt es im Allgemeinen keinen einfacheren Weg, Ihr Problem zu lösen, als die lineare Programmierung.
quelle