Analityka łańcucha dostaw w Pythonie
Aaren Stubberfield
Supply Chain Analytics Mgr.
PuLP to framework do modelowania problemów programowania liniowego (LP) i całkowitoliczbowego (IP) w Pythonie
Utrzymywany przez COIN-OR Foundation (Computational Infrastructure for Operations Research)
PuLP współpracuje z solverami:
CPLEXCOINGurobi| Ciasto A | Ciasto B | |
|---|---|---|
| Piec | 0,5 dnia | 1 dzień |
| Piekarze | 1 dzień | 2,5 dnia |
| Pakerzy | 1 dzień | 2 dni |
.
| Ciasto A | Ciasto B | |
|---|---|---|
| Zysk | $20,00 | $40,00 |
LpProblem(name='NoName', sense=LpMinimize)
name = Nazwa problemu używana w pliku wyjściowym .lp, tj. "My LP Problem"sense = Maksymalizacja lub minimalizacja funkcji celuLpMinimize (domyślnie)LpMaximizefrom pulp import *
# Initialize Class
model = LpProblem("Maximize Bakery Profits", LpMaximize)
LpVariable(name, lowBound=None, upBound=None, cat='Continuous', e=None)
name = Nazwa zmiennej używana w pliku wyjściowym .lplowBound = Dolne ograniczenieupBound = Górne ograniczeniecat = Typ zmienneje = Używane w modelowaniu kolumnowym# Define Decision Variables
A = LpVariable('A', lowBound=0, cat='Integer')
B = LpVariable('B', lowBound=0, cat='Integer')
# Define Objective Function
model += 20 * A + 40 * B
# Define Constraints
model += 0.5 * A + 1 * B <= 30
model += 1 * A + 2.5 * B <= 60
model += 1 * A + 2 * B <= 22
# Solve Model
model.solve()
print("Produce {} Cake A".format(A.varValue))
print("Produce {} Cake B".format(B.varValue))
from pulp import *
# Initialize Class
model = LpProblem("Maximize Bakery Profits",
LpMaximize)
# Define Decision Variables
A = LpVariable('A', lowBound=0,
cat='Integer')
B = LpVariable('B', lowBound=0,
cat='Integer')
# Define Objective Function
model += 20 * A + 40 * B
# Define Constraints
model += 0.5 * A + 1 * B <= 30
model += 1 * A + 2.5 * B <= 60
model += 1 * A + 2 * B <= 22
# Solve Model
model.solve()
print("Produce {} Cake A".format(A.varValue))
print("Produce {} Cake B".format(B.varValue))
Omówiono 5 kroków procesu modelowania w PuLP
Zrealizowano przykład planowania zasobów
Analityka łańcucha dostaw w Pythonie