1. 多属性决策分析(MCDA)核心原理与实战
1.1 帕累托最优与决策矩阵
帕累托最优解是指在决策空间中,不存在其他解能在所有目标上都不劣于当前解且至少在一个目标上严格优于当前解。数学表达式为:
code复制∀i∈{1,...,m}, f_i(x) ≥ f_i(x*) ∧ ∃j, f_j(x) > f_j(x*)
其中x*为帕累托最优解,f_i为第i个目标函数。
决策矩阵D是MCDA的基础数据结构:
code复制D = [d_ij]_{m×n}
d_ij = 第i个方案在第j个属性下的评价值
实战技巧:构建决策矩阵时建议使用标准化模板:
- 行代表方案(如供应商A/B/C)
- 列代表属性(如价格、质量、交货期)
- 最后增加权重行
1.2 TOPSIS算法完整实现步骤
-
数据规范化(向量归一化法):
python复制def normalize_matrix(matrix): norms = np.sqrt((matrix**2).sum(axis=0)) return matrix / norms -
加权规范化矩阵(熵权法示例):
python复制def entropy_weight(matrix): p = matrix / matrix.sum(axis=0) entropy = -np.sum(p * np.log(p), axis=0) return (1 - entropy) / (1 - entropy).sum() -
理想解确定:
python复制positive_ideal = np.max(v_matrix, axis=0) # 效益型属性 negative_ideal = np.min(v_matrix, axis=0) # 成本型属性 -
距离计算与排序:
python复制S_pos = np.sqrt(((v_matrix - positive_ideal)**2).sum(axis=1)) S_neg = np.sqrt(((v_mat
