1.1 属性权重完全未知情形下的直觉模糊多属性决策方法

1.1.1 问题描述

  设某多属性决策问题有 m m 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},\cdots,Y_{m}\right\} Y={Y1​,Y2​,⋯,Ym​}评价每个方案的属性(或指标)为 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj​(j=1,2,⋯,n),记属性集为 G = { G 1 , G 2 , ⋯ , G n } G=\left\{G_{1},G_{2},\cdots,G_{n}\right\} G={G1​,G2​,⋯,Gn​},属性 G j ( j = 1 , 2 ⋯ , n ) G_{j}\left(j=1,2\cdots,n\right) Gj​(j=1,2⋯,n)的权重向量 ω = ( ω 1 , ω 2 , ⋯ , ω n ) T \boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},\cdots,\omega_{n}\right)}^{T} ω=(ω1​,ω2​,⋯,ωn​)T 完 全 未 知 \color{blue}{完全未知} 完全未知。假设方案 Y i ∈ Y Y_{i} \in Y Yi​∈Y关于属性 G j ∈ G G_{j} \in G Gj​∈G的评价值可以表示为 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,\cdots,m;j=1,2,\cdots,n\right) F~ij​=⟨μij​,νij​⟩(i=1,2,⋯,m;j=1,2,⋯,n), F ~ i j \tilde{F}_{ij} F~ij​为直觉模糊集,其中 μ 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} \leq 1 0≤μij​+νij​≤1。则矩阵 F = ( ⟨ μ i j , ν i j ⟩ ) m × n F = {\left(\left\langle \mu_{ij},\nu_{ij} \right\rangle\right)}_{m×n} F=(⟨μij​,νij​⟩)m×n​为该多属性决策问题的直觉模糊决策矩阵,现在的问题是依据直觉模糊决策矩阵 F F F, 如 何 通 过 确 定 属 性 权 重 向 量 ω = ( ω 1 , ω 2 , ⋯ , ω n ) T , 得 到 一 个 有 效 的 决 策 分 析 方 法 对 所 有 方 案 进 行 优 劣 排 序 \color{red}{如何通过确定属性权重向量\boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},\cdots,\omega_{n}\right)}^{T},得到一个有效的决策分析方法对所有方案进行优劣排序} 如何通过确定属性权重向量ω=(ω1​,ω2​,⋯,ωn​)T,得到一个有效的决策分析方法对所有方案进行优劣排序。

1.1.2 属性权重的确定方法

  直觉模糊多属性决策分析,一般是对这些方案综合属性值的排序比较。如果所有方案在属性 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj​(j=1,2,⋯,n)下的属性值差异很小,则说明该属性对方案决策与排序所起的作用很小;反之,如果属性 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj​(j=1,2,⋯,n)能使所有方案的属性值有较大差异,则说明其对方案决策与排序起重要作用。所以,从对决策方案进行排序的角度考虑,方案属性值偏差越大的属性应该赋予越大的权重。特别地,如果所有方案在属性 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj​(j=1,2,⋯,n)下的属性值无差异,则属性 G j ( j = 1 , 2. ⋯ , n ) G_{j}\left(j=1,2.\cdots,n\right) Gj​(j=1,2.⋯,n)对方案排序将不起作用,可令其权重为0。
  对于属性 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj​(j=1,2,⋯,n),用 D i j ( ω ) D_{ij}\left(\omega\right) Dij​(ω)表示方案 Y i Y_{i} Yi​与其他方案 Y k Y_{k} Yk​之间的距离,则可定义
D i j ( ω ) = ∑ k = 1 m d ( F ~ i j , F ~ k j ) ω j = 1 2 ∑ k = 1 m ω j ( ∣ μ i j − μ k j ∣ + ∣ ν i j − ν k j ∣ ) ( i = 1 , 2 , ⋯ , m ; j = 1 , 2 , ⋯ , n ) (1.1) \color{blue} { \begin{aligned} D_{ij}\left(\omega\right) &= \sum_{k=1}^{m}{d\left(\tilde{F}_{ij},\tilde{F}_{kj}\right)\omega_{j}} \\ &= \frac{1}{2}\sum_{k=1}^{m}\omega_{j}\left(|\mu_{ij} - \mu_{kj}| + |\nu_{ij} - \nu_{kj}|\right)\left(i=1,2,\cdots,m;j=1,2,\cdots,n\right) \tag{1.1}\\ \end{aligned} } Dij​(ω)​=k=1∑m​d(F~ij​,F~kj​)ωj​=21​k=1∑m​ωj​(∣μij​−μkj​∣+∣νij​−νkj​∣)(i=1,2,⋯,m;j=1,2,⋯,n)​(1.1)
  令
D j ( ω ) = ∑ i = 1 m D i j ( ω ) = 1 2 ∑ i = 1 m ∑ k = 1 m ω j ( ∣ μ i j − μ k j ∣ + ∣ ν i j − ν k j ∣ ) ( i = 1 , 2 , ⋯ , m ; j = 1 , 2 , ⋯ , n ) (1.2) \color{blue} { \begin{aligned} D_{j}\left(\omega\right) &= \sum_{i=1}^{m}D_{ij}\left(\omega\right) \\ &= \frac{1}{2}\sum_{i=1}^{m}\sum_{k=1}^{m}\omega_{j}\left(|\mu_{ij} - \mu_{kj}| + |\nu_{ij} - \nu_{kj}|\right)\left(i=1,2,\cdots,m;j=1,2,\cdots,n\right) \tag{1.2} \end{aligned} } Dj​(ω)​=i=1∑m​Dij​(ω)=21​i=1∑m​k=1∑m​ωj​(∣μij​−μkj​∣+∣νij​−νkj​∣)(i=1,2,⋯,m;j=1,2,⋯,n)​(1.2)
  则 D j ( ω ) D_{j}\left(\omega\right) Dj​(ω)表示对属性 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj​(j=1,2,⋯,n)而言,所有方案与其他方案的总离差。根据上述分析,权重向量 ω = ( ω 1 , ω 2 , ⋯ , ω n ) T \boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},\cdots,\omega_{n}\right)}^{T} ω=(ω1​,ω2​,⋯,ωn​)T的选择应是所有属性对所有方案的总离差最大。为此构建以下目标函数:
