2.5 NetLogo 모델 예제

Earth Science/Fire

1. 선택한 라이브러리의 Model Info의 해석 또는 해설

1.1 모델 개요

이 모델은 숲에서 화재가 났을 때 불의 확산을 시뮬레이션하는 모델이다. 시뮬레이션 모델의 가장 왼쪽 부분에 화재가 발생했을 때 가장 오른쪽까지 도달할 확률, 즉 숲 전체가 불탈 확률은 그 숲의 나무밀도(density of tree)에 의존적이라는 것을 보여준다. 이 예제는 가장 일반적인 복잡계(complex system, 자연계를 구성하고 있는 많은 구성성분 간의 다양하고 유기적 협동현상에서 비롯되는 복잡한 현상들의 집합체. 비선형 임계/임계 파라미터 존재)의 예시이다.

 

1.2 동작 원리

우선 화재는 가장 왼쪽 가장자리부터 시작하고 주변에 설정한 밀도 값에 따라 나무를 배치한다. 불은 동서남북 네 방향으로 퍼진다.

  • 이 모델은 ‘바람이 없다’라는 가정 하에 진행된다. 따라서 불의 진행방향은 인접한 나무가 있을 때만 진행할 수 있고, 만약 인접지역에 아직 타지 않은 나무가 없다면 더 이상 진행되지 못한다.

 

1.3 사용법

  1. 나무와 불씨를 배치하려면 Setup 버튼을 클릭한다.
  2. 시뮬레이션 시작은 Go 버튼을 클릭하면 된다.
  3. 밀도 슬라이드 바를 이용하여 나무의 밀도를 설정한다.

* 밀도를 변경한 뒤에 Setup버튼을 클릭해야 설정한 값으로 나무 배치가 가능하다.

 

1.4 주목해야할 사항

이 모델을 실행시켰을 때 얼마나 많은 나무들이 탈까? 같은 설정으로 여러 번 돌렸을 때 같은 결과가 발생할까? 실제와 얼마나 같을까?

각각의 불길을 나타내는 최소단위 삼각형(turtle)은 그 자리에서 움직임 없이 존재하다 불탄다. 이 삼각형이 불을 나타내는 것인데 움직임이 없다면 어떻게 불길이 움직인다고 표현하는 것인가? 이것이 시스템에서 다른 레벨을 표현한 예제 인 것이다. 하나의 삼각형을 움직임 없이 레벨을 달리 표현해 줌으로 써 불길이 이동하는 것을 표현할 수 있다.

 

1.5 시도할 사항

  1. 55%의 밀도로 설정하면 불길이 가장 오른쪽 까지 갈 확률은 희박하다.
  2. 70%의 밀도로 설정하면 불길은 거의 확실하게 오른쪽까지 갈 것이다.
  3. 59%의 밀도로 설정하면 불길이 오른쪽 까지 갈 확률은 반반이다.

나무 밀도에 따라 평균적으로 불타는 면적을 보기 위해 다양한 밀도로 설정하여 행동공간실험을 진행해 보자.

 

1.6 모델 확장

  1. 현 모델은 4방향(동서남북)으로 불이 전파되지만 대각선 방향을 포함하여 총 8개 방향으로 확장한 모델을 설계할 수 있다.
  2. 임계밀도(critical density)를 설정하여 불을 전파하는 모델을 설계할 수 있다.
  3. 바람을 설정하여 설계해 볼 수 있다.

 

1.7 NetLogo 특징

  1. 타지 않는 나무는 녹색으로, 탄 나무는 turtle(붉은색 삼각형)으로 표시된다. 이 turtle은 ‘불씨’와 ‘불’ 두 가지로 표현되며 불이 나무에 닿으면 그 나무는 다음 턴에 불씨가 된다. 프로그램은 점차 연소의 시각적 효과를 위해 turtle은 시간이 지날수록 점점 어두워진다.
  2. 불은 4방향으로 전파된다.
  3. 그래픽적으로(with turtle) 표현하지 않고 단지 불의 전파 경로만 필요하다면 코드를 좀 더 경량화 시킬 수 있고, 다 빠르게 실행시킬 수 있다. ‘CA 1D Rule 30’ 과 ‘CA 1D Rule 30 Turtle’을 이용하여 두 가지 예제를 모두 볼 수 있다.

 

