Andrew Ford 헌정 강의: 『Modeling the Environment』 Chapter 3 - 연습 문제1 - 오류를 찾아라~

 


안녕하세요!
이번 글은 3장 Exercise 3.1에 등장하는 “Find the errors” 문제를 다룹니다. 원문에서는 그림 3.9의 네 가지 다이어그램 각각에 명백한 오류가 하나씩 숨어 있다고 하죠. Stella 같은 시스템다이내믹스(SD) 소프트웨어에서는 이런 연결을 시도해도 불가능하며, 저자가 “별도 그림 프로그램을 사용해 만든 고의적 에러 사례”라고 합니다.


1. 왜 이런 에러 예시가 있을까?

저량(Stock)유량(Flow)는 시스템다이내믹스 모델링의 기본 구조입니다.

  • 저량은 누적된 양(예: 인구, 물, 자본 등)을 나타내고,
  • 유량는 그 양이 들어오고( inflow) 나가는( outflow) 경로를 의미합니다.

규칙은 간단합니다:

  1. 유량은 “저량”과 “구름(Cloud)” 사이를 오가야 한다. (Cloud는 시스템 경계를 의미함)
  2. Converter(변환기)는 물질이 지나가는 경로가 아니라, 계산·정보만 제공하는 요소이다.
  3. 저량은 유량을 통해서만 값이 변한다
  4. 저량은 스스로에게 직접 “물질 이동”을 할 수 없다.

그럼 에러를 하나씩 살펴봅시다.


2. 에러 다이어그램별 해설

(1) 왼쪽 위 그림

  • 오류 포인트: 저량에서 나온 유량이 converter로 “바로” 연결되어 종료.
  • 왜 문제인가?
    • 유량은 물질이 실제로 이동하는 경로입니다. 흐름의 끝은 반드시 다른 저량이거나 구름이어야 하죠.
    • converter는 단지 수식(방정식)이나 계산을 하는 데 쓰이는 도구이므로, 거기서 유량가 멈춰서는 안 됩니다.

(2) 오른쪽 위 그림

  • 오류 포인트: converter를 거쳐 저량 간 물질 흐름이 연결되어 있음.
  • 왜 문제인가?
    • converter를 마치 “파이프”처럼 사용하고 있습니다.
    • 하지만 converter는 “이 변수 = 어떤 식(수식)” 역할만 할 뿐, 물질(양)이 그 안을 지나다닐 수 없습니다.
    • 저량→(유량)→저량 또는 저량→(유량)→구름 구조가 되어야 하는데, 여기서는 converter가 유량 경로로 쓰이고 있어 명백히 잘못되었죠.

(3) 왼쪽 아래 그림

  • 오류 포인트: 한 저량이 자기 자신에게 직접 물질을 보내거나, 유량 둘이 서로 교차 연결되어 저량이 꼬이는 형태.
  • 왜 문제인가?
    • 저량이 “자기 자신을” 채우는 식으로 돌아가는 구조는 허용되지 않습니다. (self-flow는 불가)
    • 유량이 서로 교차하는 것도 괜찮을 때가 있지만, 그 사이에 구름이나 다른 저량이 필요한데, 이 그림은 직접 꼬여버려서 논리적 물질 경로가 성립하지 않는 상태입니다.
    • Stella에서도 이런 식으로 끼워 맞추면 오류로 거부됩니다.

(4) 오른쪽 아래 그림

  • 오류 포인트: 저량이 converter와 혼동되거나, 종착점이 구름인지 저량인지 모호함.
  • 왜 문제인가?
    • 그림상, 오른쪽 끝이 converter인지 구름인지 헷갈리는 기호를 썼는데, 물질이 종착해야 할 곳(Stock/Cloud)이 명확치 않습니다.
    • converter를 마치 “물질이 들어가는 그릇”처럼 묘사한 것이라면 역시 잘못되었다고 볼 수 있습니다.

3. 핵심 정리: 올바른 저량–유량 연결 규칙

  1. 유량 경로:

    • 반드시 [저량] → [유량] → [저량 or 구름] 형태여야 한다.
    • converter를 경로 중간에 끼워 물질이 지나다니게 만들 수 없다.
  2. converter:

    • 단순히 “계산이나 수식(정보 연결)”을 담당.
    • 물질 저장·이동 역할 없음.
  3. 자기 자신에게 물질을 보내는 루프는 불가.

    • 저량이 자신의 유량을 통해 다시 저량으로 들어가는 직결은 안 됨.

4. 블로그적으로 한마디

Exercise 3.1 “Find the errors”를 통해 깨닫는 점은, “시스템다이내믹스 소프트웨어가 자동으로 막아줄 만큼, 스톡–플로우 구조에 기본 원칙이 엄격하다”는 것입니다.

  • “converter = 정보”
  • “스톡↔플로우 = 물리적 이동”
    이렇게 구분해 두면, 복잡해 보이는 모델도 안정적으로 구성할 수 있죠.

스텔라(Stella)나 벤심(Vensim) 같은 툴은 이런 기본 규칙을 코드 레벨에서 준수하도록 설계되어 있습니다.
“이 에러를 고의로 만들기 위해서는 그림 편집 프로그램을 따로 썼다”는 저자의 말이 이를 잘 보여주죠.
결국, “변수간 인과관계를 명확히 나누고, 물질 흐름(Stock↔Flow)과 정보 흐름(Converter↔Connector)을 섞지 말자”—이것이 이번 문제의 결론입니다.


요약

  • 왼쪽 위: 유량이 converter에서 끝남 (잘못)
  • 오른쪽 위: converter를 통해 물질 흐름이 연결됨 (잘못)
  • 왼쪽 아래: 저량이 자신에게 직접 물질을 보내는 루프, 유량 교차 구조가 뒤엉킴 (잘못)
  • 오른쪽 아래: converter와 구름(또는 저량) 구분이 불명확, 물질 종착지가 converter로 보임 (잘못)

이 네 가지 사례는 저량–유량 연결 원칙에 위배되는 전형적 실수입니다.

결론:
저량은 누적된 양, 유량은 그 양이 들어오고 나가는 경로, converter는 계산/정보 제공.
이 셋을 바르게 연결해야 “건전한 SD 모델”이 완성됩니다!


이상으로 Exercise 3.1 문제의 해설을 마칩니다. 다음 글에서는 저량–유량 모델링을 더 흥미롭게 만드는 또 다른 과제들을 다뤄볼 예정이니, 기대해 주세요!

댓글

이 블로그의 인기 게시물

경연제도와 시스템사고: 세종대왕의 조세제도 개혁에서 배우는 구조적 경청의 리더십

무기력을 이기는 시스템사고 (1) — 태도와 전략 사이에서

Fishery Game과 내쉬 균형