Tối đa hóa hữu dụng
Bill là một học viên piano đầy triển vọng, người phân bổ giờ học cho nhạc cổ điển \(c\) và nhạc hiện đại \(m\). Sở thích của cậu được biểu diễn bằng cùng một hàm hữu dụng mà bạn vừa vẽ:
\(U(c, m)=c^{0.7}m^{0.3}\).
Tổng số giờ học mỗi ngày là 2 (\(c+m=2\)). Hãy giúp Bill tìm kế hoạch học tối ưu.
np và minimize đã được nạp sẵn. Chúng tôi đã nhập symbols, diff và solve từ SymPy, định nghĩa c và m là symbols và định nghĩa sẵn hàm Utility U cho bạn.
Bài tập này là một phần của khóa học
Nhập môn Tối ưu hóa với Python
Hướng dẫn bài tập
- Định nghĩa hàm hữu dụng bằng cách giải nạp
varsvà trả về giá trị âm của hàm. - Định nghĩa hàm ràng buộc.
- Thiết lập ràng buộc với
typevàfun. - Thực hiện tối ưu hóa và trích xuất kết quả cho
cvàm.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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))