การเพิ่ม logical constraint ในแบบฝึกหัดกรณีศึกษา
ทำงานต่อในกรณีศึกษา Capacitated Plant Location model ของผู้ผลิตรถยนต์ คุณได้รับ Pandas data frame สี่ชุด ได้แก่ demand, var_cost, fix_cost และ cap ซึ่งบรรจุข้อมูลความต้องการในแต่ละภูมิภาค (หน่วย: พันคัน) ต้นทุนการผลิตแบบแปรผัน (หน่วย: พัน $US) ต้นทุนการผลิตแบบคงที่ (หน่วย: พัน $US) และกำลังการผลิต (หน่วย: พันคัน) นอกจากนี้ยังมี Python list สองชุด คือ loc และ size ที่เก็บข้อมูลตำแหน่งต่าง ๆ และประเภทกำลังการผลิตของโรงงานทั้งสองแบบ ตัวแปรทั้งหมดนี้ถูกแสดงผลใน console แล้ว โค้ดสำหรับการเริ่มต้นโมเดล กำหนดตัวแปรการตัดสินใจ สร้างฟังก์ชันวัตถุประสงค์ และ constraint ต่าง ๆ ได้ถูกเตรียมไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Supply Chain Analytics ด้วย Python
คำแนะนำการฝึกหัด
- เพิ่ม logical constraint เพื่อกำหนดว่า หากโรงงานขนาดใหญ่ในสหรัฐอเมริกาเปิดดำเนินการ โรงงานขนาดเล็กในเยอรมนีต้องเปิดดำเนินการด้วย
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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 += ____ - ____ <= ____