max ⁡ D ( ω ) = ∑ j = 1 n D j ( ω ) = 1 2 ∑ j = 1 n ∑ i = 1 m ∑ k = 1 m ω j ( ∣ μ i j − μ k j ∣ + ∣ ν i j − ν k j ∣ ) (1.3) \color{red} { \begin{aligned} \max D\left(\omega\right) &= \sum_{j=1}^{n} D_{j}\left(\omega\right) \\ &= \frac{1}{2}\sum_{j=1}^{n}\sum_{i=1}^{m}\sum_{k=1}^{m}\omega_{j}\left(|\mu_{ij} - \mu_{kj}| + |\nu_{ij} - \nu_{kj}|\right) \tag{1.3} \end{aligned} } maxD(ω)​=j=1∑n​Dj​(ω)=21​j=1∑n​i=1∑m​k=1∑m​ωj​(∣μij​−μkj​∣+∣νij​−νkj​∣)​(1.3)
  于是,求解权重向量 ω = ( ω 1 , ω 2 , ⋯ , ω n ) T \boldsymbol{\omega}={\left(\omega_{1},\omega_{2},\cdots,\omega_{n}\right)}^{T} ω=(ω1​,ω2​,⋯,ωn​)T就等价于求解如下最优化模型:
{ max ⁡ D ( ω ) = ∑ j = 1 n D j ( ω ) = 1 2 ∑ j = 1 n ∑ i = 1 m ∑ k = 1 m ω j ( ∣ μ i j − μ k j ∣ + ∣ ν i j − ν k j ∣ ) s . t . ∑ j = 1 n ω j 2 = 1 , ω j ≥ 0 ( j = 1 , 2 , ⋯ , n ) (1.4) \color{blue} { \left\{ \begin{aligned} \max D\left(\omega\right) &= \sum_{j=1}^{n} D_{j}\left(\omega\right) = \frac{1}{2}\sum_{j=1}^{n}\sum_{i=1}^{m}\sum_{k=1}^{m}\omega_{j}\left(|\mu_{ij} - \mu_{kj}| + |\nu_{ij} - \nu_{kj}|\right) \\ s.t.\sum_{j=1}^{n}\omega_{j}^{2} &= 1,\omega_{j} \geq 0 \left(j=1,2,\cdots,n\right) \\ \end{aligned} \right. \tag{1.4} } ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​maxD(ω)s.t.j=1∑n​ωj2​​=j=1∑n​Dj​(ω)=21​j=1∑n​i=1∑m​k=1∑m​ωj​(∣μij​−μkj​∣+∣νij​−νkj​∣)=1,ωj​≥0(j=1,2,⋯,n)​(1.4)
  为了求解最优化模型 ( 1.4 ) \left(1.4\right) (1.4),可构造拉格朗日函数
L ⁡ ( ω , λ ) = 1 2 ∑ j = 1 n ∑ i = 1 m ∑ k = 1 m ω j ( ∣ μ i j − μ k j ∣ + ∣ ν i j − ν k j ∣ ) + λ 4 ( ∑ j = 1 n ω j 2 − 1 ) (1.5) \color{red} { \operatorname{L}\left(\omega,\lambda\right) = \frac{1}{2}\sum_{j=1}^{n} \sum_{i=1}^{m} \sum_{k=1}^{m} \omega_{j} \left(|\mu_{ij} - \mu_{kj}| + |\nu_{ij} - \nu_{kj}|\right) + \frac{\lambda}{4}\left(\sum_{j=1}^{n}\omega_{j}^{2} - 1\right) \tag{1.5} } L(ω,λ)=21​j=1∑n​i=1∑m​k=1∑m​ωj​(∣μij​−μkj​∣+∣νij​−νkj​∣)+4λ​(j=1∑n​ωj2​−1)(1.5)
  对其求偏导数,并令偏导数等于0,可得
{ ∂ L ∂ ω j = 1 2 ∑ i = 1 m ∑ k = 1 m ω j ( ∣ μ i j − μ k j ∣ + ∣ ν i j − ν k j ∣ ) + 1 2 λ ω j = 0 ∂ L ∂ λ = 1 4 ( ∑ j = 1 n ω j 2 − 1 ) = 0 (1.6) \color{blue} { \left\{ \begin{aligned} \frac{\partial L}{\partial \omega_{j}} &= \frac{1}{2} \sum_{i=1}^{m} \sum_{k=1}^{m} \omega_{j} \left(|\mu_{ij} - \mu_{kj}| + |\nu_{ij} - \nu_{kj}|\right) + \frac{1}{2}\lambda\omega_{j} = 0 \\ \frac{\partial L}{\partial \lambda} &= \frac{1}{4}\left(\sum_{j=1}^{n}\omega_{j}^{2} - 1\right) = 0 \\ \end{aligned} \right. \tag{1.6} } ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​∂ωj​∂L​∂λ∂L​​=21​i=1∑m​k=1∑m​ωj​(∣μij​−μkj​∣+∣νij​−νkj​∣)+21​λωj​=0=41​(j=1∑n​ωj2​−1)=0​(1.6)
  解之可得
ω j ∗ = ∑ i = 1 m ∑ k = 1 m ( ∣ μ i j − μ k j ∣ + ∣ ν i j − ν k j ∣ ) ∑ j = 1 n [ ∑ i = 1 m ∑ k = 1 m ( ∣ μ i j − μ k j ∣ + ∣ ν i j − ν k j ∣ ) ] 2 (1.7) \color{red} { \omega_{j}^{*} = \frac{\sum_{i=1}^{m} \sum_{k=1}^{m} \left(|\mu_{ij} - \mu_{kj}| + |\nu_{ij} - \nu_{kj}|\right)} {\sqrt{\sum_{j=1}^{n}{\left[\sum_{i=1}^{m} \sum_{k=1}^{m} \left(|\mu_{ij} - \mu_{kj}| + |\nu_{ij} - \nu_{kj}|\right)\right]}^{2}}} \tag{1.7} } ωj∗​=∑j=1n​[∑i=1m​∑k=1m​(∣μij​−μkj​∣+∣νij​−νkj​∣)]2 ​∑i=1m​∑k=1m​(∣μij​−μkj​∣+∣νij​−νkj​∣)​(1.7)
  对 ω j ∗ \omega_{j}^{*} ωj∗​进行归一化处理,可得属性权重
ω j = ∑ i = 1 m ∑ k = 1 m ( ∣ μ i j − μ k j ∣ + ∣ ν i j − ν k j ∣ ) ∑ j = 1 n ∑ i = 1 m ∑ k = 1 m ( ∣ μ i j − μ k j ∣ + ∣ ν i j − ν k j ∣ ) (1.8) \color{red} { \omega_{j} = \frac{\sum_{i=1}^{m} \sum_{k=1}^{m} \left(|\mu_{ij} - \mu_{kj}| + |\nu_{ij} - \nu_{kj}|\right)} {\sum_{j=1}^{n}\sum_{i=1}^{m} \sum_{k=1}^{m} \left(|\mu_{ij} - \mu_{kj}| + |\nu_{ij} - \nu_{kj}|\right)} \tag{1.8} } ωj​=∑j=1n​∑i=1m​∑k=1m​(∣μij​−μkj​∣+∣νij​−νkj​∣)∑i=1m​∑k=1m​(∣μij​−μkj​∣+∣νij​−νkj​∣)​(1.8)

1.1.3 属性权重完全未知情形下的直觉模糊多属性决策步骤与实例分析

  根据以上分析,属性权重完全未知情形下基于离差最大化的直觉模糊多属性决策的步骤可归纳如下。

  S.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},\cdots,G_{n}\right\} G={G1​,G2​,⋯,Gn​}。

  S.2 获取多属性决策问题中方案 Y i ∈ Y Y_{i} \in Y Yi​∈Y关于属性 G j ∈ G G_{j} \in G Gj​∈G的直觉模糊特征信息,构建直觉模糊决策矩阵 F F F。

  S.3 利用式 ( 1.8 ) (1.8) (1.8)确定各属性的权重,得到属性权重向量 ω = ( ω 1 , ω 2 , ⋯ , ω n ) T \boldsymbol{\omega}={\left(\omega_{1},\omega_{2},\cdots,\omega_{n}\right)}^{T} ω=(ω1​,ω2​,⋯,ωn​)T。

  S.4 利用式 ( 1.9 ) (1.9) (1.9)或式 ( 1.10 ) (1.10) (1.10)计算方案的综合属性值 d ~ i \tilde{d}_{i} d~i​:
d ~ i = ⟨ μ i , ν i ⟩ = IFWA ⁡ ω ( A ~ 1 , A ~ 2 , ⋯ , A ~ n ) = ⟨ 1 − ∏ j = 1 n ( 1 − μ j ) ω j , ∏ j = 1 n ( ν j ) ω j ⟩ (1.9) \tilde{d}_{i} = \left\langle\mu_{i},\nu_{i}\right\rangle = \operatorname{IFWA}_{\omega}\left(\tilde{A}_{1},\tilde{A}_{2},\cdots,\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.9} d~i​=⟨μi​,νi​⟩=IFWAω​(A~1​,A~2​,⋯,A~n​)=⟨1−j=1∏n​(1−μj​)ωj​,j=1∏n​(νj​)ωj​⟩(1.9)
d ~ i = ⟨ μ i , ν i ⟩ = IFWG ⁡ ω ( A ~ 1 , A ~ 2 , ⋯ , A ~ n ) = ⟨ ∏ j = 1 n ( μ j ) ω j , 1 − ∏ j = 1 n ( 1 − ν j ) ω j ⟩ (1.10) \tilde{d}_{i} = \left\langle\mu_{i},\nu_{i}\right\rangle = \operatorname{IFWG}_{\omega}\left(\tilde{A}_{1},\tilde{A}_{2},\cdots,\tilde{A}_{n}\right) = \left\langle \prod_{j=1}^{n}{\left(\mu_{j}\right)}^{\omega_{j}},1 - \prod_{j=1}^{n}{\left(1 - \nu_{j}\right)}^{\omega_{j}} \right\rangle \tag{1.10} d~i​=⟨μi​,νi​⟩=IFWGω​(A~1​,A~2​,⋯,A~n​)=⟨j=1∏n​(μj​)ωj​,1−j=1∏n​(1−νj​)ωj​⟩(1.10)

  S.5 利用觉模糊数的得分数和精确度公式,计算方案 Y i Y_{i} Yi​的综合属性值 d ~ i \tilde{d}_{i} d~i​的得分值 s ⁡ ( d ~ i ) \operatorname{s}\left(\tilde{d}_{i}\right) s(d~i​)和精确值 h ⁡ ( d ~ i ) \operatorname{h}\left(\tilde{d}_{i}\right) h(d~i​),确定 d ~ i ( i = 1 , 2 , ⋯ , m ) \tilde{d}_{i}\left(i=1,2,\cdots,m\right) d~i​(i=1,2,⋯,m)的不增排列顺序,并利用排序结果对方案 Y i ( i = 1 , 2 , ⋯ , m ) Y_{i}\left(i=1,2,\cdots,m\right) Yi​(i=1,2,⋯,m)进行优劣排序。

   示 例 1.1 \color{red}{示例1.1} 示例1.1

  考虑公共投资项目绩效评问题。公共投资项目绩效评估要同时考虑公共投资的经济性、效率性、有效性和社会公平性,可以从管理绩效( 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 i ( i = 1 , 2 , 3 , 4 , 5 ) Y_i\left(i=1,2,3,4,5\right) Yi​(i=1,2,3,4,5)关于属性 G j ( j = 1 , 2 , 3 , 4 , 5 ) G_j\left(j=1,2,3,4,5\right) Gj​(j=1,2,3,4,5)的直觉模糊评价结果(表3-1),各属性权重完全未知。

表3-1 公共投资项目评价的直模糊决策阵F

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 ⟩ \left\langle0.7,0.3\right\rangle ⟨0.7,0.3⟩ ⟨ 0.7 , 0.2 ⟩ \left\langle0.7,0.2\right\rangle ⟨0.7,0.2⟩ ⟨ 0.4 , 0.5 ⟩ \left\langle0.4,0.5\right\rangle ⟨0.4,0.5⟩ ⟨ 0.7 , 0.3 ⟩ \left\langle0.7,0.3\right\rangle ⟨0.7,0.3⟩ ⟨ 0.6 , 0.2 ⟩ \left\langle0.6,0.2\right\rangle ⟨0.6,0.2⟩
Y 2 Y_{2} Y2​ ⟨ 0.6 , 0.2 ⟩ \left\langle0.6,0.2\right\rangle ⟨0.6,0.2⟩ ⟨ 0.4 , 0.3 ⟩ \left\langle0.4,0.3\right\rangle ⟨0.4,0.3⟩ ⟨ 0.5 , 0.3 ⟩ \left\langle0.5,0.3\right\rangle ⟨0.5,0.3⟩ ⟨ 0.7 , 0.1 ⟩ \left\langle0.7,0.1\right\rangle ⟨0.7,0.1⟩ ⟨ 0.5 , 0.2 ⟩ \left\langle0.5,0.2\right\rangle ⟨0.5,0.2⟩
Y 3 Y_{3} Y3​ ⟨ 0.8 , 0.1 ⟩ \left\langle0.8,0.1\right\rangle ⟨0.8,0.1⟩ ⟨ 0.6 , 0.2 ⟩ \left\langle0.6,0.2\right\rangle ⟨0.6,0.2⟩ ⟨ 0.4 , 0.3 ⟩ \left\langle0.4,0.3\right\rangle ⟨0.4,0.3⟩ ⟨ 0.2 , 0.6 ⟩ \left\langle0.2,0.6\right\rangle ⟨0.2,0.6⟩ ⟨ 0.3 , 0.4 ⟩ \left\langle0.3,0.4\right\rangle ⟨0.3,0.4⟩
Y 4 Y_{4} Y4​ ⟨ 0.5 , 0.4 ⟩ \left\langle0.5,0.4\right\rangle ⟨0.5,0.4⟩ ⟨ 0.3 , 0.6 ⟩ \left\langle0.3,0.6\right\rangle ⟨0.3,0.6⟩ ⟨ 0.6 , 0.3 ⟩ \left\langle0.6,0.3\right\rangle ⟨0.6,0.3⟩ ⟨ 0.3 , 0.4 ⟩ \left\langle0.3,0.4\right\rangle ⟨0.3,0.4⟩ ⟨ 0.5 , 0.3 ⟩ \left\langle0.5,0.3\right\rangle ⟨0.5,0.3⟩
Y 5 Y_{5} Y5​ ⟨ 0.6 , 0.4 ⟩ \left\langle0.6,0.4\right\rangle ⟨0.6,0.4⟩ ⟨ 0.5 , 0.4 ⟩ \left\langle0.5,0.4\right\rangle ⟨0.5,0.4⟩ ⟨ 0.6 , 0.2 ⟩ \left\langle0.6,0.2\right\rangle ⟨0.6,0.2⟩ ⟨ 0.5 , 0.3 ⟩ \left\langle0.5,0.3\right\rangle ⟨0.5,0.3⟩ ⟨ 0.7 , 0.2 ⟩ \left\langle0.7,0.2\right\rangle ⟨0.7,0.2⟩

  代码如下:

import numpy as np## 计算各属性的权重
def calculate_attributions_weight(IIFD_matrix_input):# IIFD_matrix_input的尺寸为(m×2×n),其中m表示方案数,n表示属性数# 按公式(3.8)计算各属性的权重# 初始化保存结果向量attributions_weight_vector = np.zeros((IIFD_matrix_input.shape[2]))# 计算分母部分denominator_part = 0for j in range(IIFD_matrix_input.shape[2]):for i in range(IIFD_matrix_input.shape[0]):for k in range(IIFD_matrix_input.shape[0]):denominator_part += np.abs(IIFD_matrix_input[i][0][j] - IIFD_matrix_input[k][0][j]) + \np.abs(IIFD_matrix_input[i][1][j] - IIFD_matrix_input[k][1][j])# 计算每一个属性的权重for j in range(IIFD_matrix_input.shape[2]):tmp_sum = 0for i in range(IIFD_matrix_input.shape[0]):for k in range(IIFD_matrix_input.shape[0]):tmp_sum += (np.abs(IIFD_matrix_input[i][0][j] - IIFD_matrix_input[k][0][j]) + \np.abs(IIFD_matrix_input[i][1][j] - IIFD_matrix_input[k][1][j]))attributions_weight_vector[j] = tmp_sum / denominator_part# 返回权重结果return attributions_weight_vector## 计算各方案的综合属性值
def calculate_comprehensive_attribute(IIFD_matrix_input, weight_matrix, type='IFHA'):# IIFD_matrix_input: np.array, size:(m,2,n),m表示方案数,2表示直觉模糊,n表示属性数# weight_matrixe: np.array,size:n,n表示属性数# type: 算子类型,取值“IFHA”或“IFHG”两种情况,分别表示直觉模糊混合平均算子、直觉模糊混合几何算子# 初始化综合属性矩阵comprehensive_attribute = np.zeros((IIFD_matrix_input.shape[1],IIFD_matrix_input.shape[0]))# 按type取值计算综合属性值if type == 'IFHA':for i in range(IIFD_matrix_input.shape[0]):mu = 1nu = 1for j in range(IIFD_matrix_input.shape[2]):mu *= np.power(1-IIFD_matrix_input[i][0][j],weight_matrix[j])nu *= np.power(IIFD_matrix_input[i][1][j],weight_matrix[j])comprehensive_attribute[0][i] = 1 - mucomprehensive_attribute[1][i] = nuelif type == 'IFHG':for i in range(IIFD_matrix_input.shape[0]):mu = 1nu = 1for j in range(IIFD_matrix_input.shape[2]):mu *= np.power(IIFD_matrix_input[i][0][j],weight_matrix[j])nu *= np.power(1-IIFD_matrix_input[i][1][j],weight_matrix[j])comprehensive_attribute[0][i] = mucomprehensive_attribute[1][i] = 1 - nuelse:print("TypeError: type取值为IFHA或IFHG!")# 返回结果return comprehensive_attribute## 计算各方案的综合得分值并按降序进行排序
def calculate_comprehensive_score_and_rank(comprehensive_attribute):# comprehensive_attribute:综合属性矩阵,数据类型:np.array,尺寸: (2,m),m表示方案数scores = comprehensive_attribute[0] - comprehensive_attribute[1]index = np.argsort(-scores)return scores,index# S.0 输入,每一行表示一个方案的各属性评价结果[u_i,v_i]
IFD_matrix_31 = 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]]])
# S.1 计算各属性的权重
attributions_weight = calculate_attributions_weight(IIFD_matrix_31)
print('\n'+'+'*80)
print("各属性的权重结果为:\n",attributions_weight)
print('+'*80)
# S.2 计算各方案的IFHA或IFHG综合属性值
comprehensive_attribute_IFHA = calculate_comprehensive_attribute(IIFD_matrix_31, attributions_weight)  # 按IFHA计算综合属性值
comprehensive_attribute_IFHG = calculate_comprehensive_attribute(IIFD_matrix_31, attributions_weight, type='IFHG')  # 按IFHG计算综合属性值
print('\n'+'+'*80)
print("\n各方案的IIFA综合属性值为:\n",comprehensive_attribute_IFHA)
print("各方案的IIFG综合属性值为:\n",comprehensive_attribute_IFHG)
print('+'*80)
# S.3 计算各方案的直觉模糊数得分值并进行降序排序
comprehensive_scores_IFHA, comprehensive_index_IFHA = calculate_comprehensive_score_and_rank(comprehensive_attribute_IFHA)
comprehensive_scores_IFHG, comprehensive_index_IFHG = calculate_comprehensive_score_and_rank(comprehensive_attribute_IFHG)
print('\n'+'+'*80)
print('\n各方案的IFHA得分值:\n',comprehensive_scores_IFHA)
print('\n各方案的IFHA排序结果:\n',comprehensive_index_IFHA+1)
print('\n各方案的IFHG得分值:\n',comprehensive_scores_IFHG)
print('\n各方案的IFHG排序结果:\n',comprehensive_index_IFHG+1)
print('+'*80)

  计算结果如下:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
