동적 계획법
동적 계획법
- 큰 문제를 작은 문제로 나누고, 작은 문제의 답을 저장·재사용하여 전체 답을 구하는 방법
- 특히 최적화 문제에서 다음 성질을 활용:
- 최적 부분 구조(optimal substructure): 전체 문제의 최적해가 부분 문제의 최적해로 구성됨
- 중복되는 부분 문제(overlapping subproblems): 같은 부분 문제의 답이 여러 계산에 필요함
예시: 최단거리 문제
아래 그래프에서는 A, B, C, D 순서로 각 정점까지의 최단거리 계산 가능
- 최적 부분 구조: A에서 D까지의 최단 경로가 C를 지난다면, 그 경로에서 A부터 C까지도 최단 경로
- 중복되는 부분 문제: A에서 B까지의 최단거리를 C와 D의 후보 경로 계산에 재사용
Mermaid 다이어그램 원문
flowchart LR
A((A)) -->|2| B((B))
A -->|5| C((C))
B -->|1| C
B -->|4| D((D))
C -->|1| D대화형 다이어그램을 불러오기 전에는 원문으로 표시됩니다.
- 간선의 숫자: 두 정점 사이를 이동하는 비용
- 목표: 시작점 A에서 각 정점까지의 최소 비용 계산
| 도착점 | A부터의 후보 경로 비용 | 최단 비용 |
|---|---|---|
| A | 시작점 | 0 |
| B | A → B (2) | 2 |
| C | A → C: 5, A → B → C: 2 + 1 = 3 | 3 |
| D | A → B → D: 2 + 4 = 6, A → B → C → D: 3 + 1 = 4 | 4 |
- 최단 경로: A → B → C → D
- 전체 비용: 2 + 1 + 1 = 4
- 핵심: 마지막 간선 비용만 비교하지 않고, 앞 정점까지의 최단 비용에 그 간선 비용을 더해 비교
MDP와 동적 계획법
- 최적 가치: 상태 s에서 가능한 행동을 비교할 때 다음 상태 s′의 최적 가치를 이용해 표현
- 정책 가치: 정책 π를 정하면 다음 상태의 정책 가치를 이용해 현재 상태의 가치를 표현
- 상태 재사용: 여러 경로가 같은 상태에 도달하거나 상태를 다시 방문하면, 그 상태의 가치 추정치를 여러 계산에서 사용
- 환경의 전이·보상 모델을 알 때 이러한 관계를 이용해 가치를 계산 가능
동적 계획법을 통한 가치 추정
- 목표: 정해진 정책 π를 따를 때의 상태 가치 vπ(s) 추정
- 필요 정보: 정책의 행동 선택 확률과 환경의 전이·보상 모델
- 계산: 각 경우의 r+γvπ(s′)에 발생 확률을 곱한 값의 합
- γ: 미래 보상에 적용하는 할인율
- 상태 가치가 서로를 참조하거나 자기 자신을 참조할 수 있으므로, 초기 추정치에서 시작해 반복적으로 갱신
반복적 정책 평가법
- 반복적 정책 평가법(iterative policy evaluation): 정해진 정책을 유지한 채 상태 가치를 반복 갱신
- 부트스트래핑(bootstrapping): 가치를 임의로 정한 뒤, 새 가치를 계산할 때 기존의 다음 상태 가치 추정치를 사용

- 종료되지 않은 상태의 가치를 0 등으로 정한 뒤, 이전 추정치로 모든 상태의 가치를 반복 갱신
- 상태 수가 정해져 있고 보상이 일정 범위 안에 있으며 0≤γ<1이면, 정책 가치로 수렴
정책 평가의 반복 갱신식
정책 π와 환경 모델 p(s′,r∣s,a)를 알 때, 이전 반복의 추정치 vk로 새 추정치 vk+1 계산
vk+1(s)=a∑π(a∣s)s′,r∑p(s′,r∣s,a)[r+γvk(s′)]- π(a∣s): 상태 s에서 행동 a를 선택할 확률
- p(s′,r∣s,a): 행동 a 뒤에 다음 상태 s′와 보상 r이 나타날 확률
- 종료 상태의 가치를 0으로 두는 경우, 그 뒤의 미래 가치는 더하지 않음
퀴즈
A에서 D까지의 최단거리 후보를 비교할 때 필요한 계산은?
퀴즈를 풀려면 대화형 기능을 불러와야 합니다.