콘텐츠로 이동

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-디버깅-체크리스트.md
  • lab-skills/실험-노트-습관.md

환경 세팅에서 막힌 곳 있으면 댓글로 — 같은 곳에서 막힐 다음 사람을 위해.