30 lines
2.4 KiB
Markdown
30 lines
2.4 KiB
Markdown
---
|
|
id: DET-COMP-001
|
|
category: "10_Wiki/💡 Topics/AI"
|
|
confidence_score: 1.0
|
|
tags: [computer-science, determinism, simulation, physics-engine, skybound]
|
|
last_reinforced: 2026-04-26
|
|
---
|
|
|
|
# Determinism in Computing (계산의 결정론)
|
|
|
|
## 📌 한 줄 통찰 (The Karpathy Summary)
|
|
> "동일한 입력과 초기 상태가 주어지면, 언제 어디서나 반드시 동일한 결과를 보장하라" — 시스템의 내부 상태와 연산 과정에서 무작위성을 배제하여, 프로그램의 실행 결과가 100% 예측 가능하고 재현 가능하도록 설계하는 원칙.
|
|
|
|
## 📖 구조화된 지식 (Synthesized Content)
|
|
- **추출된 패턴:** 부동 소수점 연산 오차, 멀티스레딩의 비결정적 실행 순서, 네트워크 지연 등 결과를 뒤흔들 수 있는 변수들을 제어하여 시스템의 일관성을 확보하는 설계 패턴.
|
|
- **핵심 요소:**
|
|
- **Fixed-point Arithmetic:** 부동 소수점 오차로 인한 결과 차이를 방지하기 위해 정수 기반 연산 사용.
|
|
- **Deterministic Lockstep:** 멀티플레이어 환경에서 모든 클라이언트가 동일한 타임라인에서 동일한 연산을 수행하도록 동기화.
|
|
- **Seeded Randomness:** 난수 생성 시 항상 동일한 시드(Seed)를 사용하여 무작위 패턴을 재현 가능하게 함.
|
|
- **No Side Effects:** 함수가 외부 상태를 변경하지 않고 입력값에 의해서만 결과가 결정되도록 함 (순수 함수).
|
|
- **의의:** 디버깅 용이성, 멀티플레이어 게임의 동기화, 과학 시뮬레이션의 신뢰성 확보에 필수적.
|
|
|
|
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
|
- **과거 데이터와의 충돌:** 단순히 '작동'하는 것에 집중하던 방식에서, 분산 시스템과 복잡한 시뮬레이션이 늘어남에 따라 '재현 가능성'이 소프트웨어 품질의 핵심 지표로 부상.
|
|
- **정책 변화:** Skybound 프로젝트는 리플레이 시스템과 멀티플레이 동기화를 위해 모든 물리 연산과 확률 이벤트를 결정론적으로 설계하며, 부동 소수점 오차 누적을 방지하는 알고리즘을 적용함.
|
|
|
|
## 🔗 지식 연결 (Graph)
|
|
- [[Time-Step-Logic-in-Games|Time-Step-Logic-in-Games]], Physics-Engine, [[Distributed-Computing|Distributed-Computing]], Simulation-Principles
|
|
- **Raw Source:** 10_Wiki/Topics/AI/Determinism-in-Computing.md
|