引言
数学建模中有一类非常常见的问题:选择最优方案,被称为评价类问题。例如:携程、美团和飞猪,三个旅游平台哪个更适合新手旅游选择?苏州、杭州、南京哪个更适合端午节出游?班里哪位同学获得奖学金等等。要做出选择,首先需要知道有哪些评价指标,继续以选择旅游地为例,可以通过知网搜索相关文章or组内头脑风暴or利用网络搜索引擎资源,得到大家选择旅游地的考虑标准:风景、人文、拥挤程度等。在每个评价指标维度给方案评分,设定总分为5。“上有天堂,下有苏杭”可以认为苏州杭州的风景很好,于是给他们5分风景分,人文上南京作为六朝古都历史底蕴浓厚给5分。这类评价问题里每个方案的得分数据都是自己根据资料给出的,更适合层次分析法。而是否获得奖学金,可以根据各科成绩来筛选,数据客观存在,就可以使用下文提到的topsis方法。
方法简介
TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution) 可翻译为逼近理想解排序法,国内常简称为优劣解距离法。TOPSIS 法是一种常用的利用原始数据进行综合评价的方法,其基本原理,是通过检测评价对象与最优解、最劣解的距离来进行排序,若评价对象最靠近最优解同时又最远离最劣解,则为最好;否则不为最优。其中最优解的各指标值都达到各评价指标的最优值。最劣解的各指标值都达到各评价指标的最差值。以奖学金为例,假定是否获得奖学金只与语文、数学、英语这三科的成绩相关,你的成绩是80,90,100,而最好的成绩是100,100,100,最差的成绩是50,60,50。则你和最优解的距离为 ;和最劣解的距离为。
操作步骤
step1:指标正向化。
具体在评价时会遇到的指标可以分成四类,①极大型指标,也称为效益型指标,数值越大越好,包括成绩、收入等②极小型指标,也称为成本型指标,数值越小越好,包括开销、死伤人数等③中间型指标,数值有一个中间的最优点,如ph值越接近7越好,血压越接近理想血压(收缩压120 mmHg,舒张压80 mmHg)越好④区间型指标,数值在一个区间内最好。如城市最优人口规模在1000到1200万之间(数字仅用来举例,无实际意义)。
根据不同类型的指标需要按照不同的公式进行正向化处理,即把所有指标转化为极大型。
极小型转化最容易,直接用max-x即可,若变量x为正数,也可直接取倒数。如开销最大是3000,x变量对应的开销为1000,转化后的值应为3000-1000=2000,或者直接取倒数为1/1000。
中间型转化公式为以ph值为例,最优解为7。一组数据有7,8,9三个变量,则,,。所以。取i=2,原始数据为8,转化后位1-(8-7)/2=1/2。
区间型转化较为复杂,若{}为一组中间型指标序列,且最佳的区间为[a,b],那么正向化的公式如下:
以人体体温为例,原始数据为35.2,35.8,36.6,37.1,37.8,38.4。最优区间为36到37,则a=36,b=37,M=max(36-35.2,38.4-37)=1.4,代入上述公式即可得到转换后的数据。
step2:正向化矩阵标准化
假设有n个要评价的对象,m个正向化的评价指标,则可以构建正向化矩阵。为第一个对象在第二个评价指标上正向化之后的得分。
将标准化矩阵记为Z,则其中的每一个元素都等于对应矩阵X中的元素取值除以所在列元素的平方和开根号,即。
step3:计算得分并归一化
n个评价对象,m个评价指标的标准化矩阵如下:
定义最大值为每列元素最大值的集合
定义最小值为每列元素最小值的集合
则第i个评价对象与最大值的距离为j个指标分别与最大值计算距离之后的求和:
同理,第i个评价对象与最小值的距离为j个指标分别与最小值计算距离之后的求和:
那么,第i个评价对象未归一化的得分为,即z与最小值的距离除以z与最大值的距离和z与最小值的距离之和。因为距离都是非负的,很明显取值在0和1之间,越大,越大,即越接近最优解。
归一化之后的得分为,此处应满足。
归一化和标准化本质上都是为了消去量纲的影响,结果归一化之后更容易比较大小。
可视化展示
得到所有方案的得分之后,建议对排序后的分数进行可视化展示,可利用excel绘制柱形图。
按照上图所示,方案5的得分最高,所以应选择方案5。
扩展的topsis方法
上述过程为基本topsis模型,该模型默认所有指标的权重相同,可以利用层次分析法或熵权法确定指标权重,构建带权重的topsis模型。
资料来源:
以上资料来源于b站(up主:数学建模学习交流)https://www.bilibili.com/video/BV1gJ411k7X4from=search&seid=6343799996011307859。
感谢up主的整理,视频讲述很详细,适合新手入门哦~