2.3 KiB
2.3 KiB
id: P-Reinforce-AUTO-DYPR-001 category: Dev 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)은 문제를 해결하기 위한 알고리즘 설계 패러다임입니다.
- 두 가지 필수 조건:
- Overlapping Subproblems: 똑같은 작은 문제들이 반복해서 나타남.
- Optimal Substructure: 부분 문제의 최적해를 모으면 전체 문제의 최적해가 됨.
- 구현 방식:
- Top-Down (Memoization): 재귀를 사용하되 계산 결과를 저장.
- Bottom-Up (Tabulation): 작은 문제부터 순서대로 표를 채워나감.
- 왜 중요한가?:
- 지수 함수적으로 늘어나는 시간 복잡도(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.