EDA365电子论坛网

标题: 层次分析法(AHP)—matlab实现 [打印本页]

作者: Colbie    时间: 2020-5-7 09:41
标题: 层次分析法(AHP)—matlab实现
2 ~7 m7 X& P& ^1 h6 T9 m( X' V

4 ~9 e6 B, ?+ \6 q层次分析法(AHP)—matlab实现
) L! M; w& p1 d& N7 A2 k
- P1 \9 F" r* Z( t3 C
    层次分析法是一种主观的决策方法,可以用来确定一些指标权重,辅助决策依据的一种定性分析方法,层次分析法运用前需要构造层次模型:决策层,中间层(指标层),底层(选择层);形成等级层次;然后构造两两对比矩阵,通过9分位数来进行构造;对对比矩阵进行求最大特征值和特征向量,进行一致性检验;最后得到权重向量。具体实现过程如下Matlab程序:! m" n6 H, A7 A$ |  q3 Z- b# F" S3 O) m
clc;7 d. @. S: O) i, S1 g
clear;! [" G/ F" N8 F$ s0 \: H
>> A=[1 1 1 4 1 1/2;6 e+ O  S; @2 b6 c8 r' b
1 1 2 4 1 1/2;
8 ^% R. ^3 ?- E* T# t2 B, q2 Z# ?' F1 1/2 1 5 3 1/2;7 _" D1 Q* W: e4 P1 \9 H
1/4 1/4 1/5 1 1/3 1/3;
) w# k6 d9 m4 ]1 1 1/3 3 1 1/3;
: u% C2 Q4 P0 g2 `# m' |/ ~2 2 2 3 3 1]
! f2 q- ^' w/ w. ^( f9 K                           
# W- o% L% [. P8 `7 o( _) ]                                   %因素对比矩阵A,只需要改变矩阵A
; `& V- J0 _8 ?9 F" f$ \2 o3 Q( a[m,n]=size(A);                     %获取指标个数
0 U9 y8 m" z& x. B; `& X9 XRI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];
# K2 G, F- _* Q3 S* z/ GR=rank(A);                         %求判断矩阵的秩
# s. j! A2 c  |2 H8 a/ y7 |4 S[V,D]=eig(A);                      %求判断矩阵的特征值和特征向量,V特征值,D特征向量;( g, B8 r+ Z+ f( p2 j. {9 p
tz=max(D);) a# X& o! H& V: U; Y3 G
B=max(tz);                         %最大特征值& ]# g* a" j' w
[row, col]=find(D==B);             %最大特征值所在位置
+ ?, v+ D1 A0 E7 }* RC=V(:,col);                        %对应特征向量2 p( p+ f7 P% R# H+ Q
CI=(B-n)/(n-1);                    %计算一致性检验指标CI
  P0 q, z- ~) ?+ nCR=CI/RI(1,n);   # b+ N* c! c4 D  r9 ~4 O
if CR<0.104 ~( w/ O) _) z7 S) r! o
    disp('CI=');disp(CI);- F( P+ j* u8 h
    disp('CR=');disp(CR);4 P' G0 B. W% m. [- [
    disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');
* G3 q" k# u, q" P5 [( n1 ^    Q=zeros(n,1);
. o4 V9 [; Y  |! @4 Q2 [    for i=1:n6 r* A4 h/ _6 i# i+ w% g. o
        Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化4 w+ Y' r8 ~3 I$ G
    end# v8 ~" X' u. v( N& |* r7 F( g
    Q                              %输出权重向量3 k0 L8 ^& J; I
else4 ^/ W- B: V$ o& Y
    disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');
* H; f2 n4 X; L  a" w  ^, ^: Fend
7 g8 F$ A9 K, @( F# Z' [
作者: IRESSEMT    时间: 2020-5-7 15:21
层次分析法(AHP)很多地方都能用到。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2