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

数学建模:多目标优化算法

🔆 文章首发于我的个人博客:欢迎大佬们来逛逛

数学建模:多目标优化算法

多目标优化

分别求权重方法

算法流程:

  1. 两个目标权重求和,化为单目标函数,然后求解最优值

min ⁡ x ∑ i = 1 m w i F i ( x ) s.t.  g ( x ) ⩽ 0 h ( x ) = 0 \begin{array}{ll}\min _{x} & \sum_{i=1}^{m} {w_{i} F_{i}(x)} \\\\\text { s.t. } & g(x) \leqslant 0 \\\\& h(x)=0\end{array} minx s.t. i=1mwiFi(x)g(x)0h(x)=0

clc;clear;%% 指定初始解
x0 = zeros(3,1);
% <线性>不等约束
A = [2,1,3];
B = [6];
% <线性>等式约束
Aeq = [];
Beq = [];
% 变量上下限
LB = zeros(3,1);
UB = 1*ones(3,1);
%% 乘以权重,化为单目标求最优值
% 有几个目标函数,就写几个权重,然后依次相乘再相加
W1 =0.5;
W2 = 0.5;
fun = @(x) (-x(1)^2+x(2)^2-x(2)*x(3)^2)*W1 + (2*x(1)^2-x(2)^3+2*x(2)*x(3))*W2;%% 取得非线性不等式约束函数
nonlcon = @noLinearLimited;
%% 求解fun单目标最优值
[x,fval] = fmincon(fun,x0,A,B,Aeq,Beq,LB,UB,nonlcon);objstr=['目标函数最优值:',num2str(-fval)];
disp(objstr)
for i=1:length(x)xstr=['x',num2str(i),'的值为:',num2str(x(i))];disp(xstr)
end%% 非线性不等式约束的表达式,如果有多个,则在C后面加; 补充即可
function [C,Ceq] = noLinearLimited(x)C = [x(1)^2+x(1)*x(2)+x(2)*x(3)-x(2)-6];Ceq = [];
end

Goal attain方法求解

  1. 使用Goal attain求解目标最优化问题,可以调用matlab中的函数:fgoalattain

min ⁡ γ , x γ s.t.  F i ( x ) − w i γ ⩽ F i ∗ for  i = 1 , … , m g ( x ) ⩽ 0 h ( x ) = 0 \begin{array}{ll}\min _{\gamma, x} \gamma \\\\\text { s.t. } & F_{i}(x)-w_{i} \gamma \leqslant F_{i}^{*} \quad \text { for } i=1, \ldots, m \\\\& g(x) \leqslant 0 \\\\& h(x)=0\end{array} minγ,xγ s.t. Fi(x)wiγFi for i=1,,mg(x)0h(x)=0

clc;clear;%% 指定初始解
x0 = zeros(3,1);
% <线性>不等约束
A = [2,1,3];
B = [6];
% <线性>等式约束
Aeq = [];
Beq = [];
% 变量上下限
LB = zeros(3,1);
UB = 1*ones(3,1);
%% 分两个(n个)非线性目标的最优值
% 两个目标函数
fun1 = @(x) -x(1)^2+x(2)^2-x(2)*x(3);
fun2 = @(x) 2*x(1)^2-x(2)^3+2*x(2)*x(3);%% fun1的最优化:
nonlcon = @noLinearLimited;
[x1,fval1] = fmincon(fun1,x0,A,B,Aeq,Beq,LB,UB,nonlcon);objstr=['目标函数最优值:',num2str(fval1)];
disp(objstr)
for i=1:length(x1)xstr=['x',num2str(i),'的值为:',num2str(x1(i))];disp(xstr)
end% fun2的最优化:
[x2,fval2] = fmincon(fun2,x0,A,B,Aeq,Beq,LB,UB,nonlcon);objstr=['目标函数最优值:',num2str(fval2)];
disp(objstr)
for i=1:length(x2)xstr=['x',num2str(i),'的值为:',num2str(x2(i))];disp(xstr)
end
%% 多目标优化
goal = [fval1,fval2]; % 目标是接近于单目标的最优值
func = @(x) [-x(1)^2+x(2)^2-x(2)*x(3);2*x(1)^2-x(2)^3+2*x(2)*x(3)];
W = [1,1];% 自己赋值权重,两个(n个)非线性
[x,fval] = fgoalattain(func,x0,goal,W,A,B,Aeq,Beq,LB,UB,nonlcon);disp('在两个目标的优化结果为')
disp(func(x))
for i=1:length(x)xstr=['x',num2str(i),'的值为:',num2str(x(i))];disp(xstr)
end%% 非线性不等式约束的表达式,如果有多个,则在C后面加; 补充即可
function [C,Ceq] = noLinearLimited(x)C = [x(1)^2+x(1)*x(2)+x(2)*x(3)-x(2)-6];Ceq = [];
end

