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

โจทย์การวางแผนโลจิสติกส์ 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])
แก้ไขและรันโค้ด