Логічні обмеження — вправа 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))