Latihan kombinasi kendala
Anda sedang menyusun rencana distribusi untuk sebuah jaringan gudang. Jaringan ini memiliki dua gudang (W1 dan W2) dan masing-masing dapat mengirim tiga jenis produk (A, B, dan C). W1 berukuran kecil dan hanya dapat mengirim salah satu dari: 10 unit produk A per minggu, atau 15 unit produk B per minggu, atau 20 unit produk C per minggu. Anda ingin meminimalkan total biaya.
Sebuah DataFrame Pandas bernama demand dicetak di konsol dan memuat permintaan bulanan untuk setiap produk. Selain itu, kode model PuLP untuk inisialisasi, pendefinisian variabel keputusan, fungsi objektif, dan kendala agar total pengiriman setiap produk sama dengan permintaannya sudah disediakan.
Latihan ini merupakan bagian dari kursus
Analitik Rantai Pasok dengan Python
Instruksi latihan
- Lengkapi kode untuk kendala yang memodelkan batasan pengiriman gudang W1 selama 4 minggu.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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])) <= ____