f8b21af4be
10_Wiki/Topics 대규모 정리: - 오류 캡처/미완성 stub 문서 227개 제거 - 교차폴더 중복 43클러스터 병합 (63파일 → redirect) - 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건 - 카테고리 MOC 6개 신규 생성 - Graph 섹션 미해결 related-keyword 링크 10,058건 제거 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
189 lines
6.0 KiB
Markdown
189 lines
6.0 KiB
Markdown
---
|
||
id: wiki-2026-0508-understanding-complex-systems
|
||
title: Understanding Complex Systems
|
||
category: 10_Wiki/Topics
|
||
status: verified
|
||
canonical_id: self
|
||
aliases: [Complexity Science, Complex Adaptive Systems, CAS]
|
||
duplicate_of: none
|
||
source_trust_level: A
|
||
confidence_score: 0.9
|
||
verification_status: applied
|
||
tags: [complexity, systems-thinking, emergence, networks]
|
||
raw_sources: []
|
||
last_reinforced: 2026-05-10
|
||
github_commit: pending
|
||
tech_stack:
|
||
language: Python
|
||
framework: NetworkX / Mesa / SciPy
|
||
---
|
||
|
||
# Understanding Complex Systems
|
||
|
||
## 매 한 줄
|
||
> **"매 부분의 합 그 이상 — 매 emergence"**. Santa Fe Institute 1984 founding 이후 complexity science 는 economics, biology, AI safety 까지 확장됐고, 2026 현재 ABM + GNN + dynamical systems 의 hybrid analysis 가 standard toolkit이다.
|
||
|
||
## 매 핵심
|
||
|
||
### 매 정의 axes
|
||
- **Many components**: 매 대량의 interacting agent.
|
||
- **Nonlinearity**: small cause → large effect (butterfly).
|
||
- **Emergence**: macro pattern not reducible to micro rules.
|
||
- **Adaptation**: agent rule 의 evolution (CAS).
|
||
- **Self-organization**: external designer 없이 ordered structure.
|
||
|
||
### 매 phenomena
|
||
- **Phase transitions** (percolation, Ising).
|
||
- **Power laws / scale-free networks** (Barabási 1999).
|
||
- **Chaos & strange attractors** (Lorenz 1963).
|
||
- **Synchronization** (Kuramoto oscillators).
|
||
- **Critical brain hypothesis** (Beggs & Plenz 2003).
|
||
|
||
### 매 응용
|
||
1. Epidemic modeling (COVID-19, agent-based + network).
|
||
2. Financial market (heavy tails, flash crashes).
|
||
3. AI safety: emergent behaviors in LLM scaling, multi-agent.
|
||
4. Climate tipping points.
|
||
5. Urban / supply chain resilience.
|
||
|
||
## 💻 패턴
|
||
|
||
### Game of Life — emergence demo
|
||
```python
|
||
import numpy as np
|
||
|
||
def step(grid):
|
||
n = sum(np.roll(np.roll(grid, i, 0), j, 1)
|
||
for i in (-1, 0, 1) for j in (-1, 0, 1)
|
||
if (i, j) != (0, 0))
|
||
return ((n == 3) | ((grid == 1) & (n == 2))).astype(int)
|
||
|
||
g = np.random.binomial(1, 0.3, (200, 200))
|
||
for _ in range(500):
|
||
g = step(g)
|
||
```
|
||
|
||
### Scale-free network (Barabási–Albert)
|
||
```python
|
||
import networkx as nx
|
||
G = nx.barabasi_albert_graph(n=10_000, m=3, seed=42)
|
||
|
||
degrees = [d for _, d in G.degree()]
|
||
# verify power-law
|
||
import powerlaw
|
||
fit = powerlaw.Fit(degrees, discrete=True)
|
||
print(fit.alpha, fit.xmin, fit.distribution_compare("power_law", "lognormal"))
|
||
```
|
||
|
||
### Kuramoto synchronization
|
||
```python
|
||
import numpy as np
|
||
from scipy.integrate import odeint
|
||
|
||
def kuramoto(theta, t, omega, K, N):
|
||
dtheta = omega.copy()
|
||
for i in range(N):
|
||
dtheta[i] += (K/N) * np.sum(np.sin(theta - theta[i]))
|
||
return dtheta
|
||
|
||
N, K = 100, 1.5
|
||
omega = np.random.normal(0, 1, N)
|
||
theta0 = np.random.uniform(0, 2*np.pi, N)
|
||
t = np.linspace(0, 50, 1000)
|
||
sol = odeint(kuramoto, theta0, t, args=(omega, K, N))
|
||
|
||
# order parameter r(t)
|
||
r = np.abs(np.exp(1j * sol).mean(axis=1))
|
||
```
|
||
|
||
### SIR epidemic on network
|
||
```python
|
||
import networkx as nx, random
|
||
|
||
def sir(G, beta=0.05, gamma=0.01, init=5, T=200):
|
||
state = {n: "S" for n in G}
|
||
for n in random.sample(list(G), init): state[n] = "I"
|
||
history = []
|
||
for _ in range(T):
|
||
new = state.copy()
|
||
for n, s in state.items():
|
||
if s == "I":
|
||
if random.random() < gamma: new[n] = "R"
|
||
for nb in G.neighbors(n):
|
||
if state[nb] == "S" and random.random() < beta:
|
||
new[nb] = "I"
|
||
state = new
|
||
history.append((sum(v=="S" for v in state.values()),
|
||
sum(v=="I" for v in state.values()),
|
||
sum(v=="R" for v in state.values())))
|
||
return history
|
||
```
|
||
|
||
### Lyapunov exponent (logistic map)
|
||
```python
|
||
import numpy as np
|
||
def lyapunov(r, x0=0.5, n=10_000, burn=1000):
|
||
x = x0
|
||
for _ in range(burn): x = r*x*(1-x)
|
||
s = 0.0
|
||
for _ in range(n):
|
||
x = r*x*(1-x)
|
||
s += np.log(abs(r - 2*r*x) + 1e-12)
|
||
return s / n
|
||
|
||
for r in np.linspace(2.5, 4.0, 16):
|
||
print(f"r={r:.2f} λ={lyapunov(r):+.4f}")
|
||
```
|
||
|
||
### Causal emergence via effective info (PyPhi-lite idea)
|
||
```python
|
||
# coarse-grain & measure mutual info gain — 매 Hoel 2017
|
||
def effective_info(P_micro, grouping):
|
||
# P_micro: (S, S) transition matrix
|
||
# grouping: list of macro-state index per micro-state
|
||
import numpy as np
|
||
macro = max(grouping) + 1
|
||
P_macro = np.zeros((macro, macro))
|
||
for i, gi in enumerate(grouping):
|
||
for j, gj in enumerate(grouping):
|
||
P_macro[gi, gj] += P_micro[i, j]
|
||
P_macro /= P_macro.sum(axis=1, keepdims=True) + 1e-12
|
||
return P_macro
|
||
```
|
||
|
||
## 매 결정 기준
|
||
| 상황 | Approach |
|
||
|---|---|
|
||
| Local rules, emergent macro | Agent-based (Mesa, NetLogo) |
|
||
| Network structure matters | NetworkX / igraph + null models |
|
||
| Continuous coupled oscillators | Kuramoto / ODE |
|
||
| Discrete-time chaos | Iterated maps + Lyapunov |
|
||
| Real data, latent dynamics | SINDy / Koopman / NeuralODE |
|
||
|
||
**기본값**: NetworkX + Mesa for structure+dynamics, SciPy for ODE, powerlaw for tail fit.
|
||
|
||
## 🔗 Graph
|
||
- 부모: [[Systems Theory]] · [[Nonlinear Dynamics]]
|
||
- 응용: [[Pedestrian-Modeling]]
|
||
- Adjacent: [[Entropy in Information Theory|Information Theory]] · [[AI_Safety_and_Alignment|AI Safety]]
|
||
|
||
## 🤖 LLM 활용
|
||
**언제**: model scaffolding, parameter sweep, hypothesis enumeration, literature 정리.
|
||
**언제 X**: long-horizon stability claim — 매 numerical proof / theorem 직접 검증.
|
||
|
||
## ❌ 안티패턴
|
||
- **Power-law claim 의 over-fit**: 매 lognormal vs power-law 비교 검증 필수 (Clauset 2009).
|
||
- **Emergence as magic**: 매 정의 명확화 — weak (epistemic) vs strong (ontological).
|
||
- **Single ABM run**: Monte Carlo ensemble 필수 (≥100 runs).
|
||
- **Network metric without null**: 매 configuration model baseline 비교.
|
||
|
||
## 🧪 검증 / 중복
|
||
- Verified (Mitchell "Complexity: A Guided Tour", SFI lectures, Strogatz "Nonlinear Dynamics and Chaos", Newman "Networks" 2nd ed).
|
||
- 신뢰도 A.
|
||
|
||
## 🕓 Changelog
|
||
| 날짜 | 변경 |
|
||
|---|---|
|
||
| 2026-05-08 | Phase 1 |
|
||
| 2026-05-10 | Manual cleanup — emergence + networks + chaos pattern set |
|