10个人打水,如何排队总时间最少?
2023-06-05李井奎
李井奎
在计划经济时代,由于物资短缺,排队现象非常普遍,以至于排队问题都惊动了当时的大数学家华罗庚。华罗庚先生也在这个问题上提出不少解决办法,包括他特别提倡的统筹方法。
首届华罗庚数学竞赛小学组,就有这样一道据说是华罗庚先生出的关于“排队”的题目:10个人拎着水桶排队在打水,10个水桶大小不一,请问他们该如何排队,才能使排队总时间最低?
我小女儿才六岁,她张口说应该让大桶排后面、小桶排前面。我很惊奇,因为她这个答案是对的,尽管她只是猜的。我们来用反证法证明我女儿这个答案是对的:只要不是按照从小到大,就会有挨着的两个桶,大桶在小桶前面,假设大桶需要时间是T,小桶需要时间是t,当然T大于t。只要让这两个人调换一下位置,就可以节省T-t的时间。可见,只要不是按照从小到大排,就不是最优方案。
但是,这个从数学上看起来是最优的方案,一旦人们站好了排队取水的位次,你让他们按照你说的这个方案来实施,是不是对每个人都好呢?遗憾的是,对于所有人而言的这个所谓“最优”,对于具体的个体来说,很可能并非如此。如果我拎的是最大的那个桶,已经排在了第一位,你让我哪怕稍微跟后面一位換一换,这对我来说也是一种损害。
经济学中有一个概念,叫做帕累托最优配置。意思是说,如果一个资源配置状态在不使任何其他人的福利受损的情况下,就不能使你的福利得到改善,那么,这种状态就是帕累托最优配置状态。按照这个概念,前面这一段所讲的那种数学上用时最短的状态,就不一定是帕累托最优配置状态,因为虽然你从数学上证明从小桶排到大桶是最优的,但只要不是一开始人们就处于这种状态,我们是无法在不使得任何人的排队时间不增加的情况下,而使这种数学上的最优状态得到实现。要解决这个问题,有几个办法。
第一个,就是假设存在一个绝对的独裁者,他来做决定,让人们按照从小桶到大桶去排队。单纯从这个排队取水问题上来说,这个方法是可以带来最短排队时间的。
第二个,是假定使用简单多数投票原则,只要多数人投票同意,就可以改动人们的排队位次。比如我排在第一位,那么,大家投票让我去最后一位,这样赞成票会有9张,反对票可能就我这一张。然后再依次投别人的票,基本上可以保证多数原则下投票投出的结果与上述的最短时间排队方案相一致。
除了这两种政治意味很浓厚的方法之外,还有一个经济学上的交易方法,从这里我们可以看到,自由交易在增进社会总价值上多么重要。假如排队者的每一分钟时间值1毛钱,原来20分钟的大桶排在10分钟的小桶前面,拎小桶的人提出与拎大桶的人交换位置,给他1.5元钱作为补偿。这样一来,拎小桶的人可以节省20分钟,虽然他付出了1.5元,但还是节省了5分钟的价值。拎大桶的人确实是多等待了10分钟,但他得到了1.5元,相当于赚到了5分钟的价值。
如果各人对于时间的估价差别不大,这种交易仍然可以得到数学上最短的排队时间结果。但是,如果有人对时间估值很高,情况就会是他们付钱给那些对时间估值不高的人,从而不见得使排队时间最短,但这样做却可以使得社会总的价值最大。
不要小看排队的学问,某种意义上说,这个排队取水的问题,蕴含着“阿罗不可能性定理”“福利经济学第一定理”这类高深的学问。由此可见,那些被许多人所抨击的看似高深而无用、充满着数学证明的经济学定理,其实,它们所研究的现象,遍布于我们周围的市井生活之中,只要我们深入想一想,这其中的道理并不难懂。