熵权法及改进的TOPSIS及matlab应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

熵权法及改进的TOPSIS
一、熵权法
1.熵权法确定客观权重
熵学理论最早产生于物理学家对热力学的研究,熵的概念最初描述的是一种单项流动、不可逆转的能量传递过程,随着思想和理论的不断深化和发展,后来逐步形成了热力学熵、统计熵、信息熵三种思路。

美国数学家克劳德·艾尔伍德·香农(Claude Elwood Shannon)最先提出信息熵的概念,为信息论和数字通信奠定了基础。

信息熵方法用来确定权重己经非常广泛地应用于工程技术、社会经济等各领域。

由信息熵的基本原理可知,对于一个系统来说,信息和熵分别是其有序程度和无序程度的度量,二者的符号相反、绝对值相等。

假设一个系统可能处于不同状态,每种状态出现的概率为(1,
,)=i P i n
则该系统的熵就定义为:
1
ln ==∑n
i i E P P
在决策中,决策者获得信息的多少是决策结果可靠性和精度的决定性因素之一,然而,在多属性决策过程中,往往可能出现属性权重大小与其所传达的有价值的信息多少不成正比的情况。

例如:某一指标所占的权重在所有指标中最大,但在整个决策矩阵中,这一指标所有方案的数值却相差甚微,即这一指标所传递的有用信息较少。

显然,这一最重要的指标在决策过程中所起的作用却很小,如果不对其属性权重进行适当的处理,必将会造成评价决策方案的失真。

熵本身所具有的物理意义及特性决定其应用在多属性决策上是一个很理想的尺度。

某项指标之间值的差距越大,区分度越高,所携带和传输的信息就越多,该指标的熵值就会越小,在总体评价中起到的作用越大;相反,某项指标之间值的差距越小,区分度越低,所携带和传输的信息就越少,该指标的熵值就会越大,在总体评价中起到的作用越小。

因此,可采用计算偏差度的方法求出客观权重,再利用客观权重对专家评价出的主观权重进行修正,得出综合权重。

与其他客观赋权方法相比,该方法不仅仅是建立在概率的基础之上,还以决策者预先确定的偏好系数为基础,把决策者的主观判断和待评价对象的固有信息有机地结合起来,实现了主观与客观的统一,得出的权值准确性更高。

对m 个方案、n 个属性构成的决策矩阵,求解权重向量的基本步骤如下: (1)计算在 j 属性下,第 i 个方案的贡献度
1
==
∑ij
ij m
ij
i a p a
(2)计算第 j 属性下各方案的贡献总量
1
ln ==-∑m
j ij ij i E k p p
式中,常数1
ln =
k m
,以保证01<<j E 。

当某一属性各方案的贡献度接近于一致时,
j E 接近于 1,当全部相等时,则该属性的权重为 0,即可以不考虑该属性在决策中的作用。

(3)计算第 j 属性的差异性系数j d
=1-j j d E
(4)计算各属性的权重
1
==
∑j
j n
j
j d w d
(5)得出所有属性的权重向量为 W=(w1,w2,……,wn )。

2.熵值法修正复试指标主观权重
确定复试指标综合权重。

使用计算得到的熵值权重向量W EN EN W ,对主观权重向量W DM
DM W 进行修正,得到最终的综合权重向量W 。

此外,为了使计算结果更加精确,本文引入
权重系数θ的概念,其含义为主观权重W DM DM W 在综合权重W 中的比重。

θ值的大小取决于W DM DM W 与W EN EN W 的肯德尔相关系数k d ,将肯德尔相关系数k d 划分为20个置信区间,对应θ的取值如表1所列。

肯德尔相关系数
k
d 与权重系数θ取值对应关系列表
二、标准的TOPSIS 方法
TOPSIS 为逼近理想解的排序方法。

正理想解,各个属性值都达到各候选方案种的最好的值。

负理想解,各个属性值都达到各候选方案种的最差的值。

评价步骤:
步骤1:构建决策矩阵ij a 。

步骤2:对决策矩阵根据属性进行规范化处理,消除量纲不同带来的影响。

步骤3:构建权重值ωj ,可以通过AHP 法、熵权法、模糊综合评价法等方法。

步骤4:计算加权决策矩阵,ω=ij j ij r a 步骤5:计算正负理想解
11max{},1,,;=min{},1,,;越大越优型指标越小越优型指标≤≤+≤≤=⎧⎪⎨=⎪⎩ij i n
j
ij
i n r j m S r j m
1-1min{},1,,;=max{},1,,;越大越优型指标越小越优型指标≤≤≤≤=⎧⎪⎨=⎪⎩ij i n j ij
i n r j m S r j m
步骤6:计算各方案与正负理想解间的距离
一般采用欧式距离
1,
,+=i
Sd i n
1,
,-=i Sd i n
步骤7:计算各方案与正理想解的相对贴近度 各方案与正理想解的相对贴近度ηi
η-
+
-
=+i i i i Sd Sd Sd ηi 越大,决策方案越接近正理想解,方案越优。

三、改进的TOPSIS 法
TOPSIS 法的一般解法存在以下不足:对初始决策矩阵所有指标的规范化处理没有区别;事先确定的权重值往往是主观值;取评估指标的最大值和最小值作为正理想解和负理想解,当评估目标个数改变时需要重新计算,可能出现前后结果相互矛盾的逆排序问题;目标值与理想值二者间的欧氏距离无法和权重建立起联系等等。

改进方法:
首先,利用熵权法和主观权重构造综合权重j w ;
其次,利用规范化矩阵和综合权重构造加权综合矩阵=⋅ij j ij z w r ;
再次,确定绝对理想解。

