数模1:层析分析法(Analytic Hiearchy Process)

目录

1.简介

2.模型

(1)本质

(2)步骤

STEP1:判断矩阵

STEP2:一致性检验

STEP3:求解权重

3.代码


1.简介

解决评价类问题,该方法叫为主观


2.模型

(1)本质

 求解问题:

        目标:问题实现的目标(如:19MCM的教育体系)

        指标:衡量角度(如:经济,政治等)

        方案:实现的方案(如:不同国家的教育体系)

总体模型如下图所示:

画出总的层次模型图,在按照下图求解各方案的得分。

其中相同颜色区域和为1,最后求解出各个方案的得分,选出最佳方案。

(2)步骤

STEP1:判断矩阵

为了避免过于主观,采取两两对比,分别对指标和每项指标下方案进行对比:

判断矩阵中的元素只能是1至9和它们的倒数

正互反矩阵

        对角元素为1,

        a_{ij} > 0,a_{ij} \times a_{ji} =1

STEP2:一致性检验

根据比较关系的递推性,判断矩yin阵应该满足以下关系:

a_{ij}=a_{ik} \times a_{kj}

满足上述关系的矩阵我们称之为一致性矩阵:

一致性矩阵的充要条件

  1. a_{ij} >0
  2. 对角线元素为1
  3. [a_{i1},a_{i2},...,a_{jn}]=k_i [a_{11},a_{12},...,a_{1n}],即各行成比例

矩阵性质

  1. r(A)=1
  2. 特征值为n,其他为0
  3. 特征值为n时,特征向量为k[\frac{1}{a_{11}},\frac{1}{a_{12}},...,\frac{1}{a_{1n}}]^T,(k \ne0)

引理:

        n阶正互反矩阵A为一致性矩阵,当且仅当特征值\lambda_{max}=n

        n阶正互反矩阵A不为一致性矩阵,\lambda_{max}>n

  •  计算一致性指标CI

 CI=\frac{\lambda_{\rm max}-n}{n-1}

  • 查找对应平均随机一致性指标RI
n123456789101112131415
RI000.520.891.121.261.361.411.461.491.521.541.561.581.59

注:在实际运用中,n很少超过10,如果指标的个数大于10,则可考虑建立 二级指标体系,或使用我们以后要学习的模糊综合评价模型。

  • 计算一致性比例CR

 CR=\frac{CI}{RI}

注:特征值中有虚数,则比较的是特征值的模。

CR<0.1则判断矩阵一致,反之亦然。

注:二阶正互反矩阵一定是 一致矩阵

STEP3:求解权重

首先是求解每个判断矩阵的权重(n个指标,m个方案,共1+n个判断矩阵):

  1. 算术平均法: \omega_i=\frac{1}{n}\sum_{j=1}^{n}{\frac{a_{ij}}{\sum_{k=1}^{n}{a_{kj}}}}
  2. 几何平均法: \omega_{i}=\frac{(\prod_{j=1}^{n}a_{ij})^{\frac{1}{n}}}{\sum_{k=1}^{n}(\prod_{j=1}^{n}a_{kj})^{\frac{1}{n}}},(i=1,2,\cdots,n)
  3. 特征值法:   归一化特征向量--------- k[\frac{1}{a_{11}},\frac{1}{a_{12}},...,\frac{1}{a_{1n}}]^T,(k \ne0)

最后算出每个方案的总的得分,选取方案。 


3.代码

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
INPUT: Judegement Matrix
OUTPUT:Weight Vector,Consistency
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear;clc
%% INPUT Matrix
disp('INPUT Matrix A: ');
% A = input('Matrix A=');
A =[1 1 4 1/3 3;
 1 1 4 1/3 3;
 1/4 1/4 1 1/3 1/2;
 3 3 3 1 3;
 1/3 1/3 2 1/3 1];


%% Judege Consistency of CR
[V,D] = eig(A);    %V--eigenvector, D--diagnal matrix consist of eignvalue
Max_eig = max(max(D));    %maximal eigenvalue
CI = (Max_eig - 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];    %n<=15
CR=CI/RI(n);
disp('CI=');disp(CI);
disp('CR=');disp(CR);
if CR<0.10
    disp('CR < 0.10,consistency of A is agreed!');
else
    disp('CR >= 0.10,consistency of A is rejected!!!');
end

%% Compute weight vector
%%Method1:Arithmetic average method
A_Sum = sum(A)
[n,n] = size(A)
A_Sum = repmat(A_Sum,n,1)   %repeat matrix的缩写
A_Standard = A ./ A_Sum;

weight1 = sum(A_Standard,2)/n;
%disp('Weight Vector:');
%disp(weight1);


%%Method2:Geometric mean method
Prduct_A = prod(A,2);
Prduct_n_A = Prduct_A .^ (1/n);
weight2 = Prduct_n_A ./ sum(Prduct_n_A);
%disp('Weight Vector:');
%disp(weight2);

%%Method3:Eigenvalue method
D == Max_eig;
[r,c] = find(D == Max_eig , 1)
weight3 = V(:,c) ./ sum(V(:,c))
%disp('Weight Vector:');
%disp(weight3);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值