熵值法与TOPSIS法以及两者结合

补充:TOPSIS法(优劣解距离法)介绍及 python3 实现

一、熵值法

熵值法的主要目的是对指标体系进行赋权

熵越大说明系统越混乱,携带的信息越少,权重越小;熵越小说明系统越有序,携带的信息越多,权重越大。

熵值法是一种客观赋权方法,借鉴了信息熵思想,它通过计算指标的信息熵,根据指标的相对变化程度对系统整体的影响来决定指标的权重,即根据各个指标标志值的差异程度来进行赋权,从而得出各个指标相应的权重,相对变化程度大的指标具有较大的权重。

步骤

(1)原始数据的收集与整理

假设有m个待评价样本,n项评价指标,形成原始指标数据矩阵:
X = ( x 11 . . . x 1 n ⋮ ⋱ ⋮ x m 1 ⋯ x m n ) X=\left( \begin{matrix} x_{11}& ...& x_{1n}\\ \vdots& \ddots& \vdots\\ x_{m1}& \cdots& x_{mn}\\ \end{matrix} \right) X=x11xm1...x1nxmn
其中 X i j X_{ij} Xij 表示第 i 个样本第 j 项评价指标的数值。

对于某项指标 X j X_j Xj,样本的离散程度越大,则该指标在综合评价中所起的作用就越大。如果该指标的标志值全部相等,则表示该指标在综合评价中不起作用。

例如:

语文数学英语音乐
张三50448590
李四33742078
王五46388810
陈六65459851
杨七13651245

或者

GDP就业人数财政支出人均可支配收入
北京xxxxxxxx
上海xxxxxxxx
广州xxxxxxxx
深圳xxxxxxxx

(2)数据处理

为消除因量纲不同对评价结果的影响,需要对各指标进行归一化或者标准化处理。

归一化处理:

若所用指标的值越大越好(正向指标:)
x i j ′ = x j − x min ⁡ x max ⁡ − x min ⁡ x'_{ij}=\frac{x_j-x_{\min}}{x_{\max}-x_{\min}} xij=xmaxxminxjxmin
若所用指标的值越小越好(负向指标:)
x i j ′ = x max ⁡ − x j x max ⁡ − x min ⁡ x'_{ij}=\frac{x_{\max}-x_j}{x_{\max}-x_{\min}} xij=xmaxxminxmaxxj

其中 x j x_j xj为第 j 项指标值, x m a x x_{max} xmax为第 j 项指标的最大值, x m i n x_{min} xmin为第 j 项指标的最小值。

或者标准化处理:
x i j ′ = x i j − x ˉ j S j x'_{ij}=\frac{x_{ij}-\bar{x}_j}{S_j} xij=Sjxijxˉj

(3)计算比重

计算第 j 个指标中,第 i 个样本标志值的比重:
p i j = x i j ∑ i m x i j        , 0 ≤ p i j ≤ 1 p_{ij}=\frac{x_{ij}}{\sum_i^m{x_{ij}}}\,\,\,\,\,\,\text{,}0\le p_{ij}\le 1 pij=imxijxij0pij1
此,可以建立数据的比重矩阵
P = ( p 11 . . . p 1 n ⋮ ⋱ ⋮ p m 1 ⋯ p m n ) P=\left( \begin{matrix} p_{11}& ...& p_{1n}\\ \vdots& \ddots& \vdots\\ p_{m1}& \cdots& p_{mn}\\ \end{matrix} \right) P=p11pm1...p1npmn

(4) 计算第 j 个指标的熵值

e j = − k ∑ i m p i j ln ⁡ p i j e_j=-k\sum_i^m{p_{ij}}\ln p_{ij} ej=kimpijlnpij

其中,常数
k > 0 , k = 1 ln ⁡ m k>0\text{,}k=\frac{1}{\ln m} k>0k=lnm1
保证 0 ≤ e j ≤ 1 0\le e_j\le 1 0ej1,即 e j e_j ej最大为1

所以,第 j 个指标的熵值为
e j = − 1 ln ⁡ m ∑ i m p i j ln ⁡ p i j e_j=-\frac{1}{\ln m}\sum_i^m{p_{ij}}\ln p_{ij} ej=lnm1impijlnpij

(5)定义第 j 个指标的差异程度

熵值法根据各个指标标志值的差异程度来进行赋权,从而得出各个指标相应的权重

d j = 1 − e j d_j=1-e_j dj=1ej

(6)定义权重

w j = d j ∑ j = 1 n d j w_j=\frac{d_j}{\sum_{j=1}^n{d_j}} wj=j=1ndjdj

(7)进行综合评价

F i = ∑ j = 1 n w j p i j F_i=\sum_{j=1}^n{w_jp_{ij}} Fi=j=1nwjpij
其中 F i F_i Fi第 i 个待评价样本的综合评价值

