Vaka çalışması egzersizinde mantıksal kısıt ekleme
Bir otomobil üreticisinin Kapasiteli Tesis Konumlandırma modeline ilişkin vaka çalışmasına devam et. Sana dört Pandas veri çerçevesi demand, var_cost, fix_cost ve cap verildi; bunlar sırasıyla bölgesel talebi (bin adet araba), değişken üretim maliyetlerini (bin $US), sabit üretim maliyetlerini (bin $US) ve üretim kapasitesini (bin adet araba) içeriyor. Ayrıca farklı konumları ve iki tür tesis kapasitesini içeren iki Python listesi loc ve size de oluşturuldu. Tüm bu değişkenler, inceleyebilmen için konsola yazdırıldı. Modeli başlatma, karar değişkenlerini tanımlama, amaç fonksiyonunu ve kısıtları oluşturma kodu senin için tamamlandı.
Bu egzersiz, kursun bir parçasıdır
Python ile Tedarik Zinciri Analitiği
Egzersiz talimatları
- ABD'deki yüksek kapasiteli tesis açıksa, Almanya'da da düşük kapasiteli bir tesisin açılmasını sağlayacak bir mantıksal kısıt ekle.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Initialize, Define Decision Vars., Object. Fun., and Constraints
model = LpProblem("Capacitated Plant Location Model", LpMinimize)
loc = ['USA', 'Germany', 'Japan', 'Brazil', 'India']
size = ['Low_Cap','High_Cap']
x = LpVariable.dicts("production_", [(i,j) for i in loc for j in loc],
lowBound=0, upBound=None, cat='Integer')
y = LpVariable.dicts("plant_",
[(i,s) for s in size for i in loc], cat='Binary')
model += (lpSum([fix_cost.loc[i,s] * y[(i,s)] for s in size for i in loc])
+ lpSum([var_cost.loc[i,j] * x[(i,j)] for i in loc for j in loc]))
for j in loc:
model += lpSum([x[(i, j)] for i in loc]) == demand.loc[j,'Dmd']
for i in loc:
model += lpSum([x[(i, j)] for j in loc]) <= lpSum([cap.loc[i,s]*y[(i,s)]
for s in size])
# Define logical constraint
model += ____ - ____ <= ____