纠结与
最优解

纠结,字面意思是一团缠在一起的线:拆也不是,剪也不是,胡乱尝试之下还会缠得更紧。我们面对问题时,往往已经有好几个可行解摆在面前,难的是从里面挑一个。纠结的其实是如何选择。

交互版 · 改编自作者 2017 年发表在简书的同名旧文 · 读原文

01 · 电车难题

先做几道让人纠结的题

一辆刹车失灵的有轨电车,即将撞上前方轨道上的 5 个人。旁边的备用轨道上只有 1 个人。你手边有一根拉杆。凭直觉把下面四道题做一遍,你的选择后面会用到。

02 · 价值函数

把纠结放上天平

在绝对的理性面前,这几道题其实没有难度。假设你对这个问题的价值函数是一个简单的多元线性函数:

f = a1·x1 + a2·x2 + a3·x3

x1
所有轨道上最后存活的人数
x2
轨道上存活的亲人数
x3
你主动杀死的人数

给出 a1、a2、a3,你就有了自己的模型。下面每道题是一架天平,两边分别是不拉杆和拉杆,价值高的一边更重、会沉下去。天平下的彩条是三项各自贡献了多少,颜色和上面的权重一一对应。原文的例子是 (1, 100, −2),在变体 1 里得出 3 和 101。

权重
a1每多活一个人
a2每多活一个亲人
a3每主动杀死一个人
模型
x3 怎么数
几种人格

关于 x3 怎么数:只有拉下拉杆、电车转过去撞死的人,才算“你主动杀死的”,所以救亲人的价值是 101。2017 年发在简书上的原稿算的是 91,那里把不拉杆导致的 5 人死亡也算进了“主动杀死”,后来在网站上更正了。把开关拨到“死亡都算”就能看到原稿的算法:按那种数法,变体 2 不拉杆等于主动杀死一百万人。变量怎么定义,本身就是一个隐含前提。

还可以设置更复杂的价值函数。边际递减:救 2 人和救 1 人差别很大,救 10000 人和救 9000 人就没那么有实感,于是把 x1 换成 ln x1。交互项:原文写作 a3·x2·x3,你救的亲人越多,越会因为主动杀死别人而痛苦。在这几道题里亲人都在备用轨道上,拉杆时 x2 = 0,不拉杆时 x3 = 0,所以这一项总是 0;把 x3 拨到“死亡都算”才看得出它的作用。

这个例子也许太血淋淋了,我们很难做到绝对理性。但意思应该清楚了:许多纠结的根源是非理性,解决办法是建立形式化、量化的模型,用价值函数去评估每一种选择。

03 · 反推

两千个可能的你

反过来,也可以从你的选择倒推权重。下图每个点都是一个可能的你:横坐标是你给亲人的权重 a2,纵坐标是你给主动杀人的权重 a3(a1 取当前值;两轴跨过 0,正负两侧各按对数刻度)。你在第一部分做的每个选择,都会让一批“你”出局。剩下的点,才是和你目前全部选择相符的价值观。点击或拖动图面可以设置权重,键盘上用方向键。

还没有任何选择所有 2,000 个“你”都还在,因为你还没告诉页面你会怎么选。回到第一部分作答 ↑

如果所有点都掉光了,说明在当前模型里,没有任何一组权重能同时解释你的选择。最常见的原因是原题和变体 3 选得不一样:两道题的数字完全相同,变的只是你看待它的方式。模型里没有一个变量能装下这种差别。

04 · 偏好系统

剪刀石头布里没有最优解

价值函数真正提供的是可比较:任意两个选项都能分出高低。选项之间这种相对的优劣关系叫偏好。一个能选出最优解的偏好系统,至少要满足三条:

完整性
任意两个选项都可以比较。
可传递性
A > B 且 B > C,则 A > C。
一致性
A > B 时,不能同时 B > A。

剪刀石头布看起来是简单明确的偏好。可它是一个环,红色虚线标出了环流动的方向。点击连线可以翻转方向或设为不可比,试试把它修成一个有最优解的系统:修好时,最优的那个选项会亮起绿色。

偏好系统

游戏里的相克环(火焰纹章的剑斧枪、梦幻西游的门派相克)是有意设计的:目的就是消除最优解,平衡每种选择。三个人以上玩剪刀石头布,三种手势同时出现就直接重来,等于暂时放弃了可传递性,直到某一局只出现两种手势。

05 · 以复杂对抗纠结

标准一轮换,就会造出环

现实里的环从哪里来?石头赢剪刀,因为能把剪刀砸坏;剪刀赢布,因为能把布剪开;布赢石头,靠的却是把石头包。起。来。前两条的标准是破坏,第三条悄悄换成了包裹。两个单因素轮流上场,就是双重标准。

选工作也一样(这个例子是交互版补的)。三份 offer 各有长处。如果两两比较时只看哪边占优的因素多,每一次起决定作用的因素都不一样,等于标准在轮换,就会绕出一个环。换成同时考虑所有因素的加权模型,环就消失了。表格里的分数可以改。

薪资成长生活
两两比较的方式

没有把多个因素形式化地记下来审视,对于重要的问题,我们隔三差五就会不自觉地重复同一个怪圈。我们永远在建立新的偏好系统,却从没建立起一个同时满足完整性、可传递性和一致性的系统,所以永远找不到最优解。

大脑喜欢简单。上一篇讲的抓大放小,对开放问题很有用。但过度简化是对理性的逃避,只会越来越纠结。每个问题都有适合它的模型复杂度,太简单和太复杂都不好。原文说这个问题留到之后的文章再想。

系列地图

每一篇,一个可以动手的问题

  1. 一

    问题情境

    两种画法的正方形、找箭头、搜索树、表示方式、设计。

  2. 二

    可行解

    六道削皮题、量水实验、把剪刀拆开看、一根拉绳。

  3. 三

    开放问题

    只坐地铁、行动方式不限、抓大放小、证伪的是整个合式。

  4. 四

    纠结与最优解

    本页:电车难题、价值天平、两千个可能的你、偏好系统、标准轮换造出的环。

  5. 五

    测量的局限

    来自 2026-03 的整合 Proposal:相似性、分类与理论负荷。

  6. 六

    Duck Typing 作为策略

    不问它是什么,问它能做什么;行为级数据,让用户自己设权重。

  7. 七

    工程实践

    测试环境作为反事实探索器,双重传感器,Bayesian Safety。