Maximizarea utilității
Bill este un student pasionat de pian care alocă ore de studiu pentru muzică clasică \(c\) și modernă \(m\). Preferințele sale sunt reprezentate de aceeași funcție de utilitate pe care tocmai ai reprezentat-o grafic:
\(U(c, m)=c^{0.7}m^{0.3}\).
Orele de studiu se ridică la 2 zilnic (\(c+m=2\)). Ajută-l pe Bill să găsească planul optim de studiu.
np și minimize au fost deja încărcate. Am importat deja symbols, diff și solve din SymPy, am definit c și m ca symbols și am definit funcția de utilitate U pentru tine.
Acest exercițiu face parte din cursul
Introducere în optimizare în Python
Instrucțiuni pentru exercițiu
- Definește funcția de utilitate dezpachetând
varsși returnând funcția negată. - Definește funcția de constrângere.
- Configurează constrângerea cu
typeșifun. - Efectuează optimizarea și extrage rezultatele pentru
cșim.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Define the utility function
def utility_function(vars):
____
return ____
# Define the constraint function
def constraint(vars):
return ____
initial_guess = [12, 12]
# Set up the constraint
constraint_definition = {____}
# Perform optimization
result = ____
____ = result.____
print("Optimal study hours for classical music:", round(c, 2))
print("Optimal study hours for modern music:", round(m, 2))