Lineare Programmierung scipy

Lineare Programmierung scipy

In der heutigen Welt, in der jede andere Aufgabe eine hohe Rechenleistung oder Belegschaft erfordert, treten künstlich intelligente Systeme an die Stelle der Handarbeit ein. Daher wird jede andere tägliche lebensbasierte Aufgabe in autonome Systeme umgewandelt. Um solche autonomen Systeme zu erstellen, müssen wir eine Interaktion mit den Computern erstellen, damit sie lernen, wie man das Programm ausführt und wie man Entscheidungen trifft. Wir verwenden bestimmte computer verständliche Sprachen, die auch als Programmiersprachen bezeichnet werden, um diese Interaktion zu ermöglichen.

Unter allen derzeit verwendeten Computersprachen ist Python einer der bekanntesten. Die Sprache wird mit mehreren Bibliotheken erstellt, die das Funktionieren mehrerer Aufgaben mithilfe ihrer integrierten Module und Funktionen ermöglichen. Python wird aufgrund seines leicht verständlichen Skripts auch als anfängerfreundliche Sprache zugeschrieben, da Pythons Drehbuch hauptsächlich in englischer Sprache geschrieben ist. Scipy ist Pythons 'berühmte Bibliothek, die auf einer anderen berühmten Bibliothek, "Numpy", von Python basiert. Die Scipy funktioniert, indem die integrierten Funktionen und Module für die Aufgaben bereitgestellt werden.

Das "lineare Programmier" -Modul des Scipys repräsentiert diese Tools und die Techniken, die als mathematische Werkzeuge für die mathematischen Optimierungen zur Lösung der linearen Systemgleichungen einschließlich der Gleichungen und der Ungleichungen verwendet werden. Es hilft bei der Maximierung oder Minimierung des Systems oder der linearen Funktion. Lineare Systeme können viele Lösungen haben, daher verwenden wir die lineare Programmierung, damit wir am Ende eine bestimmte Lösung für das System der Ungleichheiten finden.

Verfahren:

Dieser Artikel behandelt die Einführung des Themas der scipy linearen Programmierung. Dann erhalten wir die Kenntnis der Syntax für die Deklaration dieser Funktion im Python-Skript mit ihren allgegenwärtigen Parametern. Und dann wird die Funktion mit Hilfe von Beispielen implementiert.

Syntax:

Die Syntax für die lineare Programmierfunktion Scipy im Python -Skript kann wie folgt geschrieben werden:

$ scipy.optimieren.linProg (c, a_ub = none, b_ub = none, a_eq = none, b_eq = Keine, bodens = Keine, method = 'Highs', callback = none, options = none, x0 = keine, Integralität = Keine)


In der zuvor erwähnten Funktion ist Parameter „C“ das 1-dimensionale Array, das die Informationen zu den Koeffizienten dieser linearen Funktion enthält, die wir durch lineare Programmierung minimieren möchten. Die nächsten Parameter, "A_UB" und die "B_UB", sind die optionalen Parameter. Beide sind die zweidimensionalen bzw. 1-dimensionalen Arrays, bei denen A_UB über die Ungleichheitsbeschränkungsmatrix auf der Variablen „X“ des Lineargleichungssystems spricht. Während B-UB ein Ungleichheitsbeschränkungsvektor für den Wert von A_UB in Entsprechung des x ist.

Der Parameter „Sequenz“ zeigt die Obergrenze und die Untergrenze für die Maximierung oder die Minimierung jedes Elements im x. Der endgültige Parameter ist die „Methode“, die optional ist. Dies gibt jedoch den Standardalgorithmus zur Lösung des Problems an. Sein Wert ist standardmäßig „hoch“.

Rückgabewert:

Die lineare Programmierfunktion gibt die Werte als eindimensionales Array zurück, das ein Ergebnis der jeweiligen Lösung ist, um die objektive Funktion zu minimieren, nachdem die möglichen Einschränkungen für die Funktion erfüllt werden können.

