Аналітика ланцюга постачань у Python
Aaren Stubberfield
Supply Chain Analytics Mgr.
PuLP — фреймворк моделювання для задач лінійного програмування (LP) та цілочисельного програмування (IP) на Python
Підтримується COIN-OR Foundation (Computational Infrastructure for Operations Research)
PuLP працює з розв'язувачами
CPLEXCOINGurobi| Торт A | Торт B | |
|---|---|---|
| Піч | 0,5 дня | 1 день |
| Пекарі | 1 день | 2,5 дня |
| Пакувал. | 1 день | 2 дні |
.
| Торт A | Торт B | |
|---|---|---|
| Прибуток | $20,00 | $40,00 |
LpProblem(name='NoName', sense=LpMinimize)
name = Назва задачі у вихідному файлі .lp, тобто "My LP Problem"sense = Максимізувати або мінімізувати цільову функціюLpMinimize (типово)LpMaximizefrom pulp import *
# Initialize Class
model = LpProblem("Maximize Bakery Profits", LpMaximize)
LpVariable(name, lowBound=None, upBound=None, cat='Continuous', e=None)
name = Назва змінної у вихідному файлі .lplowBound = Нижня межаupBound = Верхня межаcat = Тип змінноїe = Для колонкового моделювання# 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))
Розглянули 5 кроків процесу моделювання в PuLP
Завершили приклад планування ресурсів
Аналітика ланцюга постачань у Python