第1章 模糊数学导论 1.1 不确定性与模糊性 1.1.1 不确定性普遍存在 根据大家的经验和知识,不难得出这样的结论: 不确定性普遍存在!全球经济是不确定的,社会对本专业大学生的需求是不确定的,股市的涨跌具有不确定性,房价能否下降具有不确定性,接下来的这个时段城区的交通是否拥堵具有不确定性,明天的天气状况具有不确定性;大家对你是否是帅哥(靓女)的评判具有不确定性(帅哥、靓女的标准因人而异,不能给出一个确切的结论,情人眼里出西施),这本教材是否优秀也是不确定的(什么是优秀?没有一个精确的尺度),等等. 正因为不确定性的普遍存在,它成为许多学科领域的研究对象,维基百科(Wikipedia)是这样介绍uncertainty(不确定性)的: Uncertainty is a term used in subtly different ways in a number of fields, including physics, philosophy, statistics, economics, finance, insurance, psychology, sociology, engineering, and information science(不确定性是这样一个术语,它被多个领域以微妙的不同方式所使用,包括物理学、哲学、统计学、经济学、金融、保险、心理学、社会学、工程及信息科学). 在物理学中,有著名的“不确定性原理”,是由德国物理学家海森堡于1927年提出的量子力学中的不确定性,具体指在一个量子力学系统中,一个粒子的位置和它的动量不可被同时确定. 对“不确定性原理”可从数学的角度给出通俗化描述,有兴趣的读者可参阅“不确定性原理的前世今生·数学篇”(可浏览网站http://blog.farmostwood.net) . 在经济学中,有“不确定性经济学”,它是西方经济学大家族中派生出来的交叉学科和边缘学派. 1921年,弗兰克·奈特(Frank Knight)正式将不确定性概念引入经济学的理论殿堂中. 对不确定性的分析和认识,同时也是新兴学科“信息经济学”的基本内容,杰克·赫什雷弗(J. Hirshleifer)说过: 信息经济学是经济不确定性理论自然发展的结果. “不确定性”同样是数学科学研究的重要对象,大家熟知的概率论就是一门研究不确定性的数学理论. 除此之外,20世纪下半叶以来,人们对不确定性现象、不确定性问题、不确定性信息等从不同角度进行了大量分析和研究,发展了多种不同的数学理论(可以统称为不确定性数学理论),模糊数学、粗糙集(rough sets)理论就是其中的典型代表. 1.1.2 模糊性是不确定性的一个重要方面 由于事物类属划分的不分明而引起的判断上的不确定性,称为模糊性(fuzziness) ,它是不确定性的一种重要表现形式. 模糊性是客观事物之间难以用分明的界限加以区分的性质,它产生于人们对客观事物的识别和分类之时,并反映在概念之中. 外延分明的概念,称为分明概念;外延不分明的概念,称为模糊概念. 在人类一般语言以及科学技术语言中,都大量地存在着模糊概念,例如,高与矮、胖与瘦、美与丑、清洁与污染、健康与不健康,等等. 健康人与不健康的人之间没有明确的划分,当判断某人是否属于“健康人”的时候,便可能没有确定的答案,这就是模糊性. 当一个概念不能用一个分明的集合来表达其外延的时候,便有某些对象在概念的正反两面之间处于亦此亦彼的形态,它们的类属划分便不分明了,呈现出模糊性,所以模糊性也就是概念外延的不分明性、事物对概念归属的亦此亦彼性. 传统数学以康托尔集合论为基础,集合是描述人脑思维对整体性客观事物的识别和分类的数学方法. 康托尔集合(也称经典集合)要求其分类必须遵从排中律,对于某个集合A,论域(即所考虑的对象的全体)中的任一元素要么属于集合A,要么不属于集合A, 两者必居其一,且仅居其一. 经典集合只能描述外延分明的“分明概念”,只能表现“非此即彼”,而不能描述和反映外延不分明的“模糊概念”. 为了克服经典集合的不足,1965年美国控制论专家L.A. Zadeh发表了著名论文《Fuzzy Sets》(模糊集),这标志着模糊数学的诞生. 1.2 模糊集与模糊数学概述 1.2.1 模糊集是科学发展的必然产物 长期以来,人们一直把模糊看成贬义词,只对精密与严格充满敬意. 计算机是在精确科学的沃土中培育起来的一朵奇葩,计算机解决问题的高速度和高精度,是人脑望尘莫及的. 有了计算机,精确方法的可行性大大提高了. 但是也正是在使用计算机的实践中,人们认识到人脑具有远胜于计算机的许多能力,人们更深刻地理解了精确性的局限,促进了人们对其对立面或者说它的“另一半”--模糊性的研究. 人脑能接受和处理模糊信息,能依据少量的模糊信息对事物做出足够准确的识别、判断和推理,能灵活机动地解决复杂的模糊性问题. 凭借这种能力,司机可以驱车安全穿越闹市, 医生可以依据病人的症状所提供的模糊信息进行准确诊断,画家不用精确的测量计算可以画出栩栩如生的风景和人物,儿童可以辨认潦草的字迹、听懂不完整的言语,甚至婴儿也可以迅速地从人群中识别出自己的妈妈. 而这一切都是以精确制胜的计算机所望尘莫及的,下面这张图片(图1-1)耐人寻味. 图1-1 机器智能(和机器人聊天,总有个时候你会忍不住说“你真笨”) 在围绕决策、控制及相关系列重要问题的研究中,从应用传统数学方法和现代电子计算机解决这类问题的成败得失中,使Zadeh逐步意识到传统数学方法的局限性. 他指出: “如果深入研究人类的认识过程,我们将发现人类能运用模糊概念是一个巨大的财富而不是包袱. 这一点,是理解人类智能和机器智能之间深奥区别的关键. ”精确的概念可以用通常的集合来描述,模糊概念应该用相应的模糊集合来描述. Zadeh抓住这一点,首先在模糊集的定量描述上取得突破,奠定了模糊性理论及其应用的基础. 1.2.2 隶属函数与模糊集 模糊概念的外延是不明确的,其边界是不清晰的,要表达模糊概念就不能用经典集合了. 比如,对于“年轻人”这个概念,假定用“年轻人的集合”来表达,若要判断20岁的张三或80岁的李四是否属于“年轻人的集合”,答案自然是明确的!但要判断36岁左右的人是否属于“年轻人的集合”,就不那么好确定了;对于一个实际年龄不超过36岁而又没有几根头发的人,就更难确定是否属于“年轻人的集合”了. 在许多场合,是与不是,属于与非属于之间的区别不是突变的,而是有一个边缘地带、量变的过渡过程. 很自然地会提出疑问: 为什么要把自己局限于只考虑“属于”、“不属于”两种极端情况?如果分别用1、0表示“属于”、“不属于”,称为元素属于集合的隶属度. 上述问题就表示成: 为什么非要规定隶属度只取0、1两个值呢?就是说,一个对象是否属于某个集合,不能简单地用“是”或“否”来回答. Zadeh正是创造性地允许隶属度可取0、1之间的其他实数值,从而用隶属函数来表示模糊概念. 例如,设A表示“年轻人的集合”,则年龄0~25之间的人自然认为是属于A的,即隶属度为1;年龄25岁以上的人(假设用x表示其年龄),可以认为是以一定的“程度”属于A的,这个“程度”用A(x)表示. 这样,“年轻人的集合”A,可以用定义在年龄论域X=\上的函数(称为隶属函数或成员函数,membership function)来表示,例如:A(x)=1, 0≤x≤25, 1+x-2552〗-1, 25piecewise(x>=0 and x<=25,1,x>25 and x<=150,(1+((x-25)/5)^2)^(-1)): plot(A(x),x=0..150,0..1);按Shift+Enter键,Maple将给出“年轻人”模糊集的隶属函数图像,如图1-2所示. 前面输入的是两条Maple命令,第一条是定义一个函数,函数名为A、变量为x,函数本身是分段的,故使用了Maple提供的库函数piecewise,其使用方法可以通过Maple的帮助系统得到;第二条命令是绘制函数A(x)的图像,命令中给出了自变量及函数值的范围. 第一条命令后使用冒号,表示不输出当前命令的执行结果(对于那些强制输出执行结果的命令,冒号不起作用);第二条命令后使用分号,Maple将显示当前命令的执行结果. 当关闭Maple操作窗口时,系统会提示保存上述操作,输入一个文件名,Maple将以扩展名为.mws的文件保存执行过的命令及运算结果到磁盘上,以后可以在Maple中再次打开. 关于Maple的基本使用方法,请读者浏览Maple的帮助系统或上网查阅相关资料. (2) 美国滑铁卢大学的Douglas Wilhelm Harder先生开发了程序包FuzzySets,可在Maple公司的网站http://www.maplesoft.com/下载,也可在Douglas Wilhelm Harder先生的主页https://ece.uwaterloo.ca/~dwharder/获得相关链接信息. 下载FuzzySets程序包压缩文档(目前是FuzzySeys3.zip)后,将其解压到Maple所在目录的lib子文件夹中. 在Maple命令提示符后输入(并按Shift+Enter键执行): with(FuzzySets\):其含义是调用程序包FuzzySets的子包RealDomain(它允许用户创建和操作实直线上模糊集),以后就可以自由使用其中的命令或函数了. 比如,执行以下命令可以得到两个模糊集(它们都具有三角形的隶属函数)的并集,如图1-16所示. plot(Lambda(1,2,3) union Lambda(2,3,4 ),0..5);图1-16 Maple程序包FuzzySets使用示例 (3) 在Maple公司网站的应用中心http://www.maplesoft.com/applications/下载Maple工作表FuzzyControllers.mw,双击打开该文档(这里使用Maple 14新界面模式),如图1-17所示. 此工作表在前述Maple程序包FuzzySets的支持下,借助Maple软件设计了倒立摆模糊控制仿真动画. 按以下步骤操作,可欣赏这些动画: ① 单击工具栏上的按钮,执行整个工作表(即依次执行该文档中的所有Maple命令). ② 执行完毕后,文档中出现一系列图像,其中一些包含有动画,单击它们时工具栏出现一组新按钮;单击工具栏上的按钮,即开始播放动画. 比如,在“InvertedPendulum(-10,40,Rules,100)”命令后的执行结果图像中,可播放如图1-18所示的倒立摆动画. 该文档中提供了多个这样的动画,请读者自行操作练习. 图1-17 用Maple写的模糊控制介绍 图1-18 用Maple制作的倒立摆仿真动画 第2章 模糊集理论基础 2.1 模糊集的基本概念及基本运算 2.1.1 模糊集合的定义 1. 经典集合与特征函数 首先说明论域的概念. 人们在研究具体问题时,总是对局限于一定范围内的对象进行讨论,所讨论的对象的全体称为论域. 在论域X中任意给定一个元素x及任意给定一个经典集合A,则或者x∈A,或者xA,二者必居且仅居其一. 这种关系可用如下二值函数表示: χA: X→{0,1};xχA(x)=1, x∈A; 0, xA. 图2-1 论域X中集合A的特征函数 上述函数χA称为集合A的特征函数. 显然,集合A完全由它的特征函数χA所确定(见图2-1) ,因此可以将集合A与特征函数χA等同起来. 2. 模糊集合的定义 定义2.1.1 论域X上的模糊集合(或称模糊子集)A是X到\的一个映射(称为隶属函数) μA: X→\. 对于x∈X, μA(x)称为x对于A的隶属度. 根据定义,模糊集合与经典集合不同,它并没有确定的元素,我们只能通过隶属函数来认识和掌握它. 因此,模糊集合的定义也常被写成下面的样子: 论域X上的模糊集合A是X到\的一个映射A: X→\. 以后我们将μA(x)与A(x), μA与A等同起来,就如同将经典集合与其特征函数等同起来一样. 如前所述,经典集合可用特征函数完全刻画,因而经典集合可看成模糊集的特例(即隶