효용 극대화
Bill은 클래식 $c$와 모던 \(m\) 음악 공부 시간에 시간을 배분하는 예비 피아노 학생입니다. 그의 선호는 방금 그려 본 것과 같은 효용 함수로 표현됩니다:
\(U(c, m)=c^{0.7}m^{0.3}\).
하루 공부 시간의 합은 2시간(\(c+m=2\))입니다. Bill이 최적의 학습 계획을 찾을 수 있도록 도와주세요.
np와 minimize는 이미 로드되어 있습니다. 또한 SymPy에서 symbols, diff, solve를 가져왔고, c와 m을 symbols로 정의했으며, 효용 함수 U도 미리 정의해 두었습니다.
이 연습은 강의의 일부입니다
Python으로 배우는 Optimization 입문
연습 안내
vars를 언패킹해 효용 함수를 정의하고, 음수 부호를 붙여 반환하세요.- 제약 함수를 정의하세요.
type과fun을 사용해 제약을 설정하세요.- 최적화를 수행하고
c와m에 대한 결과를 추출하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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))