본문 바로가기

Research & Analysis/Simulation, ABM

Agent-based Model 과 NetLogo



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' 카테고리의 다른 글