ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește funcția de cost C folosind q[0] pentru cantitățile din brutăria \(A\) și q[1] pentru brutăria \(B\).
  • Definește funcția profit.
  • Definește bounds și constraints pentru 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}')
Editează și rulează codul