层次分析法的matlab的实现
来源:互联网 发布:海量数据和数据港 编辑:程序博客网 时间:2024/06/02 23:46
层次分析法的matlab的实现:
【实例】市政部门管理人员需要对修建一项市政工程项目进行决策,可选择的方案是修建通往旅游区的高速路(简称建高速路)或修建城区地铁(简称建地铁)。除了考虑经济效益外,还要考虑社会效益、环境效益等因素。
递阶层次结构及判断矩阵分别见下:
表2
A
B1
B2
B3
B1
C1
C2
B2
C3
C4
B3
C5
C6
B1
1
1/3
1/3
C1
1
1
C3
1
3
C5
1
3
B2
1
1
C2
1
C4
1
C6
1
B3
1
C1
D1
D2
C2
D1
D2
C3
D1
D2
C4
D1
D2
D1
1
5
D1
1
3
D1
1
1/5
D1
1
7
D2
1
D2
1
D2
1
D2
1
C5
D1
D2
C6
D1
D2
D1
1
1/5
D1
1
1/3
D2
1
D2
1
clc
a=[1,1/3,1/3
3,1,1
3,1,1];
[x,y]=eig(a);eigenvalue=diag(y);lamda=max(eigenvalue); %x为特征向量,y为特征值,lamda为最大特征值,lamda=max(eigenvalue)亦可为lamda=eigenvalue(2),第二个特征值恰为最大特征值
ci1=(lamda-3)/2;cr1=ci1/0.52
w1=x(:,2)/sum(x(:,2))
b1=[1,1;1,1];
[x,y]=eig(b1);eigenvalue=diag(y);lamda=max(eigenvalue);
ci21=(lamda-2)/1;cr21=ci21/0
w21=x(:,2)/sum(x(:,2))
b2=[1
[x,y]=eig(b2);eigenvalue=diag(y);lamda=max(eigenvalue);
ci22=(lamda-2)/1;cr22=ci22/0
w22=x(:,1)/sum(x(:,1))
b3=[1
[x,y]=eig(b3);eigenvalue=diag(y);lamda=max(eigenvalue);
ci23=(lamda-2)/1;cr23=ci23/0
w23=x(:,1)/sum(x(:,1))
c1=[1
[x,y]=eig(c1);eigenvalue=diag(y);lamda=max(eigenvalue);
ci31=(lamda-2)/1;cr31=ci31/0
w31=x(:,1)/sum(x(:,1))
[x,y]=eig(c2);eigenvalue=diag(y);lamda=max(eigenvalue);
ci32=(lamda-2)/1;cr32=ci32/0
w32=x(:,1)/sum(x(:,1))
c3=[1
[x,y]=eig(c3);eigenvalue=diag(y);lamda=max(eigenvalue);
ci33=(lamda-2)/1;cr33=ci33/0
w33=x(:,1)/sum(x(:,1))
c4=[1
[x,y]=eig(c4);eigenvalue=diag(y);lamda=max(eigenvalue);
ci34=(lamda-2)/1;cr34=ci34/0
w34=x(:,1)/sum(x(:,1))
c5=[1
[x,y]=eig(c5);eigenvalue=diag(y);lamda=max(eigenvalue);
ci35=(lamda-2)/1;cr35=ci35/0
w35=x(:,1)/sum(x(:,1))
c6=[1
[x,y]=eig(c6);eigenvalue=diag(y);lamda=max(eigenvalue);
ci36=(lamda-2)/1;cr36=ci36/0
w36=x(:,1)/sum(x(:,1)
w_sum1=[w21*w1(1,1)
w22*w1(2,1)
w23*w1(3,1)]