Aan de slagGa gratis aan de slag

Oefening met logische restrictie

Je klant heeft zes producten besteld die de komende maand geleverd moeten worden. Je zult meerdere vrachtwagenladingen moeten verzenden om alle producten te leveren. Er is een gewichtslimiet van 25.000 lbs per vrachtwagen. Om kasstromen te optimaliseren wil je de meest winstgevende combinatie van producten verzenden die op je vrachtwagen past.

Product Weight (lbs) Profitability ($US)
A 12,583 102,564
B 9,204 130,043
C 12,611 127,648
D 12,131 155,058
E 12,889 238,846
F 11,529 197,030

Twee Python-dictionaries weight en prof, en een lijst prod zijn voor je aangemaakt met daarin het gewicht, de winstgevendheid en de naam van elk product. Je kunt ze verkennen in de console.

Deze oefening maakt deel uit van de cursus

Supply Chain Analytics in Python

Cursus bekijken

Oefeninstructies

  • Voeg een restrictie toe zodat het totaalgewicht van de vrachtwagen kleiner dan of gelijk aan 25.000 lbs is.
  • Voeg een restrictie toe zodat het model maximaal slechts één van de producten D, E en F selecteert.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Initialized model, defined decision variables and objective
model = LpProblem("Loading Truck Problem", LpMaximize)
x = LpVariable.dicts('ship_', prod, cat='Binary')
model += lpSum([prof[i] * x[i] for i in prod])

# Define Constraint
model += lpSum([weight[i] * x[i] for i in prod]) ____ ____
model += ____

model.solve()
for i in prod:
    print("{} status {}".format(i, x[i].varValue))
Code bewerken en uitvoeren