博客搁置了将近半年,最近腾出时间来更新一篇文章 :) 这半年的时间里,我做出了一些重要的决定,比如找工作,找房。
在作出决定的时候,有一个数学方法可以辅助我们仔细权衡利弊,然后为不同的方案打分。这篇文章就是想讲解一下这个方法。
这个方法我也编写成了一个网页版的工具,点击这里可以尝试。不过还是建议先读完本文的介绍,了解其后的背景,这样能更方便地使用。
权衡利弊的办法
我们经常面临的情况,多是对于一个问题,可能 (a) 有多个解决方案,但各有优缺点,但是 (b) 一定要选出一个相对较好的解决方案。
以买电脑为例,我有时候就考虑:
- 买一个上网本,轻便,但是性能可能不好,能做的事情也有限,可能只是用来上网或者文字处理。
- 买一个加固的笔记本,比如Panasonic的Toughbook系列,重,但是结实,适合户外使用。性能也不错,可以完成复杂一些的应用。
- 买一个游戏本,贵,也不能做到完全适合户外应用。但是性能最好,可以做很多事情。
- 买一个台式机,价格适中,但是完全没有便携性,不适合户外或移动应用。
那么,究竟买哪一种电脑呢?这时候决策的办法之一,是分清你的需求主次,看上述方案哪一个能最大程度地满足你的主要要求,而在不那么重要的角度上退求妥协。
列出需求,并打分评估
一种常见的办法,是首先列出各个需求,然后给每个需求赋予一个权重。再分别考虑每个方案,评估其在各个需求上的表现(比如从1到5打分)。最后将表现得分和需求本身的权重相乘后求和,就得到了方案的得分。
自然,方案得分最高的,就是较好的方案。
举个例子说明。我们在上面的例子中可以总结出如下需求:
- 重量轻
- 结实/适合户外使用
- 性能好
- 价格便宜
根据个人的喜好,可以给各项需求打个分数,比如对我而言:
- 结实/适合户外应用 = 3
- 性能好 = 2
- 价格便宜 = 1
- 重量轻 = 0
然后可以列出表格,各个方案分别考虑:每个方案在每项需求上的表现按照1(最差)-5(最好)打分,然后按照权重求得总分:
重量轻(x0) | 结实/适合户外使用(x3) | 性能好(x2) | 价格便宜(x1) | 合计得分 | |
---|---|---|---|---|---|
上网本 | 最好(5)x0=0 | 一般(3)x3=9 | 做不到(1)x2=2 | 最好(5)x1=5 | 16 |
Toughbook | 做不到(1)x0=0 | 最好(5)x3=15 | 比较好(4)x2=8 | 不太好(2)x1=2 | 25 |
游戏本 | 一般(3)x0=0 | 一般(3)x3=9 | 比较好(4)x2=8 | 做不到(1)x1=1 | 18 |
台式机 | 做不到(1)x0=0 | 做不到(1)x3=3 | 最好(5)x2=10 | 一般(3)x1=3 | 16 |
这就可以看出:对我而言,比较有吸引力的方案似乎是:Toughbook > 游戏本 > 上网本 = 台式机
这种评估有没有什么问题?
在上面的例子中,上网本和台式机的选项并列,都得到了16分。我们仔细看一下表格,原来这是因为「重量轻」的一项我们给赋予了一个0的权重。
这样,各个方案实际上是无需考虑“重量轻”这一项的。在其他三项需求中,「上网本」和「台式机」得到的分数相同。假如「重量轻」这一项的权重不是0,那么很显然,上网本就一定比台式机有优势,而不是相等。
这样就引出了一个问题:我们上面凭主观印象决定各个需求的权重,有什么道理吗?
改进:用矩阵确定需求的权重
我认为答案是否定的。本博客介绍一种方法,可以使用更加理性的方式,仔细考虑各个需求的权重。
这个方法就是基于如下的一些问题:假如给你需求A但是让你失去需求B,你选择谁?
- 你愿意为了「重量轻」而放弃「性能好」吗?
- 你愿意为了「价格便宜」而放弃「重量轻」吗?
- …
我们让第1个需求与剩下的3个需求相比,第2个需求与剩下的2个需求相比,第3个需求与第4个需求相比,就得到了6个比较。
假如在比较的过程中,第x个需求被第y个需求“打败”了,这个比较的结果就是第1个需求记-1分,而第y个需求得1分。我们可以用矩阵表示:
下面的与右侧比较: | 重量轻 | 结实/适合户外使用 | 性能好 | 价格便宜 |
---|---|---|---|---|
重量轻 | 0 | -1 | ||
结实/适合户外使用 | 1 | 0 | ||
性能好 | 0 | |||
价格便宜 | 0 |
上图是在完成一次「结实/适合户外使用」 vs 「重量轻」的比较之后的结果。我相信自己的负重能力,宁愿在户外开展工作而多增加一些重量,所以给「结实」1分,而「重量轻」-1分。显然,对角线上的是需求自身互相比较,没有意义,所以都是0分。
整个表格完成之后,我的决定是这个样子:
下面的与右侧比较: | 重量轻 | 结实/适合户外使用 | 性能好 | 价格便宜 |
---|---|---|---|---|
重量轻 | 0 | -1 | -1 | 0 |
结实/适合户外使用 | 1 | 0 | 1 | 1 |
性能好 | 1 | -1 | 0 | 1 |
价格便宜 | 0 |
-1 | -1 | 0 |
需要注意的是,如果两个需求之间无法抉择哪个更好,比如「价格便宜」和「重量轻」——我不知道要为了价格便宜而放弃重量轻,还是为了重量轻而放弃价格便宜——比较结果可以都写零。
这样,我们只需要填写半个矩阵,就可以得知完整的情况。而且矩阵对角线右上的三角形和左下一定是符号相反。
因为我们每次比较都是让第一列中的需求和其他需求横向比较,所以各个需求的得分来自其各行总分。这个总分就可以作为权重。于是:
- 重量轻,权重=-2
- 结实/适合户外使用,权重=3
- 性能好,权重=1
- 价格便宜,权重=-2
可以这样理解:因为权重来自一个需求“打败”其他需求的“成绩”,所以,类似「结实/适合户外使用」的需求一旦得到1分,就在其他3个需求上多了各1分。反之,如果追求不受欢迎的需求,比如「价格便宜」,每为了这个需求增加1分,在别的需求上就各扣一分。
也可以明显看出,我的关注点在于结实/适合户外使用 > 性能好 > 重量轻 = 价格便宜
。这种矩阵方法首先捋清了个人的关注点。
决策工具
结合矩阵法确定的权重,和前面所属的基于需求的权重对各方案的评估,其结果就是一套改进的用数学方法做出决策的工具:
http(s)://neoatlantis.org/decision-making/
为了便于比较,前文所述的权重结果,在计算出来之后会按照比例调整到0-100的范围。这并不影响最终的方案次序,只是让得分看起来更大、更明显一些。