การหาค่าเหมาะที่สุดแบบเชิงเส้นสำหรับบิสกิต
ยินดีด้วย! ธุรกิจบิสกิตของคุณเติบโตขึ้น ตอนนี้มีโรงอบขนมสองแห่ง คือ \(A\) และ \(B\) เพื่อช่วยส่งบิสกิตทั่วประเทศ
โรงอบขนมแต่ละแห่งผลิตบิสกิตได้วันละ 100 ชิ้น โดยต้นทุนการผลิตที่โรงอบ \(A\) เท่ากับ \(1.5\) เท่าของปริมาณ \(q\) และที่โรงอบ \(B\) เท่ากับ \(1.75q\)
ราคากำหนดด้วยสมการ \(150 - q\)
ธุรกิจกำลังไปได้ดี และมีคำสั่งซื้อล่วงหน้าแล้ว 140 ชิ้นสำหรับวันนี้ เป้าหมายคือการหาค่าสูงสุดของกำไรในวันนี้ ควรผลิตบิสกิตจำนวนเท่าใดในแต่ละโรงอบขนม?
minimize, Bounds และ LinearConstraint ถูกโหลดไว้ให้แล้ว และฟังก์ชันรายได้ R ถูกกำหนดไว้แล้วเช่นกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น
คำแนะนำการฝึกหัด
- กำหนดฟังก์ชันต้นทุน
Cโดยใช้q[0]สำหรับปริมาณการผลิตที่โรงอบ \(A\) และq[1]สำหรับโรงอบ \(B\) - กำหนดฟังก์ชัน
profit - กำหนด
boundsและconstraintsสำหรับปัญหาการหาค่าเหมาะที่สุด - ดำเนินการหาค่าเหมาะที่สุด แล้วบันทึกผลลัพธ์ไว้ใน
result
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def R(q):
return (150 - q[0] - q[1]) * (q[0] + q[1])
# Define the cost function
def C(q):
return ____
# Define the profit function
def profit(q):
return ____
# Define the bounds and constraints
bounds = Bounds(____, ____)
constraints = LinearConstraint([1, 1], ____)
# Perform optimization
result = ____(lambda q: ____,
[50, 50],
bounds=bounds,
constraints=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}')