数学建模社区-数学中国

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

作者: 杨利霞    时间: 2018-10-30 09:08
标题: 【数模】层次分析法
层次分析法2 Y$ P- G/ }0 B1 L6 [& t
1.建立模型
& X# r6 z$ \- k& A3 S7 Q$ ^9 `: m8 r- v1 N; d1 _; v

目标:想要达到的目的

准则:影响目的的因素

可供选择物:备选方案

2.计算第二层 因素权重

    (1)构造判断矩阵

" L/ y% J1 E% ]+ p  J
6 u7 W+ c. Q/ @0 x. i) t
根据以上准则对因素进行两两比较,得出正互反矩阵,即判断矩阵1 y: r; b+ N5 u5 s/ G0 L- \5 }
0 e. t# B$ B+ n8 M9 P3 F+ }3 o
    (2)计算因素权重' ]* S. @% h8 M( n

9 k8 r' n; C3 k$ b/ V8 n6 R: [9 v: B/ w- d
, c( H% k+ T; _% e$ c; k0 M
            此处A即判断矩阵,W即为因素的权重,将其归一化即可。
0 d3 Y5 N) [5 Y% Q' J+ d
1 l! h7 Y& _- H0 K% ?* j. i    (3)判断计算的权重是否可用) A  {  i" h) S- G1 k# P2 y
. x* l7 n2 ]4 p. ~
        即一致性检验4 p" }) }9 j8 S: j( j
+ k$ `. R) x7 \; [# Y
        CI需自己计算 RI需要查询
) y5 z( P+ H6 C) ?- ^3 c* X! M6 i) ]+ x1 _4 y1 w' ^
        当 CR<0.1 时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修正。
$ Y0 ]9 X5 q" x+ M+ F
. o2 \1 T+ |' L$ `; E  p. f$ a1 k  I' `: c- h  E
* K; {  X, e3 O1 P% e
3.计算第三层 方案的权重/ H' x( m% n5 B& U4 O

& y1 K3 [* Q$ l1 g" {4 H; G" E因为方案的权重在不同因素下结果不同,所以n个因素需要n个判断矩阵。
2 v4 [7 L" U( Z2 N6 b: q% [8 C& E, e* V8 ?. b& J
计算方法和第二层计算方法相同; }3 W, m- k! W! M- a4 S6 L2 V
( N2 C+ k. D3 Z2 s& d8 J0 y
最后会算出来n个W向量& u% Q, I/ s: H3 Q4 v6 V& h
9 m  E) L9 b- M2 n6 c
将这n个W向量相加,再归一化即可获得最后的结果。& o+ N( {! h$ K, Z( I7 ?: K0 v# j
0 h/ j' {7 b7 Z: c/ I$ {
附代码
4 j# W8 h' V2 F+ ~5 m( P1 C+ kfunction Q=AHP(A)
2 Z4 ~1 d* \! O! {! ~[m,n]=size(A);
- ^" r6 W5 _( V( y+ ?0 iRI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];" G+ f1 ]" r) T- ]- x  |
R=rank(A);                         %求判断矩阵的秩" Q5 m3 Y3 J8 y! S+ w* K
[V,D]=eig(A);                      %求判断矩阵的特征值和特征向量,V特征向量,D特征值(对角阵);& R+ n& Z' Y+ R4 B/ a" N+ k! R
tz=max(D);
- y4 @9 Y$ H' ~B=max(tz);                         %最大特征值
6 |$ a* j) |- c[row, col]=find(D==B);             %最大特征值所在位置* Z9 p# ^+ r) B+ a: M
C=V(:,col);                        %对应特征向量
/ k2 ]$ |! s* X; FCI=(B-n)/(n-1);                    %计算一致性检验指标CI" C: s8 a. Z" @* |+ l/ q, y# V
CR=CI/RI(1,n);   - p+ n# _+ o5 `0 G! g$ n. e* z
if CR<0.10
0 M! c8 }1 m) S- E    disp('CI=');disp(CI);
. t3 f8 p& h* h, N, D3 I, X    disp('CR=');disp(CR);9 `) \3 M  E. E
    disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');
, }% }. i; U% c0 ^    Q=zeros(n,1);
& h6 @( d. l1 l. U# S    for i=1:n
: f, @9 v+ ^. c5 D        Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化
" s: \. r( b& h5 w& k    end, x& _$ y4 ?/ [
else
- C* T% m$ B0 W* T8 }) t1 `2 p7 E    disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');
0 L. k" o/ T& `: j8 L4 ?
6 ^3 M6 M4 ~- `! s3 I* \+ {' `
3 P5 ~* v/ {. F& w; v) z4 \
' W/ [7 _$ c0 N( D. t( |; A4 d9 F: |
  f$ V# k% s) L. ^4 u* b




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