数学建模社区-数学中国

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

作者: 杨利霞    时间: 2018-10-30 09:08
标题: 【数模】层次分析法
层次分析法9 d; C$ j& @* Y( z2 l. M/ }
1.建立模型
/ S- t7 L& r6 q( n. x5 ?7 O) P: p8 s. L" j

目标:想要达到的目的

准则:影响目的的因素

可供选择物:备选方案

2.计算第二层 因素权重

    (1)构造判断矩阵


, w1 F0 l/ d3 C* o2 r. m; z6 X2 _
根据以上准则对因素进行两两比较,得出正互反矩阵,即判断矩阵
5 n: l: \3 J( f9 K) p2 M2 f+ Z8 c* f# ]$ ~3 N' m# u: z# k, a
    (2)计算因素权重
0 M1 d/ Q( E( t1 o4 H' m' M* E
2 P# `0 B: ^+ e" j( E9 }
: v0 c( w' q( E, Y% @9 N
$ d) C# t3 y4 K            此处A即判断矩阵,W即为因素的权重,将其归一化即可。
9 ]& o: E6 q. u+ r3 L3 ]) y
( m  J: U$ G7 A9 `; Y! X    (3)判断计算的权重是否可用9 K6 ~7 s( @2 o4 @" c
$ A+ O& G& {3 D1 q5 S, [/ X
        即一致性检验
  {, {7 d8 W$ R
0 L/ E( N6 l; E1 v7 u        CI需自己计算 RI需要查询
  U. Y0 m& j7 `# X
4 ^: T' d8 i$ [% Q7 P        当 CR<0.1 时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修正。   o' v9 V4 Z1 O

) p( N% I/ N/ X  t
, D; L3 d& P. ~' E0 c% q
, F# `  `' ^- L$ w' i7 i3 W3.计算第三层 方案的权重( n( m8 x. ?$ k4 B* B3 l

$ @4 Y7 s) r) n9 x8 r因为方案的权重在不同因素下结果不同,所以n个因素需要n个判断矩阵。; g3 M+ k; F; p: e0 Y+ o3 L

# C& S) G5 N; z* m计算方法和第二层计算方法相同
$ N( j1 S; y9 g  {0 q, u
/ K$ T- T3 d9 W3 A) Q5 J最后会算出来n个W向量5 p6 N' x( }- ^/ t  @7 B7 u

+ M) k. _( y  J) k7 n2 J4 {将这n个W向量相加,再归一化即可获得最后的结果。$ S* d0 k( Y6 r0 c6 I, l
) \6 @* L* y! e) _* |
附代码* |" W, C1 `) J+ G% j
function Q=AHP(A)
  ?$ B6 M  Y8 p1 ~[m,n]=size(A);# t; |# A5 e0 X! Z
RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];
2 b6 O8 B* @- T' `9 l8 @R=rank(A);                         %求判断矩阵的秩
( a' ?! v7 Z8 Q[V,D]=eig(A);                      %求判断矩阵的特征值和特征向量,V特征向量,D特征值(对角阵);
8 A( @, R$ [, G" N# Ttz=max(D);' L3 k& G+ G5 l* V3 M$ [& N* ?
B=max(tz);                         %最大特征值
, ^' V# {5 H$ ?0 I5 Z[row, col]=find(D==B);             %最大特征值所在位置
0 Q& w4 ~) ~/ ^- Y3 jC=V(:,col);                        %对应特征向量- m# M- I2 Q% s8 i( u0 [0 r" b: K
CI=(B-n)/(n-1);                    %计算一致性检验指标CI* V; m: Z7 s3 m5 e4 u! l4 s) I5 E
CR=CI/RI(1,n);   
, z) `# e9 B" Z  Hif CR<0.10) O, ?% s! A$ [! E+ D# c% K
    disp('CI=');disp(CI);% d1 L3 `/ F- ]6 x: E  `
    disp('CR=');disp(CR);
6 M8 g4 v% g5 u" R  e2 X$ I    disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');2 G. S9 ]6 N4 p+ e
    Q=zeros(n,1);
: v  s$ w( d4 B" P    for i=1:n3 x: X; l( b( i
        Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化
5 I! I4 x5 I4 g* N    end/ n" M% |. t$ q% i2 \! t
else
, A. U. @( ]8 T% G2 r5 Q    disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');
9 H  G  F+ ^' `
5 K# m5 d4 V- M, V
6 F# Y7 `. @- V0 s6 e% C
$ A! J- k. w9 O5 D  |* k) ]: N, x; `





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