21.模糊综合评价(一)模糊理论简述一、模糊集与隶属度用数学的眼光看世界,现象分为确定性现象、随机现象、模糊现象(如“今天天气很热”,“小伙子很高”等)。其基本思想是,用属于程度代替属于或不属于(如某人属于高个子的程度为0.8)。经典集合语言:只有两种情况,要么x∈A要么x∉A,用特征函数χA()→{0,1}表示:1,()0,AxAxxA模糊集合语言:用隶属度函数μA()→[0,1]表示,它确定了X上的一个模糊集A.μA(x)越接近1,表明x属于A的程度越大。注:一般用A(x)表示x对模糊集A的隶属度。例1考虑年龄集U=[0,100],O=“年老”,O也是一个年龄集,u=20∉O,u=40呢?Zadeh给出了“年老”集隶属度函数刻画:Y=“年轻”也是U的一个子集,只是不同的年龄段隶属于这一集合的程度不一样,Zadeh给出它的隶属度函数:例2设身高集U={140,150,160,170,180,190},“高个子集”A的隶属度可定义为140()190140xAx。实际问题中隶属函数常用模糊统计方法确定(统计隶属频率)。二、模糊集的运算(1)相等A=BA(x)=B(x),∀x∈X(2)包含A⊆BA(x)≤B(x),∀x∈X(3)并(∨表示取大运算)(A∪B)(x)=A(x)∨B(x)=max{A(x),B(x)},∀x∈X(4)交(∧表示取小运算)(A∩B)(x)=A(x)∧B(x)=min{A(x),B(x)},∀x∈X(5)余Ac(x)=1-A(x),∀x∈X三、模糊矩阵设R=(rij)n×m为矩阵,满足0≤rij≤1,则称R为模糊矩阵,当rij只取0或1时,R称为布尔矩阵。设A,B分别为X和Y上的模糊集,X与Y之间存在模糊关系,可用n×m模糊矩阵R表示,则BAR称为模糊变换。模糊矩阵的运算类似于前面模糊集的运算。设A=(aij)m×s,B=(bij)s×n,则模糊矩阵()ijmnABc其中,1()sijikkjkcab称为模糊合成。(二)模糊综合评价(FuzzyComprehensiveEvaluation)一、算法步骤1.确定因素集及权重向量设事物的评价因素有n个,记作U={u1,u2,…,un},称为因素集。由于各种因素所处地位和作用的不同,考虑用权重向量A={a1,a2,…,am}来衡量。例如,某人要购买一件衣服,他要考虑的因素有:u1=“色彩”u2=“做工”u3=“品牌”u4=“款式”四个因素在评判过程中的权重分别为:“色彩”a1=0.3,“做工”a2=0.3,“品牌”a3=0.3,“款式”a4=0.1.2.确定评语集设所有可能出现的评语有m个,记作V={v1,v2,…,vm},称为评语集。例如,买衣服问题的评语集有v1=“好”v2=“较好”v3=“一般”v4=“差”3.建立评判矩阵(1)先对每个因素进行评价(评委打分或隶属度函数)例如,对于“色彩”u1,70%的评委认为是“好”,20%的评委认为是“较好”,5%的评委认为是“一般”,5%的评委认为是“差”。则对这件衣服“色彩”u1的评价为:r1={0.70.20.050.05}同样对“做工”u2的评价为:r2={0.50.10.20.2}对“品牌”u3的评价为:r3={0.60.20.10.1}对“款式”u4的评价为:r4={0.70.20.10}(2)得到评判矩阵12340.70.20.050.050.50.10.20.20.60.20.10.10.70.20.10rrRrr4.模糊综合评判基于合适的模糊合成算子计算总评价BAR,一般对B进行归一化处理,再根据最大隶属度原则做出判断。例如,计算出B=[0.330.220.220.22],由于B中最大数0.33出现在第一位,故对应的评价“好”就是最终稿评判结果。二、常用的模糊合成算子1.M(∧,∨)——取小取大,主因素决定型通常用的算子,其评判结果只取决于在总评价中起主要作用的那个因素,其余因素均不影响评判结果,比较适用于单项评判最优就能作为综合评判最优的情况。2.M(·,∨)——乘积最大,主因素突出型与M(∧,∨)相近,但比M(∧,∨)精细些,不仅突出了主要因素,也兼顾了其他因素。此模型适用于模型M(∧,∨)失效(不可区别),需要“加细”的情况。3.M(·,+)——乘加,加权平均型该算子依权重的大小对所有因素均衡兼顾,比较适用于要求总和最大的情形。4.M(∧,⊕)——取小上界和型在使用此算子时,需要注意的是:各个ai不能取得偏大,否则可能出现bj均等于1的情形;各个ai也不能取得太小,否则可能出现bj均等于各个ai之和的情形,这将使单因素评判的有关信息丢失。5.M(∧,+)——均衡平均型该算子实际上先对评判矩阵R中的列向量做了归一化处理,适用于R中元素rij偏大或偏小的情形。(三)Matlab实现模糊合成算子的计算函数:fce.mfunctionB=fce(A,R,type)%实现模糊合成算子的计算%A为因素集各因素的权重向量,R为评判矩阵,要求A的列数等于R的行数%type选择模糊合成算子的类型,1-5分别对应前文的5种不同算子%B返回综合评判结果[n,m]=size(R);B=zeros(1,m);switchtypecase1forj=1:mB(j)=max(min([A;R(:,j)']));endcase2forj=1:mB(j)=max([A.*R(:,j)']);endcase3forj=1:mB(j)=sum(A.*R(:,j)');endcase4forj=1:mB(j)=min(1,sum(min([A;R(:,j)'])));endcase5forj=1:mr0=sum(R(:,j));B(j)=sum(min([A;R(:,j)'./r0]));endend%归一化B=B./sum(B);例3某平原产粮区进行耕作制度改革,制定了甲(三种三收)、乙(两茬平作)、丙(两年三熟)3种方案。主要评价指标选取5项:粮食亩产量、农产品质量、每亩用工量、每亩纯收入、对生态平衡影响程度。根据当地实际情况,这5个因素的权重分别为0.2,0.1,0.15,0.3,0.25,其评价等级如下表:经过典型调查,并应用各种参数进行计算预测,发现3种方案的5项指标可达到下表中的数字:问究竟应该选择哪种方案?下面用模糊综合评价法求解。1.确定因素集及相应权重向量因素集:U={u1,u2,u3,u4,u5}u1=“粮食亩产量”u2=“农产品质量”u3=“每亩用工量”u4=“每亩纯收入”u5=“对生态平衡影响程度”权重向量:A=[0.2,0.1,0.15,0.3,0.25]2.确定评判集评判集:V={v1,v2,v3}v1=“方案甲”v2=“方案乙”v3=“方案丙”3.建立评判矩阵因素与方案之间的关系,可以通过建立隶属度函数来表示:(1)“粮食亩产量”u1的隶属度函数:1111110,350350(),3506006003501,600uuCuuu将三种方案的“粮食亩产量”数据分别代入该隶属度函数,得到1111592.5350()0.97600350rCu甲1211529350()0.716600350rCu乙1311412350()0.248600350rCu丙故r1=[r11,r12,r13]=[0.97,0.716,0.248].(2)“农产品质量”u2的隶属度函数(等级数越小越好):2222221,11()1,16610,6uuCuuu将三种方案的“农产品质量”数据分别代入该隶属度函数,得到21231()10.661rCu2甲22221()10.861rCu2乙23211()1161rCu2丙故r2=[r21,r22,r23]=[0.6,0.8,1].(3)“每亩用工量”u3的隶属度函数(越小越好):3333331,2020()1,206060200,60uuCuuu将三种方案的“每亩用工量”数据分别代入该隶属度函数,得到3135520()10.1256020rCu3甲3233820()10.556020rCu3乙3333220()10.76020rCu3丙故r3=[r31,r32,r33]=[0.125,0.55,0.7].(4)“每亩纯收入”u4的隶属度函数:4444410,5050(),50130130501,130uuCuuu将三种方案的“每亩纯收入”数据分别代入该隶属度函数,得到41447250()0.27513050rCu甲424410550()0.687513050rCu乙43448550()0.437513050rCu丙故r4=[r41,r42,r43]=[0.275,0.6875,0.4375].(5)“对生态平衡影响程度”u5的隶属度函数(等级数越小越好):5555551,11()1,16610,6uuCuuu将三种方案的“对生态平衡影响程度”数据分别代入该隶属度函数,得到51551()10.261rCu5甲52531()10.661rCu5乙53521()10.861rCu5丙故r5=[r51,r52,r53]=[0.2,0.6,0.8].从而评判矩阵为123450.970.7160.2480.60.810.1250.550.70.2750.68750.43750.20.60.8rrRrrr4.模糊综合评判为了兼顾各个方案,我们采用M(·,+)算子(加权平均型)计算总评价BAR,并对B进行归一化处理,再根据最大隶属度原则做出判断。代码:A=[0.20.10.150.30.25];R=[0.970.7160.248;0.60.81;0.1250.550.7;0.2750.68750.4375;0.20.60.8];type=3;%选择第3类模糊合成算子M(.,+)B=fce(A,R,type)运行结果:B=0.24520.40040.3544故最终评价结果是:乙最好,丙次之,甲最差。(四)二级模糊综合评价下面用一虚拟例子来说明该算法,某企业生产一种产品的质量由9个指标u1,u2,…,u9确定,产品的级别分为一级、二级、三级、废品。由于因素较多,宜采用二级模型。1.将因素集U分为3组:U1={u1,u2,u3}U2={u4,u5,u6,u7}U3={u8,u9}2.设评判集V={v1,v2v3,v4}v1=“一级”v2=“二级”v3=“三级”v4=“废品”3.对第二层每个Ui(i=1,2,3)中的因素进行单因素评判,比如(1)对U1={u1,u2,u3}的权重向量A1=[0.30.420.28],建立评判矩阵:10.360.240.130.270.200.320.250.230.400.220.260.12R用算子M(∧,∨)作一级模糊综合评判,得111[0.26090.27830.22610.2348]BAR(2)对U2={u4,u5,u6,u7}的权重向量A2=[0.30.420.20.08],建立评判矩阵:20.300.280.240.180.260.360.120.200.220.420.160.100.380.240.080.20R用算子M(∧,∨)作一级模糊综合评判,得222[0.27270.32730.21820.1818]BAR(3)对U3={u8,u9}的权重向量A3=[0.350.65],建立评判矩阵:30.340.250.300.110.400.280.300.18R用算子M(∧,∨)作一级模糊综合评判,得333[0.3448