TOPSIS与模糊Borda 的组合应用(以第二届大湾区杯和国赛为案例)

目录

一、TOPSIS(优劣解距离法)简介

二、TOPSIS(优劣解距离法)主要步骤

(1)数据进行标准化

(2)构建决策矩阵

(3)构造加权规范阵

(4)计算正负理想解

(5)计算各方案与正负理想解间的距离

(6)计算各方案与正理想解的相对贴近度

三、TOPSIS算法代码(MATLAB)

四、模糊Borda组合评价简介

五、模糊Borda组合评价步骤

(1)计算隶属度

(2)计算模糊频数

(3)计算模糊频率

(4)将排序转化为得分

(5)计算模糊Borda数FBi

六、模糊Borda组合评价代码(MATLAB)

七、案例分析

(1)2021年国赛C题

(2)2021 年第二届“大湾区杯”粤港澳金融数学建模竞赛B题

八、总结

(1)TOPSIS

(2)模糊Borda


一、TOPSIS(优劣解距离法)简介

TOPSIS法亦被称为理想解法,是一种综合评价方法,该方法能够充分利用原始数据,精确反映各评价方案之间的差距,对数据分布及其样本含量没有严格限制。能有效地解决多指标评价问题,该方法通过构造评价问题的正理想解(最优解)和负理想解(最劣解),计算每个方案到理想方案的相近贴进度,即靠近最优解和远离最劣解的程度,来对方案进行排序,从而选出最佳方案,具体流程如下图所示。

TOPSIS算法流程图

 二、TOPSIS(优劣解距离法)主要步骤

用理想解法求解多属性决策问题的概念简单,只要在属性空间定义适当的距离测度就能计算备选方案与理想解的距离。TOPSIS法所用的是欧几里得距离。至于既用最优解又用最劣解是因为在仅仅使用最优解时可能会出现某两个备选方案与最优解的距离相同的情况,为了区分这两个方案的优劣,引入最劣解并计算这两个方案与最劣解的距离,与最优解的距离相同的方案离最劣解远者为优。

(1)数据进行标准化

依据你建立的评价指标体系,建立归一化矩阵,将数据进行标准化。

 (2)构建决策矩阵

用向量规划化的方法求得规范决策矩阵。设多属性决策问题的决策矩阵A=(a_{ij})_{m\times n},规范化决策矩阵B=(b_{ij})_{m\times n},其中

 (3)构造加权规范阵

构造加权规范阵C=(c_{ij})_{m\times n}。设由决策人给定各属性的权重向量为\omega =[\omega_{1},\omega_{2},\cdots ,\omega_{n}]^{T},则

 权重可通过熵权法、FAHP、相关性等方法确定,使用熵权法确定权重,首先计算各个指标的信息熵E_{j},在通过信息熵计算各指标的权重。

 (4)计算正负理想解

确定最优解Z_{i}^{+}和最劣解Z_{i}^{-}。则

(5)计算各方案与正负理想解间的距离

计算所选取的指标与最优向量的欧氏距离和最劣向量的距离。

 (6)计算各方案与正理想解的相对贴近度

三、TOPSIS算法代码(MATLAB)

clear
clc
A=[1 2 3;4 5 6;7 8 9];%【初始矩阵,列为指标,行为方案】
[n,m]=size(A); %n为A矩阵的行数,m为A矩阵的列数
c=sqrt(sum(A.*A));
%规范化决策矩阵
d=A./c;
w=[0.33 0.33 0.33];%权重
c=w.*d;
cmax=max(c);
cmin=min(c);
for i=1:nc1=c(i,:)-cmax;s1(i)=norm(c1);c2=c(i,:)-cmin;s2(i)=norm(c2);T(i)=s2(i)/(s1(i)+s2(i));
end
%排名
[~,pm]=sort(T,'descend');
disp('评分结果,评分区间[0,1]')
disp(T)
disp('方案排名')
disp(pm)

四、模糊Borda组合评价简介

模糊Borda组合评价模型是在几种评价方法结果相似的前提下,通过将多个评价方法进行组合,以求得一个更有参考价值的结果。本文在使用秩和比综合评价法和TOPSIS法之后,尝试使用模糊Borda组合评价模型进行运算,以求得到效果更好的结果。

五、模糊Borda组合评价步骤

(1)计算隶属度

(2)计算模糊频数

(3)计算模糊频率

(4)将排序转化为得分

(5)计算模糊Borda数FBi

