Biscuiți cu constrângeri liniare
Felicitări! Afacerea ta cu biscuiți s-a extins. Acum ai două brutării, \(A\) și \(B\), care te ajută să livrezi biscuiți la nivel național.
Fiecare brutărie poate produce 100 de biscuiți pe zi. Costul de producție al unui biscuit în brutăria \(A\) este \(1,5\) ori cantitatea \(q\), iar în brutăria \(B\) este \(1,75q\).
Prețul este definit prin \(150 - q\).
Afacerea merge excelent și ai deja 140 de precomenzi pentru ziua de azi. Vrei să îți maximizezi profitul zilnic. Câți biscuiți ar trebui să produci în fiecare brutărie?
minimize, Bounds și LinearConstraint au fost deja importate, iar funcția de venit R este deja definită.
Acest exercițiu face parte din cursul
Introducere în optimizare în Python
Instrucțiuni pentru exercițiu
- Definește funcția de cost
Cfolosindq[0]pentru cantitățile din brutăria \(A\) șiq[1]pentru brutăria \(B\). - Definește funcția
profit. - Definește
boundsșiconstraintspentru problema ta de optimizare. - Efectuează optimizarea și salvează rezultatul în
result.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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}')