美赛BOOM数学建模3-2TOPSIS法

注明:本文根据数学建模BOOM网课简单整理,自用

模型简介

TOPSIS法(理想解法)

❑ 简单示例

• 法外狂徒张三所在的团伙要评选盗圣,每个人的“事迹”如表所示

• 试对这一伙人进行评估,评选出盗圣

❑ TOPSIS法基本概念

• 总共4人,有4种可能的结果/方案,方案集:𝐷 = {𝑑1, 𝑑2, 𝑑3, 𝑑4}={张三,李四,王五,赵六}

• 方案𝑑𝑖的属性值(评价指标)构成向量[𝑎𝑖1, 𝑎𝑖2],代表空间中的一个点

• 例如 [𝑎21, 𝑎22]=[4,3]代表二维空间中(4,3)这个点,现实意义是李四的盗窃成功次数和总价值

❑基本概念

正理想解和负理想解

• 理想中的盗圣:成功次数4,总价值4(集合了两条指标的最优值),称为正理想解

• 理想中的失败者:成功次数2,总价值1(集合了两条指标的最差值),称为负理想解

• 在一个二维坐标系中,以两个评价指标作为x和y,画出每个点

• 4人中距离理想中的盗圣最近(核心思想)、距离理想中的失败者最远的人,为盗圣

• 思考:如果评价指标是3个呢?4个呢?n个呢?如果评价指标不在一个数量级呢?如果评价指标有负面的(例如被逮捕次数)呢?

三个就是三维空间,四个就是四维空间,n维同理

❑ 适用赛题

❑ 客观评估类型题目

• 题目提供了足够的评价指标和数据

例如:为了客观评价我国研究生教育的实际状况和各研究生院的教学质量,已知各单位的人均专著数、师生比、科研经费和逾期毕业率,试进行一次研究生院评估

数据已知,评价指标的类型差异较大(数值、比值、百分比,且有正面指标也有负面指标)

❑ 模型特点

充分利用原始数据,求解结果能反应各方案与理想方案差异程度

• 在评价指标较多时避免了主观性造成的复杂过程

• 数据计算简单易行,无需数据检验

❑ 典型例题

❑ 评价研究生教育

• 现有5所研究生院的数据,如表所示

• 请建立模型,客观地评价研究生教育的实际状况和各研究生院的教学质量

❑ 问题分析

• 1、当前指标数据中,并不都是越大越好

• 2、不同指标的单位不同、数量级不同,使得求点与点距离时对结果影响程度不同

• 所以使用TOPSIS法求不同方案与理想解的距离之前,先要进行数据预处理(一半工作)

❑数据预处理

指标数据并不都是越大越好

效益型属性:越大越好的属性,例如人均专著、科研经费

成本型属性:越小越好的属性,例如逾期毕业率

区间型属性:在某一区间内最好,过大或过小都不好,例如生师比

❑ 数据预处理方法

• 效益型属性无需处理

• 成本型属性,在代码求解时,求正理想解时对其取最小值,求负理想解时对其取最大值

• 区间型属性,根据数据与最优区间(查文献得出,带有一定主观性)差异进行处理

❑ 区间型属性的变换

• 设第𝑗个指标的最优属性区间为 𝑎𝑗 0, 𝑎𝑗 ∗, 𝑎𝑗′为无法容忍下限, 𝑎𝑗′′为无法容忍上限,则:

❑ 翻译翻译

• 在最优属性区间内(最好的情况),值设为1;超出了可接受的范围,直接设为0

• 不在最优属性区间内、但是在还可接受的范围内,按公式改为0到1的值

• 设生师比最优区间为[5,6], 𝑎2′ =2, 𝑎2′′= 12,可求得变换后的数据,转换后的数值越大越好

❑ 向量规范化

还有别的处理数据方法,但向量规范化足以处理topsis方法的数据了

• 无论成本型属性还是效益型属性,都用相同公式进行变换:

• 规范化后的数值,同一属性值(评价指标)的平方和为1

• 确保不同评价指标在同一数量级(0到1之间)

变换前后,每个属性值(评价指标)中的数据的大小排序不变

❑加权处理

❑ 不同指标的重要性不同(体现重要性的区别)

• 与层次分析法的两两比较不同,TOPSIS法直接给每个指标加上权重(查文献、资料)

• 因为TOPSIS法充分利用了数据的差异,只要权重设置的不是太离谱,对结果影响不会太大

• 设权向量为𝑤 = [0.2,0.3,0.4,0.1]

❑最终求解

❑ 求解思路

• 各方案的综合评价指数

• 显然,距离正理想解越近( si∗ 越小)、距离负理想解越远( s𝑖0 越大)越好

• 按𝑓𝑖∗从大到小排序方案的优劣,数值越大越好,即为所求

❑ 代码求解

❑ 求解过程

• 输入原始数据

• 数据预处理:区间型属性的变换

• 数据预处理:向量规范化

• 加权处理

• 按照公式求正负理想解、各方案与正理想解的距离

• 求各方案的综合评价指数

❑ 最终结果

clc, clear
% 输入原始数据
a=[0.1    5    5000    4.7
 0.2    6    6000    5.6
 0.4    7    7000    6.7
 0.9    10    10000    2.3
 1.2    2    400        1.8];
[m,n]=size(a);      % m是行数(方案数),n是列数(属性数)

区间型属性的变换

设第j个指标的最优属性区间为,为无法容忍下限,为无法容忍上限,则:

% 定义函数句柄b2,相当于在此定义了一个函数
% @(qujian,lb,ub,x)意味着调用b2时,需要给它括号里的四个参数
% (x>=lb & x<qujian(1))是逻辑与,如果&符号左右两边的条件都满足,则为1,否则为0
% 四种情况是互斥的,所以可以乘以各自区间条件逻辑计算后相加
a2=@(qujian,lb,ub,x)...   % @类似于fiction;...意思是换行(公式太长了)
(1-(qujian(1)-x)./(qujian(1)-lb)).*(x>=lb & x<qujian(1))...
+(x>=qujian(1) & x<=qujian(2))...
+(1-(x-qujian(2))./(ub-qujian(2))).*(x>qujian(2) & x<=ub); 

% 设最优区间等参数
qujian=[5,6]; lb=2; ub=12;
a(:,2)=a2(qujian,lb,ub,a(:,2));     % 对生师比进行变换

向量规范化

每一列(同一属性/指标)的元素值都化为0到1的值,且平方和为1

norm求向量数范,等于一个向量中的所有元素求平方和再开根

公式:

for j=1:n
    b(:,j)=a(:,j)/norm(a(:,j));  %向量规划化,a(:,j)为原始数据
end

加权后求解

w=[0.2 0.3 0.4 0.1];  
ww = repmat(w,m,1);     % repmat复制得到m个权重矩阵w,在矩阵下面排列
c=b.*ww;      %求加权后的矩阵;

% 注意正理想解和负理想解的定义
% max(c)是包含矩阵c每一列的最大值的行向量
Cstar=max(c);    %求正理想解
Cstar(4)=min(c(:,4))  %属性4(第四列)为成本型的!!!专门修改它
C0=min(c);       %q求负理想解
C0(4)=max(c(:,4))        %属性4为成本型的!!!专门修改它

for i=1:m
    Sstar(i)=norm(c(i,:)-Cstar);  %求到正理想解的距离
    S0(i)=norm(c(i,:)-C0);      %求到负理想的距离
end

% 综合评价指数f
f=S0./(Sstar+S0);
[sf,ind]=sort(f,'descend')       % 'descend'表示降序排序,得分高的放在第一位;不加descend为升序排列

sf是对综合评价指数f降序排序后的结果,ind对应原始元素的序号

ind=[4 3 2 1 5],代表第一名是第4号院校,第2名是3号院校……

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值