详细原理、步骤及代码见本人之前写的一篇博客,欢迎大家移步观看,这里就不过多赘述。[刨根问底] 五分钟搞懂组合评价模型—模糊Borda (以2021 年大学生数模国赛C题为例)_饲养猿的博客-CSDN博客

六、模糊Borda组合评价代码(MATLAB)

x=[ ];       %x矩阵储存各评价方法的得分,一行代表一家供应商,列代表不同的评价方法
Ma = max(x,[],2);     %求每列最大值
Mi = min(x,[],2);     %求每列最小值
for i = 1:402          %402家供应商for j = 1:N      %N种评价方法,记得把N改为你自己选择的评价方法数,不然会报错u(i,j) = ((x(i,j)-Mi(i,1))./(Ma(i,1)-Mi(i,1))).*0.9+0.1;end
end
B=zeros(402,402);%储存模糊频数矩阵
BB1=();%储存第一种评价方法排名
BB2=();%储存第二种评价方法排名%求模糊频数矩阵
for i=1:402B(i,BB1(i,1))=1;
end
for j=1:402B(j,BB2(j,1))=1;
end
%计算模糊频率
for h = 1 : 402for i = 1 : 402p(h,i) = sum(B(h,i) .* u(i,:));end
end
for h = 1 : 402for i = 1 : 402w(h,i) = p(h,i) ./ sum(p(:,i));end
end
%计算最终得分
for h = 1 : 402for i = 1 : 402Q(h,i) = 0.5 * (402- h) * (402 - h + 1);end
end
Q=Q';
%计算模糊Borda数FBi,然后输出排名
FB = sum(w.*Q,2);
[a,PX]=sort(FB(end:-1:1));
PX

七、案例分析

(1)2021年国赛C题

[刨根问底] 五分钟搞懂组合评价模型—模糊Borda (以2021 年大学生数模国赛C题为例)_饲养猿的博客-CSDN博客

(2)2021 年第二届“大湾区杯”粤港澳金融数学建模竞赛B题

针对问题二,使用多元线性回归将公因子对股票走势分别进行拟合,在95%的显著性水平下,收益率与盈利能力因子、估值因子成负相关关系,收益率与成长因子成正相关关系。确定投资策略时,构建了两种选股模型。第一种基于马科维茨证券组合选择理论,计算10支股票投资组合的有效前沿曲线;第二种采用熵权-TOPSIS法对10支股票的各个季度的投资价值进行打分排名,再综合四十个季度的排名和得分做模糊Borda组合评价,立讯精密、国星光电、生益科技、顺络电子、长盈精密的综合得分相同且最高,投资价值相对来说最优。

clear;clc;
%清除变量和数据
%%
%读取数据
[x,id]=xlsread('C:\Users\86178\Desktop\数据');%读取文件
jieguo=zeros(10,41);%用来储存40个季度各股票TOPSIS得分
jieguo(:,1)=[1:10]';%用来储存股票代码
jieguo2=zeros(10,40);%用来储存40个季度各股票的得分排序
%1-10分别代表{'分众传媒';'亿纬锂能';'立讯精密';'风华高科';'国星光电';'生益科技';'德赛电池';'顺络电子';'长盈精密';'广电运通'}%%
%划分数据
count=1;
for a = 1:40%提取矩阵数据YM = x(count:count+9,2:end);  count=count+10;%%%Topsis综合评价[n,m] = size(YM);%n代表数据,m代表6个指标disp(['共有' num2str(n) '个评价对象, ' num2str(m) '个评价指标']) y=[];%空矩阵,存储归一化后数据for i=1:my(:,i)=YM(:,i)/sum([YM(:,i)]);%数据归一化endfor i=1:maa(i)=max(y(:,i));%最大化指标bb(i)=min(y(:,i));%最小化指标enddd1=zeros(n,1);dd2=zeros(n,1);for i=1:nfor j=1:mmaxzhi(i,j)=(y(i,j)-aa(j))^2;%计算到最优值距离minzhi(i,j)=(y(i,j)-bb(j))^2;%计算到最劣值距离dd1(i,1)=dd1(i,1)+maxzhi(i,j);dd2(i,1)=dd2(i,1)+minzhi(i,j);enddd1(i,1)=sqrt(dd1(i,1));%求s+,与最优解的距离dd2(i,1)=sqrt(dd2(i,1));%求s-,与最劣解的距离endfor i=1:nc(i)=dd2(i,1)/(dd1(i,1)+dd2(i,1));%求接近程度end[xx,yy]=sort(c,'descend');%排序jieguo2(:,a)=yy';%将排名填入相应列jieguo(:,a+1)=c';%将对应得分填入相应列subplot(4,10,a)  %将图按行列号分布plot(jieguo(:,a+1),'LineWidth',2)set(gca,'yticklabel',{'0','0.2','0.4','0.6','0.8','1'})set(gca,'fontname','宋体','FontSize',14)set(gca,'xticklabel',{'0','5','10'})title({['YM',num2str(ceil(a))]})grid on
end
save('得分', 'jieguo');
save('得分排序', 'jieguo2');%%%模糊Borda%组合评价就是将多个评价方法的结果再算一下,得到一个更有参考价值的结果
N=zeros(10,40);
for i=1:40N(:,i)=jieguo(:,i+1);
endMaxzhi = max(N,[],2);     %求每行最大值
Minzhi = min(N,[],2);     %求每行最小值
for i = 1:10          %10只股票for j = 1:40       %40种评价得分u(i,j) = ((N(i,j)-Minzhi(i,1))./(Maxzhi(i,1)-Minzhi(i,1))).*0.9+0.1;end
end
B=zeros(10,10);%储存模糊频数矩阵%求模糊频数矩阵
for j=1:40
for i=1:10B(i,jieguo2(i,j))=1;
end
end%计算模糊频率
for h = 1 : 10for i = 1 : 10p(h,i) = sum(B(h,i) .* u(i,:));end
end
for h = 1 : 10for i = 1 : 10w(h,i) = p(h,i) ./ sum(p(:,i));end
end%计算最终得分
for h = 1 : 10for i = 1 : 10Q(h,i) = 0.5 * (10- h) * (10 - h + 1);end
end
Q=Q';%计算模糊Borda数FBi,然后输出排名
FB = sum(w.*Q,2);
[a,PX]=sort(FB,'descend');%排序
PM=zeros(10,2);
PM(:,1)=PX;
PM(:,2)=a;%结果可视化figure
plot(sort(FB,'descend'),'LineWidth',2)
title('模糊Borda得分结果图','FontSize',14)
set(gca,'FontSize',12,'color','white');
az=1;

