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

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

Вы работаете в центре грузовых перевозок и должны определить, к каким из 6 локаций клиентов отправить грузовик. Цель — минимизировать расстояние, которое проедет грузовик.

Локация Расстояние
A 86
B 95
C 205
D 229
E 101
F 209

Для вас уже созданы словарь dist и список cust, содержащие расстояние и название каждой локации клиента. Эти данные выведены в консоль.

Это упражнение является частью курса

Аналитика цепочек поставок на Python

Посмотреть курс

Инструкции к упражнению

  • Обновите ограничения так, чтобы модель выбирала хотя бы одну локацию.
  • Добавьте ограничение: если выбрана локация A, то должна быть выбрана и локация D.
  • Добавьте ограничение: если выбрана локация B, то должна быть выбрана и локация E.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

model = LpProblem("Loading Truck Problem", LpMinimize)
x = LpVariable.dicts('ship_', cust, cat='Binary')
model += lpSum([dist[i]*x[i] for i in cust])

# Define Constraint
model += ____ + ____ + ____ + ____ + ____ + ____ >= ____
model += ____ - ____ <= ___
model += ____ - ____ <= 0

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