对于一些指标,只有属于和不属于。例如数学命题,只要属于真命题he不属于真命题两种状态。这种情况下,我们可以用集合表示。比如某集合包含所有真命题,某集合包含所有整数。
但对于有些指标,则是模糊的。比如帅和丑、好和坏、高和低。他们不具有“非此即彼”的排中律,而具有“亦此亦彼”的模糊性。
为了研究这种模糊关系,我们引入模糊集的概念。
给定域论 U U U,对于某个模糊集 A A A和任意 x ∈ U x\in U x∈U,都能确定一个整数 μ A ( x ) ∈ [ 0 , 1 ] \mu_A(x)\in [0, 1] μA(x)∈[0,1]用来表示 x x x属于 A A A的程度。映射:
x ∈ U → μ A ( x ) ∈ [ 0 , 1 ] x\in U\rightarrow\mu_A(x)\in[0,1] x∈U→μA(x)∈[0,1]
称 A A A为隶属函数,函数 μ A ( x ) \mu_A(x) μA(x)为 x x x对 A A A的隶属度。
例如集合 U U U为全体人类,集合 A A A代表全体好人,这是一个模糊的概念。若 μ A ( 我 ) = 0.75 \mu_A(我) = 0.75 μA(我)=0.75,就说明全世界有 75 % 75\% 75%的人认为我是好人。
( 1 ) 包 含 : A ⊂ B ⟺ μ A ( x ) ≤ μ B ( x ) (1)包含:A\subset B\iff\mu_A(x)\leq\mu_B(x) (1)包含:A⊂B⟺μA(x)≤μB(x) ( 2 ) 相 等 : A = B ⟺ μ A ( x ) = μ B ( x ) (2)相等:A = B\iff\mu_A(x) = \mu_B(x) (2)相等:A=B⟺μA(x)=μB(x) ( 3 ) 相 交 : C = A ∩ B ⟺ μ C ( x ) = μ A ( x ) ∧ μ B ( x ) (3)相交:C=A\cap B\iff\mu_C(x)=\mu_A(x)\land\mu_B(x) (3)相交:C=A∩B⟺μC(x)=μA(x)∧μB(x) ( 4 ) 相 并 : C = A ∪ B ⟺ μ C ( x ) = μ A ( x ) ∨ μ B ( x ) (4)相并:C=A\cup B\iff\mu_C(x)=\mu_A(x)\lor\mu_B(x) (4)相并:C=A∪B⟺μC(x)=μA(x)∨μB(x) ( 5 ) 补 集 : A C ⟺ μ A C ( x ) = 1 − μ A ( x ) (5)补集:A^C\iff \mu_{A^C}(x)=1-\mu_{A}(x) (5)补集:AC⟺μAC(x)=1−μA(x) ( 6 ) 内 积 : A ⊙ B ⟺ ∨ x ∈ U ( μ A ( x ) ∧ μ B ( x ) ) (6)内积:A\odot B\iff\lor_{x\in U}(\mu_A(x)\land\mu_B(x)) (6)内积:A⊙B⟺∨x∈U(μA(x)∧μB(x)) ( 7 ) 外 积 : A ⊗ B ⟺ ∧ x ∈ U ( μ A ( x ) ∨ μ B ( x ) ) (7)外积:A\otimes B\iff\land_{x\in U}(\mu_A(x)\lor\mu_B(x)) (7)外积:A⊗B⟺∧x∈U(μA(x)∨μB(x))
其中 ∧ \land ∧和 ∨ \lor ∨分别代表取最小和取最大运算。
确定隶属函数常用的是模糊分布法,下面简要介绍模糊分布法的常用梯形分布。
设 U = { u 1 , u 2 , ⋯ , u m } U=\{u_1, u_2, \cdots, u_m\} U={u1,u2,⋯,um}是被评价对象的m个因素,即评价指标。而 V = { v 1 , v 2 , ⋯ , v m } V=\{v_1, v_2, \cdots, v_m\} V={v1,v2,⋯,vm}为每一因素所处的n种评语,即评价等级。评价等级一般只划分3~5个。
例如评价采用模糊评价了解原批们对八重神子的喜欢程度。 U = { 强 度 , 人 气 , x p , 人 设 } , V = { 很 喜 欢 , 喜 欢 , 一 般 , 不 喜 欢 } U=\{强度,人气,xp,人设\},V=\{很喜欢, 喜欢, 一般, 不喜欢\} U={强度,人气,xp,人设},V={很喜欢,喜欢,一般,不喜欢}
设 r i j r_{ij} rij代表指标 u i u_i ui对等级 v j v_j vj的隶属度,通常要将 r i j r_{ij} rij归一化处理。
则可以构建矩阵:
R = ( r i j ) m × n = ( r 11 r 12 ⋯ r 1 n r 21 r 22 ⋯ r 2 n ⋮ ⋮ ⋱ ⋮ r m 1 r m 2 ⋯ r m n ) R=(r_{ij})_{m\times n}= \begin{pmatrix} r_{11} & r_{12} & \cdots & r_{1n}\\ r_{21} & r_{22} & \cdots & r_{2n}\\ \vdots & \vdots & \ddots & \vdots\\ r_{m1} & r_{m2} & \cdots & r_{mn}\\ \end{pmatrix} R=(rij)m×n=⎝⎜⎜⎜⎛r11r21⋮rm1r12r22⋮rm2⋯⋯⋱⋯r1nr2n⋮rmn⎠⎟⎟⎟⎞
称为各指标的模糊综合评价矩阵。
例如对于八重神子的强度——强度,5%的人很喜欢、10%的人喜欢、20%的人一般、65%的人不喜欢。(八重大人别打我)
那么 R 1 = ( 0.05 , 0.10 , 0.20 , 0.65 ) R_1=(0.05, 0.10, 0.20, 0.65) R1=(0.05,0.10,0.20,0.65)
通常引入一个模糊向量 A = ( a 1 , a 2 , ⋯ , a n ) A=(a_1, a_2, \cdots, a_n) A=(a1,a2,⋯,an)来表示个评价指标的权重,称之为权重向量。 A A A中的每一项需满足大于零,且它们的和为一。
确定权重通常有主观和客观两类方法。主观法的代表是层次分析法。客观法是根据各指标间的联系,利用数学方法计算出各指标的权重,如质量分数法、变异系数法等。
这里主要介绍变异系数法。其设计原理是:若某项指标的数值差异较大,能明确区分开各被评价对象,说明该指标的分辨信息丰富,因而应给该指标以较大的权重;反之,若各个被评价对象在某项指标上的数值差异较小,那么这项指标区分各评价对象的能力较弱,因而应给该指标较小的权重。
定义分辨能力为:
v i = s i ∣ x i ˉ ∣ v_i = \frac{s_i}{|\bar{x_i}|} vi=∣xiˉ∣si
权重值 ω i \omega_i ωi则是对分辨能力 v i v_i vi进行归一化:
ω i = v i ∑ v i \omega_i = \frac{v_i}{\sum v_i} ωi=∑vivi
代码:
function omega = func(mat)
[~, n] = size(mat);
x = mean(mat, 2);
v = sqrt(sum((mat - x) .^ 2, 2) ./ (n - 1)) ./ abs(x);
omega = v / sum(v);
end
需要指出的是,用变异系数法求出的某指标的权重与该指标在评价体系中的重要性是两个概念。
模糊合成的概念是将评价矩阵 R R R和权向量 A A A进行某种适当运算,将二者合成为一个模糊向 B = b 1 , b 2 2 , ⋯ , b n B={b_1, b_22, \cdots, b_n} B=b1,b22,⋯,bn,然后对 B B B按照一定的法则进行综合分析后得出最终的模糊综合评价结果。
常用合成算子有:
M ( ∧ , ∨ ) ⟺ b j = ∨ ( a i ∧ r i j ) M(\land, \lor)\iff b_j = \lor (a_i\land r_{ij}) M(∧,∨)⟺bj=∨(ai∧rij) M ( ⋅ , ∨ ) ⟺ b j = ∨ ( a i ⋅ r i j ) M(\cdot, \lor)\iff b_j = \lor (a_i\cdot r_{ij}) M(⋅,∨)⟺bj=∨(ai⋅rij) M ( ∧ , + ) ⟺ b j = ∑ ( a i ∧ r i j ) M(\land, +)\iff b_j = \sum (a_i\land r_{ij}) M(∧,+)⟺bj=∑(ai∧rij) M ( ⋅ , + ) ⟺ b j = ∑ ( a i ⋅ r i j ) M(\cdot, +)\iff b_j = \sum (a_i\cdot r_{ij}) M(⋅,+)⟺bj=∑(ai⋅rij)
在上表的最后一列中,主因素突出型适用于模糊矩阵中数据相差很悬殊的情形,而加权平均型则常用于因素很多的情形,可以避免信息丢失。
B B B称为综合评价向量,各项大于零,且需要进行归一化。 b j b_j bj可理解为被评价对象对第 j j j等级的隶属程度。对 B B B分析处理后才能得到最终的评价结果。常用的方法有最大隶属度法和加权平均法。
举个例子,设对于八重神子而言, U = { x p , 人 设 , 大 世 界 探 索 , 深 渊 强 度 } V = { 神 中 神 ! , 牛 , 还 行 , c j b } U=\{xp, 人设, 大世界探索, 深渊强度\}\quad V=\{神中神!, 牛, 还行, cjb\} U={xp,人设,大世界探索,深渊强度}V={神中神!,牛,还行,cjb}
而长思七309宿舍四个原批的评价如下:
R = ( 0.4 0.5 0.1 0 0.6 0.3 0.1 0 0.1 0.2 0.6 0.1 0.1 0.2 0.5 0.2 ) R = \begin{pmatrix} 0.4 & 0.5 & 0.1 & 0 \\ 0.6 & 0.3 & 0.1 & 0 \\ 0.1 & 0.2 & 0.6 & 0.1 \\ 0.1 & 0.2 & 0.5 & 0.2 \end{pmatrix} R=⎝⎜⎜⎛0.40.60.10.10.50.30.20.20.10.10.60.5000.10.2⎠⎟⎟⎞
而这些指标的权重值如下:
A = ( 0.5 , 0.2 , 0.2 , 0.1 ) A=(0.5, 0.2, 0.2, 0.1) A=(0.5,0.2,0.2,0.1)
计算步骤键如下代码:
function B = func(R, A)
B = [
max(min(R, A))
sum(min(R, A))
max(R .* A)
sum(R .* A)
]; % 四种合成因子计算出来的B值
B = B ./ sum(B, 2); % 归一化
end
设虚拟理想方案为:
u = { u 1 , u 2 , ⋯ , u n } , u=\{u_1, u_2, \cdots, u_n\}, u={u1,u2,⋯,un}, u i = { max j { a i j } , 效 益 型 指 标 min j { a i j } , 成 本 型 指 标 u_i = \left\{ \begin{aligned} \max_j\{a_{ij}\},\quad效益型指标\\ \min_j\{a_{ij}\}, \quad成本型指标 \end{aligned} \right. ui=⎩⎪⎨⎪⎧jmax{aij},效益型指标jmin{aij},成本型指标
设相对偏差模糊矩阵为:
R = ( r 11 r 12 ⋯ r 1 n r 21 r 22 ⋯ r 2 n ⋮ ⋮ ⋱ ⋮ r m 1 r m 2 ⋯ r m n ) R= \begin{pmatrix} r_{11} & r_{12} & \cdots & r_{1n}\\ r_{21} & r_{22} & \cdots & r_{2n}\\ \vdots & \vdots & \ddots & \vdots\\ r_{m1} & r_{m2} & \cdots & r_{mn}\\ \end{pmatrix} R=⎝⎜⎜⎜⎛r11r21⋮rm1r12r22⋮rm2⋯⋯⋱⋯r1nr2n⋮rmn⎠⎟⎟⎟⎞ r i j = ∣ a i j − u i ∣ max j { a i j } − min j { a i j } r_{ij} = \frac{|a_{ij}-u_i|}{\max_j\{a_{ij}\}-\min_j\{a_{ij}\}} rij=maxj{aij}−minj{aij}∣aij−ui∣
计算各个方案的偏差加权平均:
F j = ∑ i = 1 m w i r i j F_j=\sum\limits^m_{i=1}w_ir_{ij} Fj=i=1∑mwirij
然后对 F F F排序,若 F s < F t F_s < F_t Fs<Ft,则第s个方案排在第t个方案之前。
a = [
1000 120 5000 1 50 1.5 1
700 60 4000 2 40 2 2
900 60 7000 1 70 1 4
800 70 8000 1.5 40 0.5 6
800 80 4000 2 30 2 5
];
% 若t(1)为真,表示x1是效益型,否则为成本型。
t = [
true false false false true false true
];
% 计算理想方案u
maxa = max(a);
mina = min(a);
[m, n] = size(a);
u = zeros(1, n);
u(t) = maxa(:, t);
u(~t) = mina(:, ~t);
% 计算相对偏差模糊矩阵R
R = abs(a - u) ./ (maxa - mina);
% 计算权重值omega
x = mean(R);
v = std(R) ./ abs(x);
omega = v / sum(v);
% 计算加权平均偏差
F = sum(omega .* R, 2);