基于复合优化加速算法研究实际问题

news2025/1/12 0:47:32
import optimtool as oo
from optimtool.base import np, sp, plt
pip install optimtool>=2.5.0

加载hybird.nesterov.accer方法

import optimtool.hybrid as oh
nes_acc = oh.nesterov.accer

初始化输入数据

f ( x ) = ∑ i = 1 n ( ( n − ∑ j = 1 n cos ⁡ x j ) + i ( 1 − cos ⁡ x i ) − sin ⁡ x i ) 2 , x 0 = [ 0.2 , 0.2 , . . . , 0.2 ] f(x)=\sum_{i=1}^{n}((n-\sum_{j=1}^{n}\cos x_j)+i(1-\cos x_i)-\sin x_i)^2, x_0=[0.2, 0.2, ...,0.2] f(x)=i=1n((nj=1ncosxj)+i(1cosxi)sinxi)2,x0=[0.2,0.2,...,0.2]

x = sp.symbols("x1:3")
f = (2 - (sp.cos(x[0]) + sp.cos(x[1])) + (1 - sp.cos(x[0])) - sp.sin(x[0]))**2 + \
    (2 - (sp.cos(x[0]) + sp.cos(x[1])) + 2 * (1 - sp.cos(x[1])) - sp.sin(x[1]))**2
x_0 = (0.2, 0.2) # Random given

查看复合优化算法的超参数

accer(funcs: FuncArray, args: ArgArray, x_0: PointArray, mu: float=1e-3, proxim: str=“L1”, lk: float=0.01, tk: float=0.02, verbose: bool=False, draw: bool=True, output_f: bool=False, epsilon: float=1e-6, k: int=0) -> OutputType
在这里插入图片描述
λ k \lambda_k λk为算法中的lk, t k t_k tk为算法中的tk, p r o x \mathrm{prox} prox算符的含义见如何研究带有不可微项的目标函数的局部极小值?。

调用并绘制迭代图

print(nes_acc(f, x, x_0, verbose=True, lk=0.1, tk=0.2))
# ensure lk and tk < 1 / L (L comes from lipschitz continuity condition)

默认的lk和tk能够解决稀疏矩阵解的问题,在实际问题中可以适当增大。

(0.2, 0.2)	0.033830304000793295	0
[0.19256431 0.19256431]	0.03265408936657944	1
[0.18638465 0.18638465]	0.031617693847704915	2
[0.17987066 0.17987066]	0.03047115719116562	3
[0.1730253 0.1730253]	0.029210872201568115	4
[0.16579189 0.16579189]	0.027822939438030186	5
[0.1581071 0.1581071]	0.02629215385584641	6
[0.14993051 0.14993051]	0.024608804452366514	7
[0.1412556 0.1412556]	0.02277288945465011	8
[0.13211227 0.13211227]	0.020796735113812578	9
[0.12256644 0.12256644]	0.018706522868828408	10
[0.11271834 0.11271834]	0.01654250102784132	11
[0.10269905 0.10269905]	0.014357303201991972	12
[0.09266423 0.09266423]	0.012211920332773922	13
[0.08278452 0.08278452]	0.01016943425860308	14
[0.07323288 0.07323288]	0.008287438822270246	15
[0.0641702 0.0641702]	0.006610792391354569	16
[0.05573159 0.05573159]	0.005166538950867488	17
[0.04801584 0.04801584]	0.003962275998264823	18
[0.04108007 0.04108007]	0.0029881260918894485	19
[0.03494014 0.03494014]	0.0022213296681673307	20
[0.0295762 0.0295762]	0.0016318641094921836	21
[0.02494136 0.02494136]	0.0011875956332260999	22
[0.02097132 0.02097132]	0.0008580603239475022	23
[0.01759323 0.01759323]	0.000616649225758882	24
[0.01473264 0.01473264]	0.0004414466868771702	25
[0.0123183 0.0123183]	0.0003151622104264512	26
[0.01028495 0.01028495]	0.0002245773826627801	27
[0.00857464 0.00857464]	0.00015981543713860277	28
[0.00713697 0.00713697]	0.00011361642729667025	29
[0.00592872 0.00592872]	8.070513699807076e-05	30
[0.00491322 0.00491322]	5.727893092786287e-05	31
[0.00405951 0.00405951]	4.061141417882402e-05	32
[0.00334156 0.00334156]	2.875475343419944e-05	33
[0.00273758 0.00273758]	2.032048717223606e-05	34
[0.00222925 0.00222925]	1.4320242141885246e-05	35
[0.00180129 0.00180129]	1.0050987097603078e-05	36
[0.00144084 0.00144084]	7.012839175347395e-06	37
[0.00113718 0.00113718]	4.85040116210444e-06	38
[0.00088126 0.00088126]	3.3109866323555416e-06	39
[0.00066554 0.00066554]	2.214909990704722e-06	40
[0.00048366 0.00048366]	1.434371414320055e-06	41
[0.00033027 0.00033027]	8.784544440346822e-07	42
[0.0002009 0.0002009]	4.82466914247575e-07	43
[9.1765239e-05 9.1765239e-05]	2.003667873131081e-07	44
[-3.10652223e-07 -3.10652223e-07]	6.2149745663463e-10	45

