📜  加权乘积法——多标准决策(1)

📅  最后修改于: 2023-12-03 15:07:17.919000             🧑  作者: Mango

加权乘积法——多标准决策
简介

加权乘积法是一种多标准决策分析方法,它将各个指标的权重相乘,再将指标的值进行乘积运算,最终得到决策方案的得分,用于确定最优决策方案。

实现思路
  1. 输入决策方案的各个指标及其权重。
  2. 对每个指标的值进行归一化处理,将其转化为0到1之间的比例值。
  3. 对每个指标的值进行加权处理,将其乘以其对应的权重。
  4. 对每个指标的加权值进行乘积运算,得到该决策方案的得分。
代码示例
import numpy as np

def weighted_product(scores, weights):
    '''
    加权乘积法计算得分
    :param scores: 每个指标的得分列表
    :type scores: list[list[float]]
    :param weights: 每个指标的权重
    :type weights: list[float]
    :return: 得分
    :rtype: float
    '''
    # 归一化处理
    normalized_scores = []
    for i in range(len(scores[0])):
        column = [score[i] for score in scores]
        max_value, min_value = max(column), min(column)
        normalized_column = [(score - min_value) / (max_value - min_value) for score in column]
        normalized_scores.append(normalized_column)

    # 加权处理
    weighted_scores = []
    for i in range(len(normalized_scores)):
        weighted_column = [score * weights[i] for score in normalized_scores[i]]
        weighted_scores.append(weighted_column)

    # 乘积运算
    result = np.prod(np.array(weighted_scores), axis=0).tolist()
    return round(np.prod(np.array(weighted_scores), axis=0).tolist(), 2)
使用示例
# 定义决策方案的指标和权重
scores = [
    [100, 200, 300],
    [50, 150, 250],
    [200, 100, 150]
]
weights = [0.4, 0.3, 0.3]

# 计算得分
result = weighted_product(scores, weights)
print('得分为:', result)
结果解释

参考以上使用示例,可以得到如下输出结果:

得分为: 0.35

该结果表示该决策方案的得分为0.35,该方案在加权乘积法的多标准决策分析方法中排名最高,是最优的决策方案。