优劣解距离法(TOPSIS法)(备用)
优劣解距离法(TOPSIS)又称理想解法,是一种有效的多指标评价方法。这种方法通过构造评价问题的正理想解和负理想解,即各指标的最大值和最小值,通过计算每个方案到理想方案的相对贴近度,即靠近正理想解和远离负理想解的程度,来对方案进行排序,从而选出最优方案。
TOPSIS过程比较简单,请参考司守奎第二版14章第一节,但是TOPSIS的代码暂时无法直接运用,因为这种类型的评价方法还要考虑一下,最优解是越大越好还是越小越好。
例 研究生院试评估。
为了客观地评价我国研究生教育的实际情况和各研究生院的教学质量,国务院学位委员会组织过一次研究生院的评估。为了取得经验,先选5所研究生院,收集有关数据资料进行了试评估,表1是所给出的部分数据。
表1 研究生院试评估的部分数据
|
人均专著 /(本/人) |
师生比 |
科研经费 /(万元/人) |
逾期毕业率 /% |
1 |
0.1 |
5 |
5000 |
4.7 |
2 |
0.2 |
6 |
6000 |
5.6 |
3 |
0.4 |
7 |
7000 |
6.7 |
4 |
0.9 |
10 |
10000 |
2.3 |
5 |
1.2 |
2 |
400 |
1.8 |
其MATLAB求解源代码如下:
clc, clear
a=[0.1 5 5000 4.7
0.2 6 6000 5.6
0.4 7 7000 6.7
0.9 10 10000 2.3
1.2 2 400 1.8];
[m,n]=size(a);
x2=@(qujian,lb,ub,x)(1-(qujian(1)-x)./(qujian(1)-lb)).*(x>=lb & x<qujian(1))+(x>=qujian(1) & x<=qujian(2))+(1-(x-qujian(2))./(ub-qujian(2))).*(x>qujian(2) & x<=ub);
qujian=[5,6]; lb=2; ub=12;
a(:,2)=x2(qujian,lb,ub,a(:,2)); %对属性2进行变换,针对这个题目比较特殊,其他题目一般用不到,详细介绍看司老师的书即可。
for j=1:n
b(:,j)=a(:,j)/norm(a(:,j)); %向量规划化
end
w=[0.2 0.3 0.4 0.1];
c=b.*repmat(w,m,1); %求加权矩阵
Cstar=max(c); %求正理想解
Cstar(4)=min(c(:,4)); %属性4为成本型的,越小越好
fprintf('正理想解为:\n');disp(Cstar);
C0=min(c); %q求负理想解
C0(4)=max(c(:,4)); %属性4为成本型的,越小越好
fprintf('负理想解为:\n');disp(C0);
for i=1:m
Sstar(i)=norm(c(i,:)-Cstar); %求到正理想解的距离
S0(i)=norm(c(i,:)-C0); %求到负理想的距离
end
f=S0./(Sstar+S0);
[sf,ind]=sort(f,'descend'); %求排序结果
fprintf('排序指标值:\n');disp(sf);
fprintf('排序结果为:\n');disp(ind);
根据MATLAB源代码运行结果可得:从优到劣的次序为4、3、2、1、5。