แบบฝึกหัดเงื่อนไขเชิงตรรกะ
ลูกค้าสั่งสินค้า 6 รายการให้จัดส่งภายในเดือนหน้า โดยต้องใช้รถบรรทุกหลายเที่ยวในการส่งสินค้าทั้งหมด รถบรรทุกมีน้ำหนักบรรทุกสูงสุด 25,000 ปอนด์ เพื่อเหตุผลด้านกระแสเงินสด จึงต้องการเลือกส่งสินค้าในชุดที่ทำกำไรได้มากที่สุดภายใต้ข้อจำกัดน้ำหนักดังกล่าว
| ผลิตภัณฑ์ | น้ำหนัก (ปอนด์) | กำไร (USD) |
|---|---|---|
| A | 12,583 | 102,564 |
| B | 9,204 | 130,043 |
| C | 12,611 | 127,648 |
| D | 12,131 | 155,058 |
| E | 12,889 | 238,846 |
| F | 11,529 | 197,030 |
ได้สร้าง Python dictionary สองตัวคือ weight และ prof รวมถึง list ชื่อ prod ไว้ให้แล้ว ซึ่งเก็บข้อมูลน้ำหนัก กำไร และชื่อของแต่ละผลิตภัณฑ์ สามารถสำรวจข้อมูลเหล่านี้ได้ใน console
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Supply Chain Analytics ด้วย Python
คำแนะนำการฝึกหัด
- เพิ่มเงื่อนไขเพื่อให้น้ำหนักรวมบนรถบรรทุกไม่เกิน 25,000 ปอนด์
- เพิ่มเงื่อนไขเพื่อให้โมเดลเลือกผลิตภัณฑ์จาก D, E และ F ได้อย่างมากเพียง 1 รายการเท่านั้น
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Initialized model, defined decision variables and objective
model = LpProblem("Loading Truck Problem", LpMaximize)
x = LpVariable.dicts('ship_', prod, cat='Binary')
model += lpSum([prof[i] * x[i] for i in prod])
# Define Constraint
model += lpSum([weight[i] * x[i] for i in prod]) ____ ____
model += ____
model.solve()
for i in prod:
print("{} status {}".format(i, x[i].varValue))