Kısıtları birleştirme egzersizi
Bir depo ağı için dağıtım planı üzerinde çalışıyorsun. Ağda iki depo (W1 ve W2) var ve her biri üç farklı ürün türünü (A, B ve C) sevk edebiliyor. W1 küçük ve haftada ya 10 adet A ürünü ya 15 adet B ürünü ya da 20 adet C ürünü sevk edebilir. Toplam maliyetleri en aza indirmeye çalışıyorsun.
Konsolda demand adlı bir Pandas DataFrame'i yazdırılmıştır ve her ürün için aylık talebi içerir. Ayrıca, PuLP modelinin başlatılması, karar değişkenlerinin tanımlanması, amaç fonksiyonu ve her ürünün toplam sevkiyatının talebine eşit olmasını sağlayan kısıt için kod verilmiştir.
Bu egzersiz, kursun bir parçasıdır
Python ile Tedarik Zinciri Analitiği
Egzersiz talimatları
- 4 hafta için W1 deposunun sevkiyat sınırlamalarını modelleyen kısıtın kodunu tamamla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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])) <= ____