相关文章:

数学建模:多目标优化算法

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 数学建模&#xff1a;多目标优化算法 多目标优化 分别求权重方法 算法流程&#xff1a; 两个目标权重求和&#xff0c;化为单目标函数&#xff0c;然后求解最优值 min ⁡ x ∑ i 1 m w i F i ( x ) s.…...

arcmap 在oracle删除表重新创建提示表名存在解决放啊

sde表创建是有注册或者是关联关系存在的 按照以下步骤删除表的数据 select t.* from sde.TABLE_REGISTRY t where table_name like IRR%; DELETE from sde.TABLE_REGISTRY where table_nameIRRIGATION_TYPE; select t.* from sde.LAYERS t where table_name like IRR%; DELET…...

新版HBuilderX在uni_modules创建搜索search组件

1、创建自定义组件 my-search 新版HBuilder没有了 component 文件夹&#xff0c;但是有 uni_modules 文件夹&#xff0c;用来创建组件&#xff1a; 右键 uni_modules 文件夹&#xff0c;点击 新建uni_modules创建在弹出框&#xff0c;填写组件名字&#xff0c;例如&#xff1a…...

Ubutnu允许ssh连接使用root与密码登录

文章目录 1. 修改sshd_config2. 设置root密码3. 重启SSH服务 1. 修改sshd_config 修改/etc/ssh/sshd_config文件&#xff0c;找到 #Authentication&#xff0c;将 PermitRootLogin 参数修改为 yes。如果 PermitRootLogin 参数被注释&#xff0c;请去掉首行的注释符号&#xff…...

MySQL中表的设计

在MySQL中表的设计&#xff0c;需要一定的经验才能理解&#xff0c;由于笔者目前在读中&#xff0c;理解不是很深刻&#xff0c;仅根据自己的想法外界的一些参考资料做出下述文字描述&#xff0c;一些错误&#xff0c;请大佬及时指正~~ 在本篇文章中&#xff0c;介绍一点简单粗…...

UE4/5在蓝图细节面板中添加函数按钮(蓝图与c++的方法)

目录 在细节面板中添加按钮使用函数 蓝图的方法 事件 函数 效果 uec的方法 效果 在细节面板中添加按钮使用函数 很多时候&#xff0c;我们可以看到一些插件的actor类中&#xff0c;点击一下之后就可以实现如矩阵一样的效果。 实际上是因为其使用了函数来修改了蓝图中的数…...

Python爬虫乱码问题之encoding和apparent_encoding的区别

encoding是从http中的header中的charset字段中提取的编码方式&#xff0c;若header中没有charset字段则默认为ISO-8859-1编码模式&#xff0c;则无法解析中文&#xff0c;这是乱码的原因 apparent_encoding会从网页的内容中分析网页编码的方式&#xff0c;所以apparent_encodi…...

Docker技术--Docker简介和架构

1.Docker简介 (1).引入 我们之前学习了EXSI&#xff0c;对于虚拟化技术有所了解&#xff0c;但是我们发现类似于EXSI这样比较传统的虚拟化技术是存在着一定的缺陷:所占用的资源比较多&#xff0c;简单的说&#xff0c;就是你需要给每一个用户提供一个操作平台&#xff0c;这一个…...

废品回收功能文档

废品回收 基础版 后台功能 功能字段描述二级分类表字段&#xff1a;图标、名称、描述、图片、注意事项、上一级、状态功能&#xff1a;前端展示和筛选&#xff1b;增删改查今日指导价表字段&#xff1a;关联分类、名称、价格、单位、状态功能&#xff1a;前端展示和预估价格&…...

