Začněte nyníZačněte zdarma

Cvičení na kombinaci omezení

Pracuješ na distribučním plánu pro síť skladů. Síť se skládá ze dvou skladů (W1 a W2) a každý z nich může přepravovat tři různé typy produktů (A, B a C). Sklad W1 je malý a za týden dokáže přepravit buď 10 kusů produktu A, nebo 15 kusů produktu B, nebo 20 kusů produktu C. Tvým cílem je minimalizovat celkové náklady.

V konzoli je vypsán Pandas DataFrame s názvem demand, který obsahuje měsíční poptávku pro každý produkt. K dispozici je také kód modelu PuLP, který inicializuje model, definuje rozhodovací proměnné, účelovou funkci a omezení zajišťující, že celková přeprava každého produktu odpovídá jeho poptávce.

Toto cvičení je součástí kurzu

Supply Chain Analytics v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Doplň kód pro omezení modelující přepravní kapacitu skladu W1 na 4 týdny.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Initialize, Define Decision Vars., Objective Function, and Constraints
model = LpProblem("Distribution Planning", LpMinimize)
wh = ['W1','W2']
prod = ['A', 'B', 'C']
X = LpVariable.dicts("ship", [(w, p, c) for c in cust for p in prod for w in wh], 
                     lowBound=0, cat="Integer")
model += lpSum([X[(w, p, c)]*costs.loc[(w, p), c]  for c in cust for p in prod for w in wh])
for c in cust:
    for p in prod:
        model += lpSum([X[(w, p, c)] for w in wh]) == demand.loc[p, c]

# Define Dependent Demand Constraints
model += ((1/10) * lpSum([X[('W1', 'A', c)] for c in cust]) 
          + ____ * lpSum([X[(____, ____, c)] for c in cust])
          + ____ * lpSum([X[(____, ____, ____)] for c in cust])) <= ____
Upravit a spustit kód