在这里插入图片描述
f f f为非凸函数时,算法也收敛。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1099882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jenkins出错与恢复

如果你的jenkins出现了如下图所示问题&#xff08;比如不能下载插件&#xff0c;无法保存任务等&#xff09;&#xff0c;这个时候就需要重新安装了。 一、卸载干净jenknis 要彻底卸载 Jenkins&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1、停止 Jenkins 服务&…

学信息系统项目管理师第4版系列29_信息系统治理

1. IT治理 1.1. 描述组织采用有效的机制对信息技术和数据资源开发利用&#xff0c;平衡信息化发展和数字化转型过程中的风险&#xff0c;确保实现组织的战略目标的过程 1.2. 驱动因素 1.2.1. 信息孤岛 1.2.2. 信息资源整合目标空泛 1.3. 高质量IT治理因素 1.3.1. 良好的I…

flask基础开发知识学习

之前做了一些LLM的demo&#xff0c;接口用flask写的&#xff0c;但是涉及到后端的一些业务就感觉逻辑写的很乱&#xff0c;代码变成屎山&#xff0c;于是借助官方文档和GPT迅速补了一些知识&#xff0c;总结一下一个很小的模板 于是决定边学边重构之前的代码… 文章目录 代码结…

吃鸡达人必备神器,提升战斗力享受顶级游戏干货!

大家好&#xff01;今天我为大家介绍一款专为吃鸡玩家打造的神器——吃鸡盒子。无论您是新手还是老玩家&#xff0c;吃鸡盒子都能帮助您提升游戏的战斗力&#xff0c;分享顶级游戏作战干货&#xff0c;并且还能方便吃鸡作图、查询库存和保护账号安全。 让我们先来说说提升战斗力…

使用Premiere、PhotoShop和Audition做视频特效

今天接到一个做视频的任务&#xff0c;给一个精忠报国的视频&#xff0c;要求&#xff1a;   ①去掉人声&#xff0c;就是将唱歌的人声去掉&#xff0c;只留下伴奏&#xff1b;   ②截图视频中的横幅&#xff0c;做一个展开的效果&#xff0c;类似卷纸慢慢展开&#xff1b;…

Golang学习:基础知识篇(二)—— 数组及切片

Golang学习&#xff1a;基础知识篇&#xff08;二&#xff09;—— 数组及切片 前言什么是Golang&#xff1f;Go语言的基础语法数组声明数组初始化数组访问数组知识点补充 切片定义切片切片初始化len() 和 cap() 函数空(nil)切片切片截取append() 和 copy() 函数知识点补充 前言…

【版本控制】Git(学习笔记)

一、Git工作流程图 clone&#xff08;克隆&#xff09;: 从远程仓库中克隆代码到本地仓库checkout &#xff08;检出&#xff09;&#xff1a;从本地仓库中检出一个仓库分支然后进行修订add&#xff08;添加&#xff09;: 在提交前先将代码提交到暂存区commit&#xff08;提交&…

Python--逻辑运算符(与或非) and or not

逻辑运算符&#xff08;与或非&#xff09; not就是取反&#xff0c;只有一个表达式not 表达式&#xff0c;如果表达式为True&#xff0c;则not以后就返回False。反之&#xff0c;则返回True。 案例&#xff1a;讲个非诚勿扰的小故事&#xff1a; ① 女孩子要求比较高&#…

【SpringBoot篇】基于SpringBoot进行Web开发

&#x1f38a;专栏【SpringBoot】 &#xfeff;> &#x1f354;喜欢的诗句&#xff1a;天行健&#xff0c;君子以自强不息。 &#xfeff;> &#x1f386;音乐分享【如愿】 &#xfeff;> &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x…

