一、ε约束法

定义

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

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.pswp.cn/pingmian/88441.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/88441.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/88441.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux kernel struct regmap_config结构详解

在 Linux 内核中&#xff0c;struct regmap_config 是 ​Regmap 子系统的核心配置结构体&#xff0c;用于定义如何与底层硬件寄存器进行交互。Regmap&#xff08;Register Map&#xff09;子系统通过抽象不同总线&#xff08;如 I2C、SPI、MMIO 等&#xff09;的寄存器访问细节…

【Python3教程】Python3高级篇之CGI编程

博主介绍:✌全网粉丝23W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。 感兴趣的可…

docker安装Consul笔记

安装过程 详细步骤如下&#xff1a; 首先拉取Consul的Docker镜像&#xff1a; docker pull hashicorp/consul:1.18.1创建Consul的配置文件和数据目录&#xff1a; mkdir -p /srv/docker/consul/data mkdir -p /srv/docker/consul/config在config目录下创建一个config.json配置文…

.net数据脱敏

.NET数据脱敏技术&#xff1a;保障数据安全的有效手段 在当今数字化时代&#xff0c;数据安全至关重要。尤其是涉及到用户的敏感信息&#xff0c;如密码、手机号码等&#xff0c;必须采取有效的措施进行保护。数据脱敏就是这样一种技术&#xff0c;它能够在不影响数据可用性的…

【openp2p】 学习2:源码阅读P2PNetwork和P2PTunnel

【openp2p】 学习1:P2PApp和优秀的go跨平台项目已经做了初步分析。阅读原版工程,感觉工程是一个暴露内网服务端口,让外部可以用的一个实现是一个完整的、跨平台的可商业化的应用。感谢作者需要学习作者的设计思路工程构建 F:\GolandProjects\openp2p\core\p2pnetwork.go通常…

网安学习NO.14

防火墙基础实验 传统防火墙配置实验拓扑图PC&#xff1a; ip 192.168.10.1 255.255.255.0 192.168.10.254 ip dns 114.114.114.114二层交换机 vl 10 ex int e0/0 sw mo ac sw ac vl 10 ex inr e0/1 sw tr en do sw mo tr三层交换机 vl 10 ex int g0/0 sw tr en do sw mo tr ex …

ESP32语音唤醒

两种唤醒方式AfeWakeWord与EspWakeWord对比 底层技术 AfeWakeWord&#xff1a;基于ESP-IDF的AFE框架&#xff08;esp_afe_sr_iface_t&#xff09;&#xff0c;高性能模式&#xff08;AFE_MODE_HIGH_PERF&#xff09;EspWakeWord&#xff1a;基于WakeNet接口&#xff08;esp_wn_…

借助 Wisdom SSH AI 助手,轻松安装 CentOS 8 LNMP 环境

打开Wisdom SSH软件&#xff0c;在AI对话区输入“在CentOS 8服务器安装LNMP环境”&#xff0c;AI助手会按以下步骤分析并执行安装&#xff1a; 安装Nginx 分析&#xff1a;CentOS 8默认软件源可能没有Nginx&#xff0c;所以要先启用Nginx官方软件源&#xff0c;然后才能安装Ngi…

WD0407 40V 7A 超级肖特基二极管,应用于开关汽车工业控制

WD0407 40V 7A 超级肖特基二极管说明​ 产品概述​ WD0407 是一款性能卓越的超级肖特基二极管&#xff0c;专为满足现代电子设备对高效、可靠电源管理的需求而设计。它采用先进的半导体制造工艺&#xff0c;在诸多关键性能指标上表现出色&#xff0c;能够为各类电路提供稳定、高…

卢比危机下的金融破局:科伦坡交易所技术升级作战图

&#x1f30f; 今日南亚风暴眼 印度双重上市机制加速落地&#xff1a;印度国家证券国际交易所&#xff08;NSE IX&#xff09;与科伦坡证券交易所&#xff08;CSE&#xff09;达成技术对接协议&#xff0c;斯企可通过印度GIFT City吸引美元资本&#xff0c;交易时段覆盖全球22小…