各属性的权重结果为:
[0.1744186 0.23255814 0.13953488 0.29069767 0.1627907 ]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

各方案的IIFA综合属性值为:
[[0.65369058 0.56749571 0.49742754 0.42202371 0.5710271 ]
[0.27444759 0.19012692 0.28893394 0.40293897 0.29835377]]
各方案的IIFG综合属性值为:
[[0.63137508 0.54040898 0.38696269 0.39258609 0.55926484]
[0.29589873 0.21226252 0.374723 0.42794271 0.31548227]]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

各方案的IFHA得分值:
[0.37924299 0.37736879 0.2084936 0.01908474 0.27267334]

各方案的IFHA排序结果:
[1 2 5 3 4]

各方案的IFHG得分值:
[ 0.33547636 0.32814645 0.01223969 -0.03535663 0.24378257]

各方案的IFHG排序结果:
[1 2 5 3 4]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


1.2 属性权重信息不完全情形下的直觉模糊多属性决策方法

1.2.1 问题描述

  设某多属性决策问题有 m m m个方案 Y i ( i = 1 , 2 , ⋯ , m ) Y_{i}\left(i=1,2,\cdots,m\right) Yi​(i=1,2,⋯,m),组成方案集 Y = { Y 1 , Y 2 , ⋯ , Y m } Y = \left\{Y_{1},Y_{2},\cdots,Y_{m}\right\} Y={Y1​,Y2​,⋯,Ym​}评价每个方案的属性(或指标)为 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj​(j=1,2,⋯,n),记属性集为 G = { G 1 , G 2 , ⋯ , G n } G=\left\{G_{1},G_{2},\cdots,G_{n}\right\} G={G1​,G2​,⋯,Gn​},属性 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj​(j=1,2,⋯,n)的权重向量 ω = ( ω 1 , ω 2 , ⋯ , ω n ) T \boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},\cdots,\omega_{n}\right)}^{T} ω=(ω1​,ω2​,⋯,ωn​)T, 权 重 信 息 不 完 全 \color{blue}{权重信息不完全} 权重信息不完全,其中 ω ‾ j ≤ ω j ≤ ω ‾ j ( j = 1 , 2 , ⋯ , n ) {\underline{\omega}_{j} \leq \omega_{j} \leq {\overline{\omega}_{j}}}\left(j=1,2,\cdots,n\right) ω​j​≤ωj​≤ωj​(j=1,2,⋯,n)。假设方案 Y i ∈ Y Y_{i} \in Y Yi​∈Y关于属性 G j ∈ G G_{j} \in G Gj​∈G的评价值可以表示为 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,\cdots,m;j=1,2,\cdots,n\right) F~ij​=⟨μij​,νij​⟩(i=1,2,⋯,m;j=1,2,⋯,n), F ~ i j \tilde{F}_{ij} F~ij​为直觉模糊集,其中 μ 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} \leq 1 0≤μij​+νij​≤1。则矩阵 F = ( ⟨ μ i j , ν i j ⟩ ) m × n F = {\left(\left\langle \mu_{ij},\nu_{ij} \right\rangle\right)}_{m×n} F=(⟨μij​,νij​⟩)m×n​为该多属性决策问题的直觉模糊决策矩阵,现在的问题是依据直觉模糊决策矩阵 F F F, 如 何 通 过 确 定 属 性 权 重 向 量 ω = ( ω 1 , ω 2 , ⋯ , ω n ) T , 得 到 一 个 有 效 的 决 策 分 析 方 法 对 所 有 方 案 进 行 优 劣 排 序 \color{red}{如何通过确定属性权重向量\boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},\cdots,\omega_{n}\right)}^{T},得到一个有效的决策分析方法对所有方案进行优劣排序} 如何通过确定属性权重向量ω=(ω1​,ω2​,⋯,ωn​)T,得到一个有效的决策分析方法对所有方案进行优劣排序。