语文数学英语音乐综合评价值F
张三50448590 F 1 F_1 F1
李四33742078 F 2 F_2 F2
王五46388810 F 3 F_3 F3
陈六65459851 F 4 F_4 F4
杨七13651245 F 5 F_5 F5

二、TOPSIS法

TOPSIS是通过逼近理想解的程度来评估各个样本的优劣等级

TOPSIS法的基本原理

在归一化后的原始数据矩阵中,找到有限方案中的最优方案和最劣方案,然后分别计算评价对象与最优方案和最劣方案之间的距离,并以此作为依据来评价样本的优劣等级。

基本步骤

假设有n个待评价样本,p项评价指标,形成原始指标数据矩阵:
X = ( x 11 . . . x 1 p ⋮ ⋱ ⋮ x n 1 ⋯ x n p ) X=\left( \begin{matrix} x_{11}& ...& x_{1p}\\ \vdots& \ddots& \vdots\\ x_{n1}& \cdots& x_{np}\\ \end{matrix} \right) X=x11xn1...x1pxnp

(1)数据预处理

  • .使指标具有同趋势性。评价指标中有正向指标和负向指标之分,一般把负向指标转化为正向指标,转化的方法可采用倒数法(即1/X),多适用于绝对数指标;差值法(即1-X),多适用于相对数指标。转化后的数据矩阵仍记为X。

  • .数据无量纲化.。将原始数据归一化,以消除量纲向量数据归一化的方式:
    z i j = x i j ∑ i x i j 2 z_{ij}=\frac{x_{ij}}{\sqrt{\sum_i^{}{x_{ij}^2}}} zij=ixij2 xij

最终得到分析数据矩阵
Z = ( z 11 z 12 ⋯ z 1 p z 21 z 22 ⋯ z 2 p ⋮ ⋮ ⋱ ⋮ z n 1 z n 2 ⋯ z n p ) Z=\left( \begin{matrix} z_{11}& z_{12}& \cdots& z_{1p}\\ z_{21}& z_{22}& \cdots& z_{2p}\\ \vdots& \vdots& \ddots& \vdots\\ z_{n1}& z_{n2}& \cdots& z_{np}\\ \end{matrix} \right) Z=z11z21zn1z12z22zn2z1pz2pznp

(2)寻找最优值和最劣值

找出各项指标的最优值和最劣值,建立最优值向量 z + z^+ z+和最劣值向量 z − z^- z
z + = max ⁡ n    j ( z 1 + , z 2 + , ⋯   , z p + ) z^+=\underset{n\ \ j}{\max}\left( z_1^+,z_2^+,\cdots ,z_p^+ \right) z+=n  jmax(z1+,z2+,,zp+)
z − = min ⁡ n    j ( z 1 − , z 2 − , ⋯   , z p − ) z^-=\underset{n\ \ j}{\min}\left( z_1^-,z_2^-,\cdots ,z_p^- \right) z=n  jmin(z1,z2,,zp)

(3)计算各个评价对象与最优值和最劣值之间的距离

D i + = ∑ j ( z i j − z j + ) 2 D_i^+=\sqrt{\sum_j^{}{\left( z_{ij}-z_j^+ \right) ^2}} Di+=j(zijzj+)2
D i − = ∑ j ( z i j − z j − ) 2 D_i^-=\sqrt{\sum_j^{}{\left( z_{ij}-z_j^- \right) ^2}} Di=j(zijzj)2

(4)计算各个评价指标与最优值的相对接近度

C i = D i − D i + + D i − C_i=\frac{D_i^-}{D_i^++D_i^-} Ci=Di++DiDi

(5)排序

根据 C i C_i Ci的大小进行排序, C i C_i Ci越大,表明评价对象越接近最优值。

三、熵值法 + TOPSIS法

.
可以结合熵值法 和 TOPSIS法各自的特点,进行评价。

假设有n个待评价样本,p项评价指标,形成原始指标数据矩阵:
X = ( x 11 . . . x 1 p ⋮ ⋱ ⋮ x n 1 ⋯ x n p ) X=\left( \begin{matrix} x_{11}& ...& x_{1p}\\ \vdots& \ddots& \vdots\\ x_{n1}& \cdots& x_{np}\\ \end{matrix} \right) X=x11xn1...x1pxnp

其中 X i j X_{ij} Xij 表示第 i 个样本第 j 项评价指标的数值。

(1)求比值

p i j = x i j ∑ i = 1 n x i j p_{ij}=\frac{x_{ij}}{\sum_{i=1}^n{x_{ij}}} pij=i=1nxijxij

(2)求熵值

