1.1 信息熵及其在多属性决策中的应用
1.1.1 信息熵与熵权
定义1.1 设有一离散型随机变量
X
X
X,其可能的取值为
α
1
,
α
2
,
⋯
,
α
n
\alpha_{1},\alpha_{2},\cdots,\alpha_{n}
α1,α2,⋯,αn,记
X
X
X取到
α
i
\alpha_{i}
αi的概率为
p
i
=
p
{
X
=
α
i
}
=
P
(
α
i
)
,
i
=
1
,
2
,
⋯
,
n
p_{i}=p\left\{X=\alpha_{i}\right\}=P\left(\alpha_{i}\right), i=1,2, \cdots, n
pi=p{X=αi}=P(αi),i=1,2,⋯,n
其中,
∑
i
=
1
n
p
i
=
1
,
0
≤
p
i
≤
1
\sum_{i=1}^{n} p_{i}=1, 0 \leq p_{i} \leq 1
∑i=1npi=1,0≤pi≤1,则称
I
(
α
i
)
=
−
log
p
i
,
i
=
1
,
2
,
⋯
,
n
(1.1)
{ I\left(\alpha_{i}\right)=-\log p_{i}, i=1,2, \cdots, n \tag{1.1} }
I(αi)=−logpi,i=1,2,⋯,n(1.1)
为信息函数,在事件
{
X
=
α
i
}
\left\{X=\alpha_{i}\right\}
{X=αi}发生之前,它表示事件的不确定性;在事件
{
X
=
α
i
}
\left\{X=\alpha_{i}\right\}
{X=αi}发生之后,它表示事件所包含的信息量(或称
a
l
p
h
a
i
alpha_{i}
alphai的自信息)。
S
h
a
n
n
o
n
Shannon
Shannon把信息函数的统计平均值
H
(
X
)
=
−
∑
i
=
1
n
p
i
ln
p
i
,
i
=
1
,
2
,
⋯
,
n
(1.2)
\color{red} { H(X)=-\sum_{i=1}^{n} p_{i} \ln p_{i}, i=1,2, \cdots, n \tag{1.2} }
H(X)=−i=1∑npilnpi,i=1,2,⋯,n(1.2)
作为信息源
X
X
X的不确定性程度的度量,称为信息熵(或概率熵)。
式(1.2)中, ∑ i = 1 n p i = 1 , 0 ≤ p i ≤ 1 \sum_{i=1}^{n}p_{i}=1,0 \leq p_{i} \leq 1 ∑i=1npi=1,0≤pi≤1,而且规定:当 p i = 0 p_{i}=0 pi=0时, p i ln p i = 0 p_{i} \ln p_{i}=0 pilnpi=0。
定义1.2 在有
m
m
m个评价对象
n
n
n个评价指标的评价问题中,第
j
j
j个评价指标的熵定义为
H
j
=
−
k
∑
i
=
1
n
r
i
j
ln
r
i
j
,
j
=
1
,
2
,
⋯
,
n
(1.3)
\color{red} { H_{j} = -k \sum_{i=1}^{n} r_{ij} \ln r_{ij}, j=1,2, \cdots, n \tag{1.3} }
Hj=−ki=1∑nrijlnrij,j=1,2,⋯,n(1.3)
式中,
r
i
j
r_{ij}
rij是对评价矩阵进行标准化、归一化处理后的评价指标值,
k
=
1
/
ln
m
k=1/\ln m
k=1/lnm,并且规定当
r
i
j
=
0
r_{ij}=0
rij=0时,
r
∈
r
=
0
r \in r = 0
r∈r=0。
定义1.3 在有
m
m
m个评价对象、
n
n
n个评价指标的评价问题中,第
j
j
j个评价指标的熵权定义为
ω
j
=
1
−
H
j
n
−
∑
j
=
1
n
H
j
,
j
=
1
,
2
,
⋯
,
n
(1.4)
\color{red} { \omega_{j}=\frac{1-H_{j}}{n-\sum_{j=1}^{n} H_{j}}, j=1,2, \cdots, n \tag{1.4} }
ωj=n−∑j=1nHj1−Hj,j=1,2,⋯,n(1.4)
1.1.2 基于信息熵的多属性决策方法
设多属性决策问题有 m m m个方案 Y i ( i = 1 , 2 , ⋯ , m ) Y_{i}\left(i=1,2,\cdots,m\right) Yi(i=1,2,⋯,m),组成方案集 Y = ( Y 1 , Y 2 , ⋯ , Y m ) Y=\left(Y_{1},Y_{2},\cdots,Y_{m}\right) Y=(Y1,Y2,⋯,Ym),评价每个方案的属性(或指标)为 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj(j=1,2,⋯,n),记属性集为 G = { G 1 , G 2 , ⋯ , G n } G=\left\{ G_{1},G_{2},\cdots,G_{n} \right\} G={G1,G2,⋯,Gn}。如果 f i j f_{ij} fij表示方案 Y i ∈ Y Y_{i} \in Y Yi∈Y在属性 G j ∈ G G_{j} \in G Gj∈G的评价指标值,矩阵 F = ( f i j ) m × n F = \left(f_{ij}\right)_{m×n} F=(fij)m×n为该多属性决策问题的决策矩阵,则基于信息熵的多属性决策方法步骤如下:
S.1 确定多属性决策问题的方案集 Y = { Y 1 , Y 2 , ⋯ , Y m } Y=\left\{Y_{1},Y_{2},\cdots,Y_{m}\right\} Y={Y1,Y2,⋯,Ym}和属性集 G = { G 1 , G 2 , ⋯ , G n } G=\left\{G_{1}, G_{2},\cdots,G_{n}\right\} G={G1,G2,⋯,Gn},构建决策矩阵 F = ( f i j ) m × n F=\left(f_{ij}\right)_{m×n} F=(fij)m×n,并利用适当的方法将其规范化为 R ′ = ( r i j ′ ) m × n R^{'}=\left(r_{ij}^{'}\right)_{m×n} R′=(rij′)m×n。
S.2 对规范化 R ′ = ( r i j ′ ) m × n R^{'}=\left(r_{ij}^{'}\right)_{m×n} R′=(rij′)m×n进行归一化处理得到归一化矩阵 R = ( r i j ) m × n R=\left(r_{ij}\right)_{m×n} R=(rij)m×n其中
r i j = r i j ′ ∑ i = 1 m r i j ln r i j , j = 1 , 2 , ⋯ , n (1.5) r_{ij} = \frac {r_{ij}^{'}} {\sum_{i=1}^{m} r_{ij} \ln{r_{ij}}},j=1,2,\cdots,n \tag{1.5} rij=∑i=1mrijlnrijrij′,j=1,2,⋯,n(1.5)
S.3 计算评价指标 Y i Y_{i} Yi的信息熵:
H j = − 1 ln m ∑ i = 1 m r i j ln r i j , j = 1 , 2 , ⋯ , n (1.6) H_{j} = - \frac {1} {\ln{m}} \sum_{i=1}^{m} r_{ij}\ln{r_{ij}}, j=1,2,\cdots,n \tag{1.6} Hj=−lnm1i=1∑mrijlnrij,j=1,2,⋯,n(1.6)
规定当 r i j = 0 r_{ij}=0 rij=0时, r i j ln r i j = 0 r_{ij}\ln{r_{ij}}=0 rijlnrij=0
S.4 计算属性 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj(j=1,2,⋯,n)的权重向量 ω = ( ω 1 , ω 2 , ⋯ , ω n ) T \boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},\cdots,\omega_{n}\right)}^{T} ω=(ω1,ω2,⋯,ωn)T,其中
ω j = 1 − H j n − ∑ j = 1 n H j , j = 1 , 2 , ⋯ , n (1.7) \omega_{j} = \frac {1 - H_{j}}{n - \sum_{j=1}^{n}H_{j}},j=1,2,\cdots,n \tag{1.7} ωj=n−∑j=1nHj1−Hj,j=1,2,⋯,n(1.7)
S.5 利用式 ( 1.8 ) (1.8) (1.8)计算方案 Y i Y_{i} Yi得综合评价值 d i d_{i} di:
d i = ∑ j = 1 n ω j r i j (1.8) d_{i} = \sum_{j=1}^{n} \omega_{j}r_{ij} \tag{1.8} di=j=1∑nωjrij(1.8)
并利用综合评价值 d i ( i = 1 , 2 , ⋯ , m ) d_{i}\left(i=1,2,\cdots,m\right) di(i=1,2,⋯,m)对方案进行优劣排序。
1.1.3 案例分析
考虑不同型号飞机选择问题。设某航空公司在国际市场上购买飞机,按四个属性(或决策指标)对不同型号的飞机进行综合评价,这四个评价属性是:最大速度( G 1 G_{1} G1)、最大范围( G 2 G_{2} G2)、最大负载( G 3 G_3 G3)和价格( G 4 G_4 G4)。现有四种型号的飞机可供选择,每种型号飞机的属性评价指标如表1所示。
G 1 G_1 G1 | G 2 G_2 G2 | G 3 G_3 G3 | G 4 G_4 G4 | |
---|---|---|---|---|
Y 1 Y_1 Y1 | 2.000 | 1500 | 20000 | 5.500 |
Y 2 Y_2 Y2 | 2.500 | 2700 | 18000 | 6.500 |
Y 3 Y_3 Y3 | 1.800 | 2000 | 21000 | 4.500 |
Y 4 Y_4 Y4 | 2.200 | 1800 | 20000 | 5.000 |
试用信息熵对四种型号飞机进行综合评价。
在决策指标中, G 1 G_1 G1、 G 2 G_2 G2、 G 3 G_3 G3是效益性指标,取值越大越好; G 4 G_4 G4是成本性指标取值越小越好。利用线性变换法对决策矩阵F进行规范化,得到规范化矩阵 R ′ R^{'} R′
代码如下:
import numpy as np
F = np.array([[2.0,1500,20000,5.5],
[2.5,2700,18000,6.5],
[1.8,2000,21000,4.5],
[2.2,1800,20000,5.0]])
# S.1 对评价矩阵进行规范化处理
# 对评价矩阵进行归一化:其中前三列按照最大归一化,第四列按照最小归一化
# 对F进行转置
F_T = F.T
# 取出前三行按最大值进行行规一化
F13 = F_T[:3]
max13 = F13.max(axis=1)
for i in range(F13.shape[0]):
F13[i] = F13[i]/max13[i]
F13 = np.round(F13,2)
# 取出后一行按倒数的最大值进行归一化
F4 = 1 / F_T[3]
F4 = F4 / np.max(F4)
F4 = np.round(F4,2)
# 对F13和F4按水平方向进行堆叠
F = np.vstack((F13,F4))
# 取F的转置从而得到最终的规范化矩阵
F_standardization = F.T
print('规范化评价决策矩阵为:\n',F_standardization)
# S.2 对评价矩阵进行归一化处理(列)
F_col_sum = F_standardization.sum(axis=0)
F_Norm = np.round(F_standardization / F_col_sum,4)
print("\n归一化评价决策矩阵:\n",F_Norm)
# S.3 计算各属性的信息熵
attribute_information_entropy = np.zeros((F_Norm.shape[1]))
for j in range(F_Norm.shape[1]):
sum_j = 0
for i in range(F.shape[0]):
sum_j += F_Norm[i][j]*np.log(F_Norm[i][j])
attribute_information_entropy[j] = - 1/np.log(F_Norm.shape[0]) * sum_j
# 保留3为小数
attribute_information_entropy = np.round(attribute_information_entropy,3)
print("\n各个属性的信息熵为:\n",attribute_information_entropy)
# S.4 计算各属性的权重
attribute_weight = np.round((1 - attribute_information_entropy) / (F.shape[1]-np.sum(attribute_information_entropy)),3)
print('\n各个属性的权重为:\n',attribute_weight)
# S.5 计算各方案的综合评价结果
result = np.zeros(F_Norm.shape[0])
for i in range(F_Norm.shape[0]):
sum_i = 0
for j in range(F_Norm.shape[1]):
sum_i += attribute_weight[j] * F_Norm[i][j]
result[i] = sum_i
result = np.round(result,3)
print('\n综合评价结果为:\n',result)
# S.6 对评价结果按降序排序
index = np.argsort(-result) + 1
print('\n排序结果为:',index)
计算结果如下:
规范化评价决策矩阵为:
[[0.8 0.56 0.95 0.82]
[1. 1. 0.86 0.69]
[0.72 0.74 1. 1. ]
[0.88 0.67 0.95 0.9 ]]
归一化评价决策矩阵:
[[0.2353 0.1886 0.2527 0.2405]
[0.2941 0.3367 0.2287 0.2023]
[0.2118 0.2492 0.266 0.2933]
[0.2588 0.2256 0.2527 0.2639]]
各个属性的信息熵为:
[0.995 0.983 0.999 0.994]
各个属性的权重为:
[0.172 0.586 0.034 0.207]
综合评价结果为:
[0.209 0.298 0.252 0.24 ]
排序结果为: [2 3 4 1]
1.2 基于TOPSIS方法的多属性决策方法
1.2.1 TOPSIS方法的基本原理
T O P S I S TOPSIS TOPSIS 方法是逼近理想解的排序方法(technique for order prefcrence by similarity to ideal solution)的英文缩写,是由Hwang和Yoon于1981年提出的。该方法借助多属性决策问题正理想解和负理想解给方案集中各方案排序。其中心思想为:设想一个正理想解(最优方案)和一个负理想解(最差方案),然后分别计算各方案与正理想解、负理想解之间的距离。与正理想解最近且与负理想解距离最远的方案即最优方案。
正理想解 Y + Y^{+} Y+是一个方案集Y中并不存在的虚拟的最佳方案,它的每个属性值都是决策矩阵中该属性的最好的值;而负理想解 Y − Y^{-} Y−则是虚拟的最差方案,它的每个属性值都是决策矩阵中该属性的最差的值。在 n n n维空间中将方案集Y中的各备选方案 Y Y Y与正理想解 Y + Y^{+} Y+和负理想解 Y − Y_{-} Y−的距离进行比较,既靠近正理想解又远离负理想解的方案就是方案集 Y Y Y中的最佳方案;并可以据此排定方案集 Y Y Y中各备选方案的优先序。
用理想方案求解多属性决策问题的概念简单,只要在属性空间定义适当的距离测度就能计算备选方案与理想方案。 T O P S I S TOPSIS TOPSIS方法所用的是欧氏距离。至于既用正理想解又用负理想解是因为在仅仅使用正理想解时会出现某两个备选方案与正理想解的距离相同的情况,为了区分这两个方案的优劣,引入负理想解并计算这两个方案与负理想解的距离,与正理想解的距离相同的方案中离负理想解远者为优。
1.2.2 TOPSIS方法的步骤
设多属性决策问题有 m m m个方案 Y i ( i = 1 , 2 , ⋯ , m ) Y_{i}\left(i=1,2,\cdots,m\right) Yi(i=1,2,⋯,m),组成方案集 Y = { Y 1 , Y 2 , ⋯ , Y m } Y=\left\{Y_{1},Y_{2},\cdots,Y_{m}\right\} Y={Y1,Y2,⋯,Ym},评价每个方案的属性(或指标)为 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj(j=1,2,⋯,n),记属性集为 G = { G 1 , G 2 , ⋯ , G n } G=\left\{G_{1},G_{2},\cdots,G_{n}\right\} G={G1,G2,⋯,Gn}。如果 f i j f_{ij} fij表示方案 Y i ∈ Y Y_{i} \in Y Yi∈Y在属性 G j ∈ G G_{j} \in G Gj∈G的评价指标值,矩阵 F = ( f i j ) m × n F=\left(f_{ij}\right)_{m×n} F=(fij)m×n为该多属性决策问题的决策矩阵,则基于TOPSIS方法的多属性决策方法的步骤如下。
S.1 确定多属性决问题的方案集 Y = { Y 1 , Y 2 , ⋯ , Y m } Y=\left\{Y_{1},Y_{2},\cdots,Y_{m}\right\} Y={Y1,Y2,⋯,Ym}和属性集 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj(j=1,2,⋯,n),构建决策矩阵 F = ( f i j ) m × n F=\left(f_{ij}\right)_{m×n} F=(fij)m×n,并利用适当的方法将其规范化为 R ′ = ( r i j ′ ) m × n R^{\prime}=\left(r_{ij}^{\prime}\right)_{m×n} R′=(rij′)m×n,其中
r i j ′ = f i j / ∑ i = 1 m f i j 2 , i = 1 , ⋯ , m ; j = 1 , ⋯ , n (1.9) r_{ij}^{\prime}=f_{ij} / \sqrt{\sum_{i=1}^{m} f_{ij}^{2}}, i=1, \cdots, m ; j=1, \cdots, n \tag{1.9} rij′=fij/i=1∑mfij2,i=1,⋯,m;j=1,⋯,n(1.9)
S.2 对规范化矩阵 R ′ = ( r i j ′ ) m × n R^{\prime}=\left(r_{ij}^{\prime}\right)_{m×n} R′=(rij′)m×n进行加权处理,得到加权规范化矩阵 R = ( r i j ) m × n R=\left(r_{ij}\right)_{m×n} R=(rij)m×n.其中 i = 1 , 2 , ⋯ , m ; j = 1 , 2 , ⋯ , n ; ω = ( ω 1 , ω 2 , ⋯ , ω n ) T i=1,2,\cdots,m;j=1,2,\cdots,n;\omega=\left(\omega_{1},\omega_{2},\cdots,\omega_{n}\right)^{T} i=1,2,⋯,m;j=1,2,⋯,n;ω=(ω1,ω2,⋯,ωn)T为属性 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj(j=1,2,⋯,n)的权重向量。
S.3 确定正理想解
Y
+
Y^{+}
Y+和负理想解
Y
−
Y^{-}
Y−。
设正理想解
Y
+
Y^{+}
Y+的第
j
j
j个属性值为
r
j
+
r_{j}^{+}
rj+,负理想解
Y
−
Y^{-}
Y−的第
j
j
j个属性值为
r
j
−
r_{j}^{-}
rj−,则
正理想解方案
r
j
+
=
{
max
i
r
i
j
,
j
为效益型属性
min
i
r
i
j
,
j
为成本型属性
,
j
=
1
,
2
,
⋯
,
n
(1.10)
r_{j}^{+}=\left\{\begin{array}{l}\max _{i} r_{ij}, j \text { 为效益型属性 } \\ \min _{i} r_{ij}, j \text { 为成本型属性 }\end{array}, \quad j=1,2, \cdots, n\right.\tag{1.10}
rj+={maxirij,j 为效益型属性 minirij,j 为成本型属性 ,j=1,2,⋯,n(1.10)
负理想解方案
r
j
−
=
{
max
i
r
i
j
,
j
为成本型属性
min
i
r
i
j
,
j
为效益型属性
,
j
=
1
,
2
,
⋯
,
n
(1.11)
r_{j}^{-}=\left\{\begin{array}{l}\max _{i} r_{ij}, j \text { 为成本型属性 } \\ \min _{i} r_{ij}, j \text { 为效益型属性 }\end{array}, \quad j=1,2, \cdots, n\right.\tag{1.11}
rj−={maxirij,j 为成本型属性 minirij,j 为效益型属性 ,j=1,2,⋯,n(1.11)
S.4 计算各方案到正理想解与负理想解的距离。
备选方案
Y
Y
Y到正理想解的距离为
d
i
+
=
∑
j
=
1
n
(
r
i
j
−
r
j
+
)
2
,
i
=
1
,
2
,
⋯
,
m
(1.12)
d_{i}^{+}=\sqrt{\sum_{j=1}^{n}\left(r_{ij}-r_{j}^{+}\right)^{2}, i}=1,2, \cdots, m \tag{1.12}
di+=j=1∑n(rij−rj+)2,i=1,2,⋯,m(1.12)
备选方案
Y
Y
Y到负理想解的距离为
d
i
−
=
∑
j
=
1
n
(
r
i
j
−
r
j
−
)
2
,
i
=
1
,
2
,
⋯
,
m
(1.13)
d_{i}^{-}=\sqrt{\sum_{j=1}^{n}\left(r_{ij}-r_{j}^{-}\right)^{2}, i}=1,2, \cdots, m \tag{1.13}
di−=j=1∑n(rij−rj−)2,i=1,2,⋯,m(1.13)
S.5 计算各方案的相对贴近度
c
i
=
d
i
−
/
(
d
i
−
+
d
i
+
)
,
i
=
1
,
2
,
⋯
,
m
(1.14)
c_{i}=d_{i}^{-} /\left(d_{i}^{-}+d_{i}^{+}\right), i=1,2, \cdots, m \tag{1.14}
ci=di−/(di−+di+),i=1,2,⋯,m(1.14)
1.2.3 案例分析
考虑研究生学院教学质量评价问题。为了客观地评价我国研究生教育的实际状况和各研究生院的教学质量,国务院学位委员会办公室组织过一次研究生院的评估。为了取得经验,先选五所研究生院 Y 1 Y_{1} Y1、 Y 2 Y_2 Y2、 Y 3 Y_3 Y3、 Y 4 Y_4 Y4、 Y 5 Y_5 Y5,收集有关数据资料进行了试评估,有关数据如表2所示。由于生师比为既非效益型又非成本属性,表中第三列 z 2 z_{2} z2的数据是在假设师生比最佳区间为 [ 5 , 6 ] [5,6] [5,6]时,对 y 2 y_{2} y2数据进行变换得到的结果。
研究院 | 人均专著 y 1 y_1 y1 | 生师比 y 2 y_2 y2 | 科研经费 y 3 y_3 y3 | 预期毕业率 y 4 y_4 y4 |
---|---|---|---|---|
Y 1 Y_1 Y1 | 0.1 | 5(1.0000) | 5000 | 4.7 |
Y 2 Y_2 Y2 | 0.2 | 7(0.8333) | 4000 | 2.2 |
Y 3 Y_3 Y3 | 0.6 | 10(0.3333) | 1260 | 3.0 |
Y 4 Y_4 Y4 | 0.3 | 4(0.6666) | 3000 | 3.9 |
Y 5 Y_5 Y5 | 2.8 | 2(0.0000) | 284 | 1.2 |
假设各属性的权重为 ω = ( 0.2 , 0.3 , 0.4 , 0.1 ) \omega=\left(0.2,0.3,0.4,0.1\right) ω=(0.2,0.3,0.4,0.1)
代码如下:
import numpy as np
# S.1 确定决策矩阵和权重向量
DM = np.array([[0.1,1.0,5000,4.7],
[0.2,0.833,4000,2.2],
[0.6,0.3333,1260,3.0],
[0.3,0.6666,3000,3.9],
[2.8,0.0,284,1.2]])
weight = np.array([0.2,0.3,0.4,0.1])
# S.2 计算规范化矩阵
DM_Norm = np.zeros(DM.shape)
# 计算sqrt(sum(f_ij^2))
sum_j = np.zeros((DM.shape[1]))
for j in range(DM.shape[1]):
tmp_j = 0
for i in range(DM.shape[0]):
tmp_j += np.power(DM[i][j],2)
sum_j[j] = np.power(tmp_j,1/2)
# 计算规范化矩阵
for i in range(DM.shape[0]):
for j in range(DM.shape[1]):
DM_Norm[i][j] = DM[i][j]/sum_j[j]
print('规范化矩阵为:\n',DM_Norm)
# S.2 计算加权规范化矩阵
weight_DM_Norm = np.zeros(DM.shape)
for i in range(DM.shape[0]):
for j in range(DM.shape[1]):
weight_DM_Norm[i][j] = DM_Norm[i][j]*weight[j]
print('\n加权规范化矩阵为:\n',weight_DM_Norm)
# S.3 计算正、负理想解
# 案例中前三个评估项为正项、第四项为负项
positive_ideal_solution = np.array([np.max(weight_DM_Norm[:,0]),
np.max(weight_DM_Norm[:,1]),
np.max(weight_DM_Norm[:,2]),
np.min(weight_DM_Norm[:,3])])
negative_ideal_solution = np.array([np.min(weight_DM_Norm[:,0]),
np.min(weight_DM_Norm[:,1]),
np.min(weight_DM_Norm[:,2]),
np.max(weight_DM_Norm[:,3])])
print("\n正理想解为:{}\n负理想解为:{}".format(positive_ideal_solution,negative_ideal_solution))
# S.4 计算各方案到正理想解的距离d^+和到负理想解的距离d^-
dist_pos = np.zeros((DM.shape[0]))
dist_neg = np.zeros((DM.shape[0]))
relative_closeness = np.zeros((DM.shape[0]))
for i in range(DM.shape[0]):
sum_pos = 0
sum_neg = 0
for j in range(DM.shape[1]):
sum_pos += np.power(weight_DM_Norm[i][j] - positive_ideal_solution[j],2)
sum_neg += np.power(weight_DM_Norm[i][j] - negative_ideal_solution[j],2)
dist_pos[i] = np.power(sum_pos,1/2)
dist_neg[i] = np.power(sum_neg,1/2)
relative_closeness[i] = dist_neg[i] / (dist_neg[i] + dist_pos[i])
print('\n正理想解距离:{}\n负理想解距离:{}\n相对贴近度:{}'.format(dist_pos,dist_neg,relative_closeness))
index = np.argsort(-relative_closeness) + 1
print('排序结果:',index)
计算结果如下:
规范化矩阵为:
[[0.03462717 0.66676544 0.69559764 0.64816797]
[0.06925434 0.55541561 0.55647812 0.30339777]
[0.20776301 0.22223292 0.17529061 0.41372424]
[0.1038815 0.44446584 0.41735859 0.53784151]
[0.96956071 0. 0.03950995 0.16548969]]
加权规范化矩阵为:
[[0.00692543 0.20002963 0.27823906 0.0648168 ]
[0.01385087 0.16662468 0.22259125 0.03033978]
[0.0415526 0.06666988 0.07011624 0.04137242]
[0.0207763 0.13333975 0.16694343 0.05378415]
[0.19391214 0. 0.01580398 0.01654897]]
正理想解为:[0.19391214 0.20002963 0.27823906 0.01654897]
负理想解为:[0.00692543 0. 0.01580398 0.0648168 ]
正理想解距离:[0.19311606 0.19189794 0.29142677 0.21953754 0.32997579]
负理想解距离:[0.32997579 0.26788316 0.09562099 0.20232694 0.19311606]
相对贴近度:[0.63081807 0.58263195 0.24705217 0.47960174 0.36918193]
排序结果: [1 2 4 5 3]
1.3 权重属性未知情形下基于理想解的多属性决策方法及步骤
1.3.1 属性权重的确定方法
权重计算函数:
ω
j
=
∑
i
=
1
m
(
1
−
r
i
j
)
∑
j
=
1
n
∑
i
=
1
m
(
1
−
r
i
j
)
,
j
=
1
,
2
,
⋯
,
n
(1.21)
\omega_{j} = \frac {\sum_{i=1}^{m}\left(1-r_{ij}\right)} {\sum_{j=1}^{n}\sum_{i=1}^{m}\left(1-r_{ij}\right)},j=1,2,\cdots,n \tag{1.21}
ωj=∑j=1n∑i=1m(1−rij)∑i=1m(1−rij),j=1,2,⋯,n(1.21)
最优化模型:
{
min
d
+
(
ω
)
=
∑
j
=
1
n
∑
i
=
1
m
(
1
−
r
i
j
)
ω
j
s.t.
ω
‾
j
≤
ω
≤
ω
‾
j
,
j
=
1
,
2
,
⋯
,
n
∑
j
=
1
n
ω
j
=
1
ω
j
≥
0
,
j
=
1
,
2
,
⋯
,
n
(1.22)
\color{red} { \left\{ \begin{aligned} & \min{d^{+}\left(\omega\right)} = \sum_{j=1}^{n} \sum_{i=1}^{m} \left(1-r_{ij}\right)\omega_{j} \\ & \text{s.t.} \underline{\omega}_{j} \leq \omega \leq \overline{\omega}_{j},j=1,2,\cdots,n \\ & \sum_{j=1}^{n}\omega_{j} = 1 \\ & \omega_{j} \geq 0, j=1,2,\cdots,n \end{aligned} \right. \tag{1.22} }
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧mind+(ω)=j=1∑ni=1∑m(1−rij)ωjs.t.ωj≤ω≤ωj,j=1,2,⋯,nj=1∑nωj=1ωj≥0,j=1,2,⋯,n(1.22)
1.3.2 分析步骤
S.1 确定多属性决问题的方案集 Y = { Y 1 , Y 2 , ⋯ , Y m } Y=\left\{Y_{1},Y_{2},\cdots,Y_{m}\right\} Y={Y1,Y2,⋯,Ym}和属性集 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj(j=1,2,⋯,n),构建决策矩阵 F = ( f i j ) m × n F=\left(f_{ij}\right)_{m×n} F=(fij)m×n。
S.2 对决策矩阵 F = ( f i j ) m × n F=\left(f_{ij}\right)_{m×n} F=(fij)m×n利用适当的方法进行规范化处理,得到规范化矩阵 R = ( r i j ) m × n R=(r_{ij})_{m×n} R=(rij)m×n。
S.3 利用规范化矩阵 R = ( r i j ) m × n R=(r_{ij})_{m×n} R=(rij)m×n和式 ( 1.21 ) (1.21) (1.21)和式 ( 1.22 ) (1.22) (1.22)确定属性 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj(j=1,2,⋯,n)的权重向量 ω = ( ω 1 , ω 2 , ⋯ , ω n ) T \omega=\left(\omega_{1},\omega_{2},\cdots,\omega_{n}\right)^{T} ω=(ω1,ω2,⋯,ωn)T。
S.4 利用式 ( 1.8 ) (1.8) (1.8)计算方案 Y i Y_{i} Yi的综合评价值 d i d_{i} di。
S.5 对各方案按综合评价值进行降序排序,从而确定最优排序结果。