แบบฝึกหัดการรวมเงื่อนไขข้อจำกัด
คุณกำลังวางแผนการกระจายสินค้าสำหรับเครือข่ายคลังสินค้า ซึ่งประกอบด้วยคลังสินค้า 2 แห่ง (W1 และ W2) โดยแต่ละแห่งสามารถจัดส่งผลิตภัณฑ์ได้ 3 ประเภท (A, B และ C) W1 เป็นคลังขนาดเล็กที่จัดส่งได้สัปดาห์ละ 10 หน่วยสำหรับผลิตภัณฑ์ A หรือ 15 หน่วยสำหรับผลิตภัณฑ์ B หรือ 20 หน่วยสำหรับผลิตภัณฑ์ C เป้าหมายคือลดต้นทุนรวมให้น้อยที่สุด
มี DataFrame ของ Pandas ชื่อ demand แสดงอยู่ใน console ซึ่งเก็บข้อมูลความต้องการรายเดือนของแต่ละผลิตภัณฑ์ นอกจากนี้ยังมีโค้ดของโมเดล PuLP สำหรับการกำหนดค่าเริ่มต้น ตัวแปรการตัดสินใจ ฟังก์ชันวัตถุประสงค์ และเงื่อนไขที่กำหนดให้ปริมาณจัดส่งรวมของแต่ละผลิตภัณฑ์เท่ากับความต้องการ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Supply Chain Analytics ด้วย Python
คำแนะนำการฝึกหัด
- เขียนโค้ดสำหรับเงื่อนไขที่จำลองข้อจำกัดการจัดส่งของคลังสินค้า W1 ในช่วง 4 สัปดาห์ให้สมบูรณ์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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])) <= ____