LL1分析构造法_数学建模算法--最优赋权法(含代码)

数学建模算法--最优赋权法(含代码)

作者:郑铿城

本次介绍数学建模和科研写作的方法--最优赋权法最优赋权法经常用于分析评价类问题,从该算法的名称就可以看到,该算法首先要体现“最优”,其次,该算法是用于计算各个指标所对应的权重,也就是一个“赋权”的过程。

通过知网搜索“最优赋权法”的相关文章,发现国外的研究多于国内:

ca7c1f5d87fee324283b410ecfd48864.png

国内的最优组合赋权法在2020年还没有发表过相关论文,其他年份也较少,最优赋权法目前在国内文章的数量每年还是为个位数。

7511a83e183ab985daf3ce99286dc85a.png

c266f6a11b7c9e42dc6379208bdf8988.png

最优赋权法可以用在分析评价类的数学建模问题上,它的核心就是层次分析法与熵值法的结合,即考虑了主观分析角度,同时也考虑了客观分析角度。在了解最优赋权法前,首先要了解层次分析法和熵值法:层次分析法,简称AHP,是一种通过专家打分确定各个指标权重的方法,由于主观性较强,一般很少用在数学建模分析中,但是通过在知网上一查,发现到现在为止,AHP还是受学者们的喜爱:

1e67a3813c3f71e2742658279113de8e.png

上图为AHP相关文章的发文量,从上图的走势来看,与AHP有关的文章在近几年增长速度迅猛,但是多数核心期刊上的文章,并非只使用AHP,而是将AHP于其他方法进入融合,比如AHP+模糊综合评价、AHP+SLEPT等等,如果单纯的使用AHP作为研究方法的话,那至少要满足两个条件才可以发核心,即选题要新颖,以及构建的指标层次要复杂。那么如此受人喜欢的AHP到底是如何建模的呢?之前我也推过一篇文章,ANP的建模:层次分析法(AHP)的延伸ANP在PPP项目运用的探索以及学术论文写作的方法研究。AHP建模步骤:第一步是:建立层次结构。首先将决策问题分为三个部分,即:目标层、准则层以及方案层。第二步,构造判断矩阵 判断矩阵为两两指标重要性的判断,一般判别矩阵构造如下。

7b5fb601de2ed9c48b5bc310d5341f6d.png

ba3663be5b218603e3693966651fefc3.png

第三步,检验判断矩阵的相容性并确定指标权重接下来,我们需要对所构造的判断矩阵的合理性进行相容性检验,其不相容度的计算公式为CI,CI的计算公式为:

4b2175fe7e6b63c525bc778bbd8d142f.png

如果计算出来的CI=0,则说明判断矩阵有完全的一致性,整个体系有满意的一致性。Saaty教授又引入平均随机一致性指标RI,具体数据查询下表。

807db2afc415d5f09b6f716a07a9c15c.png

按照计算出来的CI和查询表给定的RI,可以按照公式CR=CI/RI,计算出CR,当CR<0.1时,认为判断矩阵相容性好,反之,需要对判断矩阵进行重新调整。

第四步,权重计算

a0fefd1412ce8ed0a7b0ba4a98038280.png

第五步,计算综合评价得分以上为AHP的建模步骤,该方法同样存在一些不足之处:(1)它只能从现有的方案中选择出较优的一个,并不能提供出一个新的或是更好的方案来。(2)该方法中的比较,判断以及结果都是比较粗的,并不适合精确的计算。(3)建立层次结构及成对比较矩阵,人的主观因素起很大作用,这是一个无法克服的缺点。(但我们可以让多个专家来做出判断,或者以问卷调查方式得出比较阵。)AHP在matlab中执行的代码如下:

clc clearall

A=[]%%在方框内输入矩阵

[n,n]=size(A);

[v,d]=eig(A);

r=d(1,1);

CI=(r-n)/(n-1);

RI=[000.580.901.121.241.321.411.451.491.521.541.561.581.5 9];CR=CI/RI(n);

ifCR<0.10 CR_Result='通过';

else CR_Result='不通过';

end

%%权向量计算 w=v(:,1)/sum(v(:,1)); w=w';

%%结果输出 disp('该判断矩阵权向量计算报告:');

disp(['一致性指标:'num2str(CI)]);

disp(['一致性比例:'num2str(CR)]);

disp(['一致性检验结果:'CR_Result]);

disp(['特征值:'num2str(r)]);

disp(['权向量:'num2str(w)];

以上为AHP建模过程,最优赋权法的第二步是熵值法建模:

01d65e7a5d5d73502f3c80662f02e06c.png

以熵值法的主题的发文量也在明显上升,熵值法更加客观,也更受学者们青睐。

(1)首先对数据进行归一化处理:

f0fbc7080f963cb131056da86f2b97a6.png

9ba65474c963da00cc7f76d1b0e24a5b.png

熵值法在matlab中的代码为:

X = data

[n,m]=size(X); % n个样本, m个指标 %%数据的归一化处理

for i=1:n

for j=1:m

p(i,j)=X(i,j)/sum(X(:,j));

end

end

%%计算第j个指标的熵值e(j)

k=1/log(n);

for j=1:m

e(j)=-k*sum(p(:,j).*log(p(:,j)));

end

d=ones(1,m)-e; %计算信息熵冗余度

w=d./sum(d) %求权值w

p*w'%最终得分

最优赋权法即将AHP方法算出来的权重乘以一定的比例加上熵值法算出来的权重乘以一定的比例,通常是把AHP算出来的权重乘以0.4加上熵值法算出来的权重乘以0.6,得到最优赋权法的权重。

数学建模算法--最优赋权法(含代码)
更多资料学习,可以查阅公众号(LPstyle)历史消息:

交流QQ:1257992189,建模交流群:732625788

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值