当前位置: 首页 > news >正文

数学建模:多目标规划:ε约束法、 理想点法

一、ε约束法

定义

ε约束法通过将部分目标函数转化为约束条件,保留一个主要目标进行优化。

1、选择一个主要目标 fk​(x) 进行优化。

2、其他目标 fi​(x) 转化为约束 fi​(x)≤εi​,其中 εi​ 是决策者设定的容许阈值。

​原理​

​目标选择​​:决策者选择一个最重要的目标作为优化目标。

约束转换​​:其余目标被限制在某个可接受范围内。

​参数调整​​:通过调整 εi​,可以探索不同的Pareto最优解。

求解代码

clear
clcprob = optimproblem('ObjectiveSense', 'min');
x = optimvar('x', 2, 'LowerBound', 0);%定义约束
prob.Constraints.con1 = 0.5*x(1) + 0.25*x(2) <= 8;
prob.Constraints.con2 = 0.2*x(1) + 0.2*x(2) <= 4;
prob.Constraints.con3 = x(1) + 5*x(2) <= 72;
prob.Constraints.con4 = x(1) + x(2) >= 10;%ε约束:污染 ≤ 33
prob.Constraints.epsilon_con = x(1) + 2*x(2) <= 33;%主目标:利润最大化(转换为最小化 -利润)
prob.Objective = -2*x(1) - 3*x(2);[sol, fval] = solve(prob);
fprintf('最优解: x1 = %.2f, x2 = %.2f\n', sol.x(1), sol.x(2));
fprintf('利润: %.2f, 污染: %.2f\n', -fval, sol.x(1) + 2*sol.x(2));

二、 理想点法

定义

理想点法通过计算各单目标的最优解(理想点),然后寻找最接近理想点的解。

  1. 先分别优化每个单目标,得到理想值 fi∗​。

  2. 构造评价函数,最小化目标值与理想值的加权距离(如欧氏距离)。

 

 

求解代码 

clear
clcprob = optimproblem('ObjectiveSense', 'min');
x = optimvar('x', 2, 'LowerBound', 0);%定义约束
prob.Constraints.con1 = 0.5*x(1) + 0.25*x(2) <= 8;
prob.Constraints.con2 = 0.2*x(1) + 0.2*x(2) <= 4;
prob.Constraints.con3 = x(1) + 5*x(2) <= 72;
prob.Constraints.con4 = x(1) + x(2) >= 10;%计算理想点(单目标优化)
prob1 = prob;
%利润最大化
prob1.Objective = -2*x(1) - 3*x(2); 
[sol1, fval1] = solve(prob1);
%利润理想值
f1_ideal = -fval1; prob2 = prob;
%污染最小化
prob2.Objective = x(1) + 2*x(2); 
[sol2, fval2] = solve(prob2);
%污染理想值
f2_ideal = fval2; %构造理想点法的二次规划
prob_ideal = prob;
prob_ideal.Objective = (-2*x(1) - 3*x(2) - (-53))^2 + (x(1) + 2*x(2) - 10)^2;[sol_ideal, fval_ideal] = solve(prob_ideal);
fprintf('最优解: x1 = %.2f, x2 = %.2f\n', sol_ideal.x(1), sol_ideal.x(2));
fprintf('利润: %.2f, 污染: %.2f\n', 2*sol_ideal.x(1) + 3*sol_ideal.x(2), sol_ideal.x(1) + 2*sol_ideal.x(2));

http://www.dtcms.com/a/273111.html

相关文章:

  • 【大模型推理论文阅读】Enhancing Latent Computation in Transformerswith Latent Tokens
  • pharokka phold--快速噬菌体注释工具
  • 深入了解 Vim 编辑器:从入门到精通
  • MySQL高级特性全面解析:约束、表关系、多表查询与事务
  • 深入剖析C++ RPC框架原理:有栈协程与分布式系统设计
  • 技术学习_检索增强生成(RAG)
  • QT数据交互全解析:JSON处理与HTTP通信
  • 云原生技术与应用-Docker高级管理--Dockerfile镜像制作
  • 西部数据WD授权代理商-深圳同袍存储科技有限公司
  • 医学+AI!湖北中医药大学信息工程学院与和鲸科技签约101数智领航计划
  • Web后端开发工程师AI协作指南
  • 龙迅#LT7911E适用于TPYE-C/DP/EDP转MIPIDSI/LVDS应用功能,支持DSC 分辨率缩放,分辨率高达4K60HZ!
  • 寒武纪MLU370编程陷阱:float32精度丢失的硬件级解决方案——混合精度训练中的定点数补偿算法设计
  • Linux指令与权限
  • uniapp滚动组件, HuimayunScroll:高性能移动端滚动组件的设计与实现
  • window显示驱动开发—XR_BIAS 和 PresentDXGI
  • Spring原理揭秘--ApplicationContext(二)
  • bRPC源码解析:深入理解bthread协程机制与上下文切换的底层实现
  • 单相/三相可选:光伏并网双向计量电表技术白皮书
  • 【研报复现】方正金工:(1)适度冒险 因子
  • 【网络】Linux 内核优化实战 - net.ipv4.tcp_keepalive_intv
  • Linux 命令行与 shell 脚本编程大全4版学习-1了解Linux
  • tk.mybatis多层括号嵌套SQL查询
  • 本地部署文档管理系统 Paperless-ngx 并实现外部访问
  • 腾讯云分为几个区域
  • K线连续涨跌统计与分析工具
  • C++的类中的虚拟继承【底层剖析(配图解)】
  • Java多线程:核心技术与实战指南
  • 鸿蒙智行6月交付新车52747辆 单日交付量3651辆
  • 如何设计一个登录管理系统:单点登录系统架构设计