Beispiel 1:

Lassen Sie uns ein lineares Ungleichungssystem lösen und verwenden Sie die lineare Programmierung von Scipy, um die Lösung zu finden, um die objektive Funktion dieses Systems zu minimieren. Beachten Sie, dass wir das Programm in die „Google Collabous“ schreiben werden, die als Open-Source-Online-Python-Plattform mit allen vorinstallierten Python-Paketen anerkannt wird.

Beginnen wir mit dem Erstellen eines neuen Notizbuchs im Programm. Vor dem Schreiben des Programms müssen wir das System der linearen Gleichungen definieren oder nehmen. Zu diesem Zweck nehmen wir das folgende lineare System und arbeiten daran, diese Funktion mit all ihren Einschränkungen mithilfe der linearen Programmierung zu minimieren:

Minimieren Sie y = 5x1 + 10x2 +15x3

so dass :


Wir müssen das „Y“ mit all seinen Einschränkungen minimieren. Wir müssen die Informationen importieren, die für die lineare Programmierung und das Array in unser Programm relevant sind. Dafür importieren wir die beiden wichtigen Pakete aus T „Numpy“, die sich mit der Definition und Funktionen des Arrays befassen. Der zweite ist das "Attribut optimieren" von Scipy, aus dem wir die Funktion "linProg" importieren.

Wenn wir mit diesen Bibliotheken fertig sind, deklarieren und definieren wir die Gleichungen des zuvor erwähnten linearen Systems eins nacheinander. In erster Linie definieren wir das „Y“, das als Koeffizient für den linearen objektiven Vektor „Y“ wirkt. Rufen Sie den „NP an. Array ”und übergeben Sie alle Koeffizienten von Y an die Elemente des Arrays als„ NP. Array ([5, 10, 15]) ”.

Jetzt definieren wir die Ungleichheitsbeschränkungsmatrix für dieses lineare System. Das wird in der Form mit Numpys „NP definiert. Array ([]) ”Methode. Diese Matrix hat die Elemente als „NP. Array ([-1, -1, -1], [-1, 1, 0], [0, 0, 15], [-1, 0, 0], [0, -1, 0], [0 0) , 0, -1]) ”. Wir speichern dieses Array als "a_ub". Danach definieren wir den "B_UB". Die Werte von B_UB sind „NP.Array ([-1050, 0, -340, 0, 0, 0]) ”. Um die optimale Lösung für dieses Beispiel zu finden, nennen wir die Funktion „Linear programmierung ()“ und übergeben die „A_UB“ -Matrix, den „B_UB“ -Vektor und den „C“ -Koeffizienten an den Parameter der Funktion als „linprog (c“ (c, A_UB, B_UB) ”. Dann zeigen wir die Ergebnisse an. Das Programm für dieses Beispiel ist in Form von Python -Code mit seiner Ausgabe wie folgt geschrieben:

Numph als NP importieren
von Scipy.Optimieren Sie den Import Linprog
C = NP.Array ([10, 15, 25])
a_ub = np.Array ([[ -1, -1, -1], [-1, 2, 0], [0, 0, -1], [-1, 0, 0], [0, -1, 0], [0, 0, -1]])
B_UB = NP.Array ([ -1000, 0, -340, 0, 0, 0])
result = linProg (c, a_ub, b_ub)
print ('optimaler Wert:', rund (Ergebnis.Spaß, nDigits = 2),
'\ nx Werte:', Ergebnis.X,
'\ number of Iterations:', Ergebnis.nit,
'\ nstatus:', Ergebnis.Nachricht)


Abschluss

In diesem Editorial haben wir das Thema „Scipy Linear Programming“ behandelt. Wir haben besprochen, was lineare Programmierung ist und warum wir sie brauchen. Dann sprachen wir über die Syntax für diese Funktion und wendeten diese Funktion auf ein lineares System von Ungleichheiten, um ihre optimierte Lösung zu finden.