Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Definieer de beslissingsvariabelen in het model door eerst met list comprehension over de lijsten months, warehouse en customers te itereren om een lijst met sleutels te maken. Gebruik die lijst met sleutels met LpVariable.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])
Code bewerken en uitvoeren