【Java学习之道】TCPIP套接字编程实例

引言 网络编程是Java学习中不可或缺的一部分&#xff0c;而TCP/IP套接字编程又是网络编程的基础。那么&#xff0c;初学者如何才能快速掌握TCP/IP套接字编程呢&#xff1f;今天我们就来通过一个简单的实例&#xff0c;为你揭示TCP/IP套接字编程的奥秘&#xff01; 一、什么是…

互联网Java工程师面试题·Java 总结篇·第三弹

20、重载&#xff08;Overload&#xff09;和重写&#xff08;Override&#xff09;的区别。重载的方法能否根据返回类型进行区分&#xff1f; 方法的重载和重写都是实现多态的方式&#xff0c;区别在于前者实现的是编译时的多态性&#xff0c;而后者实现的是运行时的多态性。重…

【UBOOT】1-使用与烧写

​一、uboot简介 1&#xff09;uboot是一个裸机程序&#xff0c;比较复杂 2&#xff09;最主要的作用是引导Linux内核启动&#xff1b; 初始化DDR&#xff1b; 因为Linux是运行在DDR里面的&#xff1b;而Linux镜像&#xff08;zImage或uImagedtb&#xff09;一般存放在SD EMM…

基础课3——自然语言处理的应用

自然语言处理是一种将人类语言转换为机器语言&#xff0c;以实现人机交互的技术。应用非常广泛&#xff0c;例如&#xff1a; 人机交互&#xff1a;自然语言处理技术可以应用于人机交互&#xff0c;让机器能够理解和运用人类语言&#xff0c;从而实现更加智能化的交互体验。 机…

Python之旅----判断语句

布尔类型和比较运算符 布尔类型 布尔类型的定义 布尔类型的字面量&#xff1a; True 表示真&#xff08;是、肯定&#xff09; False 表示假 &#xff08;否、否定&#xff09; 也就是布尔类型进行判断&#xff0c;只会有2个结果&#xff1a;是或否 定义变量存储布尔类型…

基础课1——人工智能的分类和层次

1.人工智能的分类 人工智能&#xff08;AI&#xff09;的分类主要有以下几种&#xff1a; 弱人工智能&#xff08;Artificial Narrow Intelligence&#xff0c;ANI&#xff09;&#xff1a;弱人工智能是擅长于单个方面的人工智能&#xff0c;例如战胜象棋世界冠军的人工智能阿…

紫光同创FPGA实现UDP协议栈网络视频传输,带录像和抓拍功能,基于YT8511和RTL8211,提供2套PDS工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的以太网方案紫光同创FPGA精简版UDP方案紫光同创FPGA带ping功能UDP方案紫光同创FPGA精简版UDP视频传输方案 3、设计思路框架OV5640摄像头配置及采集数据缓冲FIFOUDP协议栈详解MAC层发送MAC发送模式MAC层接收ARP发送ARP接收ARP缓…

多维时序 | MATLAB实现SSA-CNN-LSTM-Attention多变量时间序列预测(SE注意力机制)

多维时序 | MATLAB实现SSA-CNN-LSTM-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09; 目录 多维时序 | MATLAB实现SSA-CNN-LSTM-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09;预测效果基本描述模型描述程序设计参考资料 预测效果 基本描…

基于有限内存BFGS方法的优化研究

import optimtool as oo from optimtool.base import np, sp, pltpip install optimtool # any version with accessible L_BFGS 加载L_BFGS方法 import optimtool.unconstrain as ou lbfgs ou.newton_quasi.L_BFGSf ( x ) ∑ i 1 n − 1 ( x i x i 1 − 3 ) 2 ( x i −…

MySq修改配置文件

要修改 MySQL 的配置文件,您可以按照以下步骤进行操作: 1、打开 MySQL 的配置文件 在大多数 Linux 系统上,默认的配置文件路径是 /etc/my.cnf 或 /etc/mysql/my.cnf。您可以使用文本编辑器(如 vim、nano)以管理员权限打开该文件。 sudo vim /etc/my.cnf 2、进行修改 …

《省级国土空间规划编制技术规程》国家标准(GB/T 43214-2023)原文下载

《省级国土空间规划编制技术规程》国家标准&#xff08;GB/T 43214-2023&#xff0c;以下简称《规程》&#xff09;&#xff0c;将于2024年1月1日起实施&#xff0c;该《规程》由市场监管总局&#xff08;国家标准委&#xff09;9月7日批准发布。 《规程》由自然资源部组织编制…