Skip to content

Decision OS 中文导航

原文: Decision OS — Structured decision-making platform
分类: 决策智能/多准则分析
大小: 5.5 MB
语言: TypeScript/JavaScript


📚 项目简介

Decision OS 是一个精英决策智能平台,将直觉驱动的决策转化为结构化、数据驱动的科学决策。它实现了确定性加权求和评分模型,带有敏感性分析——基于数十年的决策科学研究。所有计算在浏览器客户端完成,零账号、零后端、零数据收集。

GitHub: https://github.com/ericsocrat/decision-os
Live Demo: https://decision-os-hazel.vercel.app


🔧 核心功能

功能 状态 说明
决策构建器 标题、选项、加权标准、评分矩阵
实时结果 排名选项 + 可视化分数条
关键驱动因子 识别最重要的标准
敏感性分析 权重变化 ±5%-50% 测试稳健性
TOPSIS 算法 理想/反理想距离排名
最小最大遗憾 基于最坏情况遗憾的排名
蒙特卡洛模拟 10,000 次概率敏感性分析
框架对比 WSM/TOPSIS/Regret 共识引擎
置信度评分 每个评分的高/中/低置信度
偏见检测 检测中心化、锚定、乐观偏见
AHP 向导 成对比较导出权重
推理笔记 每个评分的理由记录
拖放排序 键盘支持的拖放
JSON/CSV 导入 带预览和验证的导入
JSON 导出/URL 分享 下载数据或分享链接
决策对比 多个决策并排对比
多决策管理 保存并切换多个决策
8 个决策模板 Job Offer/Vendor/Apartment/Investment 等
撤销/重做 50 步历史,Ctrl+Z/Ctrl+Shift+Z
暗色模式 系统感知,FOUC 防护
图表可视化 Recharts 支持的柱状图/分解图
云同步 Supabase 双向同步 (可选)
无障碍访问 键盘导航、ARIA 标签
1,383 个测试 单元测试 + E2E + a11y

📁 目录结构

decision-os/
├── src/                          # 源代码
│   ├── components/               # React 组件
│   │   ├── DecisionBuilder/      # 决策构建器
│   │   ├── ResultsView/          # 结果视图
│   │   ├── SensitivityView/      # 敏感性分析
│   │   ├── MonteCarloView/       # 蒙特卡洛视图
│   │   ├── CompareView/          # 对比视图
│   │   └── FrameworkComparison/  # 框架对比
│   ├── contexts/                 # React Context
│   │   ├── DecisionContext.tsx
│   │   ├── OptionsContext.tsx
│   │   └── CriteriaContext.tsx
│   ├── lib/                      # 核心逻辑
│   │   ├── scoring.ts            # 加权求和引擎
│   │   ├── topsis.ts             # TOPSIS 算法
│   │   ├── regret.ts             # 遗憾分析
│   │   ├── monte-carlo.ts        # 蒙特卡洛模拟
│   │   ├── consensus.ts          # 共识引擎
│   │   ├── bias-detection.ts     # 偏见检测
│   │   ├── validation.ts         # 输入验证
│   │   └── templates.ts          # 决策模板
│   ├── hooks/                    # React Hooks
│   ├── utils/                    # 工具函数
│   └── types/                    # TypeScript 类型
├── docs/                         # 文档
│   ├── SCORING_MODEL.md          # 评分模型详解
│   ├── DECISION_FRAMEWORKS.md    # 决策框架
│   ├── ARCHITECTURE.md           # 架构设计
│   └── ROADMAP.md                # 路线图
├── tests/                        # 测试
│   ├── unit/                     # 单元测试
│   ├── e2e/                      # E2E 测试
│   └── a11y/                     # 无障碍测试
├── public/                       # 静态资源
├── next.config.ts                # Next.js 配置
├── package.json
└── README.md

🚀 快速开始

安装

# 克隆仓库
git clone https://github.com/ericsocrat/decision-os.git
cd decision-os

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 访问 http://localhost:3000
# 预加载了一个演示决策,可以立即探索

第一个决策:工作 Offer 选择

// 1. 定义决策
const decision = {
  title: "选择最佳工作 Offer",
  options: [
    { id: "offer-a", name: "初创公司 A" },
    { id: "offer-b", name: "大厂 B" },
    { id: "offer-c", name: "远程公司 C" }
  ],
  criteria: [
    { id: "salary", name: "薪资", weight: 0.3 },
    { id: "growth", name: "成长空间", weight: 0.25 },
    { id: "wlb", name: "工作生活平衡", weight: 0.25 },
    { id: "culture", name: "企业文化", weight: 0.2 }
  ]
}

// 2. 为每个选项打分 (1-10 分)
const scores = {
  "offer-a": { salary: 7, growth: 9, wlb: 6, culture: 8 },
  "offer-b": { salary: 9, growth: 7, wlb: 5, culture: 6 },
  "offer-c": { salary: 6, growth: 8, wlb: 9, culture: 7 }
}

// 3. 计算加权总分
// Offer A: 0.3×7 + 0.25×9 + 0.25×6 + 0.2×8 = 7.45
// Offer B: 0.3×9 + 0.25×7 + 0.25×5 + 0.2×6 = 6.90
// Offer C: 0.3×6 + 0.25×8 + 0.25×9 + 0.2×7 = 7.45

