TOPSIS算法及代码

TOPSIS的全称是“逼近于理想值的排序方法”

根据多项指标、对多个方案进行比较选择的分析方法,这种方法的中心思想在于首先确定各项指标的正理想值和负理想值,所谓正理想值是一设想的最好值(方案),它的的各个属性值都达到各候选方案中最好的值,而负理想解是另一设想的最坏的值(方案),然后求出各个方案与正理想值和负理想值之间的加权欧氏距离,由此得出各方案与最优方案的接近程度,作为评价方案的优劣标准。

优点:

能充分反映各方案之间的差距,客观真实的反应实际情况,具有真实,直观,可靠的优点,而且对其样本资料无特殊要求。TOPSIS能够集中反映总体情况,能综合分析评价,具有普遍适用性。

应用:

评价卫生质量,计划免疫工作质量,医疗质量;评价专业课程的设置,顾客满意程度,软件项目风险评价,房地产投资选址;评价企业经济效益,城市间宏观经济效益,地区科技竞争力,各地区农村小康社会等等

----------------------------------------------------------------------------------------------------------------------------------

TOPSIS算法步骤

1、用向量规范化的方法求得规范决策矩阵。设多属性决策问题的决策矩阵,规范化决策矩阵,其中

(i=1,2...,m   j=1,2...,n)

2、构成加权规范矩阵,设由决策人给定的各属性的权重向量,,则(i=1,2...,m   j=1,2...,n)

3、确定正理想解(正理想解的第j个属性)和负理想解(负理想解的第j个属性)

则:正理想解( j=1,2...,n)

负理想解( j=1,2...,n)

4、计算各方案到正理想解与负理想解的距离。

到正理想解的距离为(i=1,2...m)

到负理想解的距离为(i=1,2...m)

5、计算各方案的排队指标值(即综合评价指数)

(i=1,2...,m )

6、按由大到小排列方案的优劣次序。

----------------------------------------------------------------------------------------------------------------------------------

MATLAB程序

有‘%’的地方可灵活变换数值

a=[1 2 3;4 5 6;7 8 9];%【】
c=sqrt(sum(a.*a));
for i=1:3%【[ma,na]=size(A);          %ma为A矩阵的行数,na为A矩阵的列数】
for j=1:3%【】
d(i,j)=a(i,j)/c(j)%【d为规范化决策矩阵】
end
end
w=[1 2 3];%【】
for i=1:3%【】
for j=1:3%【】
c(i,j)=d(i,j)*w(j)%【c为加权矩阵】
end
end
cmax=max(c);
cmin=min(c);
for i=1:3%【】
c1=c(i,:)-cmax
s1(i)=norm(c1)
c2=c(i,:)-cmin
s2(i)=norm(c2)
T(i)=s2(i)/(s1(i)+s2(i))
end

 

 

 

你可能感兴趣的:(Mathematical,Modeling,MATLAB2014a)