โจทย์การวางแผนโลจิสติกส์ 2
คุณกำลังให้คำปรึกษาแก่ผู้ผลิตเตาอบในครัวอีกครั้ง เพื่อช่วยวางแผนด้านโลจิสติกส์ คราวนี้เป็นการจัดทำแผนสำหรับ 6 เดือนข้างหน้า (ม.ค.–มิ.ย.) โดยยังคงมีคลังสินค้า 2 แห่ง (นิวยอร์กและแอตแลนตา) และลูกค้าตามภูมิภาค 4 แห่ง (East, South, Midwest, West) ค่าขนส่งจากแต่ละคลังสินค้าไปยังลูกค้าแต่ละภูมิภาคแสดงอยู่ในตารางด้านล่าง เป้าหมายคือหาจำนวนการจัดส่งจากแต่ละคลังสินค้าไปยังลูกค้าที่ให้ต้นทุนรวมต่ำที่สุด
| Customer | New York | Atlanta |
|---|---|---|
| East | $211 | $232 |
| South | $232 | $212 |
| Midwest | $240 | $230 |
| West | $300 | $280 |
ได้สร้าง Python dictionary ชื่อ costs ที่เก็บค่าใช้จ่ายของโมเดล และลิสต์สามตัว ได้แก่ months, warehouse, และ customers ไว้ให้แล้ว costs ถูกพิมพ์ออกมาให้ดูแล้ว และสามารถสำรวจลิสต์อื่น ๆ ใน console ได้เช่นกัน นอกจากนี้ โมเดลได้รับการกำหนดค่าเริ่มต้นไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Supply Chain Analytics ด้วย Python
คำแนะนำการฝึกหัด
- กำหนดตัวแปรการตัดสินใจในโมเดล โดยใช้ list comprehension เพื่อวนซ้ำผ่านลิสต์
months,warehouse, และcustomersเพื่อสร้างลิสต์ของ keys จากนั้นนำลิสต์ของ keys นั้นไปใช้กับLpVariable.dicts()เพื่อกำหนดตัวแปรที่ต้องการ - กำหนดฟังก์ชันวัตถุประสงค์โดยรวมต้นทุนการขนส่งจากคลังสินค้าและลูกค้าแต่ละรายตลอดระยะเวลา 6 เดือน
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define decision variables
key = [(m, w, ____) for m in months for w in warehouse for c in customers]
var_dict = LpVariable.dicts('num_of_shipments',
key,
lowBound=____, cat=____)
# Use the LpVariable dictionary variable to define objective
model += lpSum([costs[(w, c)] * ____[(____, ____, ____)]
for m in months for w in warehouse for c in customers])