เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

แบบฝึกหัดการรวมเงื่อนไขข้อจำกัด

คุณกำลังวางแผนการกระจายสินค้าสำหรับเครือข่ายคลังสินค้า ซึ่งประกอบด้วยคลังสินค้า 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])) <= ____
แก้ไขและรันโค้ด