1.2.2 属性权重的确定方法

  确定属性权重的目标是使所有方案与其他方案的总离差最大在权重满足条件 ω ‾ j ≤ ω j ≤ ω ‾ j ( j = 1 , 2 , ⋯ , n ) {\underline{\omega}_{j} \leq \omega_{j} \leq {\overline{\omega}_{j}}}\left(j=1,2,\cdots,n\right) ω​j​≤ωj​≤ωj​(j=1,2,⋯,n)的情况下,求解权重向量就等价于求解以下最优化模型:

{ max ⁡ D ( ω ) = ∑ j = 1 n D j ( ω ) = 1 2 ∑ j = 1 n ∑ i = 1 m ∑ k = 1 m ω j ( ∣ μ i j − μ k j ∣ + ∣ ν i j − ν k j ∣ ) s . t . ω ‾ j ≤ ω j ≤ ω ‾ j ∑ j = 1 n ω j 2 = 1 , ω j ≥ 0 ( j = 1 , 2 , ⋯ , n ) (1.11) \color{blue} { \left\{ \begin{aligned} & \max D\left(\omega\right) = \sum_{j=1}^{n} D_{j}\left(\omega\right) = \frac{1}{2}\sum_{j=1}^{n}\sum_{i=1}^{m}\sum_{k=1}^{m}\omega_{j}\left(|\mu_{ij} - \mu_{kj}| + |\nu_{ij} - \nu_{kj}|\right) \\ & s.t.{\underline{\omega}_{j} \leq \omega_{j} \leq {\overline{\omega}_{j}}} \sum_{j=1}^{n}\omega_{j}^{2} = 1,\omega_{j} \geq 0 \left(j=1,2,\cdots,n\right) \\ \end{aligned} \right. \tag{1.11} } ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​​maxD(ω)=j=1∑n​Dj​(ω)=21​j=1∑n​i=1∑m​k=1∑m​ωj​(∣μij​−μkj​∣+∣νij​−νkj​∣)s.t.ω​j​≤ωj​≤ωj​j=1∑n​ωj2​=1,ωj​≥0(j=1,2,⋯,n)​(1.11)

  求解最优化模型 ( 1.11 ) (1.11) (1.11),可得属性 G j ( j = 1 , 2 , ⋯ , n ) G_{j}\left(j=1,2,\cdots,n\right) Gj​(j=1,2,⋯,n)的权重向量 ω = ( ω 1 , ω 2 , ⋯ , ω n ) T \boldsymbol{\omega} = {\left(\omega_{1},\omega_{2},\cdots,\omega_{n}\right)}^{T} ω=(ω1​,ω2​,⋯,ωn​)T。

1.2.3 属性权重不完全情形下的直觉模糊多属性决策步骤与实例分析

  根据以上分析,属性权重不完全情形下基于离差最大化的直觉模糊多属性决策的步骤可归纳如下。

  S.1 确定多属性决问题的方集 Y = { Y 1 , Y 2 , ⋯ , Y m } Y = \left\{Y_{1},Y_{2},\cdots,Y_{m}\right\} Y={Y1​,Y2​,⋯,Ym​}和属性集 G = { G 1 , G 2 , ⋯ , G n } G=\left\{G_{1},G_{2},\cdots,G_{n}\right\} G={G1​,G2​,⋯,Gn​}。

  S.2 获取多属性决策问题中方案 Y i ∈ Y Y_{i} \in Y Yi​∈Y关于属性 G j ∈ G G_{j} \in G Gj​∈G的直觉模糊特征信息,构建直觉模糊决策矩阵 F F F。

  S.3 利用式 ( 1.11 ) (1.11) (1.11)确定各属性的权重,得到属性权重向量 ω = ( ω 1 , ω 2 , ⋯ , ω n ) T \boldsymbol{\omega}={\left(\omega_{1},\omega_{2},\cdots,\omega_{n}\right)}^{T} ω=(ω1​,ω2​,⋯,ωn​)T。

  S.4 利用式 Y i Y_{i} Yi​或计算方案的综合属性值 d ~ i \tilde{d}_{i} d~i​:
d ~ i = ⟨ μ i , ν i ⟩ = IFWA ⁡ ω ( A ~ 1 , A ~ 2 , ⋯ , A ~ n ) = ⟨ 1 − ∏ j = 1 n ( 1 − μ j ) ω j , ∏ j = 1 n ( ν j ) ω j ⟩ \tilde{d}_{i} = \left\langle\mu_{i},\nu_{i}\right\rangle = \operatorname{IFWA}_{\omega}\left(\tilde{A}_{1},\tilde{A}_{2},\cdots,\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 d~i​=⟨μi​,νi​⟩=IFWAω​(A~1​,A~2​,⋯,A~n​)=⟨1−j=1∏n​(1−μj​)ωj​,j=1∏n​(νj​)ωj​⟩
d ~ i = ⟨ μ i , ν i ⟩ = IFWG ⁡ ω ( A ~ 1 , A ~ 2 , ⋯ , A ~ n ) = ⟨ ∏ j = 1 n ( μ j ) ω j , 1 − ∏ j = 1 n ( 1 − ν j ) ω j ⟩ \tilde{d}_{i} = \left\langle\mu_{i},\nu_{i}\right\rangle = \operatorname{IFWG}_{\omega}\left(\tilde{A}_{1},\tilde{A}_{2},\cdots,\tilde{A}_{n}\right) = \left\langle \prod_{j=1}^{n}{\left(\mu_{j}\right)}^{\omega_{j}},1 - \prod_{j=1}^{n}{\left(1 - \nu_{j}\right)}^{\omega_{j}} \right\rangle d~i​=⟨μi​,νi​⟩=IFWGω​(A~1​,A~2​,⋯,A~n​)=⟨j=1∏n​(μj​)ωj​,1−j=1∏n​(1−νj​)ωj​⟩

  S.5 利用觉模糊数的得分数和精确度公式,计算方案 Y i Y_{i} Yi​的综合属性值 d ~ i \tilde{d}_{i} d~i​的得分值 s ( d ~ i ) s\left(\tilde{d}_{i}\right) s(d~i​)和精确值 h ( d ~ i ) h\left(\tilde{d}_{i}\right) h(d~i​),确定 d ~ i ( i = 1 , 2 , ⋯ , m ) \tilde{d}_{i}\left(i=1,2,\cdots,m\right) d~i​(i=1,2,⋯,m)的不增排列顺序,并利用排序结果对方案 Y i ( i = 1 , 2 , ⋯ , m ) Y_{i}\left(i=1,2,\cdots,m\right) Yi​(i=1,2,⋯,m)进行优劣排序。

   示 例 1.2 \color{red}{示例1.2} 示例1.2

  考虑地方政府公财政支绩效评价问题。公共财政支出绩效评价是对财政支出活动的经济性、效率性和有效性进行评价,可以从教育支出绩效( G 1 G_1 G1​)、养老支出绩效( G 2 G_2 G2​)、就业支出绩效( G 3 G_3 G3​)和基础设施建设支出绩效( G 4 G_4 G4​)四个维度进行评估国假设通过调研与专家咨询可以获得五个地区 Y i ( i = 1 , 2 , 3 , 4 , 5 ) Y_i\left(i=1,2,3,4,5\right) Yi​(i=1,2,3,4,5)关于属性 G j ( j = 1 , 2 , 3 , 4 ) G_j\left(j=1,2,3,4\right) Gj​(j=1,2,3,4)的直觉模糊评价结果,如表3-2所示。

表3-2 公共财政支绩效评价的加权直觉模糊决策矩阵F

G 1 G_{1} G1​ G 2 G_{2} G2​ G 3 G_{3} G3​ G 4 G_{4} G4​
Y 1 Y_{1} Y1​ ⟨ 0.51 , 0.44 ⟩ \left\langle0.51,0.44\right\rangle ⟨0.51,0.44⟩ ⟨ 0.45 , 0.32 ⟩ \left\langle0.45,0.32\right\rangle ⟨0.45,0.32⟩ ⟨ 0.40 , 0.55 ⟩ \left\langle0.40,0.55\right\rangle ⟨0.40,0.55⟩ ⟨ 0.35 , 0.50 ⟩ \left\langle0.35,0.50\right\rangle ⟨0.35,0.50⟩
Y 2 Y_{2} Y2​ ⟨ 0.45 , 0.50 ⟩ \left\langle0.45,0.50\right\rangle ⟨0.45,0.50⟩ ⟨ 0.36 , 0.45 ⟩ \left\langle0.36,0.45\right\rangle ⟨0.36,0.45⟩ ⟨ 0.45 , 0.40 ⟩ \left\langle0.45,0.40\right\rangle ⟨0.45,0.40⟩ ⟨ 0.70 , 0.20 ⟩ \left\langle0.70,0.20\right\rangle ⟨0.70,0.20⟩
Y 3 Y_{3} Y3​ ⟨ 0.65 , 0.30 ⟩ \left\langle0.65,0.30\right\rangle ⟨0.65,0.30⟩ ⟨ 0.55 , 0.40 ⟩ \left\langle0.55,0.40\right\rangle ⟨0.55,0.40⟩ ⟨ 0.50 , 0.42 ⟩ \left\langle0.50,0.42\right\rangle ⟨0.50,0.42⟩ ⟨ 0.45 , 0.50 ⟩ \left\langle0.45,0.50\right\rangle ⟨0.45,0.50⟩
Y 4 Y_{4} Y4​ ⟨ 0.60 , 0.25 ⟩ \left\langle0.60,0.25\right\rangle ⟨0.60,0.25⟩ ⟨ 0.75 , 0.15 ⟩ \left\langle0.75,0.15\right\rangle ⟨0.75,0.15⟩ ⟨ 0.65 , 0.25 ⟩ \left\langle0.65,0.25\right\rangle ⟨0.65,0.25⟩ ⟨ 0.50 , 0.35 ⟩ \left\langle0.50,0.35\right\rangle ⟨0.50,0.35⟩
Y 5 Y_{5} Y5​ ⟨ 0.55 , 0.30 ⟩ \left\langle0.55,0.30\right\rangle ⟨0.55,0.30⟩ ⟨ 0.50 , 0.35 ⟩ \left\langle0.50,0.35\right\rangle ⟨0.50,0.35⟩ ⟨ 0.55 , 0.15 ⟩ \left\langle0.55,0.15\right\rangle ⟨0.55,0.15⟩ ⟨ 0.55 , 0.20 ⟩ \left\langle0.55,0.20\right\rangle ⟨0.55,0.20⟩

  如果属性 G j ( j = 1 , 2 , 3 , 4 ) G_{j}\left(j=1,2,3,4\right) Gj​(j=1,2,3,4)的权重 ω j ( j = 1 , 2 , 3 , 4 ) \omega_{j}\left(j=1,2,3,4\right) ωj​(j=1,2,3,4)除了满足 ∑ j = 1 n = 1 \sum_{j=1}^{n}=1 ∑j=1n​=1还满足以下条件:
0.15 ≤ ω 1 ≤ 0.20 , 0.20 ≤ ω 2 ≤ 0.24 , 0.25 ≤ ω 3 ≤ 0.35 , 0.30 ≤ ω 4 ≤ 0.40 0.15≤\omega_{1}≤0.20,0.20≤\omega_{2}≤0.24,0.25≤\omega_{3}≤0.35,0.30≤\omega_{4}≤0.40 0.15≤ω1​≤0.20,0.20≤ω2​≤0.24,0.25≤ω3​≤0.35,0.30≤ω4​≤0.40
  下面对五个地区 Y i ( i = 1 , 2 , 3 , 4 , 5 ) Y_i\left(i=1,2,3,4,5\right) Yi​(i=1,2,3,4,5)的政府公共财政支出绩效进行优劣排序。

  代码如下:

import numpy as np
from scipy.optimize import linprog,OptimizeResult## 计算各属性权重的系数
def calculate_attributions_weight_coefficient(IFD_matrix_input):# IFD_matrix_input:直觉模糊矩阵,尺寸为(m,2,n),其中m表示方案数、n表示属性数weight_coefficient = np.zeros((IFD_matrix_input.shape[2]))for j in range(IFD_matrix_input.shape[2]):tmp_weight = 0for i in range(IFD_matrix_input.shape[0]):for k in range(IFD_matrix_input.shape[0]):tmp_weight += np.abs(IFD_matrix_input[i][0][j] - IFD_matrix_input[k][0][j]) + \np.abs(IFD_matrix_input[i][1][j] - IFD_matrix_input[k][1][j])weight_coefficient[j] = tmp_weight / 2return weight_coefficient## 计算各属性的权重
def calculate_attributions_weight(IIFD_matrix_input):# IIFD_matrix_input的尺寸为(m×2×n),其中m表示方案数,n表示属性数# 按公式(3.11)计算各属性的权重# 初始化保存结果向量attributions_weight_vector = np.zeros((IIFD_matrix_input.shape[2]))# 计算分母部分denominator_part = 0for j in range(IIFD_matrix_input.shape[2]):for i in range(IIFD_matrix_input.shape[0]):for k in range(IIFD_matrix_input.shape[0]):denominator_part += np.abs(IIFD_matrix_input[i][0][j] - IIFD_matrix_input[k][0][j]) + \np.abs(IIFD_matrix_input[i][1][j] - IIFD_matrix_input[k][1][j])# 计算每一个属性的权重for j in range(IIFD_matrix_input.shape[2]):tmp_sum = 0for i in range(IIFD_matrix_input.shape[0]):for k in range(IIFD_matrix_input.shape[0]):tmp_sum += (np.abs(IIFD_matrix_input[i][0][j] - IIFD_matrix_input[k][0][j]) + \np.abs(IIFD_matrix_input[i][1][j] - IIFD_matrix_input[k][1][j]))attributions_weight_vector[j] = tmp_sum / denominator_part# 返回权重结果return attributions_weight_vector## 计算各方案的综合属性值
def calculate_comprehensive_attribute(IIFD_matrix_input, weight_matrix, type='IFHA'):# IIFD_matrix_input: np.array, size:(m,2,n),m表示方案数,2表示直觉模糊,n表示属性数# weight_matrixe: np.array,size:n,n表示属性数# type: 算子类型,取值“IFHA”或“IFHG”两种情况,分别表示直觉模糊混合平均算子、直觉模糊混合几何算子# 初始化综合属性矩阵comprehensive_attribute = np.zeros((IIFD_matrix_input.shape[1],IIFD_matrix_input.shape[0]))# 按type取值计算综合属性值if type == 'IFHA':for i in range(IIFD_matrix_input.shape[0]):mu = 1nu = 1for j in range(IIFD_matrix_input.shape[2]):mu *= np.power(1-IIFD_matrix_input[i][0][j],weight_matrix[j])nu *= np.power(IIFD_matrix_input[i][1][j],weight_matrix[j])comprehensive_attribute[0][i] = 1 - mucomprehensive_attribute[1][i] = nuelif type == 'IFHG':for i in range(IIFD_matrix_input.shape[0]):mu = 1nu = 1for j in range(IIFD_matrix_input.shape[2]):mu *= np.power(IIFD_matrix_input[i][0][j],weight_matrix[j])nu *= np.power(1-IIFD_matrix_input[i][1][j],weight_matrix[j])comprehensive_attribute[0][i] = mucomprehensive_attribute[1][i] = 1 - nuelse:print("TypeError: type取值为IFHA或IFHG!")# 返回结果return comprehensive_attribute## 计算各方案的综合得分值并按降序进行排序
def calculate_comprehensive_score_and_rank(comprehensive_attribute):# comprehensive_attribute:综合属性矩阵,数据类型:np.array,尺寸: (2,m),m表示方案数scores = comprehensive_attribute[0] - comprehensive_attribute[1]index = np.argsort(-scores)return scores,index# S.0 输入,每一行表示一个方案的各属性评价结果[u_i,v_i]
IFD_matrix_32 = np.array([[[0.51,0.45,0.40,0.35],[0.44,0.32,0.55,0.50]],[[0.45,0.36,0.45,0.70],[0.50,0.45,0.40,0.20]],[[0.65,0.55,0.50,0.45],[0.30,0.40,0.42,0.50]],[[0.60,0.75,0.65,0.50],[0.25,0.15,0.25,0.35]],[[0.55,0.50,0.55,0.55],[0.30,0.35,0.15,0.20]]])
# S.1 计算各属性权重的系数
weight_coefficient = calculate_attributions_weight_coefficient(IFD_matrix_32)
print('\n'+'+'*80)
print("各属性权重的系数为:\n",weight_coefficient)
print('+'*80)
# S.2 求解最优属性权重
A_eq = np.array([[1,1,1,1]])
B_eq = np.array([1])
boundaries = np.array([[0.15,0.20],[0.20,0.24],[0.25,0.35],[0.30,0.40]])
weight_callback = linprog(weight_coefficient,A_eq=A_eq,b_eq=B_eq,bounds=((0.15,0.20),(0.20,0.24),(0.25,0.35),(0.30,0.40)))  # 线性规划求解
weight = weight_callback.x  # 获得计算结果
print('\n'+'+'*80)
print("各属性权重为:\n",weight)
print('+'*80)# S.3 计算各方案的IFHA或IFHG综合属性值
comprehensive_attribute_IFHA = calculate_comprehensive_attribute(IFD_matrix_32, weight)  # 按IFHA计算综合属性值
comprehensive_attribute_IFHG = calculate_comprehensive_attribute(IFD_matrix_32, weight, type='IFHG')  # 按IFHG计算综合属性值
print('\n'+'+'*80)
print("\n各方案的IIFA综合属性值为:\n",comprehensive_attribute_IFHA)
print("各方案的IIFG综合属性值为:\n",comprehensive_attribute_IFHG)
print('+'*80)
# S.4 计算各方案的直觉模糊数得分值并进行降序排序
comprehensive_scores_IFHA, comprehensive_index_IFHA = calculate_comprehensive_score_and_rank(comprehensive_attribute_IFHA)
comprehensive_scores_IFHG, comprehensive_index_IFHG = calculate_comprehensive_score_and_rank(comprehensive_attribute_IFHG)
print('\n'+'+'*80)
print('\n各方案的IFHA得分值:\n',comprehensive_scores_IFHA)
print('\n各方案的IFHA排序结果:\n',comprehensive_index_IFHA+1)
print('\n各方案的IFHG得分值:\n',comprehensive_scores_IFHG)
print('\n各方案的IFHG排序结果:\n',comprehensive_index_IFHG+1)
print('+'*80)

  计算结果如下:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
各属性权重的系数为:
[2.26 3.12 3.14 3.4 ]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
各属性权重为:
[0.2 0.24 0.26 0.3 ]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

各方案的IIFA综合属性值为:
[[0.42201097 0.52446071 0.53288306 0.63096607 0.53847598]
[0.44886096 0.34946976 0.40893517 0.24464408 0.23019363]]
各方案的IIFG综合属性值为:
[[0.41499327 0.48698969 0.5223549 0.61191828 0.53756186]
[0.46424529 0.38237144 0.41929149 0.25960627 0.24717379]]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

各方案的IFHA得分值:
[-0.02684998 0.17499095 0.12394788 0.38632199 0.30828234]

各方案的IFHA排序结果:
[4 5 2 3 1]

各方案的IFHG得分值:
[-0.04925202 0.10461825 0.10306341 0.35231201 0.29038807]

各方案的IFHG排序结果:
[4 5 2 3 1]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


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

Part III.S1. 基于离差最大化的直觉模糊多属性决策方法相关推荐

  1. Part III.S3. 对方案有偏好的直觉模糊多属性决策方法

    3.1 问题描述   设某多属性决策问题有 m m m个方案 Y i ( i = 1 , 2 , ⋯ , m ) Y_{i}\left(i=1,2,\cdots,m\right) Yi​(i=1,2, ...

  2. 区间直觉模糊多属性决策方法及matlab应用

    对原有的区间直觉模糊得分函数进行改进,定义了带风险偏好的得分函数,然后根据得分函数度区间直觉模糊多属性问题进行决策. 一.原理 在矩阵中,决策值为区间直觉模糊数,例如决策值([0.6,0.7],[0. ...

  3. 前景理论、灰靶决策的直觉模糊多属性决策方法及matlab应用

    1.前景理论 Kahneman和Tversky提出的前景理论修正了传统决策的期望效用理论,并构建了一种新的决策框架模型.它假设险决策过程由编辑和评价两个阶段构成.在第一个阶段中,个体凭借框架(fram ...

  4. 基于离差最大化的区间数多属性权重确定与TOPSIS方法及matlab应用

    在多属性决策问题中,可以根据属性之间的差异或重要性程度等,确定属性的权重,该种方法称为离差最大化.在属性的离差最大化确定权重后,根据WAA算子集结加权决策矩阵,然后在利用TOPSIS思想进行排序. 1 ...

  5. 前景理论的直觉模糊多属性决策及matlab

    一.决策步骤 二.算例分析 5个方案,6个属性,直觉模糊决策矩阵

  6. matlab求离差阵,基于离差最大化的区间多属性决策分析及matlab应用

    基于离差最大化的区间多属性决策分析 针对区间数多属性决策问题属性权重的确定,针对原属性权重已知且属性值为区间数的多属性决策问题,考虑到原属性值的差异及属性本身的重要度,采用EW 型区间距离,基于所有属 ...

  7. 基于离差最大化的多属性决策方法及matlab应用

    1.基于离差最大化的多属性决策方法 若所有方案在属性uj下的属性值差异越小,则说明属性对方案决策所起的作用越小:反之越重要.从对方案进行排序的角度考虑,方案属性值偏差越大的属性应该赋予较大的权重. 步 ...

  8. 直觉模糊有计算机知识嘛,多源直觉模糊信息系统的知识获取方法

    摘要: 人工智能是当前信息科学理论和应用研究中的一个热点领域.随着计算机科学与技术的快速发展,特别是计算机网络的飞速发展,人类生产生活的各个领域都产生了大量数据信息.这些数据信息的类型日渐复杂,且规模 ...

  9. 直觉模糊的TODIM多属性决策方法及matlab应用

    直觉模糊的TODIM多属性决策方法及matlab应用 TODIM 方法是根据决策者对收益和损失的不同偏好反映,构造方案两两比较的优势度矩阵,通过个体优势度集结,形成各个待评价方案的总体优势度,最后根据 ...

最新文章

  1. 机器学习方法三要素-阿里云大学
  2. 【ARM】ARM汇编程序设计(五) str和ldr
  3. NgRx Store createSelector 返回的 selector 执行取数逻辑的单步调试
  4. Redis作者antirez:开源维护者的挣扎
  5. wp8.1 Study11:APP里文件读写和使用XML和Json序列化
  6. 每次请求刷新token的时间
  7. 找不到该项目,请确认该项目的位置的解决办法
  8. PHP框架开发:二、从何处开始?URL
  9. 安卓WindowManager注入事件如何跳出进程间安全限制
  10. 在R中使用Primer3和NCBI-BLAST进行高通量引物设计
  11. 某个蝰蛇音效的卡刷包代码分析
  12. 华为版计算机软件,Huawei华为手机PC客户端软件
  13. arduino 有源 蜂鸣器_(二十)arduino入门:蜂鸣器的使用
  14. 机器如何猜你所想?阿里小蜜预测平台揭秘 1
  15. 图像增强/颜色管理/3A
  16. 解读谷歌财报:17亿美元罚款致利润缩减,流量成本激增已迎来下行拐点
  17. Psoc Creator入门——EZI2C 通信
  18. SQL Server Intergration Services(SSIS)
  19. 淘宝API接口系列,获取购买到的商品订单列表,卖出的商品订单列表,订单详情,订单物流,买家信息,收货地址列表,买家token
  20. 如何用微信朋友圈引起客户注意?

热门文章

  1. python数据分析考试题库_Python数据分析与数据可视化章节考试题库
  2. Wind量化接口常用错误状态码
  3. Python实战系列-上海银行间同业拆借利率最新报错解决方案
  4. #十二、编写三角形类Triangle,初始化三个属性,分别是三条边的长度,定义一个计算并打印周长的函数 #十三、编写等腰三角形类EWtriangle,继承于三角形类,初始化只用传一个腰长和一个底长,定
  5. c语言用定时器按键发音,c语言中怎样设置计时器?
  6. SpringCloud系列之熔断器Hystrix
  7. c++7-1 交换最小值和最大值
  8. 省协湖北中心 计算机科学与技术,国家知识产权局专利局专利审查协作湖北中心...
  9. 动态相关系数dcc_【分享吧】基于DCCMVGARCH模型的期货与股票市场收益率波动的动态相关分析...
  10. 一文了解DCC-GARCH模型