Multiple Criteria Decision-Making,MCDM

版本: 0.0.1(Beta)


  • 权重决策部分对应《城市空间数据分析方法》中 4.2 权重决策部分的理论阐述和 Python 代码实现。

该部分功能包括:

  1. 熵值权重法;
  2. 理想解法(TOPSIS);
  3. AHP 算法;
  4. F-AHP 算法;
  5. ARAS 算法;
  6. BWM 算法(基于 GWO 元启发式算法);
  7. DEMATEL 算法;
  8. IDOCRIW 算法(基于 L-BFGS-B 元启发式算法);
  9. ELECTRE-I 算法;
  10. WASPAS 算法。

TODO:增加更多 MCDM 各类算法。

1 熵值权重法

输入参数:

  • Dataset:为多个备选方案(行)的多个决策准则(列)CSV 格式数据;

输出结果:

  • View Pij: 原始决策准则值占各自决策准则列之和的比例;

  • Ej 列为信息熵;Wj 列为权重值。

MCDM_01

2 理想解法(TOPSIS)

输入参数:

  • Dataset:为多个备选方案(行)的多个决策准则(列)CSV 格式数据;

  • Weights:决策准则权重;

  • Criteria Type:决策准则权重值类型(方向),即值越大越好,还是值越小越好;

输出结果:

  • Relative Closeness 为到正理想解的相对接近度,及对应备选方案的排序;同时打印了 Dataset 输入数据,方便查看。

MCDM_01

3 AHP 算法

输入参数:

  • Criteria:决策准则字段;

  • Alternatives:备选方案字段;

  • View Criteria Pairs:得到决策准则字段两两比较输入的顺序列表,用于定义 Pairvise Criteria Scale 输入行的值,即判断矩阵;

  • Pairvise Criteria Scale: 决策准则字段两两比较输入值,生产判断矩阵;

  • Get Pairwise Alternatives:对应决策准则输入备选方案的两两比较值,用于生成备选方案判断矩阵;

输出结果:

  • View Pairwiese Criteria Matrix and Weights:查看生产的判断矩阵,及决策准则权重值;

  • Calculate Weight Matrix:汇总决策准则之间和各准则对备选方案之间的权重值,计算得到基于决策准则的备选方案得分 global_priority 列。

MCDM_01

4 F-AHP 算法

同 AHP 算法,但是判断矩阵的构建使用的是三角模糊数(triangular fuzzy number,TFN)。

输入参数:

  • Critetia:决策准则字段;

  • Alternatives:备选方案字段;

  • Configure Pairwise Criterias:根据生成的两两比较决策准则对输入比较值,用于生成决策准则判断矩阵;

  • Get Pairwise Alternatives:对应决策准则输入备选方案的两两比较值,用于生成备选方案判断矩阵;

输出结果:

  • View Pairwise Criteria Matrix and weights:查看生成的决策准则判断矩阵,及决策准则权重值;

  • 汇总决策准则之间和各准则对备选方案之间的权重值,计算得到基于决策准则的备选方案得分 global_priority 列。

MCDM_01

5 ARAS 算法

输入参数:

  • Dataset:为多个备选方案(行)的多个决策准则(列)CSV 格式数据;

  • Weight of Criteria:决策准则权重;

  • Optimization Direction:决策准则权重值类型(方向),即值越大越好,还是值越小越好;

  • Save to File:存储结果文件路径名;

输出结果:

  • degree of the alternative utility 备选方案得分。

MCDM_01

6 BWM 算法(基于 GWO 元启发式算法)

c

  • Most Important Criteria:与最佳决策准则的成对比较(判断)向量;

  • Least Important Criteria:与最差决策准则的成对比较(判断)向量;

  • Population Size:灰狼群初始化数量(c);

  • Iterations:迭代次数(为 GWO 输入参数);

  • Verbose:查看解算过程中 对应给定迭代次数输出相关信息;

输出结果:

  • 决策准则权重。

MCDM_01

7 DEMATEL 算法

输入参数:

  • Relation Matrix (Dataset):因子关系(影响,判断)矩阵。

输出结果:

  • D + R: 影响度和被影响度之和为,代表该因子在系统中的核心作用程度,为中心度(Prominence);

  • D - R:代表该因子对系统贡献的净效应,为原因度(Relation);

  • Weight:因子权重;

  • 对应的中心度和原因度的四象限图。

MCDM_01

8 IDOCRIW 算法(基于 L-BFGS-B 元启发式算法)

输入参数:

  • Dataset:为多个备选方案(行)的多个决策准则(列)CSV 格式数据;

  • Optimization Direction:决策准则权重值类型(方向),即值越大越好,还是值越小越好;

输出结果:

  • 决策准则权重向量。

MCDM_01

9 ELECTRE-I 算法

输入参数:

  • Dataset:由定性等级评估决策矩阵获得的评分系统;

  • Criteria Weight:决策准则的权重;

  • C_hat:满意度阈值,最大值为1;

  • C_hat:不满意度阈值,最小值为0;

输出结果:

  • 满意度/一致性(concordance)和不满意度/不一致(discordance)矩阵(指数);排名图,排名靠前的核心(kernel)备选方案(绿色),核心之外的备选方案(红色)。

MCDM_01

10 WASPAS 算法

输入参数:

  • Dataset:(决策矩阵)为多个备选方案(行)的多个决策准则(列)CSV 格式数据;

  • Criteria Weight:决策准则权重;

  • Optimization Direction:决策准则权重值类型(方向),即值越大越好,还是值越小越好;

  • Lambda value: 组合参数,位于[0,1]之间,如果值为0,则为WPM方法;如果值为1,则为WSM方法。

  • Save to File:存储结果文件路径名;

输出结果:

  • WPM方法、WSM方法和WASPAS方法各自计算结果的返回值。

MCDM_01