书城科普读物探索未知-诗歌与数学
8885000000009

第9章 模糊数学

电视剧《刘罗锅》里有两句歌词唱道:“故事里的事说是就是,不是也是;故事里的事,说不是就不是,是也不是。”其实,何止是故事里的事如此,现实生活中的许多事情又何尝不是如此。

下面这两联唐诗分别取自杜甫的《月夜忆舍弟》和殷益的《看牡丹》:露从今夜白,月是故乡明。(杜甫)

发从今日白,花是去年红。(殷益)

这两联的句式结构完全相同,时间概念十分明确,没有丝毫模糊的地方。但仔细推敲,这两联诗句却有很大的不同。杜甫的“露从今夜白”是完全合理的,“白露”是一个固定的节日,说今夜是白露节了当然是对的。但殷益的“发从今日白”却是很不科学的。头发变白是一个渐近的过程,是在不知不觉中慢慢地变白的,一般不可能在一天之内头发突然变白。杜甫也有两句写白头发的诗:白头搔更短,浑欲不胜簪。(《春望》)

当时诗人所处的社会正经历着安史之乱,国破家亡,民不聊生。诗人忧心如焚,感时恨别,竟至于看花溅泪,听鸟惊心。头发不禁一天天变白,一天天变得稀疏短少,连发簪也快别不住了。“白头搔更短”的一个“更”字,写出了头发变白变短的渐进过程。这才是合乎逻辑的。当然,无论是杜甫的“月是故乡明”也好,殷益的“花是去年红”也好,很明显都带有强烈的主观色彩,实际上未必是那么一回事。

不过,诗歌毕竟不是科学,诗歌中包含着诗人强烈的主观意识。诗中遣词用字是否合理,主要的只能是艺术的标准而不是科学的标准。“发从今日白”只不过是诗人对人生易老的一种强烈感受,所以才一口咬定,他的头发是一天之间就变白的。斩钉截铁,没有商量的余地。虽然不合科学,但从艺术的角度看,也不能说他错。就像电视剧《刘罗锅》中的唱词一样,说它是就是,说它不是就不是。这要看你对“白发”如何理解。当前有一种颇为流行的说法是:“这是模糊数学!”

什么是“模糊数学”呢?让我们先谈谈语言中的模糊现象。

语言中的模糊现象,早在古希腊时代就引起了人们的注意。古希腊哲学家就提出过下面的著名的“连锁推理悖论”。

“一粒麦子肯定不能成为一堆。对于任何一个正整数n来说,如果n粒麦子不成堆的话,即使再加一粒麦子,n+1粒也不能形成一堆。因此,根据数学归纳原理,任意多的麦粒也不成一堆。”

人们很容易轻信这个悖论的推理,但它的结论明显是错误的。这个悖论利用了“堆”这个概念的模糊性,因为多少麦粒可以构成“一堆”是模糊的,并且n粒麦子与n+1粒麦子能否作为不成“一堆”和成为“一堆”的界限也是模糊的。

法国数学家波莱尔也曾在他的一本专著中讨论过这个问题,他写道:一粒种子肯定不叫一堆,两粒也不是,三粒也不是……另一方面,所有的人都会同意,一亿粒种子肯定叫一堆。那么,适当的界限在哪里呢?我们能不能说,325647粒种子不叫一堆,而325648粒种子就构成一堆了呢?最后,波莱尔对这一问题作出回答:“n粒种子是否叫一堆”这一问题,如果答案是“叫一堆”,这个答案的正确程度,应该理解为“n粒种子叫一堆”这一事件A的概率P{n∈A}。实际上,这里的A已经是模糊集合了。因此,这一思想实质上已经是模糊数学思想的萌芽。

出生于前苏联巴库的美国控制论专家扎德于1965年在《信息与控制》杂志上发表了他的开创性论文《模糊集合》。

众所周知,在普通集合论中,一个元素是否属于一个集合,只有两种可能,即属于或不属于,二者必居其一且唯居其一。扎德引进了“隶属度”的概念:若一个元素x属于集合A,就称x的隶属度为1;若x不属于集合A,则称它的隶属度为0。如果我们引进一个函数fA(x),如下:fA(X)=1,当X∈A时;0,当XA时。

把函数fA(x)称为集合A的特征函数(若X是函数fA(x)的定义域,则A是X的一个子集)。显然,在集合X上任意定义一个值域为{0,1}的函数,都有唯一确定的X的子集A以这个函数为其特征函数;反之,X的任何一个子集A都决定了一个唯一的特征函数fA(x)。所以一个集合可以用它的特征函数来刻划,给出一个集合与给出一个特征函数是同一回事。

