Die lineare Programmierung (LP; lineare Programmierung) ist eine mathematische Programmiermethode, die einen linearen Ausdruck unter den Werten mehrerer linearer Ungleichungen und Variablen maximiert, die die lineare Programmierung erfüllen. Dies ist eine Methode, um den zu minimierenden Wert zu finden. Das Optimierungsproblem, das das Ziel der linearen Programmiermethode ist, wird als lineares Programmierproblem bezeichnet. Quelle: [Wikipedia]
So finden Sie die größte (kleinste) Zielvariable, indem Sie Einschränkungen mit mehreren linearen Ungleichungen oder linearen Gleichungen für die Zielvariable festlegen
example1
table | Artikel A. | Artikel B. |
---|---|---|
Prozess 1 | 2 Stunden | 2 Stunden |
Schritt 2 | 3 Stunden | 5 Stunden |
Profitieren | 4.000 Yen | 5.000 Yen |
Bibliotheksimport
from pulp import *
Quellcode zur Problemlösung
#Problemobjekt generieren
prob = LpProblem(name='Ganzzahlige Programmierung exapmle1',sense=LpMaximize)
#Variable Einstellung
x1 = LpVariable('x1',lowBound=0)
x2 = LpVariable('x2',lowBound=0)
#Zielvariable einstellen
prob += 4*x1 + 5*x2
#Einschränkungseinstellung
prob += 2*x1 + 2*x2 <= 7,'ineq1'
prob += 3*x1 + 5*x2 <= 14,'ineq2'
#Problemausgabe
print('-------Ausgabe von Probleminformationen-------')
print(prob)
#Finde eine Lösung
prob.solve()
#Wie wurde es gelöst
print('-------Lösungsinformationen-------')
print(LpStatus[prob.status])
#Optimale Wertausgabe
print('-------Optimale Wertausgabe-------')
print('Optimal Value ={}'.format(value(prob.objective)))
#Optimale Lösungsausgabe
print('-------Optimale Lösungsausgabe-------')
for val in prob.variables():
print('{}={}'.format(val.name,value(val)))
-------Ausgabe von Probleminformationen-------
Ganzzahlige Programmierung exapmle1:
MAXIMIZE
4*x1 + 5*x2 + 0
SUBJECT TO
ineq1: 2 x1 + 2 x2 <= 7
ineq2: 3 x1 + 5 x2 <= 14
VARIABLES
x1 Continuous
x2 Continuous
-------Lösungsinformationen-------
Optimal
-------Optimale Wertausgabe-------
Optimal Value =15.75
-------Optimale Lösungsausgabe-------
x1=1.75
x2=1.75
Recommended Posts