TOPSIS法——Matlab实操

TOPSIS是一种解决多属性决策问题的评价方法,亦称优劣解距离法。这种方法通过构造评价问题的正理想解和负理想解,即各指标的最优解和最劣解。通过计算每个方案到理想方案(即靠近正理想解和远离负理想解)的相对贴近程度来对备选方案进行排序,从而选出最优方案。

对一个被评价的系统 f(x1, x2, …, xn)而言,假设理想解为(x1*, x2*, …, xn*)。定义第i种备选方案与理想解之间的距离如下:

Di=g(Xi, X*)

这里所指的距离通常是指欧式距离。需要指出的是:正理想解是一个并不存在的虚拟的最佳方案,它的每个属性值都是决策矩阵中该属性的最优值;负理想解是虚拟的最差方案,它的每个属性值都是决策矩阵中该属性的最差值。

题目:评价下表中20条河流的水质情况

含氧量越高越好;PH值越接近7越好;细菌总数越少越好;植物性营养物量介于10-20之间最佳,超过20或低于10均不好

TOPSIS法——Matlab实操_第1张图片

step1:数据规范化处理 :

①是否需要正向化:原始矩阵正向化,即将所有指标类型统一转化为极大型指标。

*️⃣极大型指标:越大越好

*️⃣极小型指标:越小越好【转换公式:max-x或数据都为正数时1/x】

*️⃣中间型指标:越接近某个值越好

f4f460b96ada4f0bb986264e32b2e5cc.png

*️⃣区间型指标:落在某个区间最好

TOPSIS法——Matlab实操_第2张图片

②(正向化)矩阵标准化处理:消除不同指标量纲的影响。

设正向化矩阵A=(aij)m×n,标准化决策矩阵为B=(bij)m×n。

 

TOPSIS法——Matlab实操_第3张图片(所在列元素的平方和)

把数据导入Matlab后正向化、标准化:

TOPSIS法——Matlab实操_第4张图片

TOPSIS法——Matlab实操_第5张图片 

TOPSIS法——Matlab实操_第6张图片 

 注意正向化时,若需要调用转换公式的函数,

①文件必须和主函数放在同一个文件夹下

文件名必须为函数名!否则matlab会报错

step2:构成加权矩阵 决策人给定各属性的权重w=(w1, w2, …, wn),加权矩阵计算如下:

xij=wj×bij

此步骤必要时使用。由于有m个评价指标,我们可以使用层次分析法或熵权法给评价指标确定权重。层次分析法主观性较强,熵权法可以客观赋权。

step3:计算最大值、最小值及与最大值的距离和最小值的距离,并打分。

TOPSIS法——Matlab实操_第7张图片

 TOPSIS法——Matlab实操_第8张图片

 

step4:计算第i种备选方案的综合评价指数,并从大到小进行排序:

5776adbe574a44ada4b2e21a1274323a.jpeg

 对打分进行排序:

TOPSIS法——Matlab实操_第9张图片

 对河流进行排名:

TOPSIS法——Matlab实操_第10张图片

 题目及代码来源:清风建模

参考资料:《数学建模》邬学军

本文为自用整理,方便复习。

 

 

你可能感兴趣的:(matlab)