1.8 관련 모델

  1. Percolation
  2. Rumor Mill

 

1.9 참고문헌

https://en.wikipedia.org/wiki/Forest-fire_model

 

1.10 사이트 이용

이 모델 또는 NetLogo 소프트웨어를 언급할 경우 아래 인용을 꼭 포함시켜야 한다.

모델 : Wilensky, U. (1997). NetLogo Fire model. http://ccl.northwestern.edu/netlogo/models/Fire. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

NetLogo : Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

 

2. 다양한 설정값을 이용한 NetLogo 시뮬레이션 결과

2.1 30%의 숲 밀도

결과 : 거의 확산 안됨 (6.7%)

NetLogo1

 

2.2 55%의 숲 밀도

결과 : 일부 확산 (10.4%)

NetLogo2

 

2.3 59%의 숲 밀도

  결과 : 중간 확산 (28.4%)

NetLogo3

 

2.4 59%의 숲 밀도

결과 : 오른쪽까지 도달(57.4%)

* 같은 설정, 다른 결과

NetLogo4

 

2.5 70%의 숲 밀도

결과 : 오른쪽 끝까지 도달 (97.9%)

NetLogo5

 

2.4 100%의 숲 밀도

결과 : 메모리 부족으로 오류 발생

NetLogo6

 

 

Sample Models/Art/Fireworks

1.1  모델 개요

선택한 Sample models/Art/Fireworks는 불꽃의 동작에 관한 모델링이다. 로켓들이 view의 하단에서 시작, 하늘 위로 발사되고 연이어 불꽃을 분출하면서 폭발한다.

 

1.2  동작원리

거북이로 표시되는 각각의 로켓은 초기 x 와 y 속도을 가지고 위로 발사된다.

공중의 한 특정 지점에서 폭발하게 되는데, 이것은 연속되는 거북이의 부화로 표현되어진다.

각각의 부화된 거북이들은 그 자체의 폭발로부터의 속도 및 original 로켓으로부터의 속도를 상속받고 있다.

 

1.3  사용방법

  1. SETUP버튼은 모든 슬라이더와 스위치에 표시된 값에 따라 모델을 셋팅한다.
  2. GO는 모델을 계속적으로 실행하는 버튼이다.
  3. FIREWORKS버튼은 0부터 슬라이더에 표시된 숫자 사이의 랜덤한 개수의 불꽃을 생성한다.
  4. FRAGMENT는 한 개의 불꽃이 폭발할 때 얼마나 많은 파편입자을 방출할지에 대해 결정한다.
  5. GRAVITY는 환경에서의 중력강도를 결정한다. GRAVITY값이 커질수록 더 큰 중력가속도를 줄 수 있는데, 즉 이는 입자들이 더 빠른 속도로 지면에 떨어지도록 하게 한다. GRAVITIY의 값을 적게 주면 그 반대의 효과가 나온다
  6. INIT-X-VEL은 슬라이더에 표시된 숫자의 양과 음의 값 사이의 랜덤한 숫자로 각각의 로켓의 초기 x의 속도를 셋팅한다.
  7. INIT-Y-VEL은 0과 슬라이더에 표시된 값에 10을 더한 수와의 사이의 랜덤한 숫자로 각각의 로켓의 초기 y의 속도를 셋팅한다. 이는 불꽃의 초기 y속도에 있어 다양한 범위를 보장해준다.
  8. FADE-AMOUNT는 폭발 입자들이 폭발 후 희미해지는 속도를 결정한다.
  9. TRAILS는 on/off기능을 사용하여 폭발입자가 남긴 자취를 보여지게 또는 안보여지게 한다. 즉 on을 켜면 turtle은 자취를 남기고 Off를 켜면 자취가 남겨지지 않는다.

 

