1.1 直觉模糊加权平均算子
记论域X上所有直觉模糊数为 F ( X ) F\left(X\right) F(X)
定义1.1
设
A
~
j
=
⟨
μ
j
,
ν
j
⟩
(
j
=
1
,
2
,
.
.
.
,
n
)
{\tilde{A}_{j}} = \left\langle\mu_{j},\nu_{j}\right\rangle\left(j = 1,2,...,n\right)
A~j=⟨μj,νj⟩(j=1,2,...,n)是一组直觉模糊数,若
IFWA
\operatorname{IFWA}
IFWA是一个映射:
F
n
→
F
F_{n} \rightarrow F
Fn→F,使得:
IFWA
ω
(
A
~
1
,
A
~
2
,
.
.
.
,
A
~
n
)
=
ω
1
A
~
1
⊕
ω
2
A
~
2
⊕
.
.
.
⊕
ω
n
A
~
n
(1.1)
\color{red} { {\operatorname{IFWA}_{\omega}}\left( \tilde{A}_{1},\tilde{A}_{2},...,\tilde{A}_{n}\right) = \omega_{1}\tilde{A}_{1} \oplus \omega_{2}\tilde{A}_{2}\oplus...\oplus\omega_{n}\tilde{A}_{n} \tag{1.1} }
IFWAω(A~1,A~2,...,A~n)=ω1A~1⊕ω2A~2⊕...⊕ωnA~n(1.1)
则称 IFWA \operatorname{IFWA} IFWA为直觉模糊加权平均算子,其中 ω = ( ω 1 , ω 2 , . . . , ω n ) T \boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},...,\omega_{n}\right)}^{T} ω=(ω1,ω2,...,ωn)T为 A ~ j = ⟨ μ j , ν j ⟩ ( j = 1 , 2 , . . . , n ) {\tilde{A}_{j}} = \left\langle\mu_{j},\nu_{j}\right\rangle\left(j = 1,2,...,n\right) A~j=⟨μj,νj⟩(j=1,2,...,n)的权重向量, ω j ∈ [ 0 , 1 ] ( j = 1 , 2 , . . . , n ) , ∑ j = 1 n ω j = 1 \omega_{j} \in [0,1]\left(j=1,2,...,n\right),\sum_{j=1}^{n}{\omega_{j}}=1 ωj∈[0,1](j=1,2,...,n),∑j=1nωj=1
特别地,若
ω
=
(
1
n
,
1
n
,
.
.
.
,
1
n
)
T
\boldsymbol{\omega} = {\left(\frac{1}{n},\frac{1}{n},...,\frac{1}{n}\right)}^{T}
ω=(n1,n1,...,n1)T,则
IFWA
\operatorname{IFWA}
IFWA算子退化为直觉模糊平均(IFA)算子:
IFWA
ω
(
A
~
1
,
A
~
2
,
.
.
.
,
A
~
n
)
=
1
n
(
A
~
1
⊕
A
~
2
⊕
.
.
.
⊕
A
~
n
)
(1.2)
{\operatorname{IFWA}_{\omega}}\left( \tilde{A}_{1},\tilde{A}_{2},...,\tilde{A}_{n}\right) = \frac{1}{n}\left(\tilde{A}_{1} \oplus \tilde{A}_{2}\oplus...\oplus\tilde{A}_{n}\right)\tag{1.2}
IFWAω(A~1,A~2,...,A~n)=n1(A~1⊕A~2⊕...⊕A~n)(1.2)
定理1.1
设
A
~
j
=
⟨
μ
j
,
ν
j
⟩
(
j
=
1
,
2
,
.
.
.
,
n
)
{\tilde{A}}_{j} = \left\langle\mu_{j},\nu_{j}\right\rangle\left(j=1,2,...,n\right)
A~j=⟨μj,νj⟩(j=1,2,...,n)是一组直觉模糊数,则有
IFWA
\operatorname{IFWA}
IFWA算子运算得到的结果仍然是直觉模糊数,且
IFWA ω ( A ~ 1 , A ~ 2 , . . . A ~ n ) = ⟨ 1 − ∏ j = 1 n ( 1 − μ j ) ω j , ∏ j = 1 n ( ν j ) ω j ⟩ ‾ (1.3) \color{red} { \underline { \operatorname{IFWA}_{\omega}\left({\tilde{A}_{1}},{\tilde{A}_{2}},...{\tilde{A}_{n}}\right) = \left\langle{ 1-{\prod_{j=1}^{n}\left(1-\mu_{j}\right)}^{\omega_{j}}, {\prod_{j=1}^{n}{\left(\nu_{j}\right)}^{\omega_{j}}} }\right\rangle } } \tag{1.3} IFWAω(A~1,A~2,...A~n)=⟨1−j=1∏n(1−μj)ωj,j=1∏n(νj)ωj⟩(1.3)
推理过程:
已知:(1)
α
1
⊕
α
2
=
(
μ
α
1
+
μ
α
2
−
μ
α
1
μ
α
2
,
ν
α
1
ν
α
2
)
\alpha_{1} \oplus \alpha_{2} = \left( \mu_{\alpha_{1}} + \mu_{\alpha_{2}} -\mu_{\alpha_{1}}\mu_{\alpha_{2}}, \nu_{\alpha_{1}}\nu_{\alpha_{2}} \right)
α1⊕α2=(μα1+μα2−μα1μα2,να1να2);(2)
λ
α
=
(
1
−
(
1
−
μ
α
)
λ
,
ν
α
λ
)
\lambda\alpha = \left( 1 - {\left( 1 - \mu_\alpha\right)}^{\lambda}, \nu_\alpha^\lambda \right)
λα=(1−(1−μα)λ,ναλ)
原式: IFWA ω ( A ~ 1 , A ~ 2 , . . . , A ~ n ) = ω 1 A ~ 1 ⊕ ω 2 A ~ 2 ⊕ . . . ⊕ ω n A ~ n {\operatorname{IFWA}_{\omega}}\left( \tilde{A}_{1},\tilde{A}_{2},...,\tilde{A}_{n}\right) = \omega_{1}\tilde{A}_{1} \oplus \omega_{2}\tilde{A}_{2}\oplus...\oplus\omega_{n}\tilde{A}_{n} IFWAω(A~1,A~2,...,A~n)=ω1A~1⊕ω2A~2⊕...⊕ωnA~n
S1.计算:
ω
1
A
~
1
,
ω
2
A
~
2
,
.
.
.
,
ω
n
A
~
n
\omega_{1}\tilde{A}_{1}, \omega_{2}\tilde{A}_{2},...,\omega_{n}\tilde{A}_{n}
ω1A~1,ω2A~2,...,ωnA~n
R1.可得:
T
1
=
ω
1
A
~
1
=
(
1
−
(
1
−
μ
1
)
ω
1
,
ν
1
ω
1
)
T_{1} = \omega_{1}\tilde{A}_{1} = \left( 1 - {\left(1 - \mu_{1}\right)}^{\omega_{1}},{\nu_{1}}^{\omega_{1}}\right)
T1=ω1A~1=(1−(1−μ1)ω1,ν1ω1),
T
2
=
ω
2
A
~
2
=
(
1
−
(
1
−
μ
2
)
ω
2
,
ν
2
ω
2
)
T_{2} = \omega_{2}\tilde{A}_{2} = \left( 1 - {\left(1 - \mu_{2}\right)}^{\omega_{2}},{\nu_{2}}^{\omega_{2}}\right)
T2=ω2A~2=(1−(1−μ2)ω2,ν2ω2),…,
T
n
=
ω
n
A
~
n
=
(
1
−
(
1
−
μ
n
)
ω
n
,
ν
n
ω
n
)
T_{n} = \omega_{n}\tilde{A}_{n} = \left( 1 - {\left(1 - \mu_{n}\right)}^{\omega_{n}},{\nu_{n}}^{\omega_{n}}\right)
Tn=ωnA~n=(1−(1−μn)ωn,νnωn)
S2.计算:
T
1
⊕
T
2
T_{1}\oplus T_{2}
T1⊕T2
R2.可得:
T
1
⊕
T
2
=
(
1
−
(
1
−
μ
1
)
ω
1
+
1
−
(
1
−
μ
2
)
ω
2
−
(
1
−
(
1
−
μ
1
)
ω
1
)
(
1
−
(
1
−
μ
1
)
ω
1
)
,
ν
1
ω
1
ν
2
ω
2
)
=
(
2
−
(
1
−
μ
1
)
ω
1
−
(
1
−
μ
2
)
ω
2
−
[
1
−
(
1
−
μ
2
)
ω
2
−
(
1
−
μ
1
)
ω
1
+
(
1
−
μ
1
)
ω
1
(
1
−
μ
2
)
ω
2
]
,
ν
1
ω
1
ν
2
ω
2
)
=
(
1
−
(
1
−
μ
1
)
ω
1
(
1
−
μ
2
)
ω
2
,
ν
1
ω
1
ν
2
ω
2
)
\begin{aligned} T_{1}\oplus T_{2} &= \left( 1 - {\left(1 - \mu_{1}\right)}^{\omega_{1}} + 1 - {\left(1 - \mu_{2}\right)}^{\omega_{2}} - \left(1 - {\left(1 - \mu_{1}\right)}^{\omega_{1}}\right)\left(1 - {\left(1 - \mu_{1}\right)}^{\omega_{1}}\right), {\nu_{1}}^{\omega_{1}}{\nu_{2}}^{\omega_{2}}\right)\\ &= \left( 2- {\left(1 - \mu_{1}\right)}^{\omega_{1}} - {\left(1 - \mu_{2}\right)}^{\omega_{2}} - \left[1-{\left(1 - \mu_{2}\right)}^{\omega_{2}}-{\left(1 - \mu_{1}\right)}^{\omega_{1}} + {\left(1 - \mu_{1}\right)}^{\omega_{1}}{\left(1 - \mu_{2}\right)}^{\omega_{2}}\right],{\nu_{1}}^{\omega_{1}}{\nu_{2}}^{\omega_{2}}\right)\\ &= \left(1-{\left(1 - \mu_{1}\right)}^{\omega_{1}}{\left(1 - \mu_{2}\right)}^{\omega_{2}},{\nu_{1}}^{\omega_{1}}{\nu_{2}}^{\omega_{2}}\right)\\ \end{aligned}
T1⊕T2=(1−(1−μ1)ω1+1−(1−μ2)ω2−(1−(1−μ1)ω1)(1−(1−μ1)ω1),ν1ω1ν2ω2)=(2−(1−μ1)ω1−(1−μ2)ω2−[1−(1−μ2)ω2−(1−μ1)ω1+(1−μ1)ω1(1−μ2)ω2],ν1ω1ν2ω2)=(1−(1−μ1)ω1(1−μ2)ω2,ν1ω1ν2ω2)
同理可以计算得到:
T
1
⊕
T
2
⊕
T
3
=
(
1
−
(
1
−
μ
1
)
ω
1
(
1
−
μ
2
)
ω
2
(
1
−
μ
3
)
ω
3
,
ν
1
ω
1
ν
2
ω
2
ν
3
ω
3
)
T_{1}\oplus T_{2} \oplus T_{3} = \left(1-{\left(1 - \mu_{1}\right)}^{\omega_{1}}{\left(1 - \mu_{2}\right)}^{\omega_{2}}{\left(1 - \mu_{3}\right)}^{\omega_{3}},{\nu_{1}}^{\omega_{1}}{\nu_{2}}^{\omega_{2}}{\nu_{3}}^{\omega_{3}}\right)
T1⊕T2⊕T3=(1−(1−μ1)ω1(1−μ2)ω2(1−μ3)ω3,ν1ω1ν2ω2ν3ω3)
依次类推,可得到: T 1 ⊕ T 2 ⊕ . . . ⊕ T n = ( 1 − ( 1 − μ 1 ) ω 1 ( 1 − μ 2 ) ω 2 . . . ( 1 − μ n ) ω n , ν 1 ω 1 ν 2 ω 2 . . . ν n ω n ) T_{1}\oplus T_{2} \oplus...\oplus T_{n} = \left(1-{\left(1 - \mu_{1}\right)}^{\omega_{1}}{\left(1 - \mu_{2}\right)}^{\omega_{2}}...{\left(1 - \mu_{n}\right)}^{\omega_{n}},{\nu_{1}}^{\omega_{1}}{\nu_{2}}^{\omega_{2}}...{\nu_{n}}^{\omega_{n}}\right) T1⊕T2⊕...⊕Tn=(1−(1−μ1)ω1(1−μ2)ω2...(1−μn)ωn,ν1ω1ν2ω2...νnωn)
合并结果为: T 1 ⊕ T 2 ⊕ . . . ⊕ T n = ⟨ 1 − ∏ j = 1 n ( 1 − μ j ) ω j , ∏ j = 1 n ( ν j ) ω j ⟩ T_{1}\oplus T_{2} \oplus...\oplus T_{n} = \left\langle{ 1-{\prod_{j=1}^{n}\left(1-\mu_{j}\right)}^{\omega_{j}},{\prod_{j=1}^{n}{\left(\nu_{j}\right)}^{\omega_{j}}} }\right\rangle T1⊕T2⊕...⊕Tn=⟨1−∏j=1n(1−μj)ωj,∏j=1n(νj)ωj⟩
即: IFWA ω ( A ~ 1 , A ~ 2 , . . . A ~ n ) = ⟨ 1 − ∏ j = 1 n ( 1 − μ j ) ω j , ∏ j = 1 n ( ν j ) ω j ⟩ \operatorname{IFWA}_{\omega}\left({\tilde{A}_{1}},{\tilde{A}_{2}},...{\tilde{A}_{n}}\right) = \left\langle{ 1-{\prod_{j=1}^{n}\left(1-\mu_{j}\right)}^{\omega_{j}},{\prod_{j=1}^{n}{\left(\nu_{j}\right)}^{\omega_{j}}} }\right\rangle IFWAω(A~1,A~2,...A~n)=⟨1−∏j=1n(1−μj)ωj,∏j=1n(νj)ωj⟩
示 例 1.1 \color{red}{示例 1.1} 示例1.1
设 A ~ 1 = ⟨ 0.2 , 0.6 ⟩ \tilde{A}_{1}=\left\langle0.2,0.6\right\rangle A~1=⟨0.2,0.6⟩, A ~ 2 = ⟨ 0.4 , 0.5 ⟩ \tilde{A}_{2}=\left\langle0.4,0.5\right\rangle A~2=⟨0.4,0.5⟩, A ~ 3 = ⟨ 0.6 , 0.3 ⟩ \tilde{A}_{3}=\left\langle0.6,0.3\right\rangle A~3=⟨0.6,0.3⟩, A ~ 4 = ⟨ 0.3 , 0.7 ⟩ \tilde{A}_{4}=\left\langle0.3,0.7\right\rangle A~4=⟨0.3,0.7⟩为四个直觉模糊数, ω = ( 0.2 , 0.4 , 0.1 , 0.3 ) T \omega={\left(0.2,0.4,0.1,0.3\right)}^{T} ω=(0.2,0.4,0.1,0.3)T为其权重向量,则 IFWA \operatorname{IFWA} IFWA结果是多少?
import numpy as np
IF_matrix = np.array([[0.2,0.4,0.6,0.3],[0.6,0.5,0.3,0.7]])
weight = np.array([0.2,0.4,0.1,0.3])
def calculate_IFWA(IF_matrix,weight):
IFWA = [1,1]
for i in range(IF_matrix.shape[1]):
IFWA[0] *= np.power(1-IF_matrix[0][i],weight[i])
IFWA[1] *= np.power(IF_matrix[1][i],weight[i])
IFWA[0] = 1 - IFWA[0]
return IFWA
print("IF矩阵:\n",IF_matrix)
print("权重向量:\n",weight)
print('IFWA:\n',calculate_IFWA(IF_matrix,weight))
计算结果如下:
IF矩阵:
[[0.2 0.4 0.6 0.3]
[0.6 0.5 0.3 0.7]]
权重向量:
[0.2 0.4 0.1 0.3]
IFWA:
[0.36083364123865835, 0.5450794252184181]
1.2 直觉模糊有序加权平均算子
定义1.2
设
A
~
j
=
⟨
μ
j
,
ν
j
⟩
(
j
=
1
,
2
,
.
.
.
,
n
)
{\tilde{A}_{j}} = \left\langle\mu_{j},\nu_{j}\right\rangle\left(j = 1,2,...,n\right)
A~j=⟨μj,νj⟩(j=1,2,...,n)是一组直觉模糊数,若
IFOWA
\operatorname{IFOWA}
IFOWA是一个映射:
F
n
→
F
F_{n} \rightarrow F
Fn→F,使得:
IFOWA
ω
(
A
~
1
,
A
~
2
,
.
.
.
,
A
~
n
)
=
ω
1
A
~
σ
(
1
)
⊕
ω
2
A
~
σ
(
2
)
⊕
.
.
.
⊕
ω
n
A
~
σ
(
n
)
(1.4)
\color{red} { {\operatorname{IFOWA}_{\omega}}\left( \tilde{A}_{1},\tilde{A}_{2},...,\tilde{A}_{n}\right) = \omega_{1}\tilde{A}_{\sigma(1)} \oplus \omega_{2}\tilde{A}_{\sigma(2)}\oplus...\oplus\omega_{n}\tilde{A}_{\sigma(n)} \tag{1.4} }
IFOWAω(A~1,A~2,...,A~n)=ω1A~σ(1)⊕ω2A~σ(2)⊕...⊕ωnA~σ(n)(1.4)
则称
IFOWA
\operatorname{IFOWA}
IFOWA为直觉模糊有序加权平均算子,其中
ω
=
(
ω
1
,
ω
2
,
.
.
.
,
ω
n
)
T
\boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},...,\omega_{n}\right)}^{T}
ω=(ω1,ω2,...,ωn)T为与
IFOWA
\operatorname{IFOWA}
IFOWA算子相关联的权重向量,
ω
j
∈
[
0
,
1
]
(
j
=
1
,
2
,
.
.
.
,
n
)
,
∑
j
=
1
n
ω
j
=
1
\omega_{j} \in [0,1]\left(j=1,2,...,n\right),\sum_{j=1}^{n}{\omega_{j}}=1
ωj∈[0,1](j=1,2,...,n),∑j=1nωj=1,
(
σ
(
1
)
,
σ
(
2
)
,
.
.
.
,
σ
(
n
)
)
\left(\sigma(1),\sigma(2),...,\sigma(n)\right)
(σ(1),σ(2),...,σ(n))为数组
(
1
,
2
,
.
.
.
,
n
)
\left(1,2,...,n\right)
(1,2,...,n)的一个置换,使得对任意k,有
A
~
σ
(
k
1
)
≥
A
~
σ
(
k
)
\tilde{A}_{\sigma(k1)}\geq\tilde{A}_{\sigma(k)}
A~σ(k1)≥A~σ(k),即
A
~
σ
(
k
)
\tilde{A}_{\sigma(k)}
A~σ(k)是直觉模糊数
A
~
j
=
⟨
μ
j
,
ν
j
⟩
(
j
=
1
,
2
,
.
.
.
,
n
)
{\tilde{A}_{j}} = \left\langle\mu_{j},\nu_{j}\right\rangle\left(j = 1,2,...,n\right)
A~j=⟨μj,νj⟩(j=1,2,...,n)按直觉模糊数的排序规则确定的第k个最大直觉模糊数。
特别地,若
ω
=
(
1
n
,
1
n
,
.
.
.
,
1
n
)
T
\boldsymbol{\omega} = {\left(\frac{1}{n},\frac{1}{n},...,\frac{1}{n}\right)}^{T}
ω=(n1,n1,...,n1)T,则
IFOWA
\operatorname{IFOWA}
IFOWA算子退化为直觉模平均(IFA)算子:
IFOWA
ω
(
A
~
1
,
A
~
2
,
.
.
.
,
A
~
n
)
=
1
n
(
A
~
1
⊕
A
~
2
⊕
.
.
.
⊕
A
~
n
)
{\operatorname{IFOWA}_{\omega}}\left( \tilde{A}_{1},\tilde{A}_{2},...,\tilde{A}_{n}\right) = \frac{1}{n}\left(\tilde{A}_{1} \oplus \tilde{A}_{2}\oplus...\oplus\tilde{A}_{n}\right)
IFOWAω(A~1,A~2,...,A~n)=n1(A~1⊕A~2⊕...⊕A~n)
定理1.2
设
A
~
j
=
⟨
μ
j
,
ν
j
⟩
(
j
=
1
,
2
,
.
.
.
,
n
)
{\tilde{A}}_{j} = \left\langle\mu_{j},\nu_{j}\right\rangle\left(j=1,2,...,n\right)
A~j=⟨μj,νj⟩(j=1,2,...,n)是一组直觉模糊数,
A
~
σ
(
k
)
\tilde{A}_{\sigma(k)}
A~σ(k)是直觉模糊数
A
~
j
=
⟨
μ
j
,
ν
j
⟩
(
j
=
1
,
2
,
.
.
.
,
n
)
{\tilde{A}_{j}} = \left\langle\mu_{j},\nu_{j}\right\rangle\left(j = 1,2,...,n\right)
A~j=⟨μj,νj⟩(j=1,2,...,n)按直觉模糊数的排序规则确定的第k个最大直觉模糊数,则有
IFOWA
\operatorname{IFOWA}
IFOWA算子运算得到的结果仍然是直觉模糊数,且
IFOWA ω ( A ~ 1 , A ~ 2 , . . . A ~ n ) = ⟨ 1 − ∏ j = 1 n ( 1 − μ σ ( j ) ) ω j , ∏ j = 1 n ( ν σ ( j ) ) ω j ⟩ ‾ (1.5) \color{red} { \underline { \operatorname{IFOWA}_{\omega}\left({\tilde{A}_{1}},{\tilde{A}_{2}},...{\tilde{A}_{n}}\right) = \left\langle{ 1-{\prod_{j=1}^{n}\left(1-\mu_{\sigma(j)}\right)}^{\omega_{j}}, {\prod_{j=1}^{n}{\left(\nu_{\sigma(j)}\right)}^{\omega_{j}}} }\right\rangle } } \tag{1.5} IFOWAω(A~1,A~2,...A~n)=⟨1−j=1∏n(1−μσ(j))ωj,j=1∏n(νσ(j))ωj⟩(1.5)
示 例 1.2 \color{red}{示例1.2} 示例1.2
设 A ~ 1 = ⟨ 0.1 , 0.2 ⟩ \tilde{A}_{1}=\left\langle0.1,0.2\right\rangle A~1=⟨0.1,0.2⟩, A ~ 2 = ⟨ 0.2 , 0.4 ⟩ \tilde{A}_{2}=\left\langle0.2,0.4\right\rangle A~2=⟨0.2,0.4⟩, A ~ 3 = ⟨ 0.6 , 0.2 ⟩ \tilde{A}_{3}=\left\langle0.6,0.2\right\rangle A~3=⟨0.6,0.2⟩, A ~ 4 = ⟨ 0.4 , 0.2 ⟩ \tilde{A}_{4}=\left\langle0.4,0.2\right\rangle A~4=⟨0.4,0.2⟩为四个直觉模糊数, ω = ( 0.2 , 0.3 , 0.3 , 0.2 ) T \omega={\left(0.2,0.3,0.3,0.2\right)}^{T} ω=(0.2,0.3,0.3,0.2)T为其权重向量,则 IFOWA \operatorname{IFOWA} IFOWA结果是多少?
import numpy as np
def IF_rank(IF_matrix):
# 计算每个直觉模糊数的得分值score=μ-v
score = IF_matrix[0] - IF_matrix[1]
# 按照得分值从大到小进行重新排序
index = np.argsort(-score)
IF_sequence_matrix = np.zeros(IF_matrix.shape)
for i in range(IF_matrix.shape[1]):
IF_sequence_matrix[0][i] = IF_matrix[0][index[i]]
IF_sequence_matrix[1][i] = IF_matrix[1][index[i]]
return IF_sequence_matrix
def calculate_IFOWA(IF_sequence_matrix,weight):
IFOWA = [1,1]
for i in range(IF_sequence_matrix.shape[1]):
IFOWA[0] *= np.power(1-IF_sequence_matrix[0][i],weight[i])
IFOWA[1] *= np.power(IF_sequence_matrix[1][i],weight[i])
IFOWA[0] = 1 - IFOWA[0]
return IFOWA
IF_matrix = np.array([[0.1,0.2,0.6,0.4],[0.2,0.4,0.2,0.2]])
weight = [0.2,0.3,0.3,0.2]
# 首先对IF_matrix进行排序
print('原始模糊直觉为:\n',IF_matrix)
IF_sequence_matrix = IF_rank(IF_matrix)
print('有序模糊直觉为:\n',IF_sequence_matrix)
# 然后计算IFOWA
IFOWA = calculate_IFOWA(IF_sequence_matrix,weight)
print('IFOWA:\n',IFOWA)
计算结果如下:
原始模糊直觉为:
[[0.1 0.2 0.6 0.4]
[0.2 0.4 0.2 0.2]]
有序模糊直觉为:
[[0.6 0.4 0.1 0.2]
[0.2 0.2 0.2 0.4]]
IFOWA:
[0.33816744854675806, 0.22973967099940704]
1.3 直觉模糊混合平均算子
定义1.3
设
A
~
j
=
⟨
μ
j
,
ν
j
⟩
(
j
=
1
,
2
,
.
.
.
,
n
)
{\tilde{A}_{j}} = \left\langle\mu_{j},\nu_{j}\right\rangle\left(j = 1,2,...,n\right)
A~j=⟨μj,νj⟩(j=1,2,...,n)是一组直觉模糊数,若
IFHA
\operatorname{IFHA}
IFHA是一个映射:
F
n
→
F
F_{n} \rightarrow F
Fn→F,使得:
IFHA
w
(
A
~
1
,
A
~
2
,
.
.
.
,
A
~
n
)
=
w
1
A
′
~
σ
(
1
)
⊕
w
2
A
′
~
σ
(
2
)
⊕
.
.
.
⊕
w
n
A
′
~
σ
(
n
)
(1.6)
\color{red} { {\operatorname{IFHA}_{w}}\left( \tilde{A}_{1},\tilde{A}_{2},...,\tilde{A}_{n}\right) = w_{1}\tilde{A^{'}}_{\sigma(1)} \oplus w_{2}\tilde{A^{'}}_{\sigma(2)}\oplus...\oplus w_{n}\tilde{A^{'}}_{\sigma(n)} \tag{1.6} }
IFHAw(A~1,A~2,...,A~n)=w1A′~σ(1)⊕w2A′~σ(2)⊕...⊕wnA′~σ(n)(1.6)
则称 IFHA \operatorname{IFHA} IFHA为直觉模糊混合平均算子,其中 w = ( w 1 , w 2 , . . . , w n ) T \boldsymbol{w} = {\left(w_{1},w_{2},...,w_{n}\right)}^{T} w=(w1,w2,...,wn)T为与 IFHA \operatorname{IFHA} IFHA算子相关联的权重向量, w j ∈ [ 0 , 1 ] ( j = 1 , 2 , . . . , n ) , ∑ j = 1 n w j = 1 w_{j} \in [0,1]\left(j=1,2,...,n\right),\sum_{j=1}^{n}{w_{j}}=1 wj∈[0,1](j=1,2,...,n),∑j=1nwj=1, ( A ′ ~ σ ( 1 ) , A ′ ~ σ ( 2 ) , . . . , A ′ ~ σ ( n ) ) \left(\tilde{A^{'}}_{\sigma(1)},\tilde{A^{'}}_{\sigma(2)},...,\tilde{A^{'}}_{\sigma(n)}\right) (A′~σ(1),A′~σ(2),...,A′~σ(n))为加权的直觉模糊数数组 ( A ′ ~ 1 , A ′ ~ 2 , . . . , A ′ ~ n ) \left(\tilde{A^{'}}_{1},\tilde{A^{'}}_{2},...,\tilde{A^{'}}_{n}\right) (A′~1,A′~2,...,A′~n)的一个置换,使得对任意k,有 A ′ ~ σ ( k − 1 ) ≥ A ′ ~ σ ( k ) \tilde{A^{'}}_{\sigma(k-1)}\geq\tilde{A^{'}}_{\sigma(k)} A′~σ(k−1)≥A′~σ(k),即 A ′ ~ σ ( k ) \tilde{A^{'}}_{\sigma(k)} A′~σ(k)是直觉模糊数 A ′ ~ j = ⟨ μ j ′ , ν j ′ ⟩ ( j = 1 , 2 , . . . , n ) {\tilde{A^{'}}_{j}} = \left\langle\mu^{'}_{j},\nu^{'}_{j}\right\rangle\left(j = 1,2,...,n\right) A′~j=⟨μj′,νj′⟩(j=1,2,...,n)按直觉模糊数的排序规则确定的第k个最大直觉模糊数。 ω = ( ω 1 , ω 2 , . . . , ω n ) T \boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},...,\omega_{n}\right)}^{T} ω=(ω1,ω2,...,ωn)T为 A ~ j = ⟨ μ j , ν j ⟩ ( j = 1 , 2 , . . . , n ) {\tilde{A}_{j}} = \left\langle\mu_{j},\nu_{j}\right\rangle\left(j = 1,2,...,n\right) A~j=⟨μj,νj⟩(j=1,2,...,n)的权重向量, ω j ∈ [ 0 , 1 ] ( j = 1 , 2 , . . . , n ) , ∑ j = 1 n ω j = 1 \omega_{j} \in [0,1]\left(j=1,2,...,n\right),\sum_{j=1}^{n}{\omega_{j}}=1 ωj∈[0,1](j=1,2,...,n),∑j=1nωj=1, n n n为平衡系数。
特别地,若
w
=
(
1
n
,
1
n
,
.
.
.
,
1
n
)
T
\boldsymbol{w} = {\left(\frac{1}{n},\frac{1}{n},...,\frac{1}{n}\right)}^{T}
w=(n1,n1,...,n1)T,则
IFHA
\operatorname{IFHA}
IFHA算子退化为直觉模糊加权平均算子
IFWA
\operatorname{IFWA}
IFWA;若
ω
=
(
1
n
,
1
n
,
.
.
.
,
1
n
)
T
\boldsymbol{\omega} = {\left(\frac{1}{n},\frac{1}{n},...,\frac{1}{n}\right)}^{T}
ω=(n1,n1,...,n1)T,则
IFHA
\operatorname{IFHA}
IFHA算子退化为直觉模糊有序加权平均算子
IFOWA
\operatorname{IFOWA}
IFOWA。
直觉模糊混合平均算子
IFHA
\operatorname{IFHA}
IFHA是直觉模糊加权平均算子
IFWA
\operatorname{IFWA}
IFWA和直觉模糊有序加权平均算子
IFOWA
\operatorname{IFOWA}
IFOWA的拓展,它充分考虑了待集结直觉模糊集自身重要性及其所在位置重要程度两方面的信息。
定理1.3
设
A
~
j
=
⟨
μ
j
,
ν
j
⟩
(
j
=
1
,
2
,
.
.
.
,
n
)
{\tilde{A}}_{j} = \left\langle\mu_{j},\nu_{j}\right\rangle\left(j=1,2,...,n\right)
A~j=⟨μj,νj⟩(j=1,2,...,n)是一组直觉模糊数,令
A
′
~
j
=
n
ω
j
A
~
j
=
⟨
μ
j
′
,
ν
j
′
⟩
(
j
=
1
,
2
,
.
.
.
,
n
)
\tilde{A^{'}}_{j} = n\omega_{j}\tilde{A}_{j}=\left\langle\mu^{'}_{j},\nu^{'}_{j}\right\rangle\left(j=1,2,...,n\right)
A′~j=nωjA~j=⟨μj′,νj′⟩(j=1,2,...,n),
A
′
~
σ
(
k
)
\tilde{A^{'}}_{\sigma(k)}
A′~σ(k)是直觉模糊数
A
′
~
j
=
⟨
μ
j
′
,
ν
j
′
⟩
(
j
=
1
,
2
,
.
.
.
,
n
)
{\tilde{A^{'}}_{j}} = \left\langle\mu^{'}_{j},\nu^{'}_{j}\right\rangle\left(j = 1,2,...,n\right)
A′~j=⟨μj′,νj′⟩(j=1,2,...,n)中按直觉模糊数的排序规则确定的第k个最大直觉模糊数,则有
IFHA
\operatorname{IFHA}
IFHA算子运算得到的结果仍然是直觉模糊数,且
IFHA ω , w ( A ~ 1 , A ~ 2 , . . . A ~ n ) = ⟨ 1 − ∏ j = 1 n ( 1 − μ σ ( j ) ′ ) ω j , ∏ j = 1 n ( ν σ ( j ) ′ ) ω j ⟩ ‾ (1.7) \color{red} { \underline { \operatorname{IFHA}_{\omega,w}\left({\tilde{A}_{1}},{\tilde{A}_{2}},...{\tilde{A}_{n}}\right) = \left\langle{ 1-{\prod_{j=1}^{n}\left(1-\mu^{'}_{\sigma(j)}\right)}^{\omega_{j}}, {\prod_{j=1}^{n}{\left(\nu^{'}_{\sigma(j)}\right)}^{\omega_{j}}} }\right\rangle } } \tag{1.7} IFHAω,w(A~1,A~2,...A~n)=⟨1−j=1∏n(1−μσ(j)′)ωj,j=1∏n(νσ(j)′)ωj⟩(1.7)
其中,
w
=
(
w
1
,
w
2
,
.
.
.
,
w
n
)
T
\boldsymbol{w} = {\left(w_{1},w_{2},...,w_{n}\right)}^{T}
w=(w1,w2,...,wn)T为与
IFOWA
\operatorname{IFOWA}
IFOWA算子相关联的权重向量,
w
j
∈
[
0
,
1
]
(
j
=
1
,
2
,
.
.
.
,
n
)
,
∑
j
=
1
n
w
j
=
1
w_{j} \in [0,1]\left(j=1,2,...,n\right),\sum_{j=1}^{n}{w_{j}}=1
wj∈[0,1](j=1,2,...,n),∑j=1nwj=1;
ω
=
(
ω
1
,
ω
2
,
.
.
.
,
ω
n
)
T
\boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},...,\omega_{n}\right)}^{T}
ω=(ω1,ω2,...,ωn)T为
A
~
j
=
⟨
μ
j
,
ν
j
⟩
(
j
=
1
,
2
,
.
.
.
,
n
)
{\tilde{A}_{j}} = \left\langle\mu_{j},\nu_{j}\right\rangle\left(j = 1,2,...,n\right)
A~j=⟨μj,νj⟩(j=1,2,...,n)的权重向量,
ω
j
∈
[
0
,
1
]
(
j
=
1
,
2
,
.
.
.
,
n
)
,
∑
j
=
1
n
ω
j
=
1
\omega_{j} \in [0,1]\left(j=1,2,...,n\right),\sum_{j=1}^{n}{\omega_{j}}=1
ωj∈[0,1](j=1,2,...,n),∑j=1nωj=1,
n
n
n为平衡系数。
示 例 1.3 \color{red}{示例1.3} 示例1.3
设 A ~ 1 = ⟨ 0.2 , 0.5 ⟩ \tilde{A}_{1}=\left\langle0.2,0.5\right\rangle A~1=⟨0.2,0.5⟩, A ~ 2 = ⟨ 0.3 , 0.4 ⟩ \tilde{A}_{2}=\left\langle0.3,0.4\right\rangle A~2=⟨0.3,0.4⟩, A ~ 3 = ⟨ 0.5 , 0.1 ⟩ \tilde{A}_{3}=\left\langle0.5,0.1\right\rangle A~3=⟨0.5,0.1⟩, A ~ 4 = ⟨ 0.7 , 0.2 ⟩ \tilde{A}_{4}=\left\langle0.7,0.2\right\rangle A~4=⟨0.7,0.2⟩, A ~ 4 = ⟨ 0.6 , 0.3 ⟩ \tilde{A}_{4}=\left\langle0.6,0.3\right\rangle A~4=⟨0.6,0.3⟩为五个直觉模糊数, ω = ( 0.25 , 0.15 , 0.20 , 0.18 , 0.22 ) T \omega={\left(0.25,0.15,0.20,0.18,0.22\right)}^{T} ω=(0.25,0.15,0.20,0.18,0.22)T为 A ~ j ( j = 1 , 2 , 3 , 4 , 5 ) \tilde{A}_{j}\left(j=1,2,3,4,5\right) A~j(j=1,2,3,4,5)的权重向量, w = ( 0.112 , 0.236 , 0.304 , 0.236 , 0.112 ) T w={\left(0.112,0.236,0.304,0.236,0.112\right)}^{T} w=(0.112,0.236,0.304,0.236,0.112)T为与 IFHA \operatorname{IFHA} IFHA算子相关联的权重向量, 则 IFHA \operatorname{IFHA} IFHA结果是多少?
import numpy as np
def calculate_weight_IF(IF_matrix,weight_IF):
weight_IF *= IF_matrix.shape[1] # 计算<A_j_'> = n×<w_j>×<A_j>
weighted_IF_matrix = np.zeros(IF_matrix.shape) # 初始化矩阵用于存放加权后的结果
weighted_IF_matrix[0] = 1 - np.power(1-IF_matrix[0],weight_IF) # 计算加权后的μ_i = 1-(1-<u_i>)^<w_i>
weighted_IF_matrix[1] = np.power(IF_matrix[1],weight_IF) # 计算加权后的v_i = (<v_i>)^<w_i>
return weighted_IF_matrix
def IF_rank(IF_matrix):
# 计算每个直觉模糊数的得分值score=μ-v
score = IF_matrix[0] - IF_matrix[1]
# 按照得分值从大到小进行重新排序
index = np.argsort(-score) # 获取从大到小排序索引
IF_sequence_matrix = np.zeros(IF_matrix.shape) # 初始化结果矩阵
for i in range(IF_matrix.shape[1]): # 更新结果矩阵
IF_sequence_matrix[0][i] = IF_matrix[0][index[i]]
IF_sequence_matrix[1][i] = IF_matrix[1][index[i]]
return IF_sequence_matrix
def calculate_IFHA(IF_sequence_matrix,weight):
IFOWA = [1,1]
for i in range(IF_sequence_matrix.shape[1]):
IFOWA[0] *= np.power(1-IF_sequence_matrix[0][i],weight[i])
IFOWA[1] *= np.power(IF_sequence_matrix[1][i],weight[i])
IFOWA[0] = 1 - IFOWA[0]
return IFOWA
# 输入
IF_matrix = np.array([[0.2,0.3,0.5,0.7,0.6],[0.5,0.4,0.1,0.2,0.3]])
weight_IF = np.array([0.25,0.15,0.20,0.18,0.22])
weight_IFHA = np.array([0.112,0.236,0.304,0.236,0.112])
# S1: 计算加权直觉模糊数A_j_'
weighted_IF_matrix = calculate_weight_IF(IF_matrix,weight_IF)
print('Weighted_IF_matrix:\n',weighted_IF_matrix)
# S2:计算A_j_'的得分值
# S3:排序
ranked_IF = IF_rank(weighted_IF_matrix)
print('Ranked_IF:\n',ranked_IF)
# S4:计算IFHA
IFHA = calculate_IFHA(ranked_IF,weight_IFHA)
print('IFHA:\n',IFHA)
计算结果如下:
Weighted_IF_matrix:
[[0.24340671 0.23471442 0.5 0.66161654 0.63502259]
[0.42044821 0.50297337 0.1 0.23492379 0.26597045]]
Ranked_IF:
[[0.66161654 0.5 0.63502259 0.24340671 0.23471442]
[0.23492379 0.1 0.26597045 0.42044821 0.50297337]]
IFHA:
[0.49698679510742627, 0.2491508434303773]
1.4 基于直觉模糊混合平均算子的多属性决策步骤与实例分析
直觉模糊多属性决策问题的描述
设某多属性决策问题有m个方案 Y i ( i = 1 , 2 , . . . , m ) Y_{i}\left(i=1,2,...,m\right) Yi(i=1,2,...,m)组成方案集 Y = { Y 1 , Y 2 , . . . , Y m } Y=\left\{ Y_{1},Y_{2},...,Y_{m} \right\} Y={Y1,Y2,...,Ym},评价每个方案的属性(或指标)为 G j ( j = 1 , 2 , . . . , n ) G_{j}\left(j=1,2,...,n\right) Gj(j=1,2,...,n),记属性集为 G = { G 1 , G 2 , . . . , G n } G=\left\{ G_{1},G_{2},...,G_{n} \right\} G={G1,G2,...,Gn}。假设方案 Y i ∈ Y Y_{i} \in Y Yi∈Y关于属性 G j ∈ G G_{j} \in G Gj∈G的评价值可以表示为直觉模糊集 F i j ~ = { ⟨ G j , Y i ⟩ , μ i j , ν i j } ( i = 1 , 2 , . . . , m ; j = 1 , 2 , . . . , n ) \tilde{F_{ij}}=\left\{ \left\langle G_{j},Y_{i}\right\rangle,\mu_{ij},\nu_{ij} \right\}\left(i=1,2,...,m;j=1,2,...,n\right) Fij~={⟨Gj,Yi⟩,μij,νij}(i=1,2,...,m;j=1,2,...,n),其中 μ i j ∈ [ 0 , 1 ] \mu_{ij} \in [0,1] μij∈[0,1]和 ν i j ∈ [ 0 , 1 ] \nu_{ij} \in [0,1] νij∈[0,1]分别表示方案 Y i ∈ Y Y_{i} \in Y Yi∈Y满足属性 G j ∈ G G_{j} \in G Gj∈G和不满足属性 G j ∈ G G_{j} \in G Gj∈G的程度,且 0 ≤ μ i j + ν i j ≤ 1 0\leq\mu_{ij}+\nu_{ij}\leq1 0≤μij+νij≤1。
为方便起见,通常将 F i j ~ = { ⟨ G j , Y i ⟩ , μ i j , ν i j } ( i = 1 , 2 , . . . , m ; j = 1 , 2 , . . . , n ) \tilde{F_{ij}}=\left\{ \left\langle G_{j},Y_{i}\right\rangle,\mu_{ij},\nu_{ij} \right\}\left(i=1,2,...,m;j=1,2,...,n\right) Fij~={⟨Gj,Yi⟩,μij,νij}(i=1,2,...,m;j=1,2,...,n)简记为 F i j ~ = ⟨ μ i j , ν i j ⟩ ( i = 1 , 2 , . . . , m ; j = 1 , 2 , . . . , n ) \tilde{F_{ij}}=\left\langle\mu_{ij},\nu_{ij}\right\rangle\left(i=1,2,...,m;j=1,2,...,n\right) Fij~=⟨μij,νij⟩(i=1,2,...,m;j=1,2,...,n),即 μ i j \mu_{ij} μij表示方案 Y i ∈ Y Y_{i} \in Y Yi∈Y满足属性 G j ∈ G G_{j} \in G Gj∈G的程度,即 ν i j \nu_{ij} νij表示方案 Y i ∈ Y Y_{i} \in Y Yi∈Y不满足属性 G j ∈ G G_{j} \in G Gj∈G的程度。于是 Y i ∈ Y ( i = 1 , 2 , . . . , m ) Y_{i} \in Y\left(i=1,2,...,m\right) Yi∈Y(i=1,2,...,m)的所有 n n n个属性评价值可以简单地记为向量 F ~ i = ( F ~ i 1 , F ~ i 2 , . . . , F ~ i n ) T = ( ⟨ μ i 1 , ν i 1 ⟩ , ⟨ μ i 2 , ν i 2 ⟩ , . . . , ⟨ μ i n , ν i n ⟩ ) T \tilde{F}_{i} = {\left(\tilde{F}_{i1},\tilde{F}_{i2},...,\tilde{F}_{in}\right)}^{T}={\left(\left\langle\mu_{i1},\nu_{i1}\right\rangle,\left\langle\mu_{i2},\nu_{i2}\right\rangle,...,\left\langle\mu_{in},\nu_{in}\right\rangle\right)}^{T} F~i=(F~i1,F~i2,...,F~in)T=(⟨μi1,νi1⟩,⟨μi2,νi2⟩,...,⟨μin,νin⟩)T。此时,所有方案 Y i ( i = 1 , 2 , . . . , m ) Y_{i}\left(i=1,2,...,m\right) Yi(i=1,2,...,m)关于属性 G j ( j = 1 , 2 , . . . , n ) G_{j}\left(j=1,2,...,n\right) Gj(j=1,2,...,n)的直觉模糊评价信息可以用一个直觉模糊决策矩阵 F = ( ⟨ μ i j , ν i j ⟩ ) m × n \boldsymbol{F}=\left(\left\langle\mu_{ij},\nu_{ij}\right\rangle\right)_{m×n} F=(⟨μij,νij⟩)m×n表示。
G 1 G_{1} G1 | G 2 G_{2} G2 | ⋯ | G n G_{n} Gn | |
---|---|---|---|---|
Y 1 Y_{1} Y1 | ⟨ μ 11 , ν 11 ⟩ \left\langle\mu_{11},\nu_{11}\right\rangle ⟨μ11,ν11⟩ | ⟨ μ 12 , ν 12 ⟩ \left\langle\mu_{12},\nu_{12}\right\rangle ⟨μ12,ν12⟩ | ⋯ | ⟨ μ 1 n , ν 1 n ⟩ \left\langle\mu_{1n},\nu_{1n}\right\rangle ⟨μ1n,ν1n⟩ |
Y 2 Y_{2} Y2 | ⟨ μ 21 , ν 21 ⟩ \left\langle\mu_{21},\nu_{21}\right\rangle ⟨μ21,ν21⟩ | ⟨ μ 22 , ν 22 ⟩ \left\langle\mu_{22},\nu_{22}\right\rangle ⟨μ22,ν22⟩ | ⋯ | ⟨ μ 2 n , ν 2 n ⟩ \left\langle\mu_{2n},\nu_{2n}\right\rangle ⟨μ2n,ν2n⟩ |
… | … | … | … | … |
Y m Y_{m} Ym | ⟨ μ m 1 , ν m 1 ⟩ \left\langle\mu_{m1},\nu_{m1}\right\rangle ⟨μm1,νm1⟩ | ⟨ μ m 2 , ν m 2 ⟩ \left\langle\mu_{m2},\nu_{m2}\right\rangle ⟨μm2,νm2⟩ | ⋯ | ⟨ μ m n , ν m n ⟩ \left\langle\mu_{mn},\nu_{mn}\right\rangle ⟨μmn,νmn⟩ |
1.5 基于直觉模糊混合平均算子的多属性决策步骤
基于直觉模糊混合平均算子的多属性决策步骤
步骤 1 确定多属性决策问题的方案集
Y
=
{
Y
1
,
Y
2
,
.
.
.
,
Y
m
}
Y=\left\{Y_{1},Y_{2},...,Y_{m}\right\}
Y={Y1,Y2,...,Ym}和属性集
G
=
{
G
1
,
G
2
,
.
.
.
,
G
n
}
G=\left\{G_{1},G_{2},...,G_{n}\right\}
G={G1,G2,...,Gn}。
步骤 2 获取多属性决策问题中各方案
Y
i
∈
Y
Y_{i} \in Y
Yi∈Y关于属性
G
j
∈
G
G_{j} \in G
Gj∈G的直觉模糊特征信息,构建直觉模糊决策矩阵
F
F
F。
步骤 3 确定多属性决策问题各属性的权重,得到属性权重向量
w
=
(
w
1
,
w
2
,
.
.
.
,
w
n
)
T
\boldsymbol{w} = {\left(w_{1},w_{2},...,w_{n}\right)}^{T}
w=(w1,w2,...,wn)T。
步骤 4 利用正态分布赋权法等确定与
IFHA
\operatorname{IFHA}
IFHA算子相关联的权重向量(或位置向量)
ω
=
(
ω
1
,
ω
2
,
.
.
.
,
ω
n
)
T
\boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},...,\omega_{n}\right)}^{T}
ω=(ω1,ω2,...,ωn)T。
步骤 4 利用
IFHA
ω
,
w
(
A
~
1
,
A
~
2
,
.
.
.
A
~
n
)
=
⟨
1
−
∏
j
=
1
n
(
1
−
μ
σ
(
j
)
′
)
ω
j
,
∏
j
=
1
n
(
ν
σ
(
j
)
′
)
ω
j
⟩
\operatorname{IFHA}_{\omega,w}\left({\tilde{A}_{1}},{\tilde{A}_{2}},...{\tilde{A}_{n}}\right) = \left\langle{ 1-{\prod_{j=1}^{n}\left(1-\mu^{'}_{\sigma(j)}\right)}^{\omega_{j}},{\prod_{j=1}^{n}{\left(\nu^{'}_{\sigma(j)}\right)}^{\omega_{j}}} }\right\rangle
IFHAω,w(A~1,A~2,...A~n)=⟨1−∏j=1n(1−μσ(j)′)ωj,∏j=1n(νσ(j)′)ωj⟩计算方案
Y
i
Y_{i}
Yi的综合属性值
d
~
i
=
IFHA
w
,
ω
(
(
~
F
)
i
1
,
(
~
F
)
i
2
,
.
.
.
,
(
~
F
)
i
n
,
)
\tilde{d}_{i} = \operatorname{IFHA}_{w,\omega}\left(\tilde(F)_{i1},\tilde(F)_{i2},...,\tilde(F)_{in},\right)
d~i=IFHAw,ω((~F)i1,(~F)i2,...,(~F)in,)。首先利用属性权重
w
=
(
w
1
,
w
2
,
.
.
.
,
w
n
)
T
\boldsymbol{w} = {\left(w_{1},w_{2},...,w_{n}\right)}^{T}
w=(w1,w2,...,wn)T和平衡系数
n
n
n计算加权的直觉模糊数
F
′
~
i
j
=
n
w
j
F
~
i
j
\tilde{F^{'}}_{ij} = n{w_j}\tilde{F}_{ij}
F′~ij=nwjF~ij,然后利用直觉模糊数的排序规则对
F
′
~
i
j
(
j
=
1
,
2
,
.
.
.
,
n
)
\tilde{F^{'}}_{ij}\left(j=1,2,...,n\right)
F′~ij(j=1,2,...,n)进行排序,得到直觉模糊数组
F
′
~
σ
(
1
)
,
F
′
~
σ
(
2
)
,
.
.
.
,
F
′
~
σ
(
n
)
\tilde{F^{'}}_{\sigma(1)},\tilde{F^{'}}_{\sigma(2)},...,\tilde{F^{'}}_{\sigma(n)}
F′~σ(1),F′~σ(2),...,F′~σ(n);最后根据与
IFHA
\operatorname{IFHA}
IFHA算子相关的权重向量
ω
=
(
ω
1
,
ω
2
,
.
.
.
,
ω
n
)
T
\boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},...,\omega_{n}\right)}^{T}
ω=(ω1,ω2,...,ωn)T计算方案
Y
i
Y_{i}
Yi的综合属性值
d
~
i
=
I
F
H
A
w
,
ω
(
F
~
i
1
,
F
~
i
2
,
.
.
.
,
F
~
i
n
)
\tilde{d}_{i}={IFHA}_{w,\omega}\left(\tilde{F}_{i1},\tilde{F}_{i2},...,\tilde{F}_{in}\right)
d~i=IFHAw,ω(F~i1,F~i2,...,F~in)
示 例 1.4 \color{red}{示例1.4} 示例1.4
考虑公共投资项目绩效评估问题。公共投资项目绩效评估要同时考虑公共投资的经济性、效率性、有效性和社会公平性,可以从管理绩效( G 1 G_{1} G1)、经济绩效( G 2 G_{2} G2)、社会绩效( G 3 G_{3} G3)、生态绩效( G 4 G_{4} G4)和可持续发展绩效( G 5 G_{5} G5)五个方面进行绩效评估。设利用层次分析法得到属性 G j ( j = 1 , 2 , 3 , 4 , 5 ) G_{j}(j=1,2,3,4,5) Gj(j=1,2,3,4,5)的权重向量为 ω = ( 0.052 , 0.141 , 0.269 , 0.269 , 0.269 ) T \omega={(0.052,0.141,0.269,0.269,0.269)}^{T} ω=(0.052,0.141,0.269,0.269,0.269)T;通过现场调查和专家咨询可以得到五个公共投资项目 Y i ( i = 1 , 2 , 3 , 4 , 5 ) Y_{i}(i=1,2,3,4,5) Yi(i=1,2,3,4,5)关于属性 G j ( j = 1 , 2 , 3 , 4 , 5 ) G_{j}(j=1,2,3,4,5) Gj(j=1,2,3,4,5)的直觉模糊评价结果如下表所示。
G 1 G_1 G1 | G 2 G_2 G2 | G 3 G_3 G3 | G 4 G_4 G4 | G 5 G_5 G5 | |
---|---|---|---|---|---|
Y 1 Y_1 Y1 | ⟨ 0.7 , 0.3 ⟩ \langle0.7,0.3\rangle ⟨0.7,0.3⟩ | ⟨ 0.7 , 0.2 ⟩ \langle0.7,0.2\rangle ⟨0.7,0.2⟩ | ⟨ 0.4 , 0.5 ⟩ \langle0.4,0.5\rangle ⟨0.4,0.5⟩ | ⟨ 0.7 , 0.3 ⟩ \langle0.7,0.3\rangle ⟨0.7,0.3⟩ | ⟨ 0.6 , 0.2 ⟩ \langle0.6,0.2\rangle ⟨0.6,0.2⟩ |
Y 2 Y_2 Y2 | ⟨ 0.6 , 0.2 ⟩ \langle0.6,0.2\rangle ⟨0.6,0.2⟩ | ⟨ 0.4 , 0.3 ⟩ \langle0.4,0.3\rangle ⟨0.4,0.3⟩ | ⟨ 0.5 , 0.3 ⟩ \langle0.5,0.3\rangle ⟨0.5,0.3⟩ | ⟨ 0.7 , 0.1 ⟩ \langle0.7,0.1\rangle ⟨0.7,0.1⟩ | ⟨ 0.5 , 0.2 ⟩ \langle0.5,0.2\rangle ⟨0.5,0.2⟩ |
Y 3 Y_3 Y3 | ⟨ 0.8 , 0.1 ⟩ \langle0.8,0.1\rangle ⟨0.8,0.1⟩ | ⟨ 0.6 , 0.2 ⟩ \langle0.6,0.2\rangle ⟨0.6,0.2⟩ | ⟨ 0.4 , 0.3 ⟩ \langle0.4,0.3\rangle ⟨0.4,0.3⟩ | ⟨ 0.2 , 0.6 ⟩ \langle0.2,0.6\rangle ⟨0.2,0.6⟩ | ⟨ 0.3 , 0.4 ⟩ \langle0.3,0.4\rangle ⟨0.3,0.4⟩ |
Y 4 Y_4 Y4 | ⟨ 0.5 , 0.4 ⟩ \langle0.5,0.4\rangle ⟨0.5,0.4⟩ | ⟨ 0.3 , 0.6 ⟩ \langle0.3,0.6\rangle ⟨0.3,0.6⟩ | ⟨ 0.6 , 0.3 ⟩ \langle0.6,0.3\rangle ⟨0.6,0.3⟩ | ⟨ 0.3 , 0.4 ⟩ \langle0.3,0.4\rangle ⟨0.3,0.4⟩ | ⟨ 0.5 , 0.3 ⟩ \langle0.5,0.3\rangle ⟨0.5,0.3⟩ |
Y 5 Y_5 Y5 | ⟨ 0.6 , 0.4 ⟩ \langle0.6,0.4\rangle ⟨0.6,0.4⟩ | ⟨ 0.5 , 0.4 ⟩ \langle0.5,0.4\rangle ⟨0.5,0.4⟩ | ⟨ 0.6 , 0.2 ⟩ \langle0.6,0.2\rangle ⟨0.6,0.2⟩ | ⟨ 0.5 , 0.3 ⟩ \langle0.5,0.3\rangle ⟨0.5,0.3⟩ | ⟨ 0.7 , 0.2 ⟩ \langle0.7,0.2\rangle ⟨0.7,0.2⟩ |
代码如下:
import numpy as np
def calculate_weight_IF(IF_matrix,weight_IF):
weight = weight_IF*IF_matrix.shape[1] # 计算<A_j_'> = n×<w_j>×<A_j>
weighted_IF_matrix = np.zeros(IF_matrix.shape) # 初始化矩阵用于存放加权后的结果
weighted_IF_matrix[0] = 1 - np.power(1-IF_matrix[0],weight) # 计算加权后的μ_i = 1-(1-<u_i>)^<w_i>
weighted_IF_matrix[1] = np.power(IF_matrix[1],weight) # 计算加权后的v_i = (<v_i>)^<w_i>
return weighted_IF_matrix
def IF_rank(IF_matrix):
# 计算每个直觉模糊数的得分值score=μ-v
score = IF_matrix[0] - IF_matrix[1]
# 按照得分值从大到小进行重新排序
index = np.argsort(-score) # 获取从大到小排序索引
IF_sequence_matrix = np.zeros(IF_matrix.shape) # 初始化结果矩阵
for i in range(IF_matrix.shape[1]): # 更新结果矩阵
IF_sequence_matrix[0][i] = IF_matrix[0][index[i]]
IF_sequence_matrix[1][i] = IF_matrix[1][index[i]]
return IF_sequence_matrix,index
def calculate_IFHA(IF_sequence_matrix,weight):
IFHA = [1,1]
for i in range(IF_sequence_matrix.shape[1]):
IFHA[0] *= np.power(1-IF_sequence_matrix[0][i],weight[i])
IFHA[1] *= np.power(IF_sequence_matrix[1][i],weight[i])
IFHA[0] = 1 - IFHA[0]
return IFHA
IF_matrix_4 = np.array([[[0.7,0.7,0.4,0.7,0.6],[0.3,0.2,0.5,0.3,0.2]],
[[0.6,0.4,0.5,0.7,0.5],[0.2,0.3,0.3,0.1,0.2]],
[[0.8,0.6,0.4,0.2,0.3],[0.1,0.2,0.3,0.6,0.4]],
[[0.5,0.3,0.6,0.3,0.5],[0.4,0.6,0.3,0.4,0.3]],
[[0.6,0.5,0.6,0.5,0.7],[0.4,0.4,0.2,0.3,0.2]]])
weight_attr_4 = np.array([0.052,0.141,0.269,0.269,0.269])
weight_IFHA_4 = np.array([0.112,0.236,0.304,0.236,0.112]) # 正态分布赋权法
# S1: 计算加权直觉模糊数A_j_'
weighted_IF_matrix_4 = []
for item in IF_matrix_4:
print(weight_attr_4)
weighted_IF_matrix_4.append(calculate_weight_IF(item,weight_attr_4))
print('\nWeight_IF_Matrix:\n',weighted_IF_matrix_4)
# S2:计算A_j_'的得分值
# S3:排序
ranked_IF_4 = []
for item in weighted_IF_matrix_4:
tmp_rlt = IF_rank(item)
ranked_IF_4.append(tmp_rlt[0])
print('\nRanked_IF:\n',ranked_IF_4)
# S4:计算IFHA
IFHA_4 = []
for item in ranked_IF_4:
IFHA_4.append(calculate_IFHA(item,weight_IFHA_4))
print('\nIFHA:\n',IFHA_4)
# 再次排序
IFHA_4 = np.array(IFHA_4)
tmp_matrix = np.zeros((2,IFHA_4.shape[0]))
for i in range(tmp_matrix.shape[1]):
tmp_matrix[0][i] = IFHA_4[i][0]
tmp_matrix[1][i] = IFHA_4[i][1]
final_result,index = IF_rank(tmp_matrix)
print('\nFinal Result: \n',final_result)
print('Final Index: \n',index+1)
计算结果如下:
[0.052 0.141 0.269 0.269 0.269]
[0.052 0.141 0.269 0.269 0.269]
[0.052 0.141 0.269 0.269 0.269]
[0.052 0.141 0.269 0.269 0.269]
[0.052 0.141 0.269 0.269 0.269]
Weight_IF_Matrix:
[array([[0.26877417, 0.57207222, 0.49694736, 0.80197132, 0.7084113 ],
[0.73122583, 0.32153344, 0.39365399, 0.19802868, 0.11478505]]), array([[0.21198298, 0.30241581, 0.60634601, 0.80197132, 0.60634601],
[0.65806349, 0.42792778, 0.19802868, 0.04518559, 0.11478505]]), array([[0.34193651, 0.47585398, 0.49694736, 0.25927665, 0.38104815],
[0.54954087, 0.32153344, 0.19802868, 0.50305264, 0.2915887 ]]), array([[0.16491208, 0.2223322 , 0.7084113 , 0.38104815, 0.60634601],
[0.78801702, 0.69758419, 0.19802868, 0.2915887 , 0.19802868]]), array([[0.21198298, 0.38655751, 0.7084113 , 0.60634601, 0.80197132],
[0.78801702, 0.52414602, 0.11478505, 0.19802868, 0.11478505]])]
Ranked_IF:
[array([[0.80197132, 0.7084113 , 0.57207222, 0.49694736, 0.26877417],
[0.19802868, 0.11478505, 0.32153344, 0.39365399, 0.73122583]]), array([[0.80197132, 0.60634601, 0.60634601, 0.30241581, 0.21198298],
[0.04518559, 0.11478505, 0.19802868, 0.42792778, 0.65806349]]), array([[0.49694736, 0.47585398, 0.38104815, 0.34193651, 0.25927665],
[0.19802868, 0.32153344, 0.2915887 , 0.54954087, 0.50305264]]), array([[0.7084113 , 0.60634601, 0.38104815, 0.2223322 , 0.16491208],
[0.19802868, 0.19802868, 0.2915887 , 0.69758419, 0.78801702]]), array([[0.80197132, 0.7084113 , 0.60634601, 0.38655751, 0.21198298],
[0.11478505, 0.11478505, 0.19802868, 0.52414602, 0.78801702]])]
IFHA:
[[0.6044416137848779, 0.2746528218446278], [0.5490833706472749, 0.20246395100727907], [0.39806747813910426, 0.3527361010122677], [0.442009916381061, 0.34998743727745046], [0.5924687656619477, 0.24057371055311083]]
Final Result:
[[0.59246877 0.54908337 0.60444161 0.44200992 0.39806748]
[0.24057371 0.20246395 0.27465282 0.34998744 0.3527361 ]]
Final Index:
[5 2 1 4 3]