做什么(One-liner)
Herbert Simon 满意化决策:候选按 score 降序后,返回第一个达阈值的(不是全局最优)。模拟 bounded rationality。
怎么用
Canvas 拖 b0_simon_v1,填 aspiration(阈值)+ candidates([{id, score}, ...])。输出第一个 satisficing 候选。
核心公式
python
scored = sorted(candidates, key=lambda c: -c.score)
for c in scored:
if c.score >= aspiration:
return {id: c.id, score: c.score}
return None典型用法:aspiration=70, candidates 是 BLCV 分 →排序后取第一个 >= 70 的。
假设与适用场景
假设:分数可比 + 单一维度;'足够好就要' 思路;候选静态。
适用:股票 shortlist / 策略选择 / 教学 demo / 快速决策。
不适用:全局最优(用 max());多目标(用 MCDA);动态候选集。
输入 / 输出契约
{aspiration: float, candidates: list} → {aspiration, candidates_evaluated, chosen | None, satisficing: bool, _model}。详见 frontmatter。
已知局限
- 单一 score(多维无法)
- 不达标时直接 None(不返回 'closest miss')
- 空列表 → None(不抛错)
- Tie 时按输入顺序选
参考文献
Simon (1956) 原始论文 + Gigerenzer (2008) 延伸。详见 frontmatter。
Golden Test
tests/golden/fixtures/tier1/b0_simon/,1e-12 tolerance,4 tests(matches_reference / no_satisficer / picks_highest / empty_candidates)。2026-04-20 passing。
Changelog
- 1.0.0 (2026-04-20) — Initial Active release

