Mulai sekarangMulai gratis

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

Lihat Kursus

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])) <= ____
Edit dan Jalankan Kode