蒙特卡洛方法

选优,是人类赋予科学的永恒课题。对同一个问题来说,选优的方法一般是很多的。从众多的选优方法中,找出最优的方法,这就是优选法。下面一个流传很广的智力测验题,可以生动地说明优选法的实质。

有 12 个球,外表全然一样,已知其中有一个球重量异于其他,但不知其较轻或较重。试用无砝码天平称量比较,找出这个“伪球”,并指出它较轻或较重于“真球”。

如果不限制称量比较的次数,那么要找到伪球是轻而易举的。但是,假如限定你只能用无砝码天平称量 3 次,你一定会感到不那么容易!可以证明,

在我们的问题中,通过 3 次称量,能够处理的最多球数是 12 个。一般地,用无砝码天平称量 n 次,能够处理的最多球数如下表。见图 1,像这样,用最少的比较次数,去处理最多球数的方法,就是优选法需要研究的。

上面的问题中有一个前提,即在众多的球中只有一个是伪球。如果伪球不止一个,而是若干个。即所有需要判定的球分为两类:一类叫“真球”, 一类叫“伪球”,它们外表都相同,只是重量略有差异。其实,“真”、“伪” 只是一种称呼而已,所以为方便起见,今后我们总把伪球看成比真球略重些。多个伪球的问题,显然要比单一伪球的问题更为复杂。比如有 20 个这样的球,那么光是判定伪球的数目,你就非得用无砝码天平称量十一次以上不可!

称量次数

最多可处理的球数

1 0
2 3
4

39

5

120

6

363

7

1092

n

1 (3n - 3)

2

现在再进一步假设:球的数量极多,而且重量各不相同。这时问题显然大为复杂。蒙特卡洛方法就是告诉我们,怎样从大量的球中,去寻找较重或较轻球的办法。设想所有的球人为地分为两类,一类是较轻的真球,一类是较重的伪球。蒙特卡洛方法说,只要从所有的球中,随机选取 r 个球,则其中最重的球,基本上是伪球。

上述方法,似乎令人难以置信,然而事实确实如此!实际上,我们可以把随机抽取的 r 个球,看成是相继抽取的。由于假设的数量很多,所以为了简化计算不妨认定每次取出球后又放回。这样,如若假定真球有 m 个,伪球

有 n 个, 那么每次抽到真球的概率均为

r 次都抽到真球的概率为:

m

m + n 。

m

( m + n

)·(

m

m + n) (

m m + n

) = (

m r

m + n)

因此 r 次中至少有一次抽到伪球的概率为:

P=1- (

m r

m + n )

当 r 增大时,上式的后一项将变得很小,从而 P 将很接近于 1。这就是说,在所抽的 r 个球中含有伪球,是十拿九稳的事。

蒙特卡洛方法是确定大量事物中某种特定状况问题的,即快速又管用的一种方法。

例如,测定学校里学生的弱视状况。假定全校有 1000 个学生。今随机抽

查 10 个组,每组 10 人。发现有 8 个组都有人视力在 0.5 以下。问该校学生的弱视状况如何?

由于 10 组中有 8 组发现弱视现象,所以弱视的概率为 0.8。代入前面的公式,因为 m+n=1000,则

m

0.8 = 1- ( 1000 )10

m

( 1000

10 = 0.2

lg(

m 1000

1

)= 10

lg0.2

求得 m=851, n=149

即知该校大约有 15%的人是弱视。

蒙特卡洛方法在优选法中也叫统计试验法,它的不足是因为是统计方法,大数定律在起作用,免不了有机遇的成份所以抽取的次数 r 要大些才行。