matlab实现决策矩阵规范化(多属性决策)
一般来说,不同的决策变量量纲也不同,规范化可以消除量纲对最终结果的影响,使不同变量具有可比性。
假设决策矩阵为 A = ( a i j ) m × n A=({a_{ij}})_{m×n} A=(aij)m×n, 规范化矩阵为 R = ( r i j ) m × n R=({r_{ij}})_{m×n} R=(rij)m×n, 对于效益性指标和成本型指标可以按下列公式转化。
首先, 对于同一属性,找出所有方案中这一指标值的最大值 a m a x a_{max} amax和最小值 a m i n a_{min} amin;
对于效益性指标(越大越好)
对于效益性指标,按照下列公式进行规范化处理:
r
i
j
=
(
a
i
j
−
a
m
i
n
)
/
(
a
m
a
x
−
a
m
i
n
)
r_{ij}=(a_{ij}-a_{min})/(a_{max}-a_{min})
rij=(aij−amin)/(amax−amin)
对于成本型指标(越小越好):
对于成本型指标,按照下列公式进行规范化处理:
r
i
j
=
(
a
m
a
x
−
a
i
j
)
/
(
a
m
a
x
−
a
m
i
n
)
r_{ij}=(a_{max}-a_{ij})/(a_{max}-a_{min})
rij=(amax−aij)/(amax−amin)
matlab 实现
如下图所示,P1、P2、P3、P4表示四个不同的方案,Q1~Q8为8个不同的指标,假设8个指标均为效益性矩阵。
则决策矩阵可表示为:
A=[46.5 56.0 42.7 29.8 35.6 27.6 23.4 41.5;
36.8 51.0 46.5 45.6 49.5 70.4 35.4 35.7;
62.1 48.7 52.6 46.8 42.9 54.7 42.9 26.4;
50.0 33.5 29.8 26.7 18.6 57.1 38.2 52.6];
对于属性
Q
1
Q_1
Q1,四个方案中的最大值
a
m
a
x
,
1
=
62.1
a_{max ,1}=62.1
amax,1=62.1,最小值为
a
m
i
n
,
1
=
36.8
a_{min,1}=36.8
amin,1=36.8,则对于规范化矩阵
r
11
=
(
a
11
−
a
m
i
n
,
1
)
/
(
a
m
a
x
,
1
−
a
m
i
n
,
1
)
=
0.3834
r_{11}=(a_{11}-a_{min,1})/(a_{max,1}-a_{min,1})=0.3834
r11=(a11−amin,1)/(amax,1−amin,1)=0.3834
以此类推。
matlab代码如下:
A=[46.5 56.0 42.7 29.8 35.6 27.6 23.4 41.5;
36.8 51.0 46.5 45.6 49.5 70.4 35.4 35.7;
62.1 48.7 52.6 46.8 42.9 54.7 42.9 26.4;
50.0 33.5 29.8 26.7 18.6 57.1 38.2 52.6];
min_a=min(A);%求每一列的最小值
max_a=max(A);
deta_a=max_a-min_a;
for i=1:size(A,1)
for j=1:size(A,2)
B(i,j)=(A(i,j)-min_a(j))/deta_a(j);
end
end
对于其他类型的指标如区间型等,可参考https://blog.csdn.net/weixin_40108753/article/details/81222072
https://www.cnblogs.com/Qling/p/9295414.html