数学建模——多目标规划

1.概念

多目标规划(Multi-Objective Optimization, MOO)是数学规划的一个分支,用于解决同时优化多个相互冲突的目标函数的问题。其核心在于寻找一组"帕累托最优解"(Pareto Optimal Solutions),即在没有其他解能同时改善所有目标的情况下,这些解是最优的。

多目标规划相比前面的单一目标规划,就是目标函数不止一个,前面只有一个目标函数,那么目标函数最小的时候就是答案。但是多目标规划目标函数不止一个,求出的答案也不是每一个目标函数都是最优

常见例题:

物流中心选址,需要同时满足运输成本和建设费用(选址)都较低

投资组合,需要风险尽可能小,收益尽可能大

2.解

1.解的类型

由于目标函数不止一个所以解有三种类型

|-----|-----------------------------------------------------------------|
| 最优解 | 所有目标函数都取到了最优(几乎不存在) |
| 有效解 | 使至少一个目标函数取到最小值但不是所有(如果是所有就是上一种情况) |
| 满意解 | 主要是从决策者的角度,根据决策者的偏好提出的,有的时候决策者要求低给出的要求不高,只要满足要求就认为可以接受,是满意解 |

对于绝大多数问题,决策者偏好的方案都是有效解

2.求解方法

求解之前要对目标函数去量纲,归一化

补充:

去量纲(无量纲化)

去量纲是将不同量纲或单位的特征转换为统一尺度,消除量纲对模型的影响。

归一化

归一化通常指将数据转换为单位范数或特定比例

|------------------|-------------------------------------------------|---------------------------------------------------------|
| 方法 | 核心 | 特点 |
| 线性加权法 | 将多个目标函数通过权重加权求和,转化为单目标优化问题。 | * 权重由决策者主观确定,导致结果可能因偏好不同而变化。 * 简单易行,但对权重敏感,可能遗漏非凸解。 |
| 约束法(主要目标法/参考目标法) | 选定一个主要目标优化,其他目标转化为约束条件(设定容许阈值)。 | * 通过调整阈值可生成不同的Pareto解。 * 需明确次要目标的可接受范围,对阈值设定敏感。 |
| 理想点法 | 以各单目标最优值为"理想值",最小化目标值与理想值的加权平方偏差。 | * 兼顾所有目标与理想值的接近程度,结果更均衡。 * 需预先计算单目标最优值,计算复杂度较高。 |
| 优先级法 | 按目标重要性分层,逐级优化:高优先级目标先最优,低优先级在不劣化高优先级的前提下优化。 | * 严格反映决策者的优先级顺序,但可能牺牲低优先级目标的性能。 * 适用于目标有明确先后次序的场景。 |

其中线性加权法简单常用

线性加权法就是对多目标函数进行加权组合,使其变成单目标规划

step1:确定权系数

step2:写出评价函数

step3:求评价函数最优值

注意:

注意:

1、要将多个目标函数统一 为最大化和最小化问题(不同的加"-")才可以进行加权组合

2、如果目标函数量纲不同,则需要对其进行标准化再进行加权,标准化的方法一般是且标函数除以某一个常量,该常量是这个目标函数的某个取值,具体取何值可根据经验确定

3、对多目标函数进行加权求和是,权重一般由该领域专家给定

3.例题

决策变量

设二元变量 xi​∈{0,1},其中 xi​=1 表示在位置 Ai​ 建设物流中心(i=1,2,...,8)。

约束条件

1.建设数量限制

2.覆盖人口下限

分析完后可以得到以下模型

然后对目标函数去除量纲并且加权

所以目标函数转化为

化简完成就是

原来的模型也就变成了这个

这个就是典型的线性规划了,用linprog求解

4.补充

敏感性分析概述

敏感性分析用于评估模型输出对输入参数变化的敏感程度,广泛应用于金融、工程、项目管理等领域。通过识别关键变量,帮助决策者优化资源分配或降低风险。

单变量敏感性分析

固定其他参数,仅改变一个输入变量,观察输出结果的变化。适用于参数间独立性较强的场景。

步骤示例

  1. 选择目标变量(如净现值NPV)。
  2. 确定待测试的输入参数(如折现率、成本)。
  3. 在合理范围内调整单一参数值(如折现率从5%增至10%)。
  4. 记录输出结果并绘制敏感性曲线。

多变量敏感性分析

同时改变多个输入参数,分析其对输出的综合影响。常用方法包括蒙特卡洛模拟和方差分解法。

蒙特卡洛模拟步骤

  1. 定义输入参数的概率分布(如正态分布、均匀分布)。
  2. 随机生成参数组合并计算输出结果。
  3. 通过统计方法(如相关系数、回归分析)量化敏感性

像上面用linprog之后就可以输入更多可能的权重,根据结果和需求来看是否是最佳结果

相关推荐
shenghaide_jiahu14 小时前
数学建模——非线性规划
数学建模
shenghaide_jiahu20 小时前
数学建模——灰色关联分析
数学建模
Finn_JLU20 小时前
MacTex+Vscode数学建模排版
ide·vscode·数学建模
同元软控2 天前
赋能建模实践,服务教学科研 | 同元软控亮相第十九届数学建模教学与应用会议
数学建模
行然梦实2 天前
论文阅读:《多目标和多目标优化的回顾与评估:方法和算法》
论文阅读·算法·机器学习·数学建模
绿炮火2 天前
【MATLAB】(一)简介
开发语言·数学建模·matlab
tzc_fly2 天前
人类语言驱动物理机制建模的AIVC
数学建模
shenghaide_jiahu2 天前
数学建模——01规划/整数规划
算法·数学建模
行然梦实3 天前
粒子群优化算法(Particle Swarm Optimization, PSO) 求解二维 Rastrigin 函数最小值问题
算法·机器学习·数学建模