// 4. 敏感性分析
// 测试权重变化 ±10% 是否改变排名
// 如果 Offer A 在所有测试中都保持第一,说明决策稳健

📖 评分模型

加权求和模型 (WSM)

\[T_j = \sum_{i=1}^{n} \hat{w}_i \times e_{j,i}\]

其中: - \(\hat{w}_i\) = 归一化权重 - \(e_{j,i}\) = 有效评分 (考虑收益/成本标准)

示例计算:

决策:选择公寓
选项:公寓 A, 公寓 B, 公寓 C
标准:租金 (成本), 面积 (收益), 位置 (收益), 设施 (收益)

公寓 A:
- 租金:¥8000 (成本,越低越好) → 标准化后 7 分
- 面积:60m² (收益) → 8 分
- 位置:市中心 (收益) → 9 分
- 设施:健身房 (收益) → 6 分

权重:租金 0.4, 面积 0.25, 位置 0.25, 设施 0.1
总分 = 0.4×7 + 0.25×8 + 0.25×9 + 0.1×6 = 7.65

TOPSIS 算法

  1. 构建决策矩阵
  2. 归一化矩阵
  3. 计算加权归一化矩阵
  4. 确定理想解 (正理想/负理想)
  5. 计算各选项到理想解的距离
  6. 计算相对贴近度排序

最小最大遗憾

  1. 计算每个标准下的最大可能收益
  2. 计算每个选项的遗憾值 (最大收益 - 实际收益)
  3. 找出每个选项的最大遗憾
  4. 选择最大遗憾最小的选项

💡 典型应用场景

1. 职业决策

场景:选择工作 Offer
标准:薪资、成长空间、工作生活平衡、企业文化、通勤时间
方法:WSM + 敏感性分析
产出:排名 + 关键驱动因子 + 决策稳健性

2. 投资决策

场景:选择投资标的
标准:预期收益、风险、流动性、行业前景、管理团队
方法:WSM + TOPSIS + 蒙特卡洛模拟
产出:多方法对比 + 风险分析

3. 产品选型

场景:选择供应商
标准:价格、质量、交付周期、售后服务、技术能力
方法:AHP 导出权重 + WSM
产出:权重合理性验证 + 最终排名

4. 生活决策

场景:选择租房/买房
标准:成本、灵活性、增值潜力、居住体验
方法:WSM + 遗憾分析
产出:多框架对比 + 遗憾最小化建议

🎯 决策框架对比

框架 适用场景 优点 缺点
WSM 简单线性决策 直观易解释 假设标准独立
TOPSIS 多属性对比 考虑相对距离 计算复杂
Minimax Regret 风险厌恶决策 保守稳健 可能过度保守
AHP 权重不确定 成对比较科学 操作繁琐
Monte Carlo 不确定性高 概率分析 计算量大

🔗 相关资源


📚 理论基础

多准则决策分析 (MCDA)

方法 提出者 年份 核心思想
WSM Churchman 1954 线性加权求和
AHP Saaty 1977 成对比较矩阵
TOPSIS Hwang & Yoon 1981 理想解距离
ELECTRE Roy 1968 等级排序
PROMETHEE Brans 1985 偏好函数

认知偏见检测

偏见 说明 检测方法
锚定偏见 过度依赖初始值 检测评分分布集中趋势
中心化偏见 避免极端评分 检测方差过小
乐观偏见 系统性高估 与历史数据对比

🛠️ 扩展使用

自定义决策模板

// templates.ts
export const customTemplate = {
  title: "我的决策模板",
  criteria: [
    { id: "c1", name: "标准 1", weight: 0.3 },
    { id: "c2", name: "标准 2", weight: 0.3 },
    { id: "c3", name: "标准 3", weight: 0.4 }
  ],
  options: [
    { id: "o1", name: "选项 1" },
    { id: "o2", name: "选项 2" },
    { id: "o3", name: "选项 3" }
  ]
}

API 调用 (云同步)

import { supabase } from '@/lib/supabase'

// 保存决策
const saveDecision = async (decision) => {
  const { data, error } = await supabase
    .from('decisions')
    .insert({ data: decision })
  return { data, error }
}

// 加载决策
const loadDecision = async (id) => {
  const { data } = await supabase
    .from('decisions')
    .select('*')
    .eq('id', id)
  return data
}

🎓 学习路径

1. 访问 Live Demo → 体验完整流程
2. 阅读 docs/SCORING_MODEL.md → 理解评分模型
3. 本地安装 → 运行自己的决策
4. 尝试敏感性分析 → 测试决策稳健性
5. 阅读 docs/ARCHITECTURE.md → 了解技术实现
6. 贡献代码 → 添加新框架/功能

本地路径: /workspace/code-examples/decision-os/
创建时间: 2026-06-02
难度: ⭐⭐ (入门友好)


**Decision OS 中文导航 | 多准则决策分析平台** [返回代码索引](../../README_UPDATED.md) | [决策科学资源大全](../../docs/resources/decision-science-comprehensive-resources.md)