e j = − 1 ln ⁡ n ∑ i = 1 n p i j ln ⁡ p i j   , e j ∈ [ 0 , 1 ] e_j=-\frac{1}{\ln n}\sum_{i=1}^n{p_{ij}\ln p_{ij}}\ \ \text{,}e_j\in \left[ 0,1 \right] ej=lnn1i=1npijlnpij  ej[0,1]

(3)信息冗余值

d j = 1 − e j d_j=1-e_j dj=1ej

(4)定权

w j = d j ∑ j = 1 p d j w_j=\frac{d_j}{\sum_{j=1}^p{d_j}} wj=j=1pdjdj

(5)归一化 (向量标准化)

z i j = x i j ∑ i = 1 n x i j 2 z_{ij}=\frac{x_{ij}}{\sqrt{\sum_{i=1}^n{x_{ij}^2}}} zij=i=1nxij2 xij

(6)构造加权矩阵

z i j ∗ = z i j ⋅ w j z_{ij}^*=z_{ij}\cdot w_j zij=zijwj

得到加权矩阵
Z ∗ = [ z 11 ⋅ w 1 z 12 ⋅ w 2 ⋯ z 1 p ⋅ w p z 21 ⋅ w 1 z 22 ⋅ w 2 ⋯ z 2 p ⋅ w p ⋮ ⋮ ⋱ ⋮ z n 1 ⋅ w 1 z n 2 ⋅ w 2 ⋯ z n p ⋅ w p ] Z^*=\left[ \begin{matrix} z_{11}\cdot w_1& z_{12}\cdot w_2& \cdots& z_{1p}\cdot w_p\\ z_{21}\cdot w_1& z_{22}\cdot w_2& \cdots& z_{2p}\cdot w_p\\ \vdots& \vdots& \ddots& \vdots\\ z_{n1}\cdot w_1& z_{n2}\cdot w_2& \cdots& z_{np}\cdot w_p\\ \end{matrix} \right] Z=z11w1z21w1zn1w1z12w2z22w2zn2w2z1pwpz2pwpznpwp

(7)寻找最优、最劣方案