本文中采用求绝对理想解的方法对传统理想点法进行改进可以很好地解决逆排序问题。

12
1,0,
+∈⎧=⎨
∈⎩j
j T z j T
1
-2
1,0,
∈⎧=⎨
∈⎩j j T z j T 1和0分别代表该指标最高和最低标准,1T 和2T 分别表示效益型属性和成本型属性。

第i 个方案到正负理想解的欧氏距离进行加权改进后的公式为
1,,+=i
Sd i n
1,,-=i Sd i n
最后,各方案与正理想解的相对贴近度ηi
η-
+
-
=+i i i i
Sd Sd Sd ηi 越大,决策方案越接近正理想解,方案越优。

四、实例分析
现有46个方案,10个属性的决策矩阵,主观权重为[0.2 0.2 0.05 0.05 0.05 0.15 0.1 0.1 0.05
程序如下:
clear;clc;
x=[51 38 3 4 2 28 19 3 4 4 13 34 5 4 3 26 17 0 3 3 50 36 3 3 2 27 18 0 2 5 64 38 3 3 2 28 19 0 3 3 39 36 3 2 2 27 18 0 5 3 53 36 3 2 3 27 18 0 5 4
56 38 3 5 3 28 19 1 5 4 53 38 3 5 3 29 19 1 4 4 90 38 4 3 3 29 19 0 5 4 60 38 3 3 2 29 19 0 4 5 59 38 3 1 2 29 19 0 4 4 57 38 3 3 2 29 19 0 4 5 44 38 4 3 5 29 19 0 4 5 69 38 3 1 2 28 19 0 5 5 62 38 3 1 2 28 19 0 3 4 64 38 5 3 3 28 19 0 5 4 58 36 4 3 3 27 18 0 4 4 73 38 4 3 3 28 19 0 4 3 54 38 5 3 5 29 19 0 4 4 68 38 3 3 2 28 19 0 4 4 55 38 4 3 3 29 19 0 5 5 41 38 3 1 2 28 19 0 3 4 54 38 4 3 3 29 19 0 4 4 72 38 3 1 2 28 19 0 4 4 83 36 4 3 3 29 18 0 4 5 61 38 4 3 3 28 18 0 2 5 47 36 5 3 3 27 19 0 4 4 36 34 3 4 2 26 18 1 4 4 77 38 4 1 3 29 20 0 3 5 58 34 3 3 3 28 18 0 4 4 64 36 3 5 3 28 17 0 4 4 35 34 3 2 2 26 18 0 5 3 32 36 3 5 2 29 18 0 4 5 31 34 3 2 2 26 18 0 3 3 26 36 3 3 2 25 18 0 3 3 60 36 2 5 2 29 19 0 5 5 27 38 3 3 2 28 19 0 4 5 52 34 4 5 3 26 17 0 5 4 41 34 4 6 2 27 18 0 5 4 54 38 3 3 2 28 17 5 3 5 37 34 3 4 2 26 16 0 4 3 37 34 4 4 3 29 16 0 4 5 44 32 3 5 3 26 17 0 2 5 27 36 3 3 2 25 16 0 4 3 42 30 3 4 2 20 12 0 3 3 59 28 3 2 2 21 13 0 3 3]; x1=[ ];
[m,n]=size(x)
%规范化
for i=1:n
x1(:,i)=x(:,i)/sum([x(:,i)]);
end
%熵值法确定权重的程序,w 为求出的权重向量。

这时会发现属性u8的权重特别的大。

for t=1:n
s(1,t)=0;
for j=1:m
if(x1(j,t)==0) p(1,t)=0;
else p(1,t)=x1(j,t)*log(x1(j,t));end
s(1,t)=s(1,t)+p(1,t);
end
end
k=(log(m))^(-1);
e=-k*s;
d=ones(1,n)-e;
w=d/sum(d);
%对权重进行修正,先验权重lam,得到修正后的权重w0
lam=[0.2 0.2 0.05 0.05 0.05 0.15 0.1 0.1 0.05 0.05]; %主观权重
Ked=corr(w',lam','type','Kendall')%求肯德尔系数
st=input('请输入st 的值:');%根据肯德尔系数输入权重系数sta
w1=lam*st+w*(1-st);%综合权重
w0=w1/sum(w1);%归一化综合权重
%规范化决策矩阵,得到规范化矩阵Y
for i=1:m %x 为规范化决策矩阵,全部为效益型指标,
进行处理
for j=1:n
y(i,j)=(x(i,j)-min(x(:,j)))/(max(x(:,j))-min(x(:,j)));
end
end
%加权规范化矩阵,得到加权后的规范化矩阵Z
for i=1:m
z(i,:) =y(i,:).*w0;
end
% 计算加权评价矩阵
MAX_V=ones(1,n) %绝对正理想解
MIN_V=zeros(1,n) %绝对负理想解
for i=1:m
S_MAX(i)=(sum(((z(i,:)-MAX_V).*w0).^2)).^(1/2) %计算正理想解的加权距离
S_MIN(i)=(sum(((z(i,:)-MIN_V).*w0).^2)).^(1/2); %计算负理想解的加权距离
end
for i=1:m
C(i)=S_MIN(i)/(S_MAX(i)+S_MIN(i)); %计算贴近度
end
%求出C 的序号
[D,ind]=sort(C); %ind 的值为C 值从小到大排列
ind1=fliplr(ind) %ind1 的值为C 值从大到小排列,即后面是需要淘汰的方案。

相关文档
最新文档