Part II. S1. 基于直觉模糊混合平均算子的多属性决策方法

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 FnF,使得:
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~1A~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)=1j=1n(1μj)ωj,j=1n(ν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} T1T2
  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} T1T2=(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) T1T2T3=(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) T1T2...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 T1T2...Tn=1j=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)=1j=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 FnF,使得:
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~1A~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)=1j=1n(1μσ(j))ωj,j=1n(νσ(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 FnF,使得:
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~σ(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 , ω 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)=1j=1n(1μσ(j))ωj,j=1n(νσ(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 YiY关于属性 G j ∈ G G_{j} \in G GjG的评价值可以表示为直觉模糊集 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 YiY满足属性 G j ∈ G G_{j} \in G GjG和不满足属性 G j ∈ G G_{j} \in G GjG的程度,且 0 ≤ μ i j + ν i j ≤ 1 0\leq\mu_{ij}+\nu_{ij}\leq1 0μij+νij1

  为方便起见,通常将 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 YiY满足属性 G j ∈ G G_{j} \in G GjG的程度,即 ν i j \nu_{ij} νij表示方案 Y i ∈ Y Y_{i} \in Y YiY不满足属性 G j ∈ G G_{j} \in G GjG的程度。于是 Y i ∈ Y ( i = 1 , 2 , . . . , m ) Y_{i} \in Y\left(i=1,2,...,m\right) YiY(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表示。

表2-1 直觉模糊决策矩阵$F$
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 YiY关于属性 G j ∈ G G_{j} \in G GjG的直觉模糊特征信息,构建直觉模糊决策矩阵 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)=1j=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]


特别说明:本专栏主要参考郭子雪等所著《直觉模糊多属性决策理论方法及应用研究》书籍,部分代码计算结果与书中有所出入,请仔细甄别!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值