数学建模社区-数学中国

标题: 【数模】层次分析法 [打印本页]

作者: 杨利霞    时间: 2018-10-30 09:08
标题: 【数模】层次分析法
层次分析法
$ b$ E+ L) Y$ A; H  N, t1.建立模型
+ J  z* _/ Q% J% A7 d
+ u% d5 ^' Y! c* T" ~

目标:想要达到的目的

准则:影响目的的因素

可供选择物:备选方案

2.计算第二层 因素权重

    (1)构造判断矩阵


' x2 ]4 {: b8 M. e& Y1 D  K& Z
5 I( o5 S$ h3 E" | 根据以上准则对因素进行两两比较,得出正互反矩阵,即判断矩阵3 j- P- ?. \  T0 m# ?$ a% B

. a/ l8 i6 T# B% W    (2)计算因素权重
' M; m6 u/ Y: y% X' c5 [$ H! m& N
0 S4 a8 z3 Z* a+ y0 h- @
% j$ c; F# m3 q
9 I7 A2 D' x" P* Q            此处A即判断矩阵,W即为因素的权重,将其归一化即可。
" F5 |# p( {+ Z' B. x, S) r' k6 }) [2 c( @5 a/ b: b7 P
    (3)判断计算的权重是否可用
& W) s/ r' b: T. H, Y
5 }! C9 j6 B. U4 E) F0 ~' s        即一致性检验$ E( Y1 k; V5 ]

. e2 Y; I" f5 |( r1 m$ y- t9 I) k! O6 T        CI需自己计算 RI需要查询
3 f$ |8 H( l) [1 B+ }' ^# f7 w. J6 }* V" p5 j
        当 CR<0.1 时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修正。 0 o4 l2 x- u; ?: h. F* K0 p

- e) [$ P$ z# A" L2 u! {  [1 N
- q: x5 R6 i4 e2 g2 b
6 A6 N* v9 D, A9 o* S0 r' [5 s3.计算第三层 方案的权重* Q( p4 t1 q% j4 M) T

9 q3 x& j+ j  K- r% U7 \因为方案的权重在不同因素下结果不同,所以n个因素需要n个判断矩阵。
4 U& w$ k& O' [7 E! c4 ~: `1 n6 k9 @) F3 b
计算方法和第二层计算方法相同$ O( X3 C* d# j6 h- Z9 I

+ _* L) A8 f  c$ d/ u6 [5 g+ B最后会算出来n个W向量
, U4 b' {: U- d" o% u0 {' I" B! g% ]/ s2 F* t0 W1 v
将这n个W向量相加,再归一化即可获得最后的结果。# s% S; z9 W& Q8 L9 _% x' `$ Y# i

0 G/ p& D8 [! K* p) s- K1 O附代码
) V" h/ a8 \* B$ x" Y- d% gfunction Q=AHP(A)6 N: k% a0 {; _: e, e: u- J4 ]. s
[m,n]=size(A);
' U' B. H7 m) d( A8 |6 g' MRI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];; a* v; ~: ?: l! x8 F+ [
R=rank(A);                         %求判断矩阵的秩
- i$ ?5 r0 z8 s& f, b0 ?5 c8 ?[V,D]=eig(A);                      %求判断矩阵的特征值和特征向量,V特征向量,D特征值(对角阵);1 h( I; @$ L& y" h& w
tz=max(D);0 y/ Q7 @* N9 y/ ~
B=max(tz);                         %最大特征值
$ L( D$ ]) A- N/ c- E4 @[row, col]=find(D==B);             %最大特征值所在位置
/ g6 I$ F0 R! F/ w' xC=V(:,col);                        %对应特征向量
! M0 o! X" x2 J; oCI=(B-n)/(n-1);                    %计算一致性检验指标CI
2 ~6 ^( |3 D! @' e" l* u5 |CR=CI/RI(1,n);   8 `! y2 V3 ~+ L6 d- \/ K
if CR<0.10
$ V/ M$ y/ [2 J- H, e, o    disp('CI=');disp(CI);) T+ e& M9 X7 m
    disp('CR=');disp(CR);; a- A" h3 v, h& W6 U
    disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');/ p3 U: X. K. S# ]
    Q=zeros(n,1);* b/ x, J2 e( |: d: {. u" s
    for i=1:n6 R' _2 ~1 e, c" o$ i
        Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化( K0 Z4 ^1 L$ q* w
    end
% k9 N6 d, l2 qelse+ A; n1 s( s- X) ~8 _7 d% g
    disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');" M- h; ]: o6 e0 N& K7 t4 J
/ g2 I1 e& w9 d+ n0 u

2 W/ R* o3 t% ^
# v6 F) h- L4 @2 o( r. }: D# }' {0 A# J5 w: k





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5