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

Shadow prices กับน้ำผลไม้

บริษัทแห่งหนึ่งใช้เครื่องจักร 2 เครื่อง คือ \(M_1\) และ \(M_2\) สำหรับบรรจุน้ำเกรปฟรุต (\(g\)) และน้ำส้ม (\(o\)) ลงขวด โดยมีเป้าหมายเพื่อสูงสุดกำไร ภายใต้ข้อจำกัดต่อไปนี้

M1: \(6g + 5.5o \leq 40\) และ M2: \(3g + 2.5o \leq 20\)

ข้อจำกัดเหล่านี้สะท้อนถึงประสิทธิภาพและความพร้อมใช้งานของเครื่องจักร ตัวอย่างเช่น M1 พร้อมใช้งาน 40 ชั่วโมงต่อสัปดาห์ โดยต้องใช้เวลา 6 ชั่วโมงในการบรรจุน้ำเกรปฟรุต 1 ตัน และ 5.5 ชั่วโมงสำหรับน้ำส้ม 1 ตัน

นอกจากนี้ยังมีข้อจำกัดด้านวัตถุดิบ โดยบริษัทได้รับเกรปฟรุตสูงสุดไม่เกิน 6 ตันต่อสัปดาห์ และส้มไม่เกิน 12 ตัน ซึ่งถือเป็นขอบเขตบน

ได้นำเข้า pulp ไว้ให้แล้ว และกำหนด model พร้อมตัวแปร g และ o สำหรับน้ำเกรปฟรุตและน้ำส้มเรียบร้อยแล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เติมโค้ดใน for loop เพื่อตรวจสอบว่า shadow price มีค่าเป็นบวกหรือไม่
  • ระบุตัวแปรที่วัดการเพิ่มขึ้นส่วนเพิ่มของฟังก์ชันวัตถุประสงค์เมื่อข้อจำกัดถูกผ่อนคลาย
  • ระบุตัวแปรที่วัดความตึงตัวของข้อจำกัด

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

print(LpStatus[model.status])
print(f'The optimal amount of {g.name} embottled is: {g.varValue:.2f} tons')
print(f'The optimal amount of {o.name} embottled is: {o.varValue:.2f} tons')

for name, c in model.constraints.items():
    # Check if shadow value is positive 
    if c.____ > 0:
    # Enter the variable that measures marginal increase in objective when constraint is relaxed
        print(f"Increasing the capacity of {name} by one unit would increase profit by {c.____} units.")
    else:
    # Enter the variable that measures how tight the constraint is
        print(f"{name} has {c.____} units of unused capacity.")
แก้ไขและรันโค้ด