扎德把特征函数从只取0和1两个值推广到可以取从0到1之间的任何实数值,并把推广了的特征函数称为隶属函数。

在普通集合论中,fA(x)=1表示x属于集合A,那么在推广后的隶属函数,fA(x)=0.8表示什么意思呢?它表示x属于集合A的“程度”(隶属度)为80%,或者更通俗地说,人们相信x属于集合A的程度为80%。这样的集合A称为“模糊集合”。

很明显,普通集合只是模糊集合的特例。

引进了模糊集合之后,对于某些模糊概念,例如“胖子”、“老年人”等概念,人们就开始努力去建立它的隶属函数。

例如,“老年人”就是一个模糊概念,老年人的集合就是一个模糊集合。70岁算不算老年人?60岁呢?于是有人给出了一个隶属函数公式(一般地说,人不超过150岁,定义域X可取为X={0,1,2,…150}:fA(X)=0,当X≤50时;[1+(x-505-2)]-1当X>50时。

现在,把55岁、60岁、65岁分别代入公式,计算得:fA(55)=[1+55-505-2]-1=(1+1-2)=0.5;fA(55)=[1+55-505-2]-1=(1+2-2)-1=0.8;fA(55)=[1+55-505-2]-1=(1+3-2)-1=0.9;如果采用这一隶属函数,那就意味着:55岁属于“老年”的程度为0.5;60岁属于“老年”的程度为0.8;65岁属于老年的程度为0.9。

模糊数学的研究特点是设法使模糊性向精确性合理的转化。一个常用的方法是采用“截割思思”把模糊集合转化为普通集合。给定了一个模糊集合A,按隶属度的大小,选一个确定的数作为阀值进行截割:设阀值定为λ,当fA(x)≥λ时,就认为x是集合A的元素;当fA(x)<λ时,就认为x不是集合A的元素。例如,就“老年人”这个模糊集合来说,对于上面提到的那一个隶属函数,若取λ=0.85,则55岁、60岁都还不是“老年人”,而70岁则肯定属于“老年人”了。这时,“老年人”这个模糊集合就转化为普通集合了。至于上面的隶属函数fA(x)和阀值取得是否合理,那又是另一回事,应该是医学家和社会学家的工作了。

现在让我们重新回到“发从今日白,花是去年红”的诗句。“白发”与“红花”都是模糊概念。英国著名哲学家和数学家罗素(1872-1970年)在1923年写过一篇《论模糊性》的文章。他说:由于颜色构成一个连续统,因此颜色有深有浅。对于这些深浅不同的颜色,我们就拿不准是否把它们称为红色。这不是因为我们不知道‘颜色’这个词的意义,而是因为这个词的适用范围在本质上是不确定的。这自然也是对人变成秃子这个古老之谜的回答。假定一开始他不是秃子,他的头发一根一根地脱落,最后才变成秃子。于是有人争辩说,一定有一根头发,由于这根发的脱落,便使他变成秃子。这种说法自然是荒唐的。秃头是一个模糊概念,有一些人肯定是秃子,有一些人肯定不是秃子,而处于两者之间的一些人,说他们必定要么是秃子,要么不是,这是不对的。排中律用于精确符号是对的,但是当符号是模糊的时候,排中律就不合适了。事实上,所有的描述感觉特性的词,都具有‘红色’这个词所具有的同样的模糊性。”

我们只要在罗素这段话中,将“秃子”改成“白发”,就足以代替我们在文章开始时所发的那些议论了。

“白发”与“红花”都是两个模糊集合。

现代科学已经给“红色”确定了一个合理的隶属度和阀值,使它成为普通的集合了。现代物理学把颜色定义为视觉的基本特征,是不同波长的可见光引起的视觉器官的不同感觉,并且根据可见光的不同波长明确地划分了红、橙、黄、绿、蓝、紫的界限。红色的波长范围是0.77微米~0.622微米之间。光的波长在这个范围之内就叫红色,否则就不叫红色。

那么怎样给“白发”定义一个隶属函数或一个阀值呢?据说,人的头发不超过20万根,一个可行的简单方法是,定义“白发”的隶属函数fA(n)(n表示这个人白头发的根数)

fA(n)=0当n≤200n200000当20000<n≤1000001当n>100000

给fA(n)规定一个阀值,例如,规定当fA(n)≥0.35,就认为他是“白发”。那么就的确有可能诗人在哪一天由于某一根头发的变白,而使得λ≥0.35,从而使诗人变为“白发”了。