(i)最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结 果,因此也称为目标层。
(ii)中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干 个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。
(iii)最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等, 因此也称为措施层或方案层。
(每一层次中各元素所支配的元素一般不要超过 9 个)
以 aij 表示 xi 和 xj 对Z 的影响大小之比,全部比较 结果用矩阵A=(aij)n*n表示,称 A为Z-X 之间的成对比较判断矩阵(简称判断矩 阵)
定义:正互反矩阵:aij>0;aij=1/aji;
判断矩阵 A对应于最大特征值 λmax的特征向量W ,经归一化后即为同一层次相 应因素对于上一层次某因素相对重要性的排序权值,这一过程称为层次单排序。
定义 **一致矩阵** :满足关系式 aij*ajk=aik 的正互反矩阵称为一致矩阵。
A为一致矩阵时才能接受A。
定理2: 若 A为一致矩阵,则 A的最大特征值为 n,其中n为矩阵 A的阶。对应的特征向量W=(w1,w2,…,wn)’ ,则aij=wi/wj,A的其余特征根均为零。
定理3: n阶正互反矩阵 A为一致矩阵当且仅当其最大特征根为 n,非一致时,最大特征根大于n。
判断矩阵的一致性检验的步骤
CI=( λmax-n)/(n-1); CR=CI/RI; CR<0.1时,可以接受。
(RI=[0 0 0.58 0.9 1.12 1.24 1.32 1.41 1.45])
A层:m个元素,层次总排序权重:a1,a2,…,an
B层:n个元素,关于Aj层次单排序总权重分别为b1j,…,bnj
B层各因素的层次总排序权重:bi=(1-n求和)bij*aj
CR=(求和)CI(j)*aj/(求和)RI(j)a(j);
fid=fopen(‘txt3.txt’,‘r’);
n1=6;n2=3;
a=[];
for i=1:n1
tmp=str2num(fgetl(fid));
a=[a;tmp]; %读准则层判断矩阵
end
for i=1:n1
str1=char([‘b’,int2str(i),’=[];’]);
str2=char([‘b’,int2str(i),’=[b’,int2str(i),’;tmp];’]);
eval(str1);
for j=1:n2
tmp=str2num(fgetl(fid));
eval(str2); %读方案层的判断矩阵
end
end
ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; %一致性指标
[x,y]=eig(a);
lamda=max(diag(y));
num=find(diag(y)==lamda);
w0=x(:,num)/sum(x(:,num));
cr0=(lamda-n1)/(n1-1)/ri(n1)
for i=1:n1
[x,y]=eig(eval(char([‘b’,int2str(i)])));
lamda=max(diag(y));
num=find(diag(y)==lamda);
w1(:,i)=x(:,num)/sum(x(:,num));
cr1(i)=(lamda-n2)/(n2-1)/ri(n2);
end
cr1, ts=w1w0, cr=cr1w0
函数注释
fopen“fopen”打开文件,赋予文件代号。FID=FOPEN(filename,permission)用指定的方式打开文件FID=+N(N是正整数):表示文件打开成功,文件代号是N.FID=-1 : 表示文件打开不成功。(FID在此次文件关闭前总是有效的。)“permission”是打开方式参数。打开方式: r 读出
eval eval函数的功能是将字符串转换为matlab可执行语句。
如a=’b=1’; eval(a) , 执行eval(a)相当于执行a的内容,相当于执行b=1
eig [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。
已知判断矩阵A, λmax及其对应的特征向量w,令aij*=wi/wj;dij=|aij-aij*|,对dij最大的aij进行修改,即aij=aij*,aji=aji*。