Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

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 vars và 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 type và fun.
  • Thực hiện tối ưu hóa và trích xuất kết quả cho c và 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))
Chỉnh sửa và Chạy Mã