{ z i j ∗ + = max ⁡ n , p ( z 1 ∗ + , z 2 ∗ + , ⋯   , z p ∗ + ) z i j ∗ − = min ⁡ n , p ( z 1 ∗ − , z 2 ∗ − , ⋯   , z p ∗ − ) \left\{ \begin{array}{l} z_{ij}^{*+}=\underset{n,p}{\max}\left( z_1^{*+},z_2^{*+},\cdots ,z_p^{*+} \right)\\ \\ z_{ij}^{*-}=\underset{n,p}{\min}\left( z_1^{*-},z_2^{*-},\cdots ,z_p^{*-} \right)\\ \end{array} \right. zij+=n,pmax(z1+,z2+,,zp+)zij=n,pmin(z1,z2,,zp)

(8)最优、最劣距离

D i + = ∑ j ( z i j ∗ − z j ∗ + ) 2 D_i^+=\sqrt{\sum_j^{}{\left( z_{ij}^*-z_j^{*+} \right) ^2}} Di+=j(zijzj+)2
D i − = ∑ j ( z i j ∗ − z j ∗ − ) 2 D_i^-=\sqrt{\sum_j^{}{\left( z_{ij}^*-z_j^{*-} \right) ^2}} Di=j(zijzj)2

(9)构造相对接近度

C i = D i − D i + + D i − C_i=\frac{D_i^-}{D_i^++D_i^-} Ci=Di++DiDi

(10)排序

根据 C i C_i Ci的大小进行排序, C i C_i Ci越大,表明评价对象越接近最优值。

<think>好的,我现在需要回答用户的问题,关于如何将灰狼优化算(GWO)熵权法TOPSIS结合用于多目标优化。首先,我需要理解这三个方各自的作用以及它们如何协同工作。 首先,灰狼优化算是一种基于群体智能的优化算,模仿灰狼的社会等级狩猎行为。它通常用于求解单目标或多目标优化问题,通过迭代寻找最优解。在多目标优化中,可能需要处理多个相互冲突的目标函数,这时候GWO需要调整以适应多目标场景,比如维护一个外部存档来保存帕累托最优解。 然后是熵权法,这是一种客观赋权方,用于确定各指标的权重。它通过计算指标的信息熵来判断其离散程度,离散程度越高,权重越大。在多目标优化中,熵权法可以帮助确定各个目标函数的重要性,从而在综合评价时给予不同的权重。 TOPSIS(逼近理想解排序)是一种多属性决策方,通过计算各方案理想解负理想解的距离来进行排序。结合熵权法确定的权重,TOPSIS可以对优化后的解集进行综合评价,选择最接近理想解的方案。 接下来,我需要思考如何将这三者结合起来。可能的步骤是:首先使用GWO进行多目标优化,生成一组帕累托最优解;然后利用熵权法计算各目标的权重;最后应用TOPSIS对这些解进行排序,选择最优方案。 需要注意的细节包括:如何调整GWO以处理多目标问题,可能需要引入外部存档拥挤距离机制来保持解的多样性收敛性。熵权法需要各目标的标准化数据,可能需要先对GWO输出的解集进行标准化处理。TOPSIS则需要确定正负理想解,并计算每个解的综合评分。 然后,我需要考虑一个具体的示例。比如,假设有一个多目标优化问题,比如供应链中的成本时间最小化。使用GWO生成帕累托前沿解集,然后用熵权法确定成本时间的权重,最后用TOPSIS对这些解进行排序,找到最佳平衡点。 还需要验证这个流程的正确性,确保各步骤之间的数据传递无误,例如GWO的输出格式是否适合熵权法TOPSIS处理。同时,可能需要参考相关文献,看看是否有类似的研究,比如引用中提到的GWO的改进算是否适用于多目标场景,或者熵权法TOPSIS结合应用案例。 最后,整理这些思路,分步骤详细说明,并给出一个具体的示例,可能包括伪代码或步骤说明,以及相关公式的展示,确保符合用户要求的格式,比如使用正确的LaTeX语,引用相关的参考文献。</think>### 灰狼优化算(GWO)熵权法TOPSIS结合的多目标优化方 #### 1. **整体框架** 结合三者进行多目标优化的流程可分为以下步骤: 1. **GWO生成帕累托解集**:通过改进GWO算处理多目标问题,生成候选解集。 2. **熵权法计算目标权重**:对解集的目标值进行标准化,计算各目标的权重。 3. **TOPSIS综合评价排序**:利用权重计算各解的综合评分,选择最优解。 #### 2. **具体步骤示例** **示例问题**:优化供应链中的运输成本$f_1$运输时间$f_2$,要求两者最小化。 --- ##### **步骤1:多目标GWO生成帕累托解集** **改进GWO算**: - **外部存档机制**:保存非支配解(即帕累托最优解)。 - **拥挤距离计算**:维持解集的多样性,避免局部最优。 - **目标函数归一化**:例如,对$f_1$$f_2$进行标准化: $$f_i' = \frac{f_i - f_{i,\min}}{f_{i,\max} - f_{i,\min}}$$ **Python伪代码**: ```python def multi_objective_gwo(): # 初始化灰狼种群外部存档 wolves = initialize_population() archive = update_pareto_front(wolves) for iter in max_iterations: # 计算拥挤距离并筛选非支配解 archive = crowding_distance(archive) # 更新灰狼位置(参考GWO狩猎行为) wolves = update_positions(wolves, archive) # 更新帕累托解集 archive = update_pareto_front(wolves + archive) return archive ``` --- ##### **步骤2:熵权法计算目标权重** **熵权法公式**: 1. **标准化目标值**: $$p_{ij} = \frac{f_{ij}}{\sum_{i=1}^n f_{ij}}$$ 2. **计算信息熵**: $$e_j = -\frac{1}{\ln n} \sum_{i=1}^n p_{ij} \ln p_{ij}$$ 3. **计算权重**: $$w_j = \frac{1 - e_j}{\sum_{k=1}^m (1 - e_k)}$$ **示例**: 假设帕累托解集包含3个解的目标值: - 解1: $f_1=100$, $f_2=5$ - 解2: $f_1=80$, $f_2=8$ - 解3: $f_1=120$, $f_2=4$ 标准化后计算熵权,最终得到权重$w_1=0.6$(成本)$w_2=0.4$(时间)。 --- ##### **步骤3:TOPSIS综合评价排序** **TOPSIS流程**: 1. **加权标准化矩阵**:将目标值乘以熵权法权重。 2. **确定正负理想解**: - 正理想解:各目标最小值(若最小化为优) - 负理想解:各目标最大值 3. **计算距离评分**: $$D_i^+ = \sqrt{\sum_j w_j (f_{ij} - f_j^+)^2}, \quad D_i^- = \sqrt{\sum_j w_j (f_{ij} - f_j^-)^2}$$ $$C_i = \frac{D_i^-}{D_i^+ + D_i^-}$$ **示例结果**: 若解1的评分$C_1=0.8$,解2的$C_2=0.6$,解3的$C_3=0.3$,则选择解1为最优。 --- #### 3. **结合应用的优势** - **GWO**:高效搜索帕累托前沿,避免局部最优[^2]。 - **熵权法**:客观赋权,减少主观偏差。 - **TOPSIS**:直观排序,适用于复杂权衡场景。 ---
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值