0. Introduction
실제 데이터를 구할 수 없는 경우 많이 쓰는 방법이 시뮬레이션이다.
제한된 환경을 설정하고, 환경 안에서 다양한 설정들을 조작해 "만약 이게 실제 상황이 된다면 어떤 일이 일어날까?"라는 질문을 풀 수 있는 방법이다. 일반적인 과학/기술 문제 뿐만 아니라, 사회과학 쪽의 연구에서도 시뮬레이션은 다양한 용도로 사용된다.
1. ABM?
시뮬레이션은 다양한 방법이 있지만, 이 글에서는 agent-based model (ABM, 혹은 행위자 기반 모형)에 대해 알아보자.
말 그대로 행위자를 기반으로 세상을 바라보고 설계하고 분석하는 방법이다.
크게 다섯 가지 포인트를 이해해야 한다.
1.1. Agent
agent 는 대리인, 중개인 이란 뜻을 가지고 있다. 즉, 내가 실제로 볼 수는 없지만 보고 싶은 대상을 ABM에서 agent 로 설정하는 것이다.
사회과학에선 당연하게도, agent 는 사람이 된다.
1.2. Environment
agent 가 존재하는 환경을 말한다. 이 환경을 어떻게 설정하느냐에 따라, agent 의 행동이 달라질 수 있다.
설정에 따라 커뮤니티, 자연, 시장 등 다양한 설정이 가능하다.
1.3. Behaviors
agent 가 어떤 행동을 하느냐를 정하는 것을 말한다. 이 때 행동은, 다른 agent 를 대상으로 할 수도 있고, 환경요소와의 상호작용을 통한 결과를 낳을 수도 있다.
1.4. Parameters
시뮬레이션에서 사용할 변수들을 파라미터라고 한다.
1.5. Iterations
각 단계의 시뮬레이션을 반복해서 실행하는 것이 ABM의 핵심이다. 일종의 stage 개념으로 보면 된다.
예를 들어보자.
늑대와 양(두 agent)이 한 공간(environment) 안에 있다고 생각해보자.
그 공간에는 처음에 양 n 마리와 늑대 m 마리가 있다(n/m은 parameter).
늑대는 양을 잡아 먹고, 양은 서로 번식이 가능하다 (behaviors).
공간에는 풀이 있는데 일정한 속도로 자란다 (parameter).
시간이 지날 때마다(Iteration), 늑대는 일정한 확률(parameter)로 양을 잡아먹고, 양은 일정한 확률로 번식을 한다(parameter).
ABM이 한 단계씩 진행되면, 위의 상황들이 동시에 진행이 된다.
양과 늑대의 수는 늘고 줆의 변화가 있을 것이고, 이는 parameter를 바꿀 때마다 달라질 것이다.
2. ABM 소프트웨어
그럼 ABM을 어떻게 만들 수 있을까?
ABM을 실행하는 많은 방법이 있지만, 보통 전용 software 를 쓰는 것이 일반적이다.
(위키피디아에 정리가 잘 되어 있다: https://en.wikipedia.org/wiki/Comparison_of_agent-based_modeling_software)
그 중에서 NetLogo 를 써보자.
NetLogo를 쓰는 이유는 많지만,
(1) 무료이고
(2) 제공하는 다양한 모델들이 있어 개인이 수정하기가 쉬우며,
(3) Logo 라는 언어가 굉장히 쉬워 배우기 어렵지 않기에 NetLogo를 추천한다.
NetLogo 에 대해서는 다음 글에서 본격적으로 다루겠다.
3. 참고자료
ABM(& NetLogo)을 조금 더 잘 배우고 싶은 경우 다음 자료를 참고하자.
1. Coursera Network Dynamics of Social Behavior (University of Pennsylvania)
https://www.coursera.org/learn/networkdynamics/home/welcome
2. YouTube Tutorial by Gabriel Wurzer
https://www.youtube.com/watch?v=XJ-gO-yAwHU&list=PL8AF794C0800A6A73
3. Google 에 Introduction to NetLogo 라고 쳐보기 (안타깝게도 영어 자료가 대부분이다).
'Research & Analysis > Simulation, ABM' 카테고리의 다른 글
[NetLogo-01] NetLogo 설치와 설명 (0) | 2018.10.12 |
---|