数模算法--优劣解距离法--tosis法

topsis法

一、引入

二、建模过程

三、模型拓展与总结

四、代码实现


一、引入

      由于层次分析法自身的局限性,在决策因素过多,数据已知情况下不易准确说明。特此引入优劣解距离法(Technique for Order Preference by Similarity to Ideal Solution)。TOPSIS 法是一种常用的 综合评价方法,其能 充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。

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

二、建模过程

1.矩阵正向化

          1.1 含义:矩阵正向化(matrix normalization)是一种处理矩阵的方法,使其满足某种“标准”形式,消除各评价指标(或属性)单位和量纲的影响

          1.2 常见要转化的指标:

指标名称 指标特点 例子 转换函数
极大型(效益型)指标 越大(多)越好 成绩、GDP增速、企业利润 none
极小型(成本型)指标 越小(少)越好 费用、坏品率、污染程度 max-x或取倒数
中间型指标 越接近某个值越好 水质量评估时的PH值 a
区间型指标 落在某个区间最好 体温、水中植物性营养物量 b

               a:

      b:     数模算法--优劣解距离法--tosis法_第1张图片

2.正向化矩阵标准化

                                   矩阵正向化后,再进行标准化

数模算法--优劣解距离法--tosis法_第2张图片

数模算法--优劣解距离法--tosis法_第3张图片

3.计算得分并归一化

  定义最大值,最小值

D-:第i(i = 1,2,…,n)个评价对象与最小值的距离

D+:第i(i = 1,2,…,n)个评价对象与最大值的距离

数模算法--优劣解距离法--tosis法_第4张图片数模算法--优劣解距离法--tosis法_第5张图片

Si为归一化后的得分,至此利用topsis法,算出所得值

数模算法--优劣解距离法--tosis法_第6张图片

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

三、模型拓展

若是指标权重不同,则应该用权重对公式进行修正,修正后的公式如下,ω 代表权重。

数模算法--优劣解距离法--tosis法_第7张图片

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

四、代码实现

% 输入数据矩阵
D = [
    0.5  0.8  0.2  0.9;
    0.7  0.6  0.3  0.8;
    0.6  0.9  0.4  0.7;
    0.8  0.7  0.5  0.6;
];

% 权重向量
W = [0.25, 0.25, 0.25, 0.25];

% 正向标准化数据
[m, n] = size(D);
normalized_D = D;
for i = 1:n
    col = D(:, i);
    normalized_D(:, i) = col ./ sqrt(sum(col.^2));
end

% 理想解的计算(最大化和最小化)
P = max(normalized_D);
N = min(normalized_D);

% 计算每个候选方案到理想解的距离
DP = sqrt(sum((normalized_D - P).^2, 2));
DN = sqrt(sum((normalized_D - N).^2, 2));

% 计算综合评分
C = DN ./ (DP + DN);

% 排序并获得最佳候选方案
[sorted_C, idx] = sort(C, 'descend');
best_candidate = idx(1);

fprintf('最佳候选方案是第 %d 个方案\n', best_candidate);

不 行 就 滚

你可能感兴趣的:(算法)