Logistiek planningsprobleem 2
Je adviseert opnieuw een fabrikant van keukenovens bij het plannen van de logistiek. Dit keer stel je een plan op voor de komende zes maanden (jan.–jun.). Er zijn nog steeds twee magazijnlocaties (New York en Atlanta) en vier regionale klantlocaties (East, South, Midwest, West). De verzendkosten van elk magazijn naar elke regio staan in de onderstaande tabel. Je doel is om het aantal zendingen van elk magazijn naar de klanten te bepalen dat de laagste kosten oplevert.
| Customer | New York | Atlanta |
|---|---|---|
| East | $211 | $232 |
| South | $232 | $212 |
| Midwest | $240 | $230 |
| West | $300 | $280 |
Er is een Python-dictionary costs aangemaakt met de kosten van het model, en drie lijsten months, warehouse en customers. costs is al voor je afgedrukt; je kunt de lijsten ook in de console verkennen. Daarnaast is het model al voor je geïnitialiseerd.
Deze oefening maakt deel uit van de cursus
Supply Chain Analytics in Python
Oefeninstructies
- Definieer de beslissingsvariabelen in het model door eerst met list comprehension over de lijsten
months,warehouseencustomerste itereren om een lijst met sleutels te maken. Gebruik die lijst met sleutels metLpVariable.dicts()om de benodigde variabelen te definiëren. - Definieer de doelfunctie door alle verzendkosten van een bepaald magazijn en klant over de zes maanden op te tellen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Define decision variables
key = [(m, w, ____) for m in months for w in warehouse for c in customers]
var_dict = LpVariable.dicts('num_of_shipments',
key,
lowBound=____, cat=____)
# Use the LpVariable dictionary variable to define objective
model += lpSum([costs[(w, c)] * ____[(____, ____, ____)]
for m in months for w in warehouse for c in customers])