NetLogo는 agent-based modeling 언어로 주로 자연 현상이나 사회 현상에 대해 시뮬레이션 할 때 사용되며 배우기 쉬운 ABM tool 중 하나이다. 디자인 원칙으로 Low threshold 와 High ceiling이 있다. Low threshold는 처음 사용하는 사람들도 간단한 모델을 만들 수 있다는 의미이고 High ceiling은 high end complex 모델을 가능하게 할 만큼 충분히 표현되어야 하며 논문 출간시 사용될 수 있다는 의미이다. NetLogo는 홈페이지에서 다운받을 수 있으며 사용자 인터페이스는 다음과 같다.


까맣게 보이는 창을 world 라고 하며 agent인 turtlepatch들로 이루어진 grid위에서 움직일 수 있다. edit을 누르면 world의 설정을 바꿀 수 있다. NetLogo의 기본적인 요소로 turtles, patches, links, observer가 있으며 각각의 특징은 다음과 같다.
  • Turtles : 동적인 에이전트이며 각각은 독립적으로 표현되고 좌표는 실수(real number)값을 가진다.
  • Patches : 정적인 에이전트이며 공간(space)으로 표현되고 좌표는 항상 정수(integer)값을 가진다.
  • Links : 에이전트는 서로 링크되어 연결될 수 있다.
  • Observer : 유저 인터페이스의 맨 아래를 보면 observer가 있다. 이 창을 통해 world를 관찰하고(observe), 통제하고(control), 명령하는 것(command)이 가능하다.
NetLogo 모델 타입은 크게 3가지가 있다. Patch만으로 이루어진 Patch only, turtle만으로 이루어진 Turtle only, patch와 turtle 모두로 이루어진 Patch and Turtle이 있다.

NetLogo의 화면 위쪽에는 Interface, Info, Code의 3가지 탭이 있다. Interface는 에이전트와 옵저버를 연결하는 역할을 하고 (즉, 첫 화면에서 world의 환경을 구성하고 실행하는 것) Info에는 NetLogo 모델에 대한 간략한 정보들이 있으며 code에서는 모델을 프로그래밍 하는 코드를 넣을 수 있다.


Interface 탭에서는 위와 같이 시뮬레이션 모델 실행을 통제할 수 있는 Button, Input, 파라미터 값을 설정할 수 있는 Silder, Switch, Chooser, 시뮬레이션 결과를 시각화해주는 Monitor, Plot, Output, Note 등을 생성할 수 있다.