1. 시스템 다이내믹스의 출발 “산업동태론은 산업시스템들의 행태를 연구하는 방식으로서, 제 1 부: 시스템 다이내믹스 개관 1. 시스템 다이내믹스의 출발 “산업동태론은 산업시스템들의 행태를 연구하는 방식으로서, 정책과 의사결정과 구조 그리고 시간지연 등이 어떻게 상호연결되어 시스템의 성장과 안정성에 영향을 주는지를 밝히고자 한다... 산업동태론은 시스템에 동태적인 특성을 부여하는 정보 네트워크의 중요성을 강조한다” (Forrester 1961, 서문) Jay Forrester는 공학자로써 15년간 MIT에서 공군 프로젝트를 수행하여 왔음. 1956년 MIT Sloan School에 합류. General Electric의 켄터키 가전공장의 불안정한 가동률에 대해서 처음으로 종이에 연필로 시뮬레이션 수행. 1958년 Harvard Business Review에 “Industrial Dynamics- A Major Breakthrough for Decision Makers”라는 논문 발표. 이때 Dick Bennett가 Dynamo의 전신인 SIMPLE(Simulation of Industrial Management Problems with Lots of Equations)을 만듦. 이후 Jack Pugh가 DYNAMO를 만듦. 1968년 보스톤시의 전 시장 John F. Collins가 Forrester 연구실 옆 방에 오게 되 어, 토론을 벌이면서 결국 Urban Dynamics로 발전함. Urban Dynamics는 많은 토론을 불러왔으며, 흑인들의 적개심을 사기도 하였음. 그러나 Urban Dynamics 로 인하여 World Dynamics나 Limits to Growth, National Model등에 관한 프로젝트가 성사되었으며, System Dynamics는 많은 사회적 관심을 받게 되었음. Forrester의 글의 일부는 http://sysdyn.mit.edu/people/jay-forrester.html에 저장되어 있음.
5. 시스템 다이내믹스의 세계관 구조 행태 제 1 부: 시스템 다이내믹스 개관 시스템 다이내믹스는 구조가 행태를 결정짓는다는 세계관에 기초하고 있다. 여기에서 구조(structure)란 피드백 루프(feedback loops)를 의미한다. (피드백 루프를 형성할 때 시스템은 비로소 자기동력을 지니게 된다) 그리고 행태(behavior)란 동태적 행태유형(dynamic pattern of behavior)을 의미한다. (미래의 예측은 불가능하다고 생각한다. 현재는 이해의 대상이며, 미래는 창조의 대상이다.) 구조 실제의 세계 단선적 사고 A B 피드백 시간지연 A B 일방향 즉각적 효과 행태 동태적 행태 유형 미래 예측
6. 시스템 다이내믹스와 시스템 사고 동태적 사고 (dynamic thinking) 시스템 사고 제 1 부: 시스템 다이내믹스 개관 6. 시스템 다이내믹스와 시스템 사고 시스템 다이내믹스의 세계관은 1980년대 들어서 시스템 사고(Systems Thinking)라는 용어로 통용되기 시작하였으며, Peter Senge의 Fifth Discipline에 의해 보편화되었다. 학자마다 약간씩 다르지만, 시스템 사고는 피드백 사고, 동태적 사고, 사실적 사고로 구성된다고 할 수 있다 (김도훈, 문태훈, 김동환 1999). 피드백 사고(Feedback Thinking)란 시스템의 작동 메커니즘이 피드백 루프라는 점을 인식하고 이를 발견하여 활용하는 사고방식이다. 동태적 사고(Dynamic Thinking)란 시스템의 정태적 상태보다는 부단한 변화에 초점을 두어야 시스템을 이해할 수 있다는 사고방식이다. 사실적 사고(Operational Thinking)란 시스템의 요소와 관계성을 구체적으로 직시할 때에만 시스템을 이해하고 조절할 수 있다는 사고방식이다. 동태적 사고 (dynamic thinking) 시스템 사고 (Systems Thinking) 피드백 사고 사실적 사고 (operational thinking) (feedback thinking)
7. 시스템 다이내믹스의 방법론적 위상 피드백 관계 시스템 다이내믹스 의 영역 시스템 다이내믹스 모델링 및 시뮬레 이션 분석 제 1 부: 시스템 다이내믹스 개관 7. 시스템 다이내믹스의 방법론적 위상 연구의 대상 (설명할 현상: 정태적 상태 / 동태적 변화) 연구의 방법 연구의 초점 (설명의 도구: 피드백 관계 / 단선적 관계) 피드백 관계 시스템 다이내믹스 의 영역 시스템 다이내믹스 모델링 및 시뮬레 이션 분석 인과지도 분석 및 시스템 사고 정태적 상태 동태적 변화 상관관계 시계열모델 회귀분석 산업I.O.모델 단선적 관계
8. 시스템 다이내믹스와 계량경제학의 비교 제 1 부: 시스템 다이내믹스 개관 Jay Forrester가 그러했듯이 시스템 다이내믹스 학자들은 극단적으로 이론적인 동시에 극단적으로 실용적인 정신을 지니고 있다. 시스템 다이내믹스는 극단적인 이론과 실용의 긴장 속에서 끊임없이 흔들리면서 균형을 잡으려 한다. 조선일보 1997년 8월 14일
9. 의사결정 시스템과 피드백 사고 제 1 부: 시스템 다이내믹스 개관 단선적 사고 물의 흐름 (변화율, 유량) 문제에 대한 정보 행동 결과 물높이 (수준, 저량) 피드백 사고 문제에 대한 정보 행동 결과 손 눈 밸브 컵 물높이 (수준, 저량) 물의 흐름 (변화율, 유량) 조절 정책
10. 인과지도와 저량/유량 흐름도 System Dynamics 시스템 다이내믹스 제 1 부: 시스템 다이내믹스 개관 구조에 초점을 두는 시스템 사고 + 동태적 행태에 초점을 두는 시뮬레이션 저량/유량 흐름도 Stock/Flow Diagram 인과지도 Causal Map 손 눈 컵 물높이 (수준, 저량) 정보 물의 흐름 (변화율, 유량) 조절 정책 목표 밸브 열기 + + 변화율 (정책) - 유량 목표와의 갭 - 수준 정보 + 목표수준 수준 (상태) 이제 인과지도에 대해서 생각해 보자, 저량/유량 흐름도에 대해서는 Vensim PLE를 사용하여 나중에 설명한다.
11. 시스템 사고: 행태에서 구조로 그리고 전략으로 제 2 부: 시스템 사고와 인과지도 11. 시스템 사고: 행태에서 구조로 그리고 전략으로 행태 구조 전략 정책 지렛대 Policy Leverage 연속적 유형 Continuous Patterns 내부적 피드백 루프 Endogeneous Feedback Loops 기다림 (Wait and See) - 음의 피드백 루프 (Negative Feedback Loop) 완충장치 (Buffer Device) - 음의 피드백 루프 + 시간지연 (Negative Feedback Loop + Time Delay) + 임계지점 (Critical Mass) 양의 피드백 루프 (Positive Feedback Loop)
12. 음의 피드백 루프 제 2 부: 시스템 사고와 인과지도 음의 피드백 루프는 스스로 균형 상태를 유지하려고 한다. 제 2 부: 시스템 사고와 인과지도 12. 음의 피드백 루프 음의 피드백 루프는 스스로 균형 상태를 유지하려고 한다. 자기균형적 루프(Self-Balancing Loop), 목표지향형 피드백(goal seeking feedback), 안정화 피드백(stabilizing feedback), 자기억제 피드백(self restraining feedback) 등으로 불린다. 물가 임금 임금억제 정책 임금인상 압력 + - +
13. 양의 피드백 루프 제 2 부: 시스템 사고와 인과지도 구전효과 (word of mouth) 판매 제 2 부: 시스템 사고와 인과지도 13. 양의 피드백 루프 구전효과 (word of mouth) 판매 양의 피드백 루프는 어느 한쪽의 극단으로 강화시키는 속성을 갖는다. 따라서, 자기강화적 루프(Self-Reinforcing Loop), 일탈 강화적 피드백(deviation amplifying feedback) 등으로 불린다. 악순환(vicious circle)이나 선순환(virtuous circle) 모두 양의 피드백 구조를 갖는다. 만족하는 고객의 수 상품 칭찬 내부 불만 통제 외부에의 의존 + - 한국일보 1999년 2월 3일
14. 피드백 루프의 원형 제 2 부: 시스템 사고와 인과지도 제 2 부: 시스템 사고와 인과지도 14. 피드백 루프의 원형 사회 시스템은 몇가지 피드백 루프의 원형으로 조합되며, 이를 사용하여 복잡한 사회 시스템을 쉽게 이해할 수도 있다. 경쟁의 상승 (Escalation Effects) - 오류의 크기 시간지연이 있는 음의 피드백 루프 => 시스템의 파동 + + B의 성과 A의 성과 + + + A의 상대 적 우월 B의 상대 적 우월 시간지연 (-) (-) 오류를 수정 하는 행동 B의 노력 A의 노력 - - 성장에의 제약 (Limits to Growth) 빈익빈 부익부 A의 자원 + 제약조건 (+) + + - A의 성공 성공한 사람 에게 자원배분 성장 행위 + (+) 실제 상태 (-) 억제행위 + + + (+) B의 자원 B의 성공 +
16. 피드백 시스템의 변화 제 2 부: 시스템 사고와 인과지도 제 2 부: 시스템 사고와 인과지도 16. 피드백 시스템의 변화 시스템의 피드백 구조를 이해하고 나면, 피드백 구조를 활용하여 시스템을 어떻게 바람직한 방향으로 변화시킬 것인가에 대한 질문이 제기된다. 피드백 구조를 활용한 시스템의 변화에는 크게 보아 두가지 수단이 존재한다. 첫째는 변수 값(파라미터)을 조정하는 정책이며, 둘째는 구조(피드백 구조)를 변화시키는 정책이다. 양의 피드백 구조 악순환고리 선순환고리 (vicious (virtuous (positive feedback) circle) circle) 음의 피드백 구조 정체화고리 안정화고리 (negative feedback) (stagnating (stabilizing circle) circle) 파라미터조정 정책 정책개입 의 방향 구조조정 정책
20. Vensim 의 첫 화면 제 3 부: Vensim에서의 인과지도 시뮬레이션 결과 화일 시뮬레이션 준비 작업변수 (Workbench variable) 현실성 검토 (reality check) 시뮬레이션 시작 사용 중인 화일 원인변수추적 결과변수추적 변 수 선 택 보 조 변 수 / 상 수 준 변 인 과 관 계 화 살 표 변 화 율 수 그 림 자 / 유 령 설 명 첨 가 지 우 기 시뮬레이션 결과 보기 위한 방식 설정 Control Panel 수 식 정 의 피드백 루프 모델 설명 작업변수 와 원인변수 들의 변화 그래프 박스와 변수 이름의 위치 박스 설정/모양 작업변수 의 변화 그래프 작업변수 의 변화 테이블 뒤로 보내기 시뮬레이션의 비교 변수이름 색 박스색 (수준,변화율변수) 화살표 두께 변수이름의 폰트,크기,진하기,이태리,밑줄,강조 (변수를 선택한 다음에 누를 것) 화살표색 (인과관계) 화살표 방향 (인과관계)
21. 인과지도 그리기의 원칙 제 3 부: Vensim에서의 인과지도 수요는 가격을 증가시킨다. 1. 변수 는 명사이고, 동사는 화살표이다. + 수요 가격 수요가 증가하면, 가격이 오른다. 수요가 감소하면, 가격이 내린다. 2. 변수를 긍정적으로 작명하라. + 수요 가격 ( O ) ? 비수요 고가 ( X ) 3. 변수를 구체화 시켜라. ? + 수요 가격 상품 재고 ( X ) - - 고객의 주문량 상품 재고 가격 ( O )
22. 인과지도 구축의 단계 인과지도 시스템 의문 제 3 부: Vensim에서의 인과지도 여기에서는 전염병의 확산에 관한 인과지도를 구축해 보기로 한다. 인과지도는 다음과 같은 단계에 따라서 구축될 수 있다. 인과지도 인과지도 그리기 피드백 의 발견 주요변수 의 추출 구체적인 질문과 답 시스템 의문
23. 인과지도의 구축: 구체적인 질문과 답 제 3 부: Vensim에서의 인과지도 전염병은 왜 확산될까? 전염병에 걸린 사람과 건강한 사람이 만나기 때문에... 그러면 전염병에 걸린 사람과 건강한 사람이 만나는 횟수는 무엇이 결정하는가? 전염병에 걸린 사람이 많을수록….. 또 없을까? 건강한 사람이 많을수록…..
24. 인과지도의 구축: 주요 변수의 추출 제 3 부: Vensim에서의 인과지도 전염병에 걸린 사람과 건강한 사람이 만나는 횟수 모델의 제목: 전염병 확산 전염병은 왜 확산될까? 전염병에 걸린 사람과 건강한 사람이 만나기 때문에... 전염병에 걸린 사람과 건강한 사람이 만나는 횟수는 무엇이 결정하는가? 전염병에 걸린 사람이 많을수록….. 또 없을까? 전염병에 걸린 사람의 숫자 건강한 사람이 많을수록….. 건강한 사람의 숫자
25. 인과지도의 구축: 피드백의 발견 제 3 부: Vensim에서의 인과지도 전염병에 걸린 사람의 숫자 + + 전염병에 걸린 사람과 건강한 사람이 만나는 횟수 + 건강한 사람의 숫자 - + 전염병에 걸리는 사람의 숫자
26. 인과지도의 구축: Vensim에서 인과지도 그리기 1. File메뉴에서 New Model을 누른다. 2. 시뮬레이션 시간설정에 관한 질문 박스가 나오면 그냥 OK를 누른다. (인과지도는 시뮬레이션 할 것이 아니다. 그런데 Cancel을 누르면 하단의 아이콘들이 사라진다.) 3. 이제 앞서 그린 인과지도를 다음과 같이 그려서 피드백 루프가 명확하게 드러나도록 해 보자. 전염병에 걸린 사람의 숫자 건강한 사람의 숫자 전염병에 걸린 사람과 건강한 사람이 만나는 횟수 전염병에 걸리는 사람의 숫자 + - 1) 보조변수,상수 아이콘 선택 => 변수 입력 2) 화살표 아이콘 선택 => 원인 변수 위에서 마우스 왼쪽 버튼 클릭 => 중간에 적당한 위치에서 한번 더 클릭 => 결과 변수 위에서 마지막으로 클릭 3) 설명첨가 아이콘 선택 => 원의 가운데에서 클릭 => 적당히 선택 변수이름 위에서 마우스 오른쪽 버튼 누름, Shape에서 clear box 선택, OK, 이름 오른쪽 하단의 동그라미로 크기 조절 1. 어떻게 변수이름을 여러 줄에 쓰는가? 질문 & 답 2. 화살표 끝에 어떻게 +, - 기호를 붙이는가? 화살표의 중간 동그라미에서 마우스 오른쪽 버튼 누름, polarity에서 + 또는 - 선택.
28. 인과지도에서 저량/유량 흐름도로의 전환 저량/유량 흐름도 인과지도 제 4부 저량/유량 흐름도의 개념 인과지도를 통하여 개념적으로 피드백 루프를 확인한 다음에는, 이를 컴퓨터로 시뮬레이션할 수 있는 모델로 전환하여야 한다. 컴퓨터로 시뮬레이션할 수 있는 모델을 저량/유량 흐름도 (Stock/Flow Diagram)라고 한다. 저량/유량 흐름도 변수의 수식 추가 저량/유량 흐름도 그리기 구체적인 변수의 추가 저량과 유량의 구별 인과지도
30. 시스템의 기본 구성 요소: 저량과 유량 - 시스템은 저량(Stock)과 유량(Flow)로 구성된다. 제 4부 저량/유량 흐름도의 개념 30. 시스템의 기본 구성 요소: 저량과 유량 - 시스템은 저량(Stock)과 유량(Flow)로 구성된다. - 시스템은 쌓이는 것과 흐르는 것으로 구성된다. - 시스템은 정지된 것과 움직이는 것으로 구성된다.
제 4부 저량/유량 흐름도의 개념 31. 증가유량과 감소유량 수준변수 증가유량 감소유량
32. 저량과 유량의 구별 제 5 부 시스템 다이내믹스 모델링 저량(Stock): 축적되는 변수 사진을 찍어서 선명하게 보이면 저량, 흐릿하거나 안보이면 유량 유량(Flow): 흘러 다니는 변수 보조(Auxiliary) 변수는? 저량과 유량의 활동이나 상태에 대한 지표. 보조변수와 변화율 변수의 차이는? 유량은 저량의 직접적인 변화(증가, 감소)를 의미한다. 보조변수는 유량과 저량의 계산을 쉽게하기 위해 보조하는 변수. 보조변수 전염병에 걸린 사람의 숫자 건강한 사람의 숫자 전염병에 걸린 사람과 건강한 사람이 만나는 횟수 전염병에 걸리는 사람의 숫자 + - 저량 저량 유량
33. 구체적인 변수의 추가 제 5 부 시스템 다이내믹스 모델링 + 전염병에 걸린 사람과 건강한 사람이 만나는 횟수 사람의 숫자 건강한 사람의 숫자 전염병에 걸린 사람과 건강한 사람이 만나는 횟수 전염병에 걸리는 사람의 숫자 + - 1. 전염병에 걸린 사람과 건강한 사람이 만나는 횟수는 어떻게 결정되가? 도대체 사람들은 하루에 몇 명이나 만나는가? 하루에 만나는 사람의 숫자 한 사람당 하루에 만나는 사람의 숫자 2. 만나는 사람들중에서 전염병에 걸린 사람은 몇사람일까? 전염병에 걸린 사람의 비율 총인구 (건강한 사람 + 전염병 환자) 3. 전염병에 걸린 사람을 만나다고 해서 전부 전염병에 걸릴까? 전염병 환자와 만나서 전염되는 비율
34. 저량/유량 흐름도 그리기 제 5 부 시스템 다이내믹스 모델링 이제 다음과 같은 저량/유량 흐름도를 그릴 수 있을 것이다. 여기에서 주의할 점은 저량은 저량 변수로, 유량은 변화율 변수로 그리는 것이다. 저량/유량 흐름도를 그릴 때에는 수준변수를 먼저 그리고, 변화율 변수 그리고 보조변수를 그린다. 변화율 변수를 그릴 때에는 감소시키는 수준변수에서 먼저 클릭하고, 증가시키는 수준변수에서 클릭한다. 건강한 사람의 숫자 전염병에 걸린 전염병에 걸리는 하루에 만나는 한 사람당 하루에 만나는 사람의 숫자 사람의 비율 총인구 전염병에 걸린 사람과 건강한 사람이 만나는 횟수 전염병 환자와 만나서 전염되는 비율 주의할 점: ‘건강한 사람의 숫자’라는 저량과 ‘전염병에 걸리는 사람의 숫자’라는 유량간의 인과관계는 표시되어 있지 않다. 이는 흐름(이동)을 표시하기 위한 것이다.
35. 상수의 수식정의 제 5 부 시스템 다이내믹스 모델링 1. ‘수식정의’라는 아이콘을 누른다. (아직 정의되지 않은 변수들이 검게 나타날 것이다). 2. 정의하고자 하는 변수를 클릭하면 수식정의 윈도우가 나타난다 3. 마우스를 클릭하여 수식을 정의한다. 4. 상수이기 때문에 5를 클릭한다. 5. 동일한 방식으로 ‘전염병환자와 만나서 감염되는 비율’을 0.1로 정의하자.
36. 수준변수의 수식정의 제 5 부 시스템 다이내믹스 모델링 5. 이 수식의 의미는 ‘전염병에 걸리는 사람의 숫자’라는 변화율변수를 계속해서 뺀다는 의미이다. 이 수식은 Vensim PLE에서 자동으로 설정해 준다. 1. ‘건강한 사람의 숫자’라는 수준변수를 클릭해 보자. 2. 수준변수의 수식은 따로 정의할 필요가 없다. 3. 다만, 초기값(Initial Value)만을 정의해 주면 된다. 여기에서는 1,000,000 명으로 정의하였다. 4. 수준변수에서는 나머지에 대해서는 신경 쓸 필요가 없다. 6. 마찬가지로 ‘전염병에 걸린 사람의 숫자’의 초기값을 10명으로 정의하자.
37. 변화율변수와 보조변수의 수식정의 제 5 부 시스템 다이내믹스 모델링 1. ‘전염병에 걸리는 사람의 숫자’라는 변화율 변수를 클릭하자. 2. 윈도우의 중간 오른쪽에 Variables 에서 ‘전염병에 걸린 사람과 건강한 사람이 만나는 횟수’라는 변수를 클릭하자. (수식 정의 윈도우에 클릭한 변수 이름이 나타날 것이다.) 3. 계산기에서 * 를 클릭하자. 4. 다시 Variables에서 ‘전염병에 걸린 사람과 건강한 사람이 만나는 횟수’를 클릭하자. 5. OK를 눌러 변화율 변수의 수식정의를 끝낸다. Variables 윈도우에는 인과관계 화살표로 연결되어 이 변수에 영향을 주는 변수 이름들이 나타난다.
38. 나머지 변수들의 수식정의 제 5 부 시스템 다이내믹스 모델링 나머지 변수들에 대해서도 다음과 같이 수식들을 설정해 보자. (01) 건강한 사람의 숫자= INTEG (- 전염병에 걸리는 사람의 숫자, 1e+006) (02) 총인구 = 건강한 사람의 숫자 + 전염병에 걸린 사람의 숫자 (03) 전염병 환자와 만나서 전염되는 비율 = 0.1 (04) 전염병에 걸리는 사람의 숫자 = 전염병에 걸린 사람과 건강한 사람이 만나는 횟수 * 전염병 환자와 만나서 전염되는 비율 (05) 전염병에 걸린 사람과 건강한 사람이 만나는 횟수 = 하루에 만나는 사람의 숫자 * 전염병에 걸린 사람의 비율 (06) 전염병에 걸린 사람의 비율 = 전염병에 걸린 사람의 숫자 / 총인구 (07) 전염병에 걸린 사람의 숫자= INTEG (전염병에 걸리는 사람의 숫자, 10) (08) 하루에 만나는 사람의 숫자 = 건강한 사람의 숫자 * 한 사람당 하루에 만나는 사람의 숫자 (09) 한 사람당 하루에 만나는 사람의 숫자= 5
39. 시간설정과 Data set 제 6 부 시뮬레이션 및 결과 분석 1. Model 메뉴를 누르고, 다시 Time Bounds라는 메뉴를 누르면, 오른쪽과 같은 시뮬레이션 시간을 설정하는 윈도우가 나타난다. 2. - 시뮬레이션을 시작하는 시각 (시뮬레이션 결과의 그래프에 나타남) - 시뮬레이션 종료 시간 - 시뮬레이션 진행 단위시간 (여기에서는 하루마다 시뮬레이션 수행) - 시뮬레이션 결과를 저장하는 간격 - 시간의 단위 (여기에서는 하루) 3. ‘시뮬레이션 시작’이라는 아이콘을 누른다. Data Set이란 시뮬레이션 시작이라는 아이콘을 누르면, Data Set이 Current로 되어 있는데, 덮어 쓸 것인지를 물어볼 것이다. Data Set이란 시뮬레이션 결과를 저장하는 파일을 의미한다. Vensim에서는 하나의 모델을 이리 저리 변화시켜 보면서 상이한 시뮬레이션 결과를 다른 파일에 저장하도록 허용하고 있다. 이러한 파일을 Data Set이라고 한다.
42. Workbench 변수와 시뮬레이션 결과 제 6 부 시뮬레이션 및 결과 분석 Vensim 의 모델링은 ‘작업대(workbench)의 비유체계를 가지고 있다. Vensim의 아이콘들은 일종의 ‘도구’이고, 모델에 포함된 변수들은 도구가 적용될 수 있는 ‘재료’라고 생각할 수 있다. ‘작업변수(Workbench variable)’란 ‘도구가 계속해서 적용되는 재료’이다. 즉, Vensim의 도구들은 (원인변수 추적, 결과변수 추적, 피드백 루프, 작업변수와 그 원인변수들의 변화 그래프, 작업변수의 변화 그래프, 작업 변수의 변화 테이블) 워크벤치 변수에 계속 적용된다. 모델의 변수들을 작업변수로 만들려면, 변수선택 아이콘하에서 특정 변수를 더블 클릭한다. 여기에서는 ‘전염병에 걸린 사람의 숫자’를 작업변수로 설정한다. Vensim 화면의 맨 윗부분에 작업하는 파일의 이름과 함께 작업변수의 이름이 나타난다. Current Graph for 전염병에 걸린 사람의 숫자 전염병에 걸린 사람의 숫자 2 M 2 M 1.5 M 1.5 M 1 M 500,000 1 M 전염병에 걸리는 사람의 숫자 200,000 500,000 150,000 100,000 50,000 5 10 15 20 25 30 35 40 45 50 Time (day) 25 50 전염병에 걸린 사람의 숫자 : Current Person Time (day)
43. Control Panel의 설정 제 6 부 시뮬레이션 및 결과 분석 작업변수는 시뮬레이션을 수행하면서 즉각 즉각 확인하는 변수이다. 다른 여타의 변수들의 결과를 확인하고, 또 주요 변수들의 동태적 변화를 비교하려면 시뮬레이션 결과를 보여주는 방식을 설정할 필요가 있다. 이를 수행하기 위해서는 Control Panel이라는 메뉴를 살펴볼 필요가 있다. Control Panel은 Window라는 메뉴의 하위 메뉴이며, 상단의 오른쪽 끝 아이콘을 선택하여 부를 수도 있다. Control Panel을 열고, Graph를 누르면, 오른쪽 화면이 보인다. 작업변수를 설정하는 메뉴 시뮬레이션 결과 그래프에서 시간표식을 설정 시뮬레이션 결과 그래프의 세로축 숫자 단위 설정 사용할 Data Set들을 지정 시뮬레이션 결과 그래프에 포함시킬 변수 지정 이제 New라는 아이콘을 누른다. 그러면 다음의 페이지와 같은 윈도우가 나타날 것이다.
44. 시뮬레이션 결과의 그래프 보기 전염병 확산의 과정 제 6 부 시뮬레이션 및 결과 분석 앞에서 New 아이콘을 누르면 다음과 같은 화면이 나타난다. 여기에서 시뮬레이션 결과에 포함될 변수들과 사용할 Dataset, 그리고 그래프의 특성 등을 설정한다. 전염병 확산의 과정 1 M Person 200,000 Person/day 2 M Person 500,000 Person 100,000 Person/day 1 M Person Person Person/day Person 5 10 15 20 25 30 35 40 45 50 Time (day) OK를 누르면 앞의 Control Panel로 돌아간다. 이때 Display를 누른다. 건강한 사람의 숫자 : Current Person 전염병에 걸리는 사람의 숫자 : Current Person/day 전염병에 걸린 사람의 숫자 : Current Person
45. 시뮬레이션 결과의 표식 선의 굵기와 번호 표식 제 6 부 시뮬레이션 및 결과 분석 앞의 시뮬레이션 결과에서 각 변수의 변화가 다른 색으로 표시되었다. 그런데 이를 흑백 프린터로 프린트하면 알아볼 수가 없다. 이를 식별하기 위하여 다음과 같은 두가지 방법을 사용한다. 1. 앞의 Graph 설정에서 각 변수의 선의 굵기를 조정한다. LineW라는 칸에 1,2,3… 등의 값을 설정하면, 선의 굵기가 달라진다.. 2. 각 변수의 선에 번호를 부여하는 방법이 있다. 이는 Option이라는 메뉴에서 설정한다. 3. 그리고 나서 Control Panel에서 Display를 눌러 보라. 선의 굵기와 번호 표식 1 1 1 1 1 M Person 1 200,000 Person/day 1 2 M Person 500,000 Person 1 2 100,000 Person/day 3 3 3 3 1 M Person 3 2 Person Person/day 3 Person 2 1 2 2 3 2 3 2 3 2 3 3 1 2 1 2 1 2 1 5 10 15 20 25 30 35 40 45 50 Time (day) 건강한 사람의 숫자 : Current 1 1 1 1 1 1 1 Person 전염병에 걸리는 사람의 숫자 : Current 2 2 2 2 Person/day 전염병에 걸린 사람의 숫자 : Current 3 3 3 3 3 Person
46. 시뮬레이션 결과의 다양한 검토 제 6 부 시뮬레이션 및 결과 분석 종종 시간의 추이에 따른 변수 값의 변화가 아니라 다른 변수 값의 추이에 따른 변화를 확인할 필요가 있다. 예를 들어서 전염병에 걸린 사람(수준변수)이 증가할 수록 새로이 전염병에 걸리는 사람(변화율 변수) 의 값이 어떻게 변화하는지를 검토해 보려 한다고 하자. 이때에는 Control Panel에서 X-축에 ‘전염병에 걸린 사람의 숫자’라는 변수를 설정한다. 전염병에 걸린 사람이 증가함에 따라 새로 걸리는 사람의 숫자의 추이 200,000 150,000 1 1 1 100,000 1 1 1 1 1 50,000 1 1 1 1 1 1 1 1 1 250000 500000 750000 1e+006 전염병에 걸린 사람의 숫자 전염병에 걸리는 사람의 숫자: Current 1 1 1 1 1 1 1 1 Person/day
47. 민감도 분석(Sensitivity Analysis) 제 6 부 시뮬레이션 및 결과 분석 47. 민감도 분석(Sensitivity Analysis) 1. 변수 값이 다양하게 변화할 때, 시뮬레이션 결과가 어떻게 변화하는지를 알아보는 것을 민감도 분석이라고 한다. 2. Vensim PLE에서는 Data Set을 활용하여 민감도 분석을 한다. 3. 먼저 ‘시뮬레이션 시작’ 아이콘 옆의 ‘시뮬레이션 준비’ 아이콘을 누른다. 4. 그러면 상수 변수들이 파란색으로 나타난다. 5. ‘한 사람당 하루에 만나는 사람의 숫자’를 3명으로 바꾸고, 시뮬레이션 시작 아이콘을 누른다. (이 값은 일시적이다) 6. 새로운 시뮬레이션 결과를 current에 덮어 쓸지 물어볼 것이다. 아니라고 하고, 새로 Data Set를 run1으로 설정한다. 7. 이제 Graph 설정 패널을 아래와 같이 조절하고 Display를 누른다. (작업변수의 그래프를 나타내는 왼쪽의 Graph 아이콘을 누르면 곧장 작업변수에 대한 민감도 분석 그래프가 나타난다) 민감도 분석 (하루에 만나는 사람이 5에서 3으로 변화) 1 M Person 1 2 1 2 1 2 1 2 1 2 2 2 1 2 1 M Person 2 2 1 500,000 Person 500,000 Person 2 1 2 Person Person 1 1 1 1 1 5 10 15 20 25 30 35 40 45 50 Time (day) 건강한 사람의 숫자 : current 1 1 1 1 1 1 1 Person 건강한 사람의 숫자 : run1 2 2 2 2 2 2 2 2 Person
56. 그래프 함수(Lookup 함수)의 도입 앞의 모델링에서는 변수의 수식을 정의하는데 있어서 곱하기와 나누기만을 사용하였다. 그러나 모델이 조금만 추상화되거나 복잡해 지면, 단순한 사칙연산만으로 모든 수식을 정의할 수는 없다. 두 변수의 관계를 명확하게 정의하기 어려울 때 일반적으로 사용하는 함수가 그래프 함수이다. Vensim PLE에서는 그래프함수를 Lookup 함수라고 부른다. 앞의 모델에서 ‘전염병 환자와 만나서 전염되는 비율’이 고정되어 있지 않고 ‘전염병에 걸린 사람의 비율’이 높을 수록 전염되는 비율 역시 증가한다고 가정해 보자. 즉, 많은 사람들이 전염되는 경우에는 대기중에 떠도는 세균의 수도 많아지고, 세균의 전염성도 강해질 것이기 때문에, 전염율도 높다는 가정이다. 이러한 가정을 쉽사리 수식으로 정의하기는 어렵다. 이러한 경우 Lookup 함수를 사용할 수 있다. 전염병에 걸린 사람과 Lookup 함수의 절차는 다음과 같다. 첫째, 새로운 가정에 맞게 ‘전염병에 걸린 사람의 비율’과 ‘전염되는 비율’간에 인과관계 활살표를 추가해야 한다. 둘째, Lookup 함수를 저장하는 변수를 새로 만든다. 여기에서는 ‘전염확산에 따른 전염율’이라고 한다. 셋째, Lookup 함수를 저장하는 변수 (전염확산에 따른 전염율)와 Lookup함수를 이용할 함수간에 인과관계를 설정한다. 건강한 사람이 만나는 횟수 하루에 만나는 사람의 숫자 전염병에 걸린 사람의 비율 한 사람당 하루에 전염병 환자와 만나는 사람의 만나서 전염되는 숫자 비율 건강한 전염병에 걸린 사람의 숫자 사람의 숫자 전염병에 걸리는 전염확산에 따른 전염율 사람의 숫자 총인구
57. 그래프 함수(Lookup 함수)의 정의 1. Lookup 함수의 수식 편집기에서 type를 Lookup으로 설정한다 2. As Graph를 누르면, 다음과 같은 편집기가 나타난다.
58. 그래프 함수(Lookup 함수)의 적용 3. Lookup함수를 사용할 변수의 수식편집기에서 다음과 같이 정의한다. 이때 가급적 마우스만을 사용한다. 4. 시뮬레이션을 수행하여 결과를 비교해 본다. Lookup 함수의 결과 2 M Person 1 M 2 1 5 10 15 20 25 30 35 40 45 50 Time (day) 전염병에 걸린 사람의 숫자 : current 전염병에 걸린 사람의 숫자 : run2
59. Time 변수의 도입 Time 변수를 도입하기 위하여는 Shadow Variable을 활용하여야 한다. 특히 앞서 설명한 Loop up 함수와 함께 사용하여 경험적인 데이터를 도입할 수 있다. D.H. Kim sddhkim@cau.ac.kr
60. 경험적 데이타의 활용 앞서 설명한 전염병의 예에 Time을 도입하여 경험적인 데이타를 도입하는 예는 다음과 같다. 2. Time을 X축으로 하는 Look Up 함수 작성 1. Time변수의 도입과 이를 활용할 변수에 연결 3. Time을 활용할 변수를 재정의 예) 전염병 환자와 만나서 전염되는 비율 = 전염확산에 따른 전염율(Time)
61. 경험적 데이타와 시뮬레이션 결과와의 비교 경험적인 데이타는 두가지 방식으로 활용될 수 있다. 첫째는 변수의 값을 결정하는 방식으로 이는 앞서 설명한 바와 같다. 두번째는 시뮬레이션 결과와 현실의 데이타를 비교하는 방식이다. 이는 다음과 같은 절차를 통해 이루어질 수 있다. 1. Time 변수를 도입한다. 2. Lookup 변수를 만들어 현실의 데이타를 여기에 담는다. 3. 새로운 변수를 만들어서 Time변수와 위의 Loop Up 함수로 실제의 경험적 데이타를 반영시킨다. 3. 시뮬레이션 결과와 Loopup 변수를 비교해 본다. (Control Panel에서 정의) 1. Loopup 변수에 현실 데이타 삽입 2. 경험적 결과 = 경험적 자료(Time) 3. 결과의 비교 또한 Vensim PLE Plus 이상의 버전에서는 데이타 화일을 읽어오는 기능이 있는데, 이를 활용하는 경우에는 엑셀 화일 등의 자료를 손쉽게 활용할 수 있다.
69. 모델링의 타당성 검토 (구조적 측면) 제 11부. 시뮬레이션의 타당성과 의미 시뮬레이션 모델의 타당성에 관하여 John Sterman은 구조적인 (structural) 차원에서 다음을 들고 있다.
70. 모델링의 타당성 검토 (행태적 측면) 제 11부. 시뮬레이션의 타당성과 의미 시뮬레이션 모델의 타당성에 관하여 John Sterman은 행태적인 (behavioral) 차원에서 다음을 들고 있다.
71. 모델링의 의미 (무엇을 발견하였는가?) 제 11부. 시뮬레이션의 타당성과 의미 필요한 구조의 발견: 현실의 행태를 재현하기 위하여 필요한 시스템의 구조들을 발견하였다. 메커니즘의 발견: 현실의 행태를 가져오는 변수들간의 영향 관계를 발견하였다. 어렴풋한 상식의 설명: 상식이 왜 타당한지를 발견하였다. 파라독스의 발견: 상식적인 관념이 특정 시스템에 대해서 논리적이지 않다는 점을 발견하였다. 부수효과(side effect)의 발견: 정책의 부수적인 효과들을 검토할 수 있었다. 위험 분석(risk analysis) 수행: 정책이 예상치 못한 위험한 결과를 가져올 수 있다는 점을 알 수 있었다. 정책지렛대(policy leverage) 발견: 가장 효과적인 정책을 발견할 수 있었다. 구 조 설 명 정 책 “조그마한 힘을 증폭시킬 수 있는 양의 피드백 루프”와 “커다란 힘에 저항하는 음의 피드백 루프”의 발견
79. SD 커뮤니케이션 기술 첫째 원칙: 상대방의 언어로 1. 전통적 사고: 음양이론, 불교의 연기설, 기독교의 예화... 2. 상식적 속담: 되로 주고 말로 받는다, 다람쥐 쳇바퀴, 칼로 물베기... 3. 상식적 언어: 악순환/선순환, 남녀간의 상열지사... 4. 조직의 언어: 상대방에 친숙한 Story Telling, 유명한 동화나 사례의 소개... 5. 이론적 언어: 상대방에게 친숙한 모델의 도입 둘째 원칙: 모델의 단순화 1. SD 모델중 중요한 부분만을 제시 2. SD 모델을 인과지도로 제시 3. 인과지도중에서 중요한 피드백 루프만을 제시 4. 모델은 블랙 박스로 처리. 가정에 따른 시스템 행태의 변화만을 제시 5. 모델은 블랙 박스로 처리. 시스템의 행태만을 피드백으로 제시 셋째 원칙: 정책에 초점 1. 가급적 정책 섹터를 모델과 분리 2. 모델은 블랙 박스. 정책의 효과만을 피드백 루프로 제시 3. 다양한 가정과 정책의 효과만을 일대일로 대응시키고 그 이유를 간략히 설명 4. 현재의 정책을 그대로 유지할 때의 결과 설명. 진정으로 변화가 필요한가? 5. 논쟁이 되는 정책의 효과를 특징적으로 비교.