---
id: [[P-Reinforce|P-Reinforce]]-AUTO-DYPR-001
category: Unified
confidence_score: 0.97
tags: [auto-reinforced, dynamic-programming, algorithms, [[Optimization|Optimization]], memoization, subproblems]
last_reinforced: 2026-04-20
---

# [[Dynamic-Programming|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|Brute-force]])를 다항 시간 이내로 줄여주어, 현실적으로 풀 수 없는 문제를 해결 가능하게 만듦. (Optimization과 연결)

## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌**: 과거에는 알고리즘 테스트용 '수학적 기법 정책'으로만 여겨졌으나, 현대 정책은 강화학습의 핵심인 '가치 함수 업데이트 정책(벨만 업데이트)'의 근간 정책으로 재평가됨(RL Update).
- **정책 변화(RL Update)**: 거대 모델의 추론 최적화 정책에서, 토큰 생성 시 반복되는 연산을 캐싱하는 'KV 캐시 정책' 또한 현대적인 동적 계획법의 연장선상에 있는 최적화 정책임.

## 🔗 지식 연결 (Graph)
- [[Brute-force|Brute-force]], [[Optimization|Optimization]], [[Combinatorial-Optimization|Combinatorial-Optimization]], [[Reinforcement Learning (RL)|Reinforcement Learning (RL)]], [[Search-Optimization|Search-Optimization]]
- **Modern Tech/Tools**: Fibonacci, Knapsack problem solvers, Bio-informatics sequence [[Alignment|Alignment]].
---