* 이 모델은 실행되는 동안 슬라이더와 스위치의 변경사항이 모델에 영향을 주도록 구성되어져 있다. GO버튼이 눌러져 있는 동안 슬라이더와 스위치의 값을 변경할 수 있고, 이러한 변경사항은 뷰에서 즉각적으로 확인할 수 있다.

 

1.4 주목할 사항

INIT-X-VEL(초기x속도)와 INIT-Y-VEL(초기 y 속도)슬라이더로 실험해 보자. 초기 x속도가 0인 경우 로켓은 위쪽으로 똑바로 발사한다는 것을 알 수 있다.

초기 x값이 증가하게 되면 몇 몇 개의 로켓은 초기 x속도가 음수 또는 양수이냐에 따라 공중에서 좌나 우쪽으로 아치형의 곡선을 만들게 되는 것을 알 수 있다.

 

초기y속도는 중력값이 고정된 경우 불꽃의 높이는 초기 y 속도가 작을수록 점점 낮고, 초기 y 속도가 클수록 불꽃의 높이가 높아진다는 것을 관찰할 수 있다. 또한 각각의 로켓은 그것의 정점보다 약간 낮거나 같은 위치의 높이에서 폭발한다는 것을 관찰할 수 있다.

 

1.5  시도할 사항

GRAVITY(중력)슬라이더가 다른 값으로 셋팅 되었을 때 무슨 일이 일어나는지 관측해보자. 중력이 0으로 셋팅 되었을 때 무슨 일이 일어나는지 살펴보자. 모델 안에 있는 불꽃에게 어떠한 일이 일어나며 왜 이러한 현상이 발생하는지에 대해 설명할 수 있는가? 이는 중력의 중요성에 대해서 무엇을 말해주고 있는가?

이번에는 중력 슬라이더를 가장 높은 값으로 셋팅해보자. 불꽃의 동작에 있어서 어떤 차이점이 있는가? 중력과 공간에서의 물체의 움직임 관계에 대해서 어떠한 결론을 낼 수 있는가?

 

1.6  모델 확장

이 모델에서 표현된 불꽃은 단지 하나의 기본 유형일 뿐이다. 이 모델을 확장하는 가장 좋은 방법은 다른 더 많은 복잡한 종류의 불꽃을 생성하는 것이다. 어떠한 불꽃은 복합적인 폭발, 복합적인 컬러 또는 설계 시 조작된 특정한 형상을 지닐 수 있다.

 

이 모델은 2차원적인 관점에서 불꽃을 묘사한다는 것을 알 수 있다.

우리가 실제 불꽃 놀이를 볼 때, 그것은 3차원적 입체적인 형태로 보인다는 것을 알 수 있다.

이 모델의 viewpoint를 2D에서 3D로 개조시키는 확장을 시도해보자.

 

1.7  NetLogo 특징

이 모델의 중요한 측면은 폭발의 각 입자들이 원래 불꽃의 속성을 상속받았다는 점이다.

초기 x속도와 초기 y속도는 부모 불꽃과 상관관계가 있기 때문에 정보가 담긴 상속은 모델로 하여금 불꽃입자의 발사 운동을 적절하게 나타내도록 한다.

 

불꽃 입자의 fading 속성을 시각적으로 나타내기 위해서 이 모델은 scale-color를 사용하고 있다.

거북이 입자가 지면으로 떨어질 때, 펜을 아래쪽으로 해서 서서히 색상을 블랙으로 조정한다.

이미 언급한 바 있듯이 fade의 속도는 FADE-AMOUNT 슬라이더를 사용하여 조정할 수 있다.

 

2.  다양한 설정 값을 이용한 시뮬레이션 결과

