บิสกิตแบบ Nonlinear Constrained
เยี่ยมมากเลย!
คราวนี้ลองแก้ปัญหาเดิมอีกครั้งโดยใช้ NonlinearConstraint กัน
จำกัดความว่า เงื่อนไขสำหรับโรงงานคือต้องผลิตให้ครบอย่างน้อย 140 ออร์เดอร์ที่สั่งล่วงหน้า และแต่ละโรงงานสามารถผลิตบิสกิตได้สูงสุด 100 ชิ้นต่อวัน
โหลด minimize, Bounds, และ NonlinearConstraint ให้แล้ว รวมถึงฟังก์ชันรายได้ R ฟังก์ชันต้นทุน C และฟังก์ชันกำไร profit
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น
คำแนะนำการฝึกหัด
- กำหนดเงื่อนไขโดยใช้ฟังก์ชัน
lambdaชื่อqพร้อมระบุขอบเขตบนและขอบเขตล่าง - ทำการหาค่าเหมาะสมโดยเพิ่มฟังก์ชันออบเจกทีฟ ขอบเขต และเงื่อนไขลงใน
minimize()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Redefine the problem with NonlinearConstraint
constraints = NonlinearConstraint(lambda q: ____, ____, ___)
# Perform optimization
result = minimize(lambda q: ____,
[50, 50],
bounds=____,
constraints=____)
print(result.message)
print(f'The optimal number of biscuits to bake in bakery A is: {result.x[0]:.2f}')
print(f'The optimal number of biscuits to bake in bakery B is: {result.x[1]:.2f}')
print(f'The bakery company made: ${-result.fun:.2f}')