인과 루프 다이어그램

시스템 다이내믹스 피드백 다이어그램 — 엔진이 모든 피드백 루프를 열거하고 극성에 따라 강화 또는 균형으로 분류합니다.

인과 루프 다이어그램이란

인과 루프 다이어그램(CLD)은 시스템 다이내믹스(Jay Forrester, MIT, 1960년대)의 핵심 매핑 도구입니다. 변수들이 부호 있는 인과 링크로 연결되며, 개별 화살표가 아닌 피드백 루프가 시스템의 동작을 설명합니다. 루프는 변화를 증폭할 때 강화(R), 상쇄할 때 **균형(B)**으로 분류됩니다. 정식 참고문헌은 Sterman, Business Dynamics (2000)입니다.

Schematex의 차별점은 엔진이 루프를 직접 찾아 분류해준다는 것입니다. 일반적인 드로잉 도구는 화살표를 배치할 수 있지만, 어떤 루프가 존재하는지, 각 루프가 강화인지 균형인지를 알려주지 않습니다. Schematex는 모든 기초 피드백 루프를 열거(Johnson의 알고리즘)하고 Sterman의 짝수/홀수 극성 규칙을 적용하여 R1, B1, R2… 로 레이블을 붙입니다.

causalloop·§
↘ preview
100%
Sales force flywheel Causal loop diagram "Sales force flywheel": 4 variables, 5 causal links. 2 feedback loops: 1 reinforcing (R), 1 balancing (B). R1 "Skill flywheel" (reinforcing, 0 negative links): Training quality → Salesperson skills → Revenue → Training quality. B1 "Dilution" (balancing, 1 negative link): Salesperson skills → Revenue → Hiring rate → Salesperson skills. Sales force flywheel + + + + R1 Skill flywheel B1 Dilution Training quality Salesperson skills Revenue Hiring rate
UTF-8 · LF · 9 lines · 294 chars✓ parsed·5.6 ms·5.0 KB SVG

1. 첫 번째 인과 루프

causalloop 키워드(별칭 cld)로 시작하고, 선택적 제목을 붙인 후 부호 있는 링크를 추가합니다. 변수는 링크에서 자동으로 생성됩니다 — 직접 선언하는 경우는 드뭅니다.

causalloop "Adoption model"
"Adoption rate" -> Adopters : +
Adopters -> "Adoption rate" : +
loop R1 "Word of mouth"

링크는 SOURCE -> TARGET : POLARITY 형식입니다. 여러 단어로 된 변수 이름은 따옴표로 묶습니다("Adoption rate"). 단일 단어는 따옴표가 필요 없습니다(Adopters). 링크가 최소 하나 이상 필요합니다.


2. 링크 극성

극성은 인과 영향의 방향을 나타내며 모든 링크에 필수입니다.

A -> B : +          # 같은 방향 (A 증가 → B 증가)
B -> C : -          # 반대 방향 (B 증가 → C 감소)
A -> B : s          # +의 별칭 (same)
B -> C : o          # −의 별칭 (opposite)
C -> D : same       # +의 별칭
D -> E : opposite   # −의 별칭
A -> B +            # 콜론 생략 가능

+ / s / same같은 방향을 의미합니다. / o / opposite반대 방향을 의미합니다. 극성 없는 링크는 거부됩니다.


3. 지연 및 명시적 변수

"Training quality" -> "Salesperson skills" : + delay   # 지연 표시 (화살표에 ∥ 해시 마크)
A -> B : + ~delay                                       # ~delay 형식도 작동
var "Adoption rate"                                     # 변수를 명시적으로 선언하여 자동 생성 방지
loop R1 "Word of mouth"                                 # 루프에 이름/주석 부여
  • delay / ~delay — 링크를 지연됨으로 표시합니다(시스템 다이내믹스 해시 마크).
  • var "name" — 변수를 명시적으로 선언합니다(레이블을 고정하며 자동 생성되지 않음).
  • loop ID "phrase" — 엔진이 감지한 루프에 사람이 읽을 수 있는 이름을 부여합니다.

4. 계산된 피드백 루프

이것이 차별화 요소입니다. 엔진은 다음을 수행합니다.

  1. 부호 있는 방향 그래프를 구성합니다(노드 = 변수, 엣지 = 부호 있는 링크).
  2. Johnson의 알고리즘으로 모든 기초 피드백 루프(단순 방향 사이클)를 열거합니다 — 선언 순서에 따라 결정론적으로.
  3. 음의 링크 수를 세어 각 루프를 분류합니다.
    • 짝수 개수(0 포함) → R (강화); 부호 곱 = +1
    • 홀수 개수 → B (균형); 부호 곱 = −1

이것은 정확히 Sterman의 짝수/홀수 규칙입니다. 루프는 종류별로 감지 순서에 따라 번호가 매겨지고(R1, B1, R2…) 루프 중심에 R/B 회전 글리프와 함께 그려집니다. 각 루프는 data-loopdata-kind를 가집니다.


5. 흔한 실수

# 틀림 — 극성 없는 링크
A -> B

# 틀림 — 링크가 전혀 없는 다이어그램
cld

모든 링크에는 극성(: + 또는 : -)이 필요합니다. 링크가 없는 CLD는 거부됩니다. 극성은 바람직함이 아닌 변화의 방향에 관한 것임을 기억하십시오 — "사망"에서 "인구"로의 링크는 사망이 나쁜 것임에도 여전히 -입니다(사망 증가 → 인구 감소).


6. 표준 준수

표기법은 Sterman, Business Dynamics (2000) 및 시스템 다이내믹스 표준 관례를 따릅니다: 부호 있는 링크 극성, 지연 해시 마크, R/B 루프 식별자. 루프 극성을 위한 짝수/홀수 음의 링크 규칙은 교과서 분류 방법으로, 정확하게 구현되어 있습니다.

7. 로드맵

추후 구현 예정: 재고-흐름 변환, 링크 강도 가중치, 시간에 따른 지배 루프(루프 고유값) 분석.

Found this useful?

Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.