2.1  Fireworks 설정

  1. Fireworks를 5로 설정한 경우 0 ~ 5 까지 랜덤한 수의 불꽃이 생성된다
  2. Fireworks를 20으로 설정한 경우 0~20까지 랜덤한 수의 불꽃이 생성된다.

NetLogo7

 

2.2 Fragment 설정

  1. Fragment를 5로 준 경우 한 개의 불꽃의 파편입자는 5개 생성된다.
  2. Fragment를 20으로 준 경우 한 개의 불꽃은 파편입자는 20개 생성된다.

NetLogo8

 

2.3  Gravity 설정

  1. Gravity를 0.2로 준 경우보다 1.5로 준 경우 입자가 더 빠른 속도로 지면에 떨어진다.

          즉 gravity값을 더 많이 줄수록 지면에 떨어지는 속도는 더 빠르다.

NetLogo9

 

2.4  Init-x-value 설정

  1. 초기 x 속도값을 0으로 준 경우 불꽃이 위쪽을 향하여 일직선으로 발사된다.
  2. 초기 x속도값을 높일 수록 초기 x 속도가 양수냐 음수냐에 따라 공중에서 좌나 우 방향으로 아치형의 곡선을 만든다.

NetLogo10

 

2.5  Init-y-value 설정

  1. 초기 y 속도가 작을수록 불꽃의 높이는 낮아지고, 초기 y속도가 클수록 불꽃의 높이가 높아진다.

NetLogo11

 

2.6 Fade-amount 설정

  1. Fade 값이 낮을수록 불꽃이 희미해지는 속도는 느려진다.
  2. Fade 값을 높이 설정할수록 불꽃이 희미해지는 속도가 빨라진다.

NetLogo12

 

2.7 Trails 설정

  1. Trail을 on으로 설정하면 폭발입자의 남긴 자취가 보여지게 되고, off로 설정하면 보여지지 않게 된다.

NetLogo13

 

 

늑대의 양 포식 모델 (Wolf Sheep Predation)

1. 선택한 라이브러리의 Model Info의 해석 또는 해설

1.1 모델 개요

이 모델은 포식자와 먹이의 환경 시스템의 안정성을 탐구한다. 만약 이 시스템이 결과적으로 하나 혹은 그 이상의 종이 멸종으로 결론지어지는 경향이 있다면 이 시스템은 불안정하다고 한다. 그에 반해서 개체수가 자동으로 증가 혹은 감소 하지만 시간이 지나도 모든 종의 개체수가 시스템에서 유지되는 경향이 있다면 이 시스템은 안정적이라고 한다,

 

1.2 동작 원리

이 모델은 두 개의 주된 변화가 있다.

첫 번째 변화는 늑대가 양을 잡아먹으려고 찾을 때 늑대들과 양들은 무작위로 배경 여기저기를 거닌다. 각각의 단계에서 늑대들은 에너지를 소비한다. 그래서 늑대들은 에너지를 보충하기 위해서 반드시 양을 잡아먹어야 한다. 에너지가 모두 소진되었을 때 늑대는 죽는다. 개체수가 유지되는 게 허락된다면, 각각의 시간의 단계마다 늑대 혹은 양은 번식할 확률이 고정된다. 이러한 개체 수의 변화는 매우 흥미롭지만 이 시스템은 결국 불안정하게 돼서 늑대 양중에 하나는 결국 멸종하게 된다.

두 번째 변화는 늑대들과 양들에 잔디를 추가한다. 늑대들의 행동은 첫 번째 변화와 동일하다. 그러나 두 번째 모델에서 양은 에너지를 유지하기 위해서 반드시 잔디를 먹어야 한다. 양의 에너지가 모두 소진되었을 때 양은 죽는다. 잔디가 먹히고 나서 정해진 시간이 지나야만 잔디가 다시 자란다. 이 변화는 첫 번째 보다 복잡하지만 그러나 일반적으로 안정적이다.

