【数学建模系列】TOPSIS法的算法步骤及实战应用——MATLAB实现

简介: 客观评价方法中的一种,亦称为理想解法,是一种有效的多指标评价方法。这种方法通过构造评价问题的正理想解和负理想解,即各指标的最优解和最劣解,通过计算每个方案到理想方案的相对贴近度,即靠近止理想解和远离负理想解的程度,来对方案进行排序,从而选出最优方案。

文章目录


TOPSIS简介

方法和原理

         数学定义

                   数学语言描述

                   现实案例

         正负理想解

                   定义

                   实例

         量纲

TOPSIS法的算法步骤

        1.用向量规范化的方法求得规范决策矩阵

        2.构成加权规范阵C=(c~ij~)~m*n~

        3.确定正负理想解的距离

        4.计算各方案到正理想解与负理想解的距离

        5.计算各方案的综合评价指数

        6.排列方案的优劣次序


TOPSIS简介

客观评价方法中的一种,亦称为理想解法,是一种有效的多指标评价方法。这种方法通过构造评价问题的正理想解和负理想解,即各指标的最优解和最劣解,通过计算每个方案到理想方案的相对贴近度,即靠近止理想解和远离负理想解的程度,来对方案进行排序,从而选出最优方案。


方法和原理

数学定义

数学语言描述

设多属性决策方案集为D={d1,d2,…,dm},衡量方案优劣的属性变量为x1,…,xn,,这时方案集D中的每个方案di( i= 1,…,m )的n个属性值构成的向量是[Ai1,…,Ain],它作为n维空间中的一个点,能唯一地表征方案di。


现实案例

例如评价经济的发展水平

d1代表山东,d2代表江苏,d3代表北京……就是一共有m个待评价方案。

x1是绿化面积,x2是人均GDP,x3是经济总量……共有n个属性值。

其中能够展现山东的经济发展水平有绿化面积、人均GDP、经济总量等n个指标。而Ai1就是山东绿化的总面积、Ai2为山东GDP总量……


正负理想解

定义

正理想解C是一个方案集D中并不存在的虚拟的最佳方案,它的每个属性值都是决策矩阵中该属性的最好值;而负理想解C0则是虚拟的最差方案,它的每个属性值都是决策矩阵中该属性的最差值。在n维空间中,将方案集D中的各备选方案di与正理想解C和负理想解C0的距离进行比较,既靠近正理想解又远离负理想解的方案就是方案集D中的最佳方案;并可以据此排定方案集D中各备选方案的优先序。


实例


评价表中哪五个研究生院更好,可以虚构一个最好的研究生院标准,该虚构的研究生院的数据全为最优值,例如:

虚构研究生院6,其中它的人均专著x61为1.2,生师比x62为5(生师比为学生和老师的比值,它的值必须保持适度,适当的生师比可以促进老师和学生良好的互动,该值过高过低都不好),科研经费x63为10000,预期毕业率x64为1.8。此时,研究生院6就是正理想解C*,同理构建虚拟的最差方案负理想解C0。

015fda2cb7b50a62df94ac459887453.png


确定好正负理想解后,就可以以此来判断判断不同研究生院的优劣。下面开始描述每个研究生院与正负理想解的距离。

那么距离应该怎么算呢?当量纲不同时,方案不同数据的波动会很大,因此在计算距离时首先要排除量纲的影响,进行非量纲化。


非量纲化定义

多属性决策与评估的困难之一是属性间的不可公度性,即在属性值表中的每一列数具有不同的单位(量纲)。即使对同一属性,采用不同的计量单位,表中的数值也就不同。在用各种多属性决策方法进行分析评价时,需要排除量纲的选用对决策或评估结果的影响,这就是非量纲化。


TOPSIS法的算法步骤

1.用向量规范化的方法求得规范决策矩阵

设多属性决策问题的决策矩阵A=(aij )m*n,规范化决策矩阵B=(bij)m*n,其中


2.构成加权规范阵C=(cij)m*n

设由决策人给定各属性的权重向量为 w=[w1,w2,…,wn] ,

则 cij = wj*bij

其中 i=1,2,…,m, j =1,2,…,n.


在评价过程中,每项评价标准占比不同,让重要的指标影响大一点,不重要的指标影响小一点。

类似于成绩的计算,比较重要的语数英总分数高一些,其他副科的总分数低一些。


3.确定正负理想解的距离

理想解属性大致可以分为效益型、成本型和区间型三种,其中

正理想解:


效益最大值和成本最小值,当属性为区间型的时候要判断在哪个区间最佳。


负理想解:


效益最小值和成本最大值


4.计算各方案到正理想解与负理想解的距离

备选方案di到正理想解的距离为:


备选方案di到负理想解的距离为:


