앞 글에서 시뮬레이션이 무엇이고 언제 쓰는지를 잡았다. 그런데 “시뮬레이션”이라는 한 단어 안에는 서로 꽤 다른 모델링 방식들이 섞여 있다. 주식 포트폴리오의 손실 확률을 무작위 표본으로 추정하는 것도, 공장 대기열을 사건 단위로 따라가는 것도, 전염병이 인구 전체로 퍼지는 곡선을 미분방정식으로 푸는 것도 모두 시뮬레이션이다. 이들을 한데 묶어 두면 혼란스럽다.

이 글은 시뮬레이션 모델을 세 개의 축으로 분류하고, 실제 현장에서 쓰이는 네 가지 주요 패러다임을 비교해 시리즈 전체의 지도를 그린다. 어떤 글이 어디에 해당하는지 감을 잡는 것이 목표다.

세 가지 분류 축

시뮬레이션 모델은 보통 다음 세 가지 질문으로 성격을 규정한다.

1. 시간을 다루는가 — 정적(static) vs 동적(dynamic)

  • 정적 시뮬레이션: 시간이 모델에 본질적이지 않다. 특정 한 시점, 혹은 시간과 무관한 양을 다룬다. 뒤에 나올 Monte Carlo 시뮬레이션(적분·확률 추정)이 대표적이다.
  • 동적 시뮬레이션: 시스템이 시간에 따라 어떻게 전개되는지를 따라간다. 대기열의 길이가 시간에 따라 늘었다 줄었다 하는 모습을 추적하는 것처럼.

2. 상태가 어떻게 변하는가 — 연속(continuous) vs 이산(discrete)

  • 연속 변화: 상태 변수가 시간에 따라 매끄럽게 변한다. 물탱크의 수위, 화학 반응의 농도, 비행기의 속도처럼. 보통 미분방정식으로 기술한다.
  • 이산 변화: 상태가 특정 시점에 점프한다. 대기열의 손님 수는 손님이 도착하거나 떠나는 사건(event)이 일어날 때만 1씩 바뀐다. 그 사이에는 아무 일도 없다.

이산 변화의 특수하고도 중요한 형태가 discrete-event다. 상태가 미리 정해진 격자 시점(매 1초)이 아니라 사건이 발생하는 불규칙한 시점에만 바뀐다는 점이 핵심이다. 이 사고방식은 시리즈 3부에서 깊이 다룬다.

3. 무작위성이 있는가 — 결정론적(deterministic) vs 확률적(stochastic)

  • 결정론적: 무작위 입력이 없다. 같은 입력을 넣으면 항상 같은 출력이 나온다. 행성 궤도 계산이 그렇다.
  • 확률적: 무작위 입력(도착 간격, 서비스 시간, 고장 발생 등)이 들어간다. 그래서 출력도 확률변수가 되고, 돌릴 때마다 결과가 달라진다.

이 세 번째 축이 가장 중요한 실무적 함의를 갖는다. 확률적 모델의 결과는 “한 번 돌린 숫자”가 아니라 분포이므로, 여러 번 반복(replication)해 신뢰구간으로 말해야 한다. 이것이 output analysis가 필요한 근본 이유다.

현실에서 가장 흥미롭고 어려운 시뮬레이션 — 공장, 물류, 서비스 시스템 — 은 대개 동적·이산·확률적의 조합이다. 이 조합이 바로 이산사건 시뮬레이션(Discrete-Event Simulation, DES)이며, 이 시리즈의 중심 주제다.

네 가지 주요 패러다임

위 축들이 “모델이 어떤 성질을 갖는가”를 묻는다면, 패러다임은 “그래서 어떻게 모델링할 것인가”에 대한 답이다. 대표적인 네 가지를 본다.

Monte Carlo 시뮬레이션 (정적·확률적)

시간 개념 없이, 무작위 표본을 대량으로 뽑아 어떤 양을 추정하는 방식이다. 가장 고전적인 예가 원주율 추정이다. 단위 정사각형에 점을 무작위로 뿌리고, 그중 사분원 안에 들어온 비율에 4를 곱하면 의 근삿값이 된다. 적분, 기대값, 리스크 확률(예: 포트폴리오가 일정 손실을 넘길 확률)을 구할 때 두루 쓰인다.

핵심은 시간을 따라가지 않는다는 점이다. “지금 이 양이 얼마인가”를 무작위 표본으로 때려 맞추는 것이지, 시스템이 시간에 따라 어떻게 변하는지를 보지 않는다. 이 시리즈에서는 별도의 글에서 다루며, 통계 시리즈와도 연결된다.