Wilensky와 Reismane 이 작성한 2 개 논문의 설명을 참고해서 이 모델을 구성했다

 

1.3 사용 방법

  1. 잔디를 설정할 것인가? true 스위치를 선택하면 이 모델이 잔디를 포함하고 또는 false 스위치를 누르면 늑대들(빨강색) 그리고 양들(흰색) 만 포함한다
  2. 슬라이더 파라미터를 조정하거나 혹은 기본 셋팅을 이용한다
  3. 셋업 버튼을 누른다
  4. 시뮬레이션을 시작하기 위해서 GO 버튼을 누른다
  5. 현재 개체 수 사이즈를 보기 위해서 모니터링 창을 보라
  6. 시간이 지남에 따라서 개체수의 변동을 보기 위해서 인구 차트를 보라

 

* Parameter:

INITIAL-NUMBER-SHEEP: 양들의 초기 개체 수

INITIAL-NUMBER-WOLVES: 늑대들의 초기 개체 수

SHEEP-GAIN-FROM-FOOD: 양들이 풀을 먹었을 때 얼마만큼의 에너지를 얻게 되는가

WOLF-GAIN-FROM-FOOD: 늑대들이 양을 먹었을 때 얼마만큼의 에너지를 얻게 되는가

SHEEP-REPRODUCE: 매 순간마다 양이 번식하는 확률

WOLF-REPRODUCE: 매 순간마다 늑대가 번식하는 확률

GRASS: 잔디가 이 모델에 포함되는지 안 되는지 여부

GRASS-REGROWTH-TIME: 잔디가 먹히고 나서 다시 자라는데 얼마나 걸리는가?

SHOW-ENERGY: 각 동물의 에너지를 숫자로 보여주는지 여부

 

* 주석:

늑대가 움직일 때 마다 에너지가 감소한다. 잔디가 포함된 모델의 경우 양이 움직일 때 마다 에너지가 감소한다.

 

1.4 주목할 사항

잔디가 포함되지 않았을 때 양과 늑대의 개체 수 변화를 관찰하라. 양과 늑대의 개체수의 증가와 감소 사이의 연관성을 주목하라. 어떤 식으로 연관돼있는가? 결국 어떤 일이 발생하는가?

잔디가 추가되었을 때, 잔디양의 변화를 나타내는 녹색라인이 개체 수 차트에 추가된다. 이 녹색라인을 주목해라.

현재 양 늑대 잔디 세 가지의 개체수가 관련성을 나타내고 있는가? 이것을 어떻게 설명 할 수 있는가?

몆 개의 변화 모델이 안정적이고 그에 반해서 다른 것은 그렇지 않을 거라고 생각하는 이유는 무엇인가?

 

1.5 시도할 사항

파라미터들을 다양한 설정으로 조정해 볼 것

특정한 파라미터가 모델의 안정성에 얼마나 영향을 미치는가?

늑대들과 양들만 포함하고 있는 경제시스템에서 어떤 파라미터가 안정적인 모델을 만들 수 있는가?

잔디를 true 로 설정하자 그러나 초기 늑대의 수는 0으로 설정하자

양과 잔디만 있는 모델은 안정적인 경제 모델이 된다. 왜 양만 있고 늑대가 없는 모델이 안정적인 이유는 무엇일 것 같은가?

안정적인 설정에서 주목할 때, 개체 수는 예측할 수 있는 속도로 변하는 경향이 있다. 어떤 파라미터가 이러한 속도를 빠르게 하거나 혹은 느리게 하는지 찾을 수 있는가?

번식 규칙을 바꿔보자. 예를 들면 번식은 고정된 확률보다는 에너지에 의해서 결정된다면 어떤 일이 발생할 것인가?

 

1.6 모델 확장