upload-labs靶场通关详解:第20关 /.绕过

一、分析源代码// 初始化上传状态标记&#xff0c;默认为false&#xff0c;即文件未上传 $is_upload false; // 初始化消息变量&#xff0c;用于存储错误信息 $msg null;// 检查是否通过POST方式提交了表单&#xff08;点击上传按钮&#xff09; if (isset($_POST[submit])) …

企业用云状态评估

云部署形态及其策略规划成熟度 单云部署&#xff1a; 主要业务负载运行在单一公有云或私有云上 多云/混合云部署 —有清晰战略规划与实施&#xff1a; 业务负载运行在多个云&#xff08;公有云或混合云&#xff09;上&#xff0c;并且企业拥有清晰的多云/混合云战略规划&#x…

STM32G473串口通信-USART/UART配置和清除串口寄存器状态的注意事项

USART和UART配置的区别 如果USART使用的是异步通信&#xff0c;那么UART与USART配置基本相同。 USART配置如下:UART配置如下&#xff1a;如果USART使用的是同步通信&#xff0c;那么UART配置就有差异。首先通信双方都是使用USART的同步通信&#xff0c;一个主机&#xff0c;一个…

Debezium:一款基于CDC的开源数据同步工具

Debezium 是由 Red Hat 开源的一种基于变更数据捕获&#xff08;CDC&#xff09; 的分布式平台&#xff0c;专为实时捕获和传播数据库的变更事件而设计。Debezium 常见的使用场景包括&#xff1a; 实时数据集成&#xff1a;将数据库变更同步到数据仓库或数据湖&#xff0c;支撑…

从面向对象编程语言PHP转到Go时的一些疑惑?

前言 1、php中面向对象编程时 与 Go中的区别&#xff1f; 2、php中最常使用laravel框架&#xff0c;不用过多关注依赖注入和反射&#xff0c;在go中又该如何使用呢&#xff1f;是 舍弃&#xff1f; 本文是一个系统化梳理&#xff0c;帮助从 语言哲学 → 依赖注入在 Go 的现状 →…

Vue3中使用konva插件动态制作海报以及可在画布上随意移动位置

1、下载konva插件 官网地址 npm install vue-konva konva --save2、在主文件中引入&#xff0c;如main.js import VueKonva from vue-konva; app.use(VueKonva);3、组件内使用&#xff0c;我现在的布局是左侧是画布&#xff0c;右侧是相关设置&#xff08;颜色、标题等&#…

政安晨【开源人工智能硬件】【ESP乐鑫篇】 —— 在macOS上部署工具开发环境(小资的非开发者用苹果系统也可以玩乐鑫)

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 前言 开源人工智能硬件会给你带来无限可能&#xff0c;玩开源硬件&#xff0c;环境和工具少…

Vue3 学习教程,从入门到精通,vue3学习中的JavaScript ES6 特性详解与案例(5)

vue3学习中的JavaScript ES6 特性详解与案例 ES6&#xff08;ECMAScript 2015&#xff09;是 JavaScript 的一个重要版本&#xff0c;引入了许多新特性&#xff0c;极大地提升了语言的表达能力和开发效率。本文将详细介绍 ES6 的主要特性&#xff0c;包括 let 和 const 命令、变…

深度学习模型1:理解LSTM和BiLSTM

深度学习模型1&#xff1a;理解LSTM和BiLSTM 因为最近科研复现论文中需要了解单向LSTM和双向LSTM&#xff0c;所以就学习了一下LSTM的基本原理&#xff0c;下面孬孬带着大家一起学习一下&#xff0c;感谢大家的一键三连 一、RNN 因为谈到LSTM&#xff0c;就必不可少的会考虑RNN…

[论文阅读] 软件工程 | 一篇关于开源许可证管理的深度综述

关于开源许可证管理的深度综述 论文标题&#xff1a;Open Source, Hidden Costs: A Systematic Literature Review on OSS License ManagementarXiv:2507.05270 Open Source, Hidden Costs: A Systematic Literature Review on OSS License Management Boyuan Li, Chengwei Liu…