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

Логічні обмеження — вправа 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))
Редагувати та запускати код