ABM 개발 환경 세팅 — mesa·numpy·실험 디렉토리¶
우리 랩 ABM 논문(1A6/1A7) 시작하는 학부연구생을 위한 5분 세팅.
도구¶
python -m venv .venv
.venv\Scripts\activate # Windows
pip install mesa numpy pandas matplotlib pytest
| 도구 | 역할 |
|---|---|
mesa |
Agent-Based Model 프레임워크 (Schelling, Boltzmann 예제 포함) |
numpy |
seed 고정한 무작위 추출 |
pandas |
step 별 결과 DataFrame |
matplotlib |
결과 그래프 — 발표용 PNG는 lecture_charts.py 모듈 사용 |
pytest |
unit test로 행동 규칙 검증 (시뮬레이션 결과가 결정적 인지) |
실험 디렉토리 표준¶
experiments/
exp001-baseline/
config.yaml # seed, n_agents, n_steps
run.py # 1회 실행 entry
results/
step_log.parquet # 매 step DataFrame
summary.json # KPI 1줄
figures/*.png
exp002-...
- config.yaml 분리: 코드 수정 없이 실험 가능.
- 결과는 parquet: 1만 step도 가벼움.
- figures는 git에 안 올림 (.gitignore에
experiments/*/results/figures/).
함정¶
- seed 안 고정 → 결과 재현 불가 → 논문 reviewer가 가장 먼저 잡음.
- matplotlib 한글 →
Paperlogy-Bold.ttf또는lecture_charts.py사용. - mesa 버전 — 2.x 와 3.x 가 API 다름. 최신은 3.x.
관련 글 (예정)¶
lab-skills/abm-디버깅-체크리스트.mdlab-skills/실험-노트-습관.md
환경 세팅에서 막힌 곳 있으면 댓글로 — 같은 곳에서 막힐 다음 사람을 위해.