【ARMv8 SIMD和浮点指令编程】NEON 乘法指令——asimdrdm

ARMv8 有许多版本(ARMv8.1 等),它们定义了强制和可选功能。Linux 内核通过 hwcaps 公开了其中一些功能的存在。这些值显示在 /proc/cpuinfo 中。 名称版本支持的特性fp-Single-precision and double-precision floating point.asimd-Advanced SIMD.evtstrmN/AGeneric timer …...

[SWPUCTF 2022]——Web方向 详细Writeup

SWPUCTF 2022 ez_ez_php 打开环境得到源码 <?php error_reporting(0); if (isset($_GET[file])) {if ( substr($_GET["file"], 0, 3) "php" ) {echo "Nice!!!";include($_GET["file"]);} else {echo "Hacker!!";} }e…...

Shell编程:流程控制与高级应用的深入解析

目录 Shell 流程控制 1、条件语句 2、循环语句 Shell 函数 Shell 输入/输出重定向 Shell 文件包含 文件包含的示例 Shell 流程控制 使用Shell编程时&#xff0c;流程控制是非常重要的&#xff0c;它允许你根据条件执行不同的命令或者控制程序的执行流程。Shell支持一些基…...

一文讲通嵌入式现状

近年来&#xff0c;随着计算机技术和集成电路技术的迅速发展&#xff0c;嵌入式技术在通讯、网络、工控、医疗、电子等领域日益普及&#xff0c;并发挥着越来越重要的作用。嵌入式系统已成为当前最为热门和前景广阔的IT应用领域之一。 随着信息化、智能化、网络化的不断推进&am…...

设计模式-代理模式Proxy

代理模式Proxy 代理模式 (Proxy)1) 静态代理1.a) 原理解析1.b) 使用场景1.c) 静态代理步骤总结 2) 动态代理2.a) 基于 JDK 的动态代理实现步骤2.b) 基于 CGLIB 的动态代理实现步骤2.c) Spring中aop的使用步骤 代理模式 (Proxy) 代理设计模式&#xff08;Proxy Design Pattern&…...

如何使用CSS实现一个自适应等高布局?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用 Flexbox 布局⭐ 使用 Grid 布局⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发…...

Google colab部署VITS——零门槛快速克隆任意角色声音

目录 序言 查看GPU配置 复制代码库并安装运行环境 选择预训练模型 上传视频链接&#xff08;单个不应长于20分钟&#xff09; 自动处理所有上传的数据 训练质量相关&#xff1a;实验发现目前使用CJ模型勾选ADD_AUXILIARY&#xff0c;对于中/日均能训练出最好的效果&#x…...

14 | Spark SQL 的 DataFrame API 读取CSV 操作

sales.csv 内容 date,category,product,full_name,sales 2023-01-01,Electronics,Laptop,John Smith,1200.0 2023-01-02,Electronics,Smartphone,Jane Doe,800.0 2023-01-03,Books,Novel,Michael Johnson,15.0 2023-01-04,Electronics,Tablet,Emily Wilson,450.0 2023-01-05,B…...

redis面试题二

redis如何处理已过期的元素 常见的过期策略 定时删除&#xff1a;给每个键值设置一个定时删除的事件&#xff0c;比如有一个key值今天5点过期&#xff0c;那么设置一个事件5点钟去执行&#xff0c;把它数据给删除掉&#xff08;优点&#xff1a;可以及时利用内存及时清除无效数…...

虚拟现实(VR)和增强现实(AR)

虚拟现实&#xff08;Virtual Reality&#xff0c;VR&#xff09;和增强现实&#xff08;Augmented Reality&#xff0c;AR&#xff09;是两种前沿的计算机技术&#xff0c;它们正在改变人们与数字世界的互动方式。虚拟现实创造了一个计算机生成的全新虚拟环境&#xff0c;而增…...

如何使用ChatGPT提词器,看看这篇文章

ChatGPT提词器是一种强大的自然语言处理工具&#xff0c;可以帮助你提高创造性写作的效率和质量。本教程将向您介绍如何使用ChatGPT提词器&#xff0c;以获得有趣、吸引人的文章、故事或其他文本内容。 步骤1&#xff1a;访问ChatGPT提词器 首先&#xff0c;确保您已经访问了…...