可类比两点间距离公式,该距离为n维空间内的距离


5.计算各方案的综合评价指数


计算综合评价指数公式的分子为方案到负理想解的距离,分母为为方案到负理想解的距离与方案到正理想解的距离之和,所以综合评价指数越大越好。


6.排列方案的优劣次序

按综合评价指数由大到小排列方案的优劣次序即可


实战应用

例题

研究生院试评估

为了客观地评价我国研究生教育的实际状况和各研究生院的教学质量,国务院学位委员会办公室组织过一次研究生院的评估。为了取得经验,先选5所研究生院,收集有关数据资料进行了试评估,表1是所给出的部分数据。


解答步骤

数据的预处理

数据的预处理又称属性值的规范化


属性值具有多种类型,包括效益型、成本型和区间型等。这三种属性,效益型属性越大越好,成本型属性越小越好,区间型属性是在某个区间最佳。


判断每个属性的数据是越大越好还是越小越好,当属性为区间型的时候判断在哪个区间最佳。

判断完成以后将它们进行规范化处理。


数据规范化处理的作用


1.属性值有多种类型,上述三种属性放在同一个表中不便于直接从数值大小判断方案的优劣,因此需要对数据进行预处理,使得表中任一属性下性能越优的方案变换后的属性值越大。


2.非量纲化,多属性决策与评估的困难之一是属性间的不可公度性,即在属性值表中的每一列数具有不同的单位(量纲)。即使对同一属性,采用不同的计量单位,表中的数值也就不同。在用各种多属性决策方法进行分析评价时,需要排除量纲的选用对决策或评估结果的影响,这就是非量纲化。


3.归一化,属性值表中不同指标的属性值的数值人小差别很大,为了直观,更为了便于采用各种多属性决策与评估方法进行评价,需要把属性值表中的数值归一化,即把表中数值均变换到[0,1]区间上。


即将上述三种属性全部转化为效益型,这个数值分布在[0,1]区间上,该值越大越好。


属性值线性规划归一化

为了使每个属性变换后的最优值为1且最差值为0,可以进行标准0-1变换。

**1.对效益型属性xj,令



当aij为最小值时,bij为0,当aij为最大值时,bij为1。**


2.对成本型属性xj,

计算公式可套用效益型的公式,在求正负理想解的时候记得要颠倒一下。


3aeac570c9b29022e0a0e1f545e5369.png


例如例题中的生师比,它最好的区间应为[5,6],最差应不低于2,高于12,当该属性值在最有区间时为1,当超过或等于能容忍上下限时为0。**


MATLAB代码(建议对照上方 “TOPSIS法的算法步骤” 查看)

注:以下并非C语言

63d82bacd1cfa1c63f92b72af942ce4.png


注:如果 (x>=qujian(1)&x<=qujian(2)) 成立,结果为真,值为1;如果 x 的值没有出现在上述区间,结果为假,值为0。


加权处理

c3fe34f13ca5c25ee0fa0a1e0e6ae9c.png


实现该式:


2a38b16f958b72c68c830ce33ccfa8c.png

至此步骤2完成,得出加权的向量规范化属性矩阵


正负理想解

58873c56aec876610cc7ed7e1af490c.png



按顺序依次实现

求到正理想解的距离:


求到负理想解的距离:

37c48e496dcd340bc416551f2a2f25d.png


计算各方案的综合评价指数:


得出结果

各方案的从优到劣的次序为4,3,2,1,5


完整代码

d010125777b38630b693b98151cbea1.png

c43059332005c511aaeaa97e74ee2c7.png

目录
相关文章
|
1月前
|
机器学习/深度学习 存储 算法
sklearn应用线性回归算法
sklearn应用线性回归算法
25 0
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到&quot;hand.txt&quot;文件。
|
9天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
3天前
|
数据采集 算法 数据可视化
MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
10 1
|
3天前
|
算法 索引
数据结构与算法-并查集多种实现以及优化步骤
数据结构与算法-并查集多种实现以及优化步骤
7 0
|
13天前
|
文字识别 算法 计算机视觉
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
19 0
|
13天前
|
数据采集 算法 数据可视化
R语言聚类算法的应用实例
R语言聚类算法的应用实例
86 18
R语言聚类算法的应用实例
|
13天前
|
算法 数据可视化 数据挖掘
R语言社区主题检测算法应用案例
R语言社区主题检测算法应用案例
13 0
|
15天前
|
机器学习/深度学习 人工智能 数据可视化
西安石油大学数学建模校赛培训(2)matlab的使用
西安石油大学数学建模校赛培训(2)matlab的使用
42 0
|
16天前
|
机器学习/深度学习 算法
【MATLAB】GA_ELM神经网络时序预测算法
【MATLAB】GA_ELM神经网络时序预测算法
288 9