IniziaInizia gratis

Biscotti con vincoli lineari

Congratulazioni! La tua attività di biscotti è cresciuta. Ora hai due panifici, \(A\) e \(B\), per consegnare i tuoi biscotti in tutto il paese.

Ogni panificio può produrre 100 biscotti al giorno e il costo di produzione di un biscotto nel panificio \(A\) è \(1{.}5\) per la quantità \(q\), mentre nel panificio \(B\) è \(1{.}75q\).

Il prezzo è definito da \(150 - q\).

Gli affari vanno a gonfie vele e hai già 140 pre-ordini di biscotti per la giornata. Vuoi massimizzare il profitto del giorno. Quanti biscotti dovresti produrre in ciascun panificio?

minimize, Bounds e LinearConstraint sono già stati caricati per te e la funzione di ricavo R è già definita.

Questo esercizio fa parte del corso

Introduzione all'ottimizzazione in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci la funzione di costo C usando q[0] per le quantità nel panificio \(A\) e q[1] per il panificio \(B\).
  • Definisci la funzione di profit.
  • Definisci i bounds e i constraints per il tuo problema di ottimizzazione.
  • Esegui l'ottimizzazione salvando in result.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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}')
Modifica ed esegui il codice