ПочатиПочніть безкоштовно

Вправа на логічне обмеження

Ваш клієнт замовив шість продуктів для доставки протягом наступного місяця. Щоб доставити всі продукти, доведеться відправити кілька вантажівок. Є обмеження за вагою: 25 000 фунтів на одну вантажівку. З огляду на рух коштів, ви прагнете відправити найприбутковішу комбінацію продуктів, яка поміститься у вантажівку.

Product Weight (lbs) Profitability ($US)
A 12,583 102,564
B 9,204 130,043
C 12,611 127,648
D 12,131 155,058
E 12,889 238,846
F 11,529 197,030

Для вас уже створено два словники Python — weight і prof, а також список prod, що містять вагу, прибутковість і назву кожного продукту. Ви можете переглянути їх у консолі.

Ця вправа є частиною курсу

Аналітика ланцюга постачань у Python

Переглянути курс

Інструкції до вправи

  • Додайте обмеження, щоб загальна вага вантажівки була меншою або дорівнювала 25 000 фунтів.
  • Додайте обмеження, щоб модель обирала щонайбільше — і саме — один продукт серед D, E та F.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Initialized model, defined decision variables and objective
model = LpProblem("Loading Truck Problem", LpMaximize)
x = LpVariable.dicts('ship_', prod, cat='Binary')
model += lpSum([prof[i] * x[i] for i in prod])

# Define Constraint
model += lpSum([weight[i] * x[i] for i in prod]) ____ ____
model += ____

model.solve()
for i in prod:
    print("{} status {}".format(i, x[i].varValue))
Редагувати та запускати код