数学建模各类常用的算法(一)

层次分析法

基本思想

        层次分析法是定性与定量相结合的多准则决策、评价方法。将决策的有关元素分解成 目标层、准则层和方案层 ,并通过人们的 判断对决策方案的 优劣进行排序 ,在此基础上进行定性和定量分析。它把人的思维过程层次化、数量化,并用数学 为分析、决策、评价、预报和控制提供定量的依据。
基本步骤
        构建层次结构模型;构建成对比较矩阵;层次单排序及一致性检验(即判断主观构建的成对比较矩阵在整体上是否
有较好的一致性);层次总排序及一致性检验(检验层次之间的一致性)。
优点
        它完全依靠主观评价做出方案的优劣排序,所需数据量少,决策花费的时间很短。从整体上看,AHP在复杂决策过 程中引入定量分析,并充分利用决策者在两两比较中给出的偏好信息进行分析与决策支持,既有效地吸收了定性分 析的结果,又发挥了定量分析的优势,从而使决策过程具有很强的条理性和科学性,特别适合在社会经济系统的决 策分析中使用。
缺点
        用AHP进行决策主观成分很大。当决策者的判断过多地受其主观偏好影响,而产生某种对客观规律的歪曲时,AHP 的结果显然就靠不住了。
适用范围
        尤其适合于人的定性判断起重要作用的、对决策结果难于直接准确计量的场合。要使AHP的决策结论尽可能符合客 观规律,决策者必须对所面临的问题有比较深入和全面的认识。另外,当遇到因素众多,规模较大的评价问题时, 该模型容易出现问题,它要求评价者对问题的本质、包含的要素及其相互之间的逻辑关系能掌握得十分透彻,否则 评价结果就不可靠和准确。
改进方法
(1)成对比较矩阵可以采用德尔菲法获得。
(2)如果评价指标个数过多(一般超过9个),利用层次分析法所得到的权重就有一定的偏差,继而组合评价模型 的结果就不再可靠。可以根据评价对象的实际情况和特点,利用一定的方法,将各原始指标分层和归类,使得每层 各类中的 指标数少于9个 。

参考案例

%% 层次分析法
clc
clear
A=[1 2;3 4];

[n,n]=size(A);
[v,d]=eig(A);
r=d(1,1);
CI=(r-n)/(n-1);
RI=[0 0 0.58 0.89 1.12 1.24 1.32 1.41 1.45 1.49 1.52 1.54 1.56 1.58 1.59];
CR=CI/RI(n);
if CR<0.10
    CR_Result='通过';
else
    CR_Result='不通过';
end

w=v(:,1)/sum(v(:,1));
w=w';

disp(['一致性指标' num2str(CI)]);
disp(['一致性比例' num2str(CR)]);
disp(['一致性检验结果' CR_Result]);
disp(['特征值' num2str(r)]);
disp(['权向量' num2str(w)]);

代码解读 

这段代码是使用MATLAB编程语言实现层次分析法(AHP)的基本步骤。AHP是一种结构决策的方法,通常用于多准则决策分析。这段代码的主要步骤如下:

  1. 首先,清屏并清除所有变量。
  2. 定义一个2x2的矩阵A,这是待分析的判断矩阵。
  3. 获取矩阵A的大小,n是矩阵的行数和列数。
  4. 对矩阵A计算特征值和特征向量。eig函数在MATLAB中用于计算方阵的特征值和特征向量。
  5. 从矩阵A的特征值中取出第一个元素r,它是矩阵的最大特征值。
  6. 计算一致性指标CI,它是最大特征值r和n的特征值平均值的比值。
  7. 计算一致性比例CR,它是CI和随机一致性指标RI(这个通常需要根据经验或者统计数据来确定)的比值。
  8. 如果CR小于0.10,则一致性检验通过,否则不通过。
  9. 取矩阵A的特征向量的第一个元素,除以其它元素的和,得到权重向量w。
  10. 最后,输出一致性指标CI,一致性比例CR,一致性检验结果CR_Result,最大特征值r,以及权重向量w。

注意,这段代码没有考虑到输入的判断矩阵A是否具有完全一致性(即判断矩阵的一致性是否满足)。在实际使用中,通常还需要对判断矩阵的一致性进行检验。

运行结果 

一致性指标-2.3723
一致性比例-Inf
一致性检验结果通过
特征值-0.37228
权向量3.1861     -2.1861

案例说明 

矩阵A的值根据自己的测试数据进行输入,本程序只是一个参考案例。 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值