失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数模算法:模糊综合评价模型

数模算法:模糊综合评价模型

时间:2020-09-06 00:34:36

相关推荐

数模算法:模糊综合评价模型

概念引入

模糊集合:用来描述模糊性概念的集合(例如优良差,等级)

隶属函数:对模糊集合的刻画,得到·隶属度一般范围[0,1],如果不是则归一化处理

因素集:评价指标集

评语集:评价的结果

隶属函数的三种确定方法:

模糊统计法(专家打分,少用)

利用已有的或收集数据来定义 (如果自己定义隶属函数指标的隶属度有时还要正向化处理达到隶属度越大越有利或者反之)

指派常用函数:

1.三角形隶属函数

2.梯形隶属函数

算法步骤

确定因素集及权重(权重可以用层次分析法或熵权法等确定权重的算法得到)

确定评语集

建立模糊矩阵(评判矩阵)

模糊综合评判

关于模型等级:

一级模糊综合评价模型(指标较少,相互间独立)

多级模糊综合评价模型(指标很多,需要归类,按照一级模糊综合评价模型求解再求上一级)

Matlab提供了三角形、梯形隶属度函数,分别为trimf(x, [a b c])、

trapmf(x, [a b c d])针对中间图形

应用案例(参考知乎:张敬信的案例,选择指派函数来得出模糊矩阵)

问究竟应该选择哪种方案

用模糊综合评价法解决

模糊综合评价,方案的总评价我选择直接B=A*R(看过其他的案例都选择了这种方案)

根据最大隶属度原则,方案甲属于评语为“1”,方案乙属于评语为“2”,方案丙属于评语为“3”,故评价结果是:丙最好,乙次之,甲最差。

由于评语是一种打分,进而计算三种方案的总得分S,作为评价标准更加合理。

最终评价结果是:乙最好,丙次之,甲最差。

matlab代码

%三角形/梯形隶属函数(左边图),p[a,b]function y=dtrimf(x,p)y=zeros(size(x));y(x<=p(1))=1;I=x>p(1)&x<p(2);y(I)=(p(2)-x(I))/(p(2)-p(1));

%三角形/梯形隶属函数(右边图),p[a,b]function y=itrimf(x,p)y=zeros(size(x));I=x>p(1)&x<p(2);y(I)=(x(I)-p(1))/(p(2)-p(1));

%得到模糊矩阵function R=getMatrix(x)r1=[dtrimf(x(1),[350 450]),trapmf(x(1),[250 350 450 550]),...trapmf(x(1),[350 450 550 650]),itrimf(x(1),[450 550 700 700])];r2=[itrimf(x(2),[3.5 4]),trimf(x(2),[2.5 3 3.5]),...trimf(x(2),[1.5 2 2.5]),dtrimf(x(2),[1 1.5])];r3=[itrimf(x(3),[40 60]),trapmf(x(3),[20:20:80]),...trapmf(x(3),[0:20:60]),dtrimf(x(3),[20,40])];r4=[dtrimf(x(4),[50 90]),trapmf(x(4),[0 50 90 130]),...trapmf(x(4),[50:40:170]),itrimf(x(4),[90 130])];r5=[itrimf(x(5),[3.5 4]),trimf(x(5),[2.5 3 3.5]),...trimf(x(5),[1.5 2 2.5]),dtrimf(x(5),[1 1.5])];R=[r1;r2;r3;r4;r5];

x1 = [592.5 3 55 72 4];x2 = [529 2 38 105 3];x3 = [412 1 32 85 2];R1=getMatrix(x1);R2=getMatrix(x2);R3=getMatrix(x3);A=[0.2 0.1 0.15 0.3 0.25];w=0:3;%计算总评价B(这里直接用矩阵相乘来合并)B1=A*R1;B2=A*R2;B3=A*R3;%计算得分S1=B1*w';S2=B2*w';S3=B3*w';

如果觉得《数模算法:模糊综合评价模型》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。