Files
2nd/10_Wiki/Topics/Dynamic-Programming.md
T
2026-04-30 22:42:02 +09:00

34 lines
2.2 KiB
Markdown

---
id: [[P-Reinforce]]-AUTO-DYPR-001
category: "10_Wiki/💡 Topics/AI"
confidence_score: 0.97
tags: [auto-reinforced, dynamic-programming, algorithms, [[Optimization]], memoization, subproblems]
last_reinforced: 2026-04-20
---
# [[Dynamic-Programming]]
## 📌 한 줄 통찰 (The Karpathy Summary)
> "똑똑한 반복의 기술: 복잡한 문제를 작은 부분 문제로 쪼개고, 한 번 구한 정답은 메모리에 기억(Memoization)해두었다가 다시 사용하는 방식으로 중복 연산을 획기적으로 줄이는 알고리즘 최적화의 정수."
## 📖 구조화된 지식 (Synthesized Content)
동적 계획법(Dynamic-Programming)은 문제를 해결하기 위한 알고리즘 설계 패러다임입니다.
1. **두 가지 필수 조건**:
* **Overlapping Subproblems**: 똑같은 작은 문제들이 반복해서 나타남.
* **Optimal Substructure**: 부분 문제의 최적해를 모으면 전체 문제의 최적해가 됨.
2. **구현 방식**:
* **Top-Down (Memoization)**: 재귀를 사용하되 계산 결과를 저장.
* **Bottom-Up (Tabulation)**: 작은 문제부터 순서대로 표를 채워나감.
3. **왜 중요한가?**:
* 지수 함수적으로 늘어나는 시간 복잡도([[Brute-force]])를 다항 시간 이내로 줄여주어, 현실적으로 풀 수 없는 문제를 해결 가능하게 만듦. (Optimization과 연결)
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌**: 과거에는 알고리즘 테스트용 '수학적 기법 정책'으로만 여겨졌으나, 현대 정책은 강화학습의 핵심인 '가치 함수 업데이트 정책(벨만 업데이트)'의 근간 정책으로 재평가됨(RL Update).
- **정책 변화(RL Update)**: 거대 모델의 추론 최적화 정책에서, 토큰 생성 시 반복되는 연산을 캐싱하는 'KV 캐시 정책' 또한 현대적인 동적 계획법의 연장선상에 있는 최적화 정책임.
## 🔗 지식 연결 (Graph)
- [[Brute-force]], [[Optimization]], [[Combinatorial-Optimization]], [[Reinforcement Learning (RL)]], [[Search-Optimization]]
- **Modern Tech/Tools**: Fibonacci, Knapsack problem solvers, Bio-informatics sequence [[Alignment]].
---