八、总结

(1)TOPSIS

TOPSIS模型避免了数据的主观性,不需要目标函数,相较于层次分析法,更为客观,能够很好的刻画多个影响指标的综合影响力度,缺点是必须具有两个及以上的研究对象才可以使用。

(2)模糊Borda

模糊Barda法可以综合多种评价方法的不同结果,该方法既考虑不同方法下排序名次的差异,又考虑相应评价方法下各项目的得分值,能更好地利用已有的评价信息,从而使得评价结果具有较高的合理性和优越性。
模糊Borda法冠名为“模糊”的理由是,计算了所谓的“隶属度”。其实,只不过是实际评价值的一个区间线性变换(极差变换或极大值相对化变换)。通过变换之后,所有的评价方法输出值的取值区间均为[0,1]。它充其量也只是“评语等级退化为单个等级”时的隶属度,或者称为“隶属优度”,从整个过程来看,该方法并没有与模糊数学中的有关运算规则、特殊概念发生很强的联系。

在学习中成功、在学习中进步!我们一起学习不放弃~

记得三连哦~mua 你们的支持是我最大的动力!!欢迎大家阅读往期文章哈~

小编联系方式如下,欢迎各位大佬沟通交流。

int[] arr=new int[]{4,8,3,2,6,5,1};
int[] index= new int[]{6,4,5,0,3,0,2,6,3,1};
String QQ = "";for (int i : index){QQ +=arr[i];
}
System.out.println("小编的QQ:" + QQ);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565196.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 页面国际化

internationalization详解 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的…

唯美计算机语言,唯美精辟的语句

1、当泪水一滴滴的掉落在我的手上,那时竟想为何我非你不可!2、原来再美好的承诺,最终还是会被现实打败。3、明明不是陌生人,却装的,比陌生人,还要陌生。4、如果我是个瘦子,伤心时我还可以数数排…

不到30的成本,还不赶紧造起来——盘点软著申请小知识

今年上半年的时候跟着老师做项目,为了学习应付中期报告,就自己写了一个小软件,然后申请了一个软著,至于为啥要头铁的自己上呢,因为想要拿独立著作权,那当然是没有报销的啦~,这里有同学就要问啦&…

Linux系统安装及配置——Centos-7-X86_64-DVD-2009

目录 1.下载 VMware Workstation软件 2.下载 Centos-7-X86_64-DVD-2009.iso 3.安装并配置 3.1打开VMware Workstation,选择创建新的虚拟机 3.2选择自定义,然后下一步 3.3下一步 3.4选择稍后安装操作系统,然后下一步 3.5选择Linux&am…

