--- id: wiki-2026-0508-wicked-problems title: Wicked Problems category: 10_Wiki/Topics status: verified canonical_id: self aliases: [Ill-Defined Problems, Complex Systems Problems] duplicate_of: none source_trust_level: A confidence_score: 0.85 verification_status: applied tags: [problem-solving, systems-thinking, design, methodology] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: Methodology framework: Systems Thinking --- # Wicked Problems ## 매 한 줄 > **"매 well-defined 의 X 한 problem"**. Rittel & Webber (1973) "Dilemmas in a General Theory of Planning" — 매 social policy / climate / AI safety / urban planning 의 characterize, 매 2026 AI alignment debate (Claude Opus 4.7 RLHF objective design) 의 textbook example. ## 매 핵심 ### 매 10가지 특성 (Rittel-Webber) 1. No definitive formulation. 2. No stopping rule (when is it "solved"?). 3. Solutions are good/bad, not true/false. 4. No immediate or ultimate test of solution. 5. Every solution is a "one-shot operation" (no trial-and-error). 6. No enumerable set of potential solutions. 7. Every wicked problem is essentially unique. 8. Every wicked problem is a symptom of another problem. 9. Multiple explanations possible (choice depends on worldview). 10. Planner has no right to be wrong (consequences matter). ### 매 vs Tame problems | Tame | Wicked | |---|---| | Clear goal | Goal contested | | Defined boundary | Diffuse, expanding | | Known solution methods | No clear method | | Repeatable (chess, sudoku) | One-shot (urban policy) | | Right/wrong | Better/worse | ### 매 응용 examples 1. Climate change. 2. Healthcare reform. 3. AI alignment / safety. 4. Homelessness. 5. Education policy. 6. Pandemic response. 7. LLM evaluation (what is "helpful"?). ## 💻 패턴 ### Stakeholder mapping ```python # Power-Interest grid import matplotlib.pyplot as plt stakeholders = { "Regulators": (9, 8), "Users": (3, 9), "Engineers": (5, 7), "Investors": (8, 5), "Public": (2, 6), } fig, ax = plt.subplots() for name, (power, interest) in stakeholders.items(): ax.scatter(power, interest) ax.annotate(name, (power, interest)) ax.set_xlabel("Power"); ax.set_ylabel("Interest") ax.axhline(5); ax.axvline(5) # Quadrants: Manage Closely / Keep Satisfied / Keep Informed / Monitor ``` ### Causal Loop Diagram (CLD) ``` Symptom-fix vs root-fix: homelessness ↑ → shelter beds ↑ → visible homelessness ↓ (symptomatic) → root causes unaddressed → homelessness ↑ (R loop) homelessness ↑ → housing units ↑ → root addressed → homelessness ↓ (B loop, slow) ``` ### Multi-criteria decision analysis (MCDA) ```python import numpy as np # Solutions × Criteria matrix options = ["Tax", "Subsidy", "Regulate", "Invest"] criteria = ["Equity", "Cost", "Speed", "Acceptance"] weights = np.array([0.4, 0.2, 0.2, 0.2]) scores = np.array([ [9, 4, 6, 3], # Tax [7, 3, 8, 8], # Subsidy [8, 7, 4, 5], # Regulate [6, 2, 3, 7], # Invest ]) ranking = scores @ weights print(dict(zip(options, ranking))) ``` ### Scenario planning ```python # Build 2x2 scenario matrix on key uncertainties def scenario_2x2(axis_x, axis_y, scenarios): """ axis_x, axis_y: pairs (low, high) of critical uncertainties scenarios: 4 narrative descriptions """ return { f"{axis_x[0]} + {axis_y[0]}": scenarios[0], f"{axis_x[1]} + {axis_y[0]}": scenarios[1], f"{axis_x[0]} + {axis_y[1]}": scenarios[2], f"{axis_x[1]} + {axis_y[1]}": scenarios[3], } ``` ### Argument mapping ```python # Decompose claim into premises + objections class ArgumentNode: def __init__(self, claim, support=None, attack=None): self.claim = claim self.support = support or [] # premises self.attack = attack or [] # rebuttals root = ArgumentNode( "Ban autonomous weapons", support=[ ArgumentNode("They lack moral judgment"), ArgumentNode("Risk of escalation"), ], attack=[ ArgumentNode("Defensive use can save lives"), ] ) ``` ### Adaptive management (Holling) ```python # Iterate: model → act → monitor → revise def adaptive_loop(problem, max_iter=10): model = initial_model(problem) for i in range(max_iter): action = decide(model) result = act_and_observe(action) model = update(model, result) if converged(model): break return model # Embraces uncertainty — wicked problems lack closed-form solutions ``` ## 매 결정 기준 | 상황 | Approach | |---|---| | Single optimal solution exists | Tame — use OR/optimization | | Multiple stakeholders, contested goals | Wicked — stakeholder + scenario | | Long-time-horizon, uncertain | Adaptive management | | Ethics-laden | Argument mapping + deliberation | | LLM RLHF reward design | Treat as wicked — pluralistic eval | **기본값**: Acknowledge wickedness, use stakeholder mapping + MCDA + adaptive iteration; avoid pretending it's tame. ## 🔗 Graph - 부모: [[Problem_Solving|Problem-Solving]] · [[Systems_Thinking|Systems-Thinking]] - 응용: [[AI_Safety_and_Alignment|AI-Alignment]] - Adjacent: [[Root-Cause-Analysis-RCA]] · [[Complex-Adaptive-Systems]] ## 🤖 LLM 활용 **언제**: Policy design, AI safety / alignment problems, multi-stakeholder system design (no objective ground truth), strategy under deep uncertainty. **언제 X**: Engineering bug — use RCA. Optimization with clear objective — use OR. Well-specified algorithm — use complexity theory. ## ❌ 안티패턴 - **Treat wicked as tame**: 매 wicked problem 의 single-objective optimization 의 reduce → 매 unintended consequences (e.g., Goodhart's law). - **Analysis paralysis**: 매 wicked problem 의 wait for "complete" understanding — 매 never come. - **Ignore stakeholders**: 매 technocratic top-down 의 wicked problem 의 fail (Robert Moses urban renewal). - **One-shot deployment**: 매 ship-and-forget — wicked problems 의 adaptive iteration 의 require. ## 🧪 검증 / 중복 - Verified (Rittel & Webber 1973 seminal paper, Conklin "Dialogue Mapping" 2005, Snowden "Cynefin"). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — Wicked problems with 10 traits, MCDA, scenario, AI alignment angle |