多属性决策模型-matlab实现

适用于评价决策问题,例如:决策目标,备选方案

属性集合

  1. 影响力较强
  2. 性间独立属
  3. 容易辨别优劣
  4. 可量化
  5. 数量过多时(>7)分层

决策矩阵

表示方案对属性的偏好程

方案为行,属性为列,对每一方案每一属性取值

评价指标类型的一致化处理

一般来说,在评价指标x1,x2,…,xm(m>1)中可能包括“极大型”指标、“极小型”指标、“中间型”指标 和 “区间型”指标。

  • 极大型指标:总是期望指标的取值越大越好; 效益型指标,如:收益、利润;
  • 极小型指标:总是期望指标的取值越小越好; 费用型指标,如:成本、能耗;
  • 中间型指标:总是期望指标的取值既不要太大,也不要太小,即取适当的中间值最好;如:环境温度、湿度、人的身高、体重、BMI;
  • 区间型指标:总是期望指标的取值最好是落在某一个确定的区间内最好。如:水质量评估中PH值。

极大型指标和极小型指标又被称为效益型指标和费用型指标。

进行综合评价的过程中,将指标一致化(一样的指标类型),要么极小(综合评价值越小越好),要么极大(…)。评价指标预处理的过程中,首先将指标一致化处理。根据决策目标、实际问题来决定目标是极小还是极大!预处理数据最好不要产生大的变动。
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xNo6f937-1664163063309)(assets/image-20220803162055-g87rqsz.png)]

决策矩阵标准化

  1. 区分费用型属性和效益性属性,对费用型属性值取倒数变换,将全部属性转为效益型
  2. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hdgbaXF4-1664163063310)(assets/image-20220624094325-ububzmq.png)]

属性权重

对目标影响力的权重分配

信息熵法

熵:衡量不确定的指标,熵越大,不确定越大

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NJrcXexe-1664163063310)(assets/image-20220624103238-cv2dqyy.png)]

动态加权函数的设定

考虑到评价指标的“质差”与“量差”的关系,选择动态权重函数时 既要能体现不同类型指标之间质的差异,也要能体现同类型指标量的差异。

具体取什么样的动态加权函数,主要是从实际问题出发分析确定。

对于不同的指标可以取相同的权函数,也可以取不同的权函数。

1.分段变幂函数

2.偏大型正态分布函数

3.S型分布函数

综合方法

将决策矩阵与属性权重加以综合,得到最终巨册的数学方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eU0Alipa-1664163063311)(assets/image-20220624112639-ptqwcx0.png)]

简单加权和法(首选)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lmkdmfbb-1664163063312)(assets/image-20220624112716-kj9o6zg.png)]

加权积法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qqjj6cG2-1664163063312)(assets/image-20220624112759-6zzjopj.png)]

接近理想解的偏好排序法

https://blog.csdn.net/Shea111/article/details/107102312

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FP4ZuoY2-1664163063312)(assets/image-20220624112831-1tyxm16.png)]

求解方法:

  1. 正理想解: 每列最大值
  2. 负理想解: 每列最小值
  3. 求每列与正负理想解距离
  4. 求接近度

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MRaN2Qbx-1664163063313)(assets/image-20220624112935-7gonqvz.png)]

方案选取

  • 分配模式

    • 简单加权和法+归一化
    • 适用于资源分配问题
  • 理想模式

    • 简单加权和法+最大化
    • 适用于挑选最优者

代码实现

归一化函数

function D_std = gui1(D,k)
% 对数据进行归一化处理
% D为数据 k为归一化选项
D_std=[];
switch k
    %归一化
    case 1
        D_std=D./(ones(size(D,1),1)*sum(D,1));  %D列为1矩阵*D列和
    %最大化
    case 2
        D_std=D./(ones(size(D,1),1)*max(D,[],1));  %D列为1矩阵*D列最大值
    %模一化
    case 3
        mo_D=sqrt(sum(D.^2,1));
        D_std=D./(ones(size(D,1),1)*mo_D);  %D列为1矩阵*D列模
    %区间尺度变换/极值差
    case 4
        D_max=(ones(size(D,1),1)*max(D,[],1));
        D_min=(ones(size(D,1),1)*min(D,[],1));
        D_std=(D-D_min)./(D_max-D_min);
end

综合方法函数

function V_score = allway(D_std,W,k)
%综合方法
%D_std数据值,W属性权重,k方案选择
V_score=[];
switch k
    %简单求加权和
    case 1
        V_score=D_std*W;  
        V_score=V_score/sum(V_score);   %归一化处理
    %加权积法
    case 2
        V_mid=D_std.^(ones(size(D_std,1),1)*W');  %D列为1矩阵*W
        V_score=prod(V_mid,2);  %dij乘积
        V_score=V_score/sum(V_score);   %归一化处理
    %接近理想解的偏好排序法
    case 3
        V_mid=D_std.*(ones(size(D_std,1),1)*W');  %D列为1矩阵*W
        V_plus=ones(size(D_std,1),1)*max(V_mid,[],1);   %正理想解(列最大值向量)
        V_dim=ones(size(D_std,1),1)*min(V_mid,[],1);    %负理想解(行最大值向量)
        S_plus=sum((V_mid-V_plus).^2,2).^(0.5); %与正理想解距离
        S_dim=sum((V_mid-V_dim).^2,2).^(0.5);   %与负理想解距离
        C_plus=S_dim./(S_plus+S_dim);   %接近度
        V_score = C_plus/sum(C_plus);   %归一化
end
end

求信息熵

D=[ 1/25,9,7;
    1/18,7,7;
    1/12,5,5];
%% 归一化处理
D_std=gui1(D,1);
disp(D_std);


%%求信息熵
m=size(D,1);
E=-1/log(m)*sum(D_std.*log(D_std),1);    %求熵E
F=1-E;  %求区分度F
W=F/sum(F); %求x权重W
W=W';   %行向量转列向量
disp(W);

完整代码

D=[ 1/25,9,7;
    1/18,7,7;
    1/12,5,5];

%% 归一化处理
D_std=gui1(D,1);
disp(D_std);

%% 求信息熵
m=size(D,1);
E=-1/log(m)*sum(D_std.*log(D_std),1);    %求熵E
F=1-E;  %求区分度F
W=F/sum(F); %求x权重W
W=W';   %行向量转列向量
disp(W);

%% 综合方法
res = allway(D_std,W,1);    %加权和方法
disp(res);
res = allway(D,W,2);    %加权积方法
disp(res);
D_std=gui1(D,3);
res = allway(D_std,W,3);    %理想解方法
disp(res);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-StVPtP8o-1664163063314)(assets/image-20220705165355-7h4f8xv.png)]

  • 7
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值