+ M& {3 O# s' {7 D3 b9 V最后,应该指出,一般地作 次两两判断是必要的。有人认为把所有元素都和某个元素比较,即只作 1 −n 次比较就可以了。这种作法的弊病在于,任何一个判 断的失误均可导致不合理的排序,而个别判断的失误对于难以定量的系统往往是难以避免的。进行 次比较可以提供更多的信息,通过各种不同角度的反复比较,从而导出一个合理的排序。 / e3 u+ _" l; ? \) T( i- [ ! U/ C. C. O3 a4 N. H/ t: `, X层次单排序及一致性检验 ) x s' T: l1 I& k; f% W
& ]% S' Q3 K' ^0 {: Q: c6 s 4 }+ d" _3 z8 _. ` 0 j V$ M* _9 @$ ~2 [- m * \4 w' t4 p A: v; b$ ` 8 R/ h3 N) o# \* w1 K) v4 a; n- q! r+ E' n: O. }- u1 @+ Y& s& K q3 U r+ \# R2 _
: G6 X4 b2 b1 {7 \& |9 L2 {9 e
# B4 H( B$ ^* d1 V层次总排序及一致性检验 0 K+ h1 I% k% t7 E; E3 U上面我们得到的是一组元素对其上一层中某元素的权重向量。我们最终要得到各 元素,特别是最低层中各方案对于目标的排序权重,从而进行方案选择。总排序权重 要自上而下地将单准则下的权重进行合成。 : a& c+ m7 `. q8 z5 W. ?3 z* M7 A% j2 p 4 h N/ m. H9 P# _ 0 c8 b4 I4 f6 m" i8 t2 u+ U . p, g$ y8 a u; Q! O- y8 c3 Q7 U. N. \& N
6 q N$ T3 ~# L O" C
层次分析法的应用 , b! i" U# ?" A; h在应用层次分析法研究问题时,遇到的主要困难有两个:$ E) q) m( X/ O0 H
4 u+ _% o8 G( H0 u/ c
(i)如何根据实际情况抽象出较为贴切的层次结构;1 }0 V; a; U% W5 G3 k; a/ G, C
% v' {9 C8 ^; z, D/ x `' x(ii)如何将某些定性的量作比较接近实际定量化处理。 层次分析法对人们的思维过程进行了加工整理,提出了一套系统分析问题的方法,为 科学管理和决策提供了较有说服力的依据。但层次分析法也有其局限性,主要表现在:. o6 F( l. T/ D. O# Z+ B) y
* S: L: U7 {2 v; E0 E- _(i)它在很大程度上依赖于人们的经验,主观因素的影响很大,它至多只能排除思维 过程中的严重非一致性,却无法排除决策者个人可能存在的严重片面性。0 K+ R: Q- U) ]9 {0 @ _0 u
' x7 Q) b8 b( W* N3 _# s* y
(ii)比较、 判断过程较为粗糙,不能用于精度要求较高的决策问题。AHP 至多只能算是一种半定量(或定性与定量结合)的方法。 1 o) T; Z9 w. J v( A # s- i% S0 @0 C+ N+ l# S2 g. {在应用层次分析法时,建立层次结构模型是十分关键的一步。现再分析一个实例, 以便说明如何从实际问题中抽象出相应的层次结构。 6 K/ H6 \3 }/ I- Q) ?( D ; t" b/ [" U; E7 K {8 f例 2 挑选合适的工作。经双方恳谈,已有三个单位表示愿意录用某毕业生。该 生根据已有信息建立了一个层次结构模型,如图 2 所示。 9 N$ Y! [ s5 T8 }; k
0 o% H" ?4 E6 p+ X% q, { . U2 w8 c! K# X, ]6 u$ O; i/ f, r2 v: y# x! { - Q: r s. p& M$ }. R* k3 @9 Q; T! |5 V# t S, u8 `6 i& W
计算的 Matlab 程序如下: ) {, D, U: F" ]* S7 _6 l0 l# ~3 ?1 h
clc,clear / y+ K9 T9 W5 t6 n" qfid=fopen('txt3.txt','r'); B, o. k- }5 ~/ s5 z+ Hn1=6;n2=3; ' o) V3 Y0 j+ T& l+ Y3 e" m
a=[]; 4 a) w2 _# K5 T) W' i- f! _) w9 y" x8 ffor i=1:n1 & }3 U. h5 c# D# W: ?4 D8 M tmp=str2num(fgetl(fid)); / x0 @3 V, P9 r- d: g/ ^; S6 K
a=[a;tmp]; %读准则层判断矩阵 ; l5 E$ y1 R2 x1 f2 ?end ( J% S5 G) h F0 a# `
for i=1:n1 2 Q# }2 j+ z* o+ ]- R9 v; ~2 y$ S
str1=char(['b',int2str(i),'=[];']); ; v2 q1 U$ x1 |1 @: H str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']); 4 \. y) L1 `; h- P4 G# b f eval(str1); ; T) z+ \8 ~% d+ c: E3 s$ P4 t for j=1:n2 9 l9 b! u" t: l. |5 K6 _$ I% N R) p
tmp=str2num(fgetl(fid)); ! p; h! M- ]* W( a
eval(str2); %读方案层的判断矩阵 , O* i' _& a; h6 t$ ^ end . h1 c+ y; x3 t' a$ Tend & S4 w: C5 u0 F( l; C: A
ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; %一致性指标 ( r. u7 F8 A5 e. X
[x,y]=eig(a); # V$ b- Y. B. {) e T X; Q% Clamda=max(diag(y)); * c5 B! j# r7 X8 G) jnum=find(diag(y)==lamda); - v! g0 Y9 c* l0 W. f. e x' l3 K
w0=x(:,num)/sum(x(:,num)); 9 t' L' Z" ^8 B) S6 b
cr0=(lamda-n1)/(n1-1)/ri(n1) % J" |7 K* T. @4 {* T& y2 h
for i=1:n1 0 `& H. i. F3 U6 b7 @ [x,y]=eig(eval(char(['b',int2str(i)]))); 0 ^/ D0 m c3 K4 O( G9 o% |
lamda=max(diag(y)); b/ K) n: H6 q: @
num=find(diag(y)==lamda); 2 m4 B9 E h, @9 E
w1(:,i)=x(:,num)/sum(x(:,num)); - n& }5 Z/ q) ?# A
cr1(i)=(lamda-n2)/(n2-1)/ri(n2); 3 l. {. P* g: w$ c3 ^% ], cend ! h$ a* M U( q4 p5 e6 q
cr1, ts=w1*w0, cr=cr1*w0 . q4 K+ B, R+ l! {- c
: P5 ?2 I) u+ f. K% ^ 6 Q g$ a. F, r1 l$ B习 题 1 C$ y% Q, z f 3 s. D5 s9 @. Q9 _* G
( J# B! J" k6 J+ k! b . T5 ] O0 X4 W6 w0 e! d 8 L/ q2 E: \4 l! }2 s! g 1 q5 Y3 F3 ` X. ~————————————————! [4 C/ z- W* y
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 b* \ ~3 B* R/ h- h' e G8 T原文链接:https://blog.csdn.net/qq_29831163/article/details/89452567 : T& a+ l4 N& s$ P$ x0 o& L+ Y$ r8 s. a( w# i7 H( t' P