모델이 늑대들과 양 만으로 이루어 져있는데 모델이 안정적인 다른 모델이 있다. 새로운 요소가 필요하고 구현돼서 존재하는 행동은 변경 되야 한다. 이러한 버전을 개발할 수 있는가?

 

1.7 NetLogo 특징

두 가지 다른 종류의 번식모델 "거북이" 와 "늑대와 양" 모델의 사용을 주시하라

모델의 잔디의 사용 부분에 대해서 주시하라

늑대에게 먹히는 하나의 무작위의 양의 선택을 주시하라

 

1.8 연관된 모델

다른 환경에서 개체 수에 대해서 관심을 갖는 다른 모델 토끼와 잔디를 찾아보라

 

1.9 참고 문헌

Wilensky, U. & Reisman, K. (1999): 연관된 과학: 컴퓨터를 이용한 이론의 구성과 테스팅을 통한생물학의 학습 -모델의 접근을 포함한, International Journal of Complex Systems, M. 234, pp. 1 - 12.

(이 모델은 논문에서 설명한 모델의 약간의 확장 버전 이다)

Wilensky, U. & Reisman, K. (2006). 늑대 양 혹은 반디 불이처럼 생각하기, 컴퓨터 생물학의 학습-: 컴퓨터를 이용한 이론의 구성과 테스팅을 통한생물학의 학습 -모델의 접근을 포함한-Cognition & Instruction, 24(2), pp. 171-209.http://ccl.northwestern.edu/papers/wolfsheep.pdf

 

 

2. 다양한 설정 값을 이용한 NetLogo 시뮬레이션 결과

2.1 잔디가 포함되지 않은 모델의 실행 결과

초기에 양의 수는 100으로 설정하고 늑대의 수는 50으로 설정 되어 있다.

잔디가 없기 때문에 이동해도 양의 에너지는 감소하지 않고 늑대에게 잡혀 먹힐 때를 제외하고 양은 죽지 않는다. 늑대는 양을 먹으면 에너지가 20만큼 증가하고 이동 할 때마다 1씩 에너지가 감소한다.

양은 4% 이하로 랜덤 하게 증가하고 늑대는 5% 이하로 랜덤 하게 번식한다. 양과 늑대가 번식을 하면 부모는 기존에 가지고 있는 에너지의 1/2 로 에너지가 감소하고 자식은 부모 에너지의 1/2로 에너지가 설정된다.

잔디가 포함되지 않은 모델의 경우 처음에는 늑대와 양 모두 급격하게 늘어난다. 하지만 양의 수 증가 보다 양을 잡아먹는 늑대의 수가 더 급격하게 늘어나면서 양이 급격하게 감소한다. 양의 수가 급격히 감소하면서 양을 먹어야 하는 늑대의 수 또한 감소하고 결국에는 늑대가 멸종하게 된다. 늑대가 멸종한 후에는 양을 잡아먹는 천적이 없어 졌기 때문에 양들의 수가 계속 증가한다.

 

2.1.1 초기 설정

NetLogo14

 

2.1.2 늑대의 수가 급격히 증가함

NetLogo15

 

2.1.3 늑대가 멸종하고 나서 양의 수가 계속적으로 증가함

NetLogo16

 

2.2 잔디가 포함된 모델의 실행결과

초기에 양의 수는 100으로 설정하고 늑대의 수는 50으로 설정돼있다.

양이 이동할 때 에너지가 1씩 감소하고 잔디를 먹었을 때 에너지가 4증가한다. 양이 에너지를 모두 소멸하면 양은 죽는다. 늑대는 양을 먹으면 에너지가 20만큼 증가하고 이동할 때마다 1씩 에너지가 감소한다. 양은 4% 이하로 랜덤 하게 매 순간 증가하고 늑대는 5% 이하로 랜덤 하게 번식한다. 양과 늑대가 번식을 하면 부모는 기존에 가지고 있는 에너지의 1/2 로 에너지가 감소하고 자식은 부모 에너지의 1/2로 에너지가 설정된다.

