Zacznij terazZacznij za darmo

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

Zobacz kurs

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))
Edytuj i uruchom kod