TOPSIS与模糊Borda 的组合应用(以第二届大湾区杯和国赛为案例)
目錄
一、TOPSIS(優(yōu)劣解距離法)簡介
二、TOPSIS(優(yōu)劣解距離法)主要步驟
(1)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化
(2)構(gòu)建決策矩陣
(3)構(gòu)造加權(quán)規(guī)范陣
(4)計算正負(fù)理想解
(5)計算各方案與正負(fù)理想解間的距離
(6)計算各方案與正理想解的相對貼近度
三、TOPSIS算法代碼(MATLAB)
四、模糊Borda組合評價簡介
五、模糊Borda組合評價步驟
(1)計算隸屬度
(2)計算模糊頻數(shù)
(3)計算模糊頻率
(4)將排序轉(zhuǎn)化為得分
(5)計算模糊Borda數(shù)FBi
六、模糊Borda組合評價代碼(MATLAB)
七、案例分析
(1)2021年國賽C題
(2)2021 年第二屆“大灣區(qū)杯”粵港澳金融數(shù)學(xué)建模競賽B題
八、總結(jié)
(1)TOPSIS
(2)模糊Borda
一、TOPSIS(優(yōu)劣解距離法)簡介
TOPSIS法亦被稱為理想解法,是一種綜合評價方法,該方法能夠充分利用原始數(shù)據(jù),精確反映各評價方案之間的差距,對數(shù)據(jù)分布及其樣本含量沒有嚴(yán)格限制。能有效地解決多指標(biāo)評價問題,該方法通過構(gòu)造評價問題的正理想解(最優(yōu)解)和負(fù)理想解(最劣解),計算每個方案到理想方案的相近貼進(jìn)度,即靠近最優(yōu)解和遠(yuǎn)離最劣解的程度,來對方案進(jìn)行排序,從而選出最佳方案,具體流程如下圖所示。
TOPSIS算法流程圖?二、TOPSIS(優(yōu)劣解距離法)主要步驟
用理想解法求解多屬性決策問題的概念簡單,只要在屬性空間定義適當(dāng)?shù)木嚯x測度就能計算備選方案與理想解的距離。TOPSIS法所用的是歐幾里得距離。至于既用最優(yōu)解又用最劣解是因?yàn)樵趦H僅使用最優(yōu)解時可能會出現(xiàn)某兩個備選方案與最優(yōu)解的距離相同的情況,為了區(qū)分這兩個方案的優(yōu)劣,引入最劣解并計算這兩個方案與最劣解的距離,與最優(yōu)解的距離相同的方案離最劣解遠(yuǎn)者為優(yōu)。
(1)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化
依據(jù)你建立的評價指標(biāo)體系,建立歸一化矩陣,將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。
?(2)構(gòu)建決策矩陣
用向量規(guī)劃化的方法求得規(guī)范決策矩陣。設(shè)多屬性決策問題的決策矩陣,規(guī)范化決策矩陣,其中
?(3)構(gòu)造加權(quán)規(guī)范陣
構(gòu)造加權(quán)規(guī)范陣。設(shè)由決策人給定各屬性的權(quán)重向量為,則
?權(quán)重可通過熵權(quán)法、FAHP、相關(guān)性等方法確定,使用熵權(quán)法確定權(quán)重,首先計算各個指標(biāo)的信息熵,在通過信息熵計算各指標(biāo)的權(quán)重。
?(4)計算正負(fù)理想解
確定最優(yōu)解和最劣解。則
(5)計算各方案與正負(fù)理想解間的距離
計算所選取的指標(biāo)與最優(yōu)向量的歐氏距離和最劣向量的距離。
?(6)計算各方案與正理想解的相對貼近度
三、TOPSIS算法代碼(MATLAB)
clear clc A=[1 2 3;4 5 6;7 8 9];%【初始矩陣,列為指標(biāo),行為方案】 [n,m]=size(A); %n為A矩陣的行數(shù),m為A矩陣的列數(shù) c=sqrt(sum(A.*A)); %規(guī)范化決策矩陣 d=A./c; w=[0.33 0.33 0.33];%權(quán)重 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('評分結(jié)果,評分區(qū)間[0,1]') disp(T) disp('方案排名') disp(pm)四、模糊Borda組合評價簡介
模糊Borda組合評價模型是在幾種評價方法結(jié)果相似的前提下,通過將多個評價方法進(jìn)行組合,以求得一個更有參考價值的結(jié)果。本文在使用秩和比綜合評價法和TOPSIS法之后,嘗試使用模糊Borda組合評價模型進(jìn)行運(yùn)算,以求得到效果更好的結(jié)果。
五、模糊Borda組合評價步驟
(1)計算隸屬度
(2)計算模糊頻數(shù)
(3)計算模糊頻率
(4)將排序轉(zhuǎn)化為得分
(5)計算模糊Borda數(shù)FBi
詳細(xì)原理、步驟及代碼見本人之前寫的一篇博客,歡迎大家移步觀看,這里就不過多贅述。[刨根問底] 五分鐘搞懂組合評價模型—模糊Borda (以2021 年大學(xué)生數(shù)模國賽C題為例)_飼養(yǎng)猿的博客-CSDN博客
六、模糊Borda組合評價代碼(MATLAB)
x=[ ]; %x矩陣儲存各評價方法的得分,一行代表一家供應(yīng)商,列代表不同的評價方法 Ma = max(x,[],2); %求每列最大值 Mi = min(x,[],2); %求每列最小值 for i = 1:402 %402家供應(yīng)商for j = 1:N %N種評價方法,記得把N改為你自己選擇的評價方法數(shù),不然會報錯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);%儲存模糊頻數(shù)矩陣 BB1=();%儲存第一種評價方法排名 BB2=();%儲存第二種評價方法排名%求模糊頻數(shù)矩陣 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數(shù)FBi,然后輸出排名 FB = sum(w.*Q,2); [a,PX]=sort(FB(end:-1:1)); PX七、案例分析
(1)2021年國賽C題
[刨根問底] 五分鐘搞懂組合評價模型—模糊Borda (以2021 年大學(xué)生數(shù)模國賽C題為例)_飼養(yǎng)猿的博客-CSDN博客
(2)2021 年第二屆“大灣區(qū)杯”粵港澳金融數(shù)學(xué)建模競賽B題
針對問題二,使用多元線性回歸將公因子對股票走勢分別進(jìn)行擬合,在95%的顯著性水平下,收益率與盈利能力因子、估值因子成負(fù)相關(guān)關(guān)系,收益率與成長因子成正相關(guān)關(guān)系。確定投資策略時,構(gòu)建了兩種選股模型。第一種基于馬科維茨證券組合選擇理論,計算10支股票投資組合的有效前沿曲線;第二種采用熵權(quán)-TOPSIS法對10支股票的各個季度的投資價值進(jìn)行打分排名,再綜合四十個季度的排名和得分做模糊Borda組合評價,立訊精密、國星光電、生益科技、順絡(luò)電子、長盈精密的綜合得分相同且最高,投資價值相對來說最優(yōu)。
clear;clc; %清除變量和數(shù)據(jù) %% %讀取數(shù)據(jù) [x,id]=xlsread('C:\Users\86178\Desktop\數(shù)據(jù)');%讀取文件 jieguo=zeros(10,41);%用來儲存40個季度各股票TOPSIS得分 jieguo(:,1)=[1:10]';%用來儲存股票代碼 jieguo2=zeros(10,40);%用來儲存40個季度各股票的得分排序 %1-10分別代表{'分眾傳媒';'億緯鋰能';'立訊精密';'風(fēng)華高科';'國星光電';'生益科技';'德賽電池';'順絡(luò)電子';'長盈精密';'廣電運(yùn)通'}%% %劃分?jǐn)?shù)據(jù) count=1; for a = 1:40%提取矩陣數(shù)據(jù)YM = x(count:count+9,2:end); count=count+10;%%%Topsis綜合評價[n,m] = size(YM);%n代表數(shù)據(jù),m代表6個指標(biāo)disp(['共有' num2str(n) '個評價對象, ' num2str(m) '個評價指標(biāo)']) y=[];%空矩陣,存儲歸一化后數(shù)據(jù)for i=1:my(:,i)=YM(:,i)/sum([YM(:,i)]);%數(shù)據(jù)歸一化endfor i=1:maa(i)=max(y(:,i));%最大化指標(biāo)bb(i)=min(y(:,i));%最小化指標(biāo)enddd1=zeros(n,1);dd2=zeros(n,1);for i=1:nfor j=1:mmaxzhi(i,j)=(y(i,j)-aa(j))^2;%計算到最優(yōu)值距離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+,與最優(yōu)解的距離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';%將排名填入相應(yīng)列jieguo(:,a+1)=c';%將對應(yīng)得分填入相應(yīng)列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%組合評價就是將多個評價方法的結(jié)果再算一下,得到一個更有參考價值的結(jié)果 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);%儲存模糊頻數(shù)矩陣%求模糊頻數(shù)矩陣 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數(shù)FBi,然后輸出排名 FB = sum(w.*Q,2); [a,PX]=sort(FB,'descend');%排序 PM=zeros(10,2); PM(:,1)=PX; PM(:,2)=a;%結(jié)果可視化figure plot(sort(FB,'descend'),'LineWidth',2) title('模糊Borda得分結(jié)果圖','FontSize',14) set(gca,'FontSize',12,'color','white'); az=1;八、總結(jié)
(1)TOPSIS
TOPSIS模型避免了數(shù)據(jù)的主觀性,不需要目標(biāo)函數(shù),相較于層次分析法,更為客觀,能夠很好的刻畫多個影響指標(biāo)的綜合影響力度,缺點(diǎn)是必須具有兩個及以上的研究對象才可以使用。
(2)模糊Borda
模糊Barda法可以綜合多種評價方法的不同結(jié)果,該方法既考慮不同方法下排序名次的差異,又考慮相應(yīng)評價方法下各項(xiàng)目的得分值,能更好地利用已有的評價信息,從而使得評價結(jié)果具有較高的合理性和優(yōu)越性。
模糊Borda法冠名為“模糊”的理由是,計算了所謂的“隸屬度”。其實(shí),只不過是實(shí)際評價值的一個區(qū)間線性變換(極差變換或極大值相對化變換)。通過變換之后,所有的評價方法輸出值的取值區(qū)間均為[0,1]。它充其量也只是“評語等級退化為單個等級”時的隸屬度,或者稱為“隸屬優(yōu)度”,從整個過程來看,該方法并沒有與模糊數(shù)學(xué)中的有關(guān)運(yùn)算規(guī)則、特殊概念發(fā)生很強(qiáng)的聯(lián)系。
在學(xué)習(xí)中成功、在學(xué)習(xí)中進(jìn)步!我們一起學(xué)習(xí)不放棄~
記得三連哦~mua 你們的支持是我最大的動力!!歡迎大家閱讀往期文章哈~
小編聯(lián)系方式如下,歡迎各位大佬溝通交流。
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);總結(jié)
以上是生活随笔為你收集整理的TOPSIS与模糊Borda 的组合应用(以第二届大湾区杯和国赛为案例)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实例 65,66
- 下一篇: 蒙特卡罗模拟法 —— matlab