2018年12月份计算机,CPU天梯图2018年12月最新版 十二月台式电脑CPU性能排行

Helio,大家好,11月再见12月你好!欢迎关注IT数码通带来的最新一期桌面CPU天梯图。距离上一次天梯图更新已经过去一个月时间了,伴随着12月份到来,新的天梯图需要进行更新和完善了。接下来“IT数码通”小编为大家带来了CP…

C语言程序的错误和警告

一段C语言代码,在编译、链接和运行的各个阶段都可能会出现问题。编译器只能检查编译和链接阶段出现的问题,而可执行程序已经脱离了编译器,运行阶段出现问题编译器是无能为力的。 如果我们编写的代码正确,运行时会提示没有错误&am…

计算机的集成显卡是什么意思,IGD、PEG、PCI的含义,我的电脑是集成显卡该选哪一项...

请详细介绍IGD,PEG,PCI的含义,我应该为计算机的集成显卡选择其中的一种。 ...请详细说明IGD,PEG,PCI的含义,如果我的计算机是集成显卡,则应该选择IGD,PEG,PCI的含义。展开…

Spring Boot 数据国际化

internationalization详解 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的…

没有bug队——加贝——Python 练习实例 21,22

21.题目: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时&…

没有bug队——加贝——Python 练习实例 23,24

23.题目:打印菱形 程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。 注:将这个图形看成对称的,前面和后…

Spring Boot 之 itext导出pdf下载

Java操作pdf框架详解 itext是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。 下载效果演示 po…

从您的计算机移除此产品,解决office提示“此操作只对目前安装的产品有效”的方法...

Office软件是我们所有微软系统预装版本中都会有的一个组件,有的用户在购买电脑之后由于不想使用这个软件等种种原因会选择将这个软件从电脑中卸载。卸载的方法有很多,我们常用的方法就是使用电脑中自带的卸载软件卸载这个程序,还有一种就是使…

没有bug队——加贝——Python 练习实例 25,26

我非常认真的告诉大家今天这是一篇水文,别看了 25.题目: 求12!3!...20!的和。 程序分析:此程序只是把累加变成了累乘。 s 0 l range(1,21) def op(x):r 1for i in range(1,x 1):r * ireturn r s sum(map(op,l)) print (1! 2! 3! …

符江职高计算机教什么,高县符江职高具体地址

摘要:学校地址 :宜宾市高县清福镇学府路22号 公交路线 高县:进入盛兴路,行驶300米-左转,进入朔村路,行驶540米-左转,进入汉胜路,行驶440米-请直走,进入富悦路,行驶200米-请直走&…

MATLAB基础教程(7)——求解定积分和不定积分

目录 定积分的基本概念 什么是定积分? 如何深入的理解定积分? 如何计算定积分? 在matlab中计算定积分。 不定积分 在matlab中计算不定积分 在matlab中计算定积分 本期回顾 定积分的基本概念 什么是定积分? 简而言之,我…

微信公众号中选择时间css,微信公众号到底应该几点推文?

原标题:微信公众号到底应该几点推文?微信公众号到底应该几点推文?早晨上班,中午休息,晚上睡觉前,都是好时间。这些时间别说刚入行的小白知道,就连半只脚没踏进运营门槛的小灰都知道,…

没有bug队——加贝——Python 练习实例 27,28

今天这两题都是递归,如果你看不太明白,可以翻翻之前的,那里介绍的比较明白,嘿嘿,我今天继续水了,拜拜各位!! 27.题目: 利用递归函数调用方式,将所输入的5个…

MATLAB基础教程(9)——高级积分运算、二重积分

目录 复习定积分(单变量) 二重积分 今日小结 复习定积分(单变量) 在之前,先复习一下之前学习的内容。使用matlab求解定积分的步骤大概如下: 定义符号变量(syms关键字)定义内联函…

服务器怎么存储文件节省空间,超大空间云服务器文件存储

超大空间云服务器文件存储 内容精选换一换本节操作指导您完成Windows操作系统云服务器磁盘空间清理。弹性云服务器匀出一部分磁盘空间来充当内存使用,当内存耗尽时,云服务器可以使用虚拟内存来缓解内存的紧张。但当内存使用率已经非常高时,频…

C语言变量和数据类型

从数据在内存中的存储方式中可以得知 计算机要处理的数据(诸如数字、文字、符号、图形、音频、视频等)是以二进制的形式存放在内存中的;我们将8个比特(Bit)称为一个字节(Byte),并将字…