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

本文介绍了在属性权重完全未知和不完全情形下,基于直觉模糊集的多属性决策方法。首先,通过离差最大化确定属性权重,然后计算方案的综合属性值,最后进行优劣排序。给出了两个示例,分别是公共投资项目和政府公共财政支出绩效的评价,详细展示了计算过程和结果。
摘要由CSDN通过智能技术生成

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 YiY关于属性 G j ∈ G G_{j} \in G GjG的评价值可以表示为 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 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} \leq 1 0μij+νij1。则矩阵 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=1md(F~ij,F~kj)ωj=21k=1mω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=1mDij(ω)=21i=1mk=1mω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=1nDj(ω)=21j=1ni=1mk=1mω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=1nωj2=j=1nDj(ω)=21j=1ni=1mk=1mωj(μijμkj+νijνkj)=1,ωj0(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(ω,λ)=21j=1ni=1mk=1mωj(μijμkj+νijνkj)+4λ(j=1nωj21)(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} } ωjLλL=21i=1mk=1mωj(μijμkj+νijνkj)+21λωj=0=41(j=1nωj21)=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=1mk=1m(μijμkj+νijνkj)]2 i=1mk=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=1ni=1mk=1m(μijμkj+νijνkj)i=1mk=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 YiY关于属性 G j ∈ G G_{j} \in G GjG的直觉模糊特征信息,构建直觉模糊决策矩阵 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)=1j=1n(1μj)ωj,j=1n(ν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=1n(μj)ωj,1j=1n(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 = 0
    for 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 = 0
        for 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 = 1
            nu = 1
            for 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 - mu
            comprehensive_attribute[1][i] = nu
    elif type == 'IFHG':
        for i in range(IIFD_matrix_input.shape[0]):
            mu = 1
            nu = 1
            for 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] = mu
            comprehensive_attribute[1][i] = 1 - nu
    else:
        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 YiY关于属性 G j ∈ G G_{j} \in G GjG的评价值可以表示为 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 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} \leq 1 0μij+νij1。则矩阵 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=1nDj(ω)=21j=1ni=1mk=1mωj(μijμkj+νijνkj)s.t.ωjωjωjj=1nωj2=1,ωj0(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 YiY关于属性 G j ∈ G G_{j} \in G GjG的直觉模糊特征信息,构建直觉模糊决策矩阵 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)=1j=1n(1μj)ωj,j=1n(ν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=1n(μj)ωj,1j=1n(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ω10.200.20ω20.240.25ω30.350.30ω40.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 = 0
        for 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 / 2
    return 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 = 0
    for 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 = 0
        for 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 = 1
            nu = 1
            for 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 - mu
            comprehensive_attribute[1][i] = nu
    elif type == 'IFHG':
        for i in range(IIFD_matrix_input.shape[0]):
            mu = 1
            nu = 1
            for 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] = mu
            comprehensive_attribute[1][i] = 1 - nu
    else:
        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]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值