数模算法:模糊综合评价模型
概念引入
模糊集合:用來描述模糊性概念的集合(例如優良差,等級)
隸屬函數:對模糊集合的刻畫,得到·隸屬度一般范圍[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';總結
以上是生活随笔為你收集整理的数模算法:模糊综合评价模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cordova-plugin-app-v
- 下一篇: MOSSE