잔디가 포함된 모델의 경우 처음에는 늑대와 양 모두 늘어난다. 양이 움직이면 에너지가 소모 되고 양이 잔디를 먹어서 에너지를 보충하지 않으면 양은 죽는다. 양에게 먹힌 잔디는 일정 시간이 지나야 다시 자란다 그래서 잔디의 수는 서서히 증가하고 이 모델에서는 새로 태어나는 양과 에너지가 고갈 되어 서 죽는 양이 존재한다. 그래서 이 모델은 잔디가 없는 모델보다는 양의 개체수가 서서히 증가했다가 잔디가 부족해지면 양의 수가 서서히 감소한다. 다시 잔디를 먹이로 하는 양의 개체수가 서서히 감소하면 잔디의 수가 증가한다. 양의 개체 수에 따라서 늑대의 수도 서서히 증가 혹은 감소한다.

이 모델에서 잔디 양 늑대 중에서 어느 종도 급격한 증가를 보이지 않기 때문에 포식자의 급격한증가로 인한 먹이의 부족현상과 먹이의 고갈로 인한 포식자의 멸종이 발생하지 않기 때문에 이 모델은 안정적으로 유지된다.

2.2.1 잔디를 선택한 설정

NetLogo17

 

2.2.2 잔디가 없는 모델보다 포식작가 비교적 서서히 증가함

NetLogo18

 

 

2.2.3 안정적인 모델을 유지함

NetLogo19

 

2.3 늑대 없이 양과 잔디만으로 구성된 모델

초기에 양의 수는 100으로 설정하고 늑대의 수는 0으로 설정돼있다.

양이 이동할 때 에너지가 1씩 감소하고 잔디를 먹었을 때 에너지가 4증가한다. 양이 에너지를 모두 소멸하면 양은 죽는다. 양이 번식을 하면 부모는 기존에 가지고 있는 에너지의 1/2 로 에너지가 감소하고 자식은 부모 에너지의 1/2로 에너지가 설정된다. 양에게 먹힌 잔디는 일정시간이 지나야 다시 자란다.

이 모델에서 처음에 양의 수가 증가하면서 잔디의 수가 감소한다. 잔디의 수가 감소하면 잔디를 먹는 양의 수가 감소한다. 양의 수가 감소하면 잔디의 수가 증가하고 잔디의 수가 증가하면 양의 수가 증가한다. 이러한 증가와 감소를 반복하면서 안정적인 모델을 유지한다.

 

2.3.1 초기 설정

NetLogo20

 

2.3.2 양의 수가 증가하면서 잔디의 수가 감소하고 잔디가 감소하면서 양의 수가 감소

NetLogo21

 

2.3.3 잔디와 양이 증가와 감소를 반복하면서 안정적인 모델을 유지

NetLogo22

 

2.4 잔디가 없고 늑대의 번식률을 낮춘 설정

초기에 양의 수는 100으로 설정하고 늑대의 수는 50으로 설정 되어 있다.

잔디가 없기 때문에 이동해도 양의 에너지는 감소하지 않고 늑대에게 잡혀 먹힐 때를 제외하고 양은 죽지 않는다. 늑대는 양을 먹으면 에너지가 20만큼 증가하고 이동 할 때마다 1씩 에너지가 감소한다.

양은 5% 이하로 랜덤 하게 증가하고 늑대는 2% 이하로 랜덤 하게 번식한다. 양의 수가 빠르게 증가하는 반면 늑대의 수는 상대적으로 느리게 증가한다. 늑대의 먹이에 해당하는 양의 수가 지속적으로 빠르게 증가하기 때문에 늑대 양 모두 멸종하지 않고 안정적으로 모델이 유지된다.

 

2.4.1 초기 설정

NetLogo23

 

2.4.2 양의 수가 매우 빠르게 증가하지만 늑대의 수는 상대적으로 느리게 증가해서 안정적인 모델

NetLogo24