[刨根问底] 五分钟搞懂组合评价模型—模糊Borda (以2021 年大学生数模国赛C题为例)
組合評價模型—模糊Borda(Matlab)?
我們的征途是星辰大海,而并非煙塵人間。
目錄
組合評價模型—模糊Borda(Matlab)?
一、模糊Borda法簡介
二、模糊Borda法主要步驟
(1)計算隸屬度
(2)計算模糊頻數
(3)計算模糊頻率?
(4)將排序轉化為得分
(5)計算模糊Borda數FBi,FBi值越大,名次越靠前
三、案例分析(2021 年高教社杯全國大學生數學建模競賽C題)
(1)案例分析
(2)代碼實現?
第一步:計算隸屬度
第二步:計算模糊頻數
第三步:計算頻率,也就是歸一化
第四步:將排序轉化為得分
第五步:計算模糊Borda數FBi,然后輸出排名
四、總結
(1)模糊Borda優點
(2)模糊Borda缺點
一、模糊Borda法簡介
Borda法是由C·de Borda在1784年提出的,最早是為了解決投片選舉問題。其基本思想是:通過比較 m 位評價者所給出的對 n 個被評價對象的優序關系,最終確定 n 個被評價對象的Borda分,以Borda分為大小從高到低排序。
案例一:
設一個選舉有三個候選人甲、乙、丙,結果如下:
-
4 張選票為:甲 > 乙 > 丙;
-
5 張選票為:甲 > 丙 > 乙;
-
7 張選票為:丙 > 乙 > 甲。
按簡單多數規則 s1?= 1, s2?= s3?= 0,則甲 9 票,乙 0 票,丙 7 票。結果是甲當選。由于沒有選民把乙排第一,所以當選的不是甲就是丙,取決于誰的支持者多。這體現了簡單多數規則的弊端——較易選出極端或爭議人士,可能會讓 51% 的人最滿意,而無視 49% 的人的利益。
按線性波達數規則 s1?= 2, s2?= 1, s3?= 0,則甲 18 分,乙 11 分,丙 19 分。結果是丙當選。造成這一結果的原因可能是甲的 9 名支持者采用的是真誠選舉,如實表達自己的偏好順序,而丙的 7 名支持者采用的是策略選舉,一致將甲排在最后。
可見要尋找一個好的投票規則并不容易。如果采用瑙魯議會規則,s1?= 1, s2?= 1/2, s3?= 1/3,則甲 11.33 分,乙 7.17 分,丙 10.83 分。結果是甲當選。瑙魯議會規則將反對者的聲音控制在一人一分以內,限制了策略選舉的影響。
組合評價就是將多個評價方法的結果再算一下,得到一個更有參考價值的結果,但是要求幾種評價方法的結果相似,比如對幾個供應商重要性進行排名,首先通過了秩和比、topsis法等算法算出評價值,這些評價值作為Borda的初始數據。關于評價方法,不一定都是客觀的方法,一些主觀的方法都是可以的,確定判斷矩陣時應結合實際考慮。
二、模糊Borda法主要步驟
Borda法分為以下五個步驟:
(1)計算隸屬度
?可以表示為第i個供應商第j種評價方法的結果,其實這里呢就是一個簡單的歸一化,在一些運算過程中,趨向于0的值可能導致當此相乘的結果接近零,可能會影響到結果,這里我們可以把上式改為最低值為0.1:
?(2)計算模糊頻數
?矩陣根據評價結果構建0,1矩陣,然后帶入進行運算
(3)計算模糊頻率?
?(4)將排序轉化為得分
為供應商i在h位的得分,這里的指對象個數,如果要對比402家供應商那么這里的
(5)計算模糊Borda數FBi,FBi值越大,名次越靠前
三、案例分析(2021 年高教社杯全國大學生數學建模競賽C題)
(1)案例分析
第一問要求我們確定50家最重要的供應商,一般的都是從供應情況去看,這里可以確定一些指標,然后進行評價,最后評分最高Top50作為本問結果,可以考慮以下指標:
(1)材料性價比:計算各原材料經濟效益,1/[0.6 0.66 0.72]=[1.67 1.52 1.39],然后再去除下單價,[1.67 1.52 1.39]/[1.2 1.1 1]=[1.3889 1.3774 1.3889],各供應商按供應的原材料對應,將這個結果作為第一個指標,為正向指標,指標越大越好。
(2)供應商最大供應能力:最大供應量并換算為產能,為正向指標,指標越大越好
(3)供應商平均供應能力:平均供應量并換算為產能,為正向指標,指標越大越好
(4)歷史供應量/歷史訂單量比,為正向指標,指標越大越好
(5)供應商供應可靠性,對歷史供應數據,做方差分析,為負向指標,指標越小越好
(6)企業平均需求:企業平均需求可用于衡量該生產企業在每個供應商的訂貨量總體水平。觀察附件1中數據,可發現存在大量為0的數據,故對每個供應商的訂貨量進行求和,可以在保證計算結果正確的同時排除0數據的干擾。將每個供應商在240周的訂貨量進行求和,再除以有訂貨的周數,得到企業平均需求。
除了以上指標大家還可以多增加一些,然后用評價算法評價后排序即可,第一問評價可以用多種算法例如投影尋蹤、熵權法、Tosis等評價,然后在通過組合評價方法例如Borda求一個綜合性的評價值,然后進行排序。
(2)代碼實現?
第一步:計算隸屬度
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,然后輸出排名
%計算模糊Borda數FBi,然后輸出排名 FB = sum(w.*Q,2); [a,PX]=sort(FB(end:-1:1)); [xx2,yy2]=sort(PX);%將排名與序號對應(按照排名升序)(xx2為排名,yy2為序號) PM=zeros(402,2); PM(:,1)=yy2; PM(:,2)=xx2; Top=[]; Top=yy2(1:50,1);以上就是小編國賽C題第一問的求解過程啦~,小編用的是比較簡單的方法,由于時間比較緊,比賽的時候只選用了兩種評價方法,再用模糊Borda組合評價求解,得到三個結果,再分別計算匹配度,最后選擇最好的那個在論文上重點著墨。
四、總結
(1)模糊Borda優點
模糊Barda法可以綜合多種評價方法的不同結果,該方法既考慮不同方法下排序名次的差異,又考慮相應評價方法下各項目的得分值,能更好地利用已有的評價信息,從而使得評價結果具有較高的合理性和優越性。
(2)模糊Borda缺點
模糊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);總結
以上是生活随笔為你收集整理的[刨根问底] 五分钟搞懂组合评价模型—模糊Borda (以2021 年大学生数模国赛C题为例)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android存到手机内存,androi
- 下一篇: MATLAB教程(1) MATLAB 基