이산사건 시뮬레이션 (DES, 동적·이산·확률적)

상태가 사건이 일어나는 시점에만 바뀌는 시스템을 모델링한다. 손님 도착, 서비스 시작, 서비스 종료, 장비 고장 같은 사건들이 시간 축 위에 흩어져 있고, 시뮬레이션은 이 사건들을 시간 순서대로 처리하며 시계(simulation clock)를 사건에서 사건으로 점프시킨다.

대기열·서버·자원이 등장하는 거의 모든 시스템 — 콜센터, 은행 창구, 공항 수속, 공장 라인, 병원 — 이 DES로 표현된다. 이 시리즈의 3부 전체가 여기에 할애된다.

연속 시뮬레이션과 System Dynamics (동적·연속)

상태가 시간에 따라 매끄럽게 변하는 시스템을 미분방정식으로 기술하고 수치적으로 적분한다. 거시적 관점에서 “축적량(stock)“과 “흐름(flow)”, 그리고 그들 사이의 피드백 루프로 세상을 보는 방식을 특히 System Dynamics라 부른다. 인구 변화, 전염병의 거시적 확산(SIR 모델), 시장의 수요-공급 동역학 등을 큰 그림에서 다룰 때 쓴다. 개체 하나하나가 아니라 총량의 흐름에 관심이 있을 때 적합하다.

Agent-based 시뮬레이션 (개체 중심)

위 세 가지가 시스템을 위에서 내려다본다면, agent-based modeling(ABM)은 개별 주체(agent) 하나하나에 행동 규칙을 부여하고, 그들의 상호작용에서 전체 거동이 창발(emergence) 하도록 한다. 새 떼의 군집 비행, 도시의 보행자 흐름, 시장 참여자들의 거래, 개인 단위 전염 확산 등이 예다. 거시 방정식으로는 잡기 어려운 개체의 이질성과 국소적 상호작용이 중요할 때 강력하지만, 그만큼 모델링과 검증이 까다롭다.

같은 문제, 다른 패러다임

중요한 점은, 하나의 현상을 여러 패러다임으로 모델링할 수 있다는 것이다. 전염병 확산을 예로 들면,

  • System Dynamics: 전체 인구를 취약군(S)·감염군(I)·회복군(R)의 총량으로 보고 SIR 미분방정식으로 곡선을 그린다. 빠르고 거시적이지만, 개인차를 못 본다.
  • Agent-based: 사람 한 명 한 명을 agent로 두고, 누가 누구와 접촉하는지를 개체 수준에서 시뮬레이션한다. 풍부하지만 무겁다.
  • DES: 감염·발병·회복을 사건으로 보고 시간 순으로 처리한다.

어느 것이 옳다기보다, 답하려는 질문·필요한 추상화 수준·가진 데이터에 따라 선택이 갈린다. 거시 추세만 알면 되면 SD가 경제적이고, 개인별 정책 효과(거리두기 등)를 보려면 ABM이 맞다. 좋은 모델러는 도구를 먼저 정하지 않고 질문에서 출발해 패러다임을 고른다.

이 시리즈의 범위

패러다임분류시리즈에서의 비중
Monte Carlo정적·확률적2부에서 기초 (05)
DES동적·이산·확률적중심 주제 (3·4부)
Continuous / System Dynamics동적·연속5부에서 개관
Agent-based개체 중심5부에서 개관

이 시리즈는 DES를 중심축으로 삼고, 그 결과를 신뢰하기 위한 통계 방법론(4부)에 무게를 둔다. Monte Carlo는 무작위성의 기초로서 2부에서, 연속·agent-based는 시야를 넓히기 위해 5부에서 개관한다.

정리

  • 시뮬레이션 모델은 정적/동적, 연속/이산, 결정론적/확률적의 세 축으로 성격을 규정한다.
  • 현실의 복잡한 시스템은 대개 동적·이산·확률적의 조합, 즉 DES다.
  • 패러다임은 “어떻게 모델링하나”의 답이며 — Monte Carlo, DES, System Dynamics, Agent-based — 같은 현상도 질문과 추상화 수준에 따라 다른 패러다임으로 풀 수 있다.
  • 이 시리즈는 DES를 중심으로, 무작위성의 기초(Monte Carlo)와 결과의 통계 분석에 무게를 둔다.

다음 글(2부)부터는 모든 확률적 시뮬레이션의 토대가 되는 무작위성 — 컴퓨터가 어떻게 난수를 만들고, 그것을 원하는 확률분포로 바꾸는지 — 부터 다진다.