AI 경제분석 3-4: 파이썬으로 케이크 문제 풀이! 벨만 방정식 핵심 이해 (ft. 시각화)
케이크 먹기 문제, 파이썬으로 풀어보자! (벨만 방정식 활용)
지난 시간에는 '엠벨롭스 여름'에 대해 알아봤지? 오늘은 좀 더 재미있는 '케이크 먹기 문제'를 파이썬으로 풀어볼 거야. 마치 게임처럼 말이지!
왜 케이크 먹기 문제를 풀까?
케이크 먹기 문제는 사실 우리가 현실에서 어떤 결정을 내릴 때 어떻게 최선의 선택을 할 수 있을지 알려주는 모델이야. 예를 들어, 지금 케이크를 먹을지, 아니면 나중에 더 맛있는 케이크를 위해 참을지 같은 거지.
이 문제를 풀 때 'CRRA 함수'라는 걸 쓰면 답을 바로 구할 수 있어. 그런데 현실은 그렇게 단순하지 않잖아? 그래서 모델을 좀 더 복잡하게 바꿔야 하는데, 이렇게 바꾸면 답을 바로 구할 수 없게 돼. 이럴 때 수치적 방법이라는 걸 사용해서 문제를 푸는 거야.
수치적 방법, '벨만 방정식'과 '값 함수 반복'
오늘 배울 핵심은 바로 '값 함수 반복(Value Function Iteration)'이라는 수치적 방법이야.
값 함수 반복이란?
쉽게 말해, 답을 바로 구하는 대신 '이럴 때 얼마만큼의 가치가 있을까?'를 계속해서 계산하고, 그 값이 점점 진짜 답에 가까워지도록 반복하는 거야.
어떻게 반복할까?
-
처음 값 정하기: 먼저 '값 함수'에 대한 처음 값을 정해. 아무렇게나 정해도 되지만, 관련 이론이 있다면 그걸 참고해서 정하면 더 빨리 답에 가까워질 수 있어. 요즘 컴퓨터는 성능이 좋아서, 그냥 랜덤으로 값을 정하고 반복해도 잘 풀린대.
-
계산하고 비교하기:
- 정해진 처음 값으로 '최댓값'을 계산해. (이걸 '벨만 방정식'이라고 불러.)
- 새로 계산된 값과 이전 값이 얼마나 비슷한지 비교해.
-
업데이트하고 반복하기:
- 만약 두 값이 많이 다르다면, 새로 계산된 값을 다음 계산을 위한 값으로 업데이트해.
- 이 과정을 두 값이 거의 같아질 때까지 계속 반복하는 거야. 마치 그림을 계속 수정해서 진짜 모습에 가깝게 만드는 것처럼 말이지.
그래프로 보면 더 쉬워!
처음에는 보라색 선처럼 값이 시작했다가, 반복할수록 파란색, 노란색을 거쳐 점점 빨간색 선처럼 진짜 답에 가까워지는 걸 볼 수 있어.
파이썬 코드로 살펴보기
파이썬으로 이 과정을 코딩할 때는 몇 가지 중요한 점이 있어.
-
연속적인 값을 어떻게 다룰까?
케이크 먹기 문제에서 소비나 상태 같은 값들은 연속적이야. 컴퓨터는 모든 연속적인 값을 다 계산할 수 없기 때문에, '그리드 포인트'라는 걸 사용해. 마치 긴 자에서 1cm, 2cm, 3cm처럼 일정한 간격으로 점을 찍어서 그 점들만 계산하는 거지. -
'인터폴레이션'으로 부드럽게 연결하기
그리드 포인트로 계산된 값들을 '인터폴레이션'이라는 방법으로 부드럽게 연결해서 연속적인 것처럼 만들어줘. -
'벨만 연산자'로 표현하기
이 반복 과정을 수학적으로는 '벨만 연산자(T)'라는 걸로 간단하게 표현할 수 있어. 마치 함수처럼, 이전 값을 넣으면 다음 값을 만들어주는 역할을 하는 거지.
실제 코드는 이렇게 구성돼:
- 라이브러리 불러오기: 코딩에 필요한 도구들을 먼저 불러와.
- 애널리티컬 솔루션 정의: 만약 답을 바로 구할 수 있다면, 그 방법을 먼저 정의해.
- 함수 정의: 최댓값을 구하는 함수, 유틸리티 함수 등을 만들어.
- 클래스 만들기: 케이크 먹기 문제 전체를 위한 설계도 같은 '클래스'를 만들어. 여기서는 베타, 감마 같은 값들과 그리드 포인트 등을 설정해.
- 값 함수 반복 실행: 처음 값을 정하고, 벨만 연산자를 사용해서 계속 반복하며 답을 찾아나가.
이 모든 과정을 파이썬 코드로 직접 실행해보면 '값 함수 반복'이 어떻게 작동하는지 눈으로 확인할 수 있을 거야.
다음 시간에는?
오늘은 벨만 방정식과 값 함수 반복에 대해 알아봤어. 다음 시간에는 '캐스 쿠맨스 모델'에 대해 배울 예정이니 기대해!