(全部都是公开资料,不代写论文,请勿盲目订阅)

      2025年数学建模美赛期间,会发布思路和代码,赛前半价,赛前会发布往年美赛的经典案例,赛题会结合最新款的chatgpt  o1 pro 分析,会根据赛题难度,选择合适的题目着重分析,没有代写论文服务,只会发布思路和代码,因为赛制要求,不会回复私信。内容可能达不到大家预期,请不要盲目订阅。已开通200美元/月的chatgpt pro会员,会充分利用chatgpt  o1 pro进行分析发布。没有二次收费,2025年所有数学建模竞赛的思路都会发布到此专栏内,只需订阅一次。        

 

优劣解距离法(TOPSIS,Technique for Order Preference by Similarity to Ideal Solution)是多属性决策分析中的一种常用方法。它基于对比优劣解距离的原则,通过计算各备选方案与理想解和负理想解的距离,来判断方案的优劣。TOPSIS在实际应用中具有很强的直观性和可操作性,广泛应用于各类决策问题中,例如评估供应商、项目选择、人员招聘等。

TOPSIS的基本思想:
该方法假定每个决策问题有多个评价指标(属性),这些指标中有些是"收益型"(越大越好),有些是"成本型"(越小越好)。TOPSIS的基本步骤包括:

  1. 构建决策矩阵,表示各个备选方案在各个指标上的值。
  2. 对决策矩阵进行标准化处理,以消除量纲的影响。
  3. 确定理想解(最佳方案)和负理想解(最差方案)。
  4. 计算每个备选方案与理想解和负理想解的欧氏距离。
  5. 根据距离排序,选择最优解。

TOPSIS的步骤详解

1. 构建决策矩阵

假设我们有 mmm 个备选方案,和 nnn 个评价指标,决策矩阵 XXX 可以表示为:

其中 xijx_{ij}xij​ 表示第 iii 个备选方案在第 jjj 个指标上的评分。

2. 标准化决策矩阵

为了消除各指标之间的量纲差异,需要对决策矩阵进行标准化。标准化方法有多种,常用的为向量标准化方法,公式如下:

其中,rijr_{ij}rij​ 为标准化后的值,xijx_{ij}xij​ 为原始决策矩阵中的值。

3. 确定理想解和负理想解
  • 理想解:每个指标的最优值,通常是收益型指标的最大值和成本型指标的最小值。
  • 负理想解:每个指标的最差值,通常是收益型指标的最小值和成本型指标的最大值。

通过以上步骤,可以得到理想解 A+A^+A+ 和负理想解 A−A^-A−,其对应的值分别为:

4. 计算欧氏距离

理想解与各备选方案的欧氏距离计算公式如下:

其中,di+d_i^+di+​ 表示第 iii 个方案与理想解的距离,di−d_i^-di−​ 表示第 iii 个方案与负理想解的距离。

5. 计算相对接近度

相对接近度 CiC_iCi​ 通过下式计算:

其中,CiC_iCi​ 越大表示该方案越接近理想解,即该方案越优。

6. 排序和选择最优解

根据相对接近度 CiC_iCi​ 的值进行排序,选择 CiC_iCi​ 最大的备选方案作为最优解。


TOPSIS的应用

TOPSIS方法已经广泛应用于多个领域,如:

  1. 供应商选择:评估不同供应商的价格、交货期、质量等多个指标,选择最佳供应商。
  2. 项目选择:在多个项目中选择最优项目,考虑预算、时间、风险等多方面因素。
  3. 人员招聘:根据候选人的学历、经验、技能等多个指标,选择最适合的候选人。

在实际应用中,TOPSIS可以根据具体问题的需求,结合不同的技术手段进行优化。例如,通过集成学习方法,结合多个TOPSIS模型的预测结果,进一步提高决策的准确性。


TOPSIS的改进和扩展

随着科技的进步和问题的复杂化,TOPSIS方法也在不断演化。一些改进和扩展方法包括:

  1. 模糊TOPSIS:用于处理评价指标存在不确定性或模糊性的情况,通过模糊集合理论引入模糊数。
  2. 加权TOPSIS:通过为不同的评价指标赋予权重,强调某些重要指标,提升决策的准确性。
  3. 基于神经网络的TOPSIS:通过神经网络学习权重和距离函数,从而提高决策精度。

TOPSIS算法的Python实现

下面是一个用Python实现TOPSIS方法的代码示例:



import numpy as np

# 1. 构建决策矩阵
decision_matrix = np.array([
    [250, 8, 0.9],
    [200, 10, 0.85],
    [300, 12, 0.8],
    [180, 15, 0.75]
])

# 2. 标准化决策矩阵
def normalize(matrix):
    norm_matrix = np.copy(matrix)
    norm = np.linalg.norm(matrix, axis=0)
    for i in range(len(matrix)):
        norm_matrix[i] = matrix[i] / norm
    return norm_matrix

norm_matrix = normalize(decision_matrix)

# 3. 确定理想解和负理想解
ideal_solution = np.max(norm_matrix, axis=0)
negative_ideal_solution = np.min(norm_matrix, axis=0)

# 4. 计算欧氏距离
def euclidean_distance(matrix, ideal_solution, negative_ideal_solution):
    distance_to_ideal = np.linalg.norm(matrix - ideal_solution, axis=1)
    distance_to_negative_ideal = np.linalg.norm(matrix - negative_ideal_solution, axis=1)
    return distance_to_ideal, distance_to_negative_ideal

distance_to_ideal, distance_to_negative_ideal = euclidean_distance(norm_matrix, ideal_solution, negative_ideal_solution)

# 5. 计算相对接近度
def relative_closeness(distance_to_ideal, distance_to_negative_ideal):
    return distance_to_negative_ideal / (distance_to_ideal + distance_to_negative_ideal)

closeness = relative_closeness(distance_to_ideal, distance_to_negative_ideal)

# 6. 排序和选择最优解
best_option = np.argmax(closeness)

print(f"相对接近度:{closeness}")
print(f"最优解索引:{best_option}")

代码解释:

  1. 构建决策矩阵:我们用一个3列的示例矩阵表示4个备选方案的3个指标。
  2. 标准化矩阵:使用欧几里得范数对每列进行标准化。
  3. 计算理想解和负理想解:分别取标准化矩阵每列的最大值和最小值作为理想解和负理想解。
  4. 计算欧氏距离:分别计算每个方案到理想解和负理想解的欧氏距离。
  5. 计算相对接近度:根据距离计算相对接近度,越接近理想解,值越大。
  6. 排序并选择最优解:选择接近理想解的方案作为最优解。

结论

TOPSIS方法作为一种多属性决策方法,因其简单直观、易于实现而被广泛应用。随着研究的深入,TOPSIS的改进和扩展也为其应用范围提供了更大的灵活性。通过使用Python或其他编程语言实现TOPSIS,我们可以快速处理和分析复杂的决策问题,从而为决策者提供可靠的决策支持。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