层次分析法

层次分析法

简述

层次分析法是一种层次权重决策分析方法,利用较少的定量信息使决策的思维过程数学化。
个人感觉这种判断主观臆断在其中占很大成分,但后续的分析则是客观地由算法给出定量的结果。

层次分析法的三个层次

构造模型的时候,层次供分为三个层次。

1、最高层(目标层)

决策的目的、要解决的问题(对于旅游,这层决定要去哪)

2、中间层(准则层)

考虑的因素、决策的准则(对于旅游,这层可能包括景色、费用、居住环境、饮食、旅途等等)

3、最底层(方案层)

决策时的备选方案(对于旅游,这层就包括所有供选择的目的地)

权重

权重通过成对比较矩阵来给出(其构造一定要言之有理):成对比较矩阵是表示本层所有因素针对上一层某一个因素的相对重要性的比较。成对比较矩阵的元素 aij a i j 用Santy的1~9标度方法给出。

标度含义
1表示两个因素相比,具有同样重要性
3表示两个因素相比,一个因素比另一个因素稍微重要
5表示两个因素相比,一个因素比另一个因素明显重要
7表示两个因素相比,一个因素比另一个因素强烈重要
9表示两个因素相比,一个因素比另一个因素极端重要
2,4,6,8上述两相邻判断的中值

最佳解确定

通过代码得到的最底层对中间层的权重和相应层中间层对最高层的权重相乘,再将同一最底层通过不同中间层对最高层的权重相加,最后比较大小,数值最大的即为最佳选择。

代码(MATLAB)

源代码

disp('请输入判断矩阵A(n阶)');
A = input('A = ');
[n, n] = size(A);
x = ones(n, 100);
y = ones(n, 100);
m = zeros(1, 100);
m(1) = max(x(:, 1));
y(:, 1) = x(:, 1);
x(:, 2) = A * y(:, 1);
m(2) = max(x(:, 2));
y(:, 2) = x(:, 2) / m(2);
p = 0.0001; i = 2; k = abs(m(2) - m(1));
while k > p
    i = i + 1;
    x(:, i) = A * y(:, i - 1);
    m(i) = max(x(:, i));
    y(:, i) = x(:, i) / m(i);
    k = abs(m(i) - m(i - 1));
end
a = sum(y(:, i));
w = y(:, i) / a;
t = m(i);
disp(w);
        %以下是一致性检验
CI = (t - n) / (n - 1);RI = [0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
CR = CI / RI(n);
if CR < 0.10
    disp('此矩阵的一致性可以接受');
    disp('CI = '); disp(CI);
    disp('CR = '); disp(CR);
end

操作要求

直接运行程序,按正确的矩阵规范输入成对比较矩阵即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值