3·4부에서 우리는 이산사건 시뮬레이션(DES)을 깊이 파고, 그 결과를 신뢰하는 방법까지 다졌다. 하지만 2부 분류 글에서 보았듯 시뮬레이션 패러다임은 DES 하나가 아니다. 5부에서는 시야를 넓혀 다른 패러다임을 개관한다. 그 첫 번째가 상태가 매끄럽게 변하는 시스템을 다루는 연속 시뮬레이션, 그리고 그 거시적 사고방식인 System Dynamics다.

연속 시뮬레이션: 시간은 흐르고 상태도 흐른다

DES가 “상태는 사건에서만 점프한다”는 관찰에서 출발했다면, 연속 시뮬레이션은 정반대다. 상태 변수가 시간에 따라 끊임없이, 매끄럽게 변한다. 물탱크의 수위, 화학 반응물의 농도, 비행기의 고도와 속도 — 이런 양은 어느 한순간도 멈춰 있지 않는다.

이런 시스템은 보통 미분방정식으로 기술된다. 상태 의 변화율을 그 시점의 상태로 나타낸 것이다.

문제는, 현실적인 미분방정식은 손으로 풀리는 닫힌 해가 거의 없다는 점이다. 그래서 컴퓨터로 수치적분(numerical integration) 을 한다. 시간을 작은 간격 로 잘게 쪼개고, 각 스텝에서 변화율을 이용해 다음 상태를 근사하는 것이다. 가장 단순한 방법이 오일러 방법(Euler method) 이다.

오일러 방법은 직관적이지만 가 크면 오차가 빠르게 쌓인다. 그래서 실무에서는 같은 스텝으로 훨씬 정확한 룽게-쿠타(Runge–Kutta, 특히 RK4) 같은 고차 방법을 쓴다. 여기서 DES와의 근본적 차이가 드러난다. DES는 다음 사건으로 시계를 점프(next-event)시키지만, 연속 시뮬레이션은 고정된 작은 간격으로 시간을 꾸준히 전진(fixed time step)시킨다.

System Dynamics: 축적과 흐름, 그리고 피드백

System Dynamics(SD)는 1950년대 Jay Forrester가 창시한, 연속 시뮬레이션의 대표적 사고방식이다. 개별 개체가 아니라 시스템 전체의 총량이 시간에 따라 어떻게 흐르는지를 거시적으로 본다. 핵심 어휘는 세 가지다.

  • 축적량(stock): 시간에 따라 쌓이는 양. 저수지의 물, 인구, 재고처럼. 수학적으로는 흐름(flow)을 적분한 값이다.
  • 흐름(flow): 축적량(stock)을 채우거나 비우는 변화율. 유입·유출. 위 미분방정식의 에 해당한다.
  • 피드백 루프(feedback loop): 축적량의 현재 값이 흐름에 다시 영향을 주는 순환 구조.

피드백 루프에는 두 종류가 있다. 양의(강화) 루프는 변화를 증폭한다 — 예금이 이자를 낳고 그 이자가 다시 예금을 키우는 복리처럼. 음의(균형) 루프는 변화를 억제해 평형으로 되돌린다 — 방 온도가 설정값에서 벗어나면 보일러가 작동해 되돌리는 것처럼. 실제 시스템의 풍부한 거동(성장, 진동, 붕괴)은 이런 루프들과 지연(delay) 의 상호작용에서 나온다.

예: 전염병의 SIR 모델

System Dynamics의 교과서적 예가 전염병 확산의 SIR 모델이다. 인구를 세 개의 축적량(stock)으로 나눈다 — 취약군 (susceptible), 감염군 (infected), 회복군 (recovered). 이들 사이의 흐름은 다음 미분방정식으로 기술된다(총인구 , 감염률 , 회복률 ).

감염은 를 줄이고 를 늘리며( 흐름), 회복은 를 줄이고 을 늘린다( 흐름). 여기엔 양의 루프(감염자가 많을수록 새 감염이 늘어남)와 음의 루프(취약군이 줄면 감염이 둔화됨)가 함께 들어 있어, 그 유명한 감염 곡선의 상승·정점·하강이 자연스럽게 나온다. 이 방정식을 위의 수치적분으로 풀면 시간에 따른 곡선을 얻는다.

DES와 SD, 언제 무엇을

같은 전염병도 2부에서 보았듯 여러 패러다임으로 모델링할 수 있다. 선택 기준은 명확하다.

  • DES가 맞을 때: 개별 개체(손님·작업)를 하나하나 추적해야 하고, 이산적인 자원·큐·대기가 핵심일 때. “이 손님이 몇 분 기다렸나”가 궁금할 때.
  • SD가 맞을 때: 개체 단위가 아니라 총량의 흐름과 피드백이 관심사이고, 거시적 추세를 보고 싶을 때. “감염자 수가 언제 정점을 찍나”가 궁금할 때.

둘을 한 모델에 결합하는 하이브리드 시뮬레이션도 있다. 예를 들어 공장의 개별 작업 흐름은 DES로, 시장 수요의 거시 동역학은 SD로 모델링해 서로 맞물리게 하는 식이다.

정리

  • 연속 시뮬레이션은 상태가 매끄럽게 변하는 시스템을 미분방정식으로 기술하고, 오일러·룽게-쿠타 같은 수치적분으로 푼다. DES의 next-event와 달리 고정 간격으로 시간을 전진시킨다.
  • System Dynamics축적량·흐름·피드백 루프로 시스템의 총량 흐름을 거시적으로 본다. 양/음 피드백과 지연이 풍부한 거동을 만든다.
  • SIR 모델이 대표 예로, 세 축적량()의 미분방정식으로 감염 곡선을 재현한다.
  • 개체 추적·큐가 핵심이면 DES, 총량 흐름·피드백이 핵심이면 SD를 쓰며, 둘을 엮는 하이브리드도 가능하다.

다음 글에서는 위에서 내려다보는 SD와 정반대로, 개체 하나하나의 규칙에서 전체를 쌓아 올리는 agent-based 시뮬레이션을 본다.