НачатьНачать бесплатно

Упражнение на логические ограничения

Ваш клиент заказал шесть товаров с доставкой в течение следующего месяца. Для перевозки всех товаров потребуется несколько рейсов. Грузоподъёмность вашего грузовика не превышает 25 000 фунтов. Из соображений денежного потока вы хотите отправить наиболее прибыльную комбинацию товаров, которая поместится в кузове.

Товар Вес (фунты) Прибыль (USD)
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))
Редактировать и запускать код