XZ62N,0.7uA静态电流,NMOS输出电压检测芯片

产品概述 这系列芯片是使用 CMOS 技术开发的高精度、低功耗、小封装电压检测芯片。检测电压在小温度漂移的情况下保持极高的精度。输出配置是N-channel open drai 输出。 产品特点 ● 封装&#xff1a;SOT23-3 ● 输出配置&#xff1a;N-channel open drain ● 工作电压&a…...

体验分钟级接入为网站原型注入AI能力

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 体验分钟级接入为网站原型注入AI能力 在验证一个网站创意原型时&#xff0c;能否快速为其注入智能对话能力&#xff0c;往往决定了…...

从‘挨个找孔’到‘算角度’:一个VisionMaster项目优化带来的效率翻倍实录

从‘挨个找孔’到‘算角度’&#xff1a;一个VisionMaster项目优化带来的效率翻倍实录 在工业自动化领域&#xff0c;视觉识别系统的效率往往直接决定整条产线的节拍。去年我们团队接手了一个法兰盘螺丝锁付项目&#xff0c;最初采用的传统孔位识别方案在实际运行中暴露出诸多问…...

Amphenol ICC ND9ACC2E0A线束组件应用解析与国产兼容思路

在工业互连和高速设备快速发展的今天&#xff0c;线束组件的重要性已经远远超过传统意义上的“导线连接”。尤其是在服务器、工业控制、通信设备以及智能制造领域&#xff0c;高性能线束已经成为保障系统稳定运行的重要组成部分。 近期&#xff0c;Amphenol ICC&#xff08;Com…...

unplugin-dts完整指南:从vite-plugin-dts迁移到通用插件

unplugin-dts完整指南&#xff1a;从vite-plugin-dts迁移到通用插件 【免费下载链接】unplugin-dts An unplugin for generating declaration (dts) files. 项目地址: https://gitcode.com/gh_mirrors/vi/unplugin-dts unplugin-dts是一款功能强大的通用插件&#xff0c…...

【限时解密】Claude 3.5尚未公布的思维缓存机制:如何用1行system prompt激活其人性推理开关?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;人性推理的本质&#xff1a;从认知科学视角重审LLM的“思维缓存” 人类在日常推理中并非每次从零启动逻辑链条&#xff0c;而是高度依赖情境化、片段化、可快速调用的心理表征——心理学家称之为“认知…...

市面上有哪些是真正性价比高的降AIGC软件(轻松压低AI生成疑似率)

最崩溃的不是查重难题&#xff0c;而是查重达标却AI率超标亮红灯&#xff01;很多工具只会简单同义词替换、浅层改字&#xff0c;根本洗不掉AI专属句式、行文逻辑和高频模板话术&#xff0c;学校AIGC检测一查一个准&#xff0c;论文直接翻车。 本篇结合全网实测数据&#xff0c…...

AI如何悄然重塑日常生活:从工具到环境的四层渗透

1. 这不是未来预告&#xff0c;是此刻正在发生的日常渗透“AI正在 quietly taking over your daily life”——这句话里最值得玩味的&#xff0c;不是“AI”&#xff0c;也不是“taking over”&#xff0c;而是那个轻描淡写的quietly&#xff08;悄然地&#xff09;。它不敲锣打…...

JetBrains IDE试用重置终极指南:如何快速解决开发工具到期问题

JetBrains IDE试用重置终极指南&#xff1a;如何快速解决开发工具到期问题 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 还在为IntelliJ IDEA、PyCharm等JetBrains IDE试用期到期而烦恼吗&#xff1f;当你的开发…...

2026年转型风口:理发店转战植物染发,能占据市场前10%吗?

2026年&#xff0c;理发店转型的风口已经悄然来临。据数据显示&#xff0c;植物染发和养护市场增速保持在15%以上&#xff0c;而白发脱发人群的比例不断增大&#xff0c;这无疑给众多理发店提供了巨大的转型机会。本文将通过具体的数据、案例和观点&#xff0c;探讨理发店转型植…...