Ograniczenia logiczne – ćwiczenie 2
Pracujesz w centrum dystrybucji transportu ciężarowego i musisz zdecydować, do których z 6 lokalizacji klientów wyślesz ciężarówkę. Twoim celem jest minimalizacja łącznego dystansu przejazdu.
| Lokalizacja | Dystans |
|---|---|
| A | 86 |
| B | 95 |
| C | 205 |
| D | 229 |
| E | 101 |
| F | 209 |
Słownik dist oraz lista cust zostały już przygotowane – zawierają odpowiednio dystans i nazwę każdej lokalizacji klienta. Ich zawartość jest wyświetlona w konsoli.
To ćwiczenie jest częścią kursu
Analityka łańcucha dostaw w Pythonie
Instrukcje do ćwiczenia
- Zaktualizuj ograniczenia tak, aby model wybierał co najmniej jedną lokalizację.
- Dodaj ograniczenie: jeśli wybrana zostanie lokalizacja A, to musi zostać wybrana również lokalizacja D.
- Dodaj ograniczenie: jeśli wybrana zostanie lokalizacja B, to musi zostać wybrana również lokalizacja E.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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))