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

优化算法研究Rastrigin函数

使用optimtool库的方法

定义Rastrigin函数,本文重点研究方法的局部开发能力,函数在全局极小值附近有很多局部极小值,设置初始点为(0.5,-0.3),

import optimtool.unconstrain as ou
from optimtool.base import sp
x = sp.symbols("x1:3")
A = 10
sum_term = (x[0]**2 - A * sp.cos(2 * sp.pi * x[0])) + (x[1]**2 - A * sp.cos(2 * sp.pi * x[1]))
rastrigin = A * 2 + sum_term
x_0 = (0.5, -0.3)

信赖域方法的训练结果和可视化

ou.trust_region.steihaug_CG(rastrigin, x, x_0, verbose=True, draw=True)
(0.5, -0.3)     33.430169943749476      0
(0.5, -0.3)     33.430169943749476      1
(0.5, -0.3)     33.430169943749476      2
[ 0.49585852 -0.05003431]       20.735094807492853      3
[0.13531621 0.05308815] 3.9741075141269517      4
[-0.04558432 -0.00204971]       0.4102820555806389      5
[1.28201395e-03 1.12757902e-07] 0.00032606750446062375  6
[-2.75888328e-08 -3.63981485e-12]       1.5024374593316442e-13  7 

在这里插入图片描述

L_BFGS训练结果和可视化

ou.newton_quasi.L_BFGS(rastrigin, x, x_0, verbose=True, draw=True)
(0.5, -0.3)     33.430169943749476      0
[ 0.49609375 -0.06423186]       21.05061587716868       1
[ 0.49540553 -0.03394355]       20.46897979380196       2
[0.49089607 0.00173255] 20.225218762652215      3
[0.490644   0.00120956] 20.223748098509294      4
[ 0.46559824 -0.02448895]       20.10282411064895       5
[ 0.15439562 -0.32475773]       19.003441057801915      6
[ 0.25376874 -0.21970435]       18.45738637665312       7
[ 0.3439645  -0.07807552]       16.87063276869083       8
[ 0.11471468 -0.17770738]       8.144098648171822       9
[ 0.0060908  -0.16881321]       5.153110356206469       10
[-0.00588779  0.00291503]       0.008562465730363785    11
[ 0.00050293 -0.00056868]       0.00011434117888674131  12
[2.32706011e-05 4.28990140e-05] 4.7253945653447976e-07  13
[-5.61985987e-06 -4.40772858e-06]       1.0120160730610205e-08  14
[ 4.14953189e-08 -2.53413392e-08]       4.666437717145493e-13   15
[-4.62768595e-10  5.97824247e-10]       1.1281917205678543e-16  16
[2.18391301e-13 3.53260480e-13] 3.4047712591437506e-23  17

在这里插入图片描述
可以看到信赖域方法和LBFGS方法能很好地跳过局部最优值20,现在设置初始点为(0.4,-0.3),观察结果,

barzilar_borwein训练结果和可视化

x_0 = (0.4, -0.3)
ou.gradient_descent.barzilar_borwein(rastrigin, x, x_0, verbose=True, draw=True)
(0.4, -0.3)     31.43033988749895       0
[0.17185122 0.06495354] 6.13976171835116        1
[-0.20974784 -0.10661683]       9.714240474120007       2
[-0.01717213  0.01670725]       0.11377287169869504     3
[ 0.00486217 -0.00473276]       0.009133222904602967    4
[-6.53981222e-06  6.40427278e-06]       1.66220534617351e-08    5
[ 9.8504651e-10 -9.6463122e-10] 3.7520880612188806e-16  6
[-2.70225224e-19  2.64624797e-19]       2.823653449819599e-35   7

在这里插入图片描述

barzilar_borwein_ZhangHanger训练结果和可视化

x_0 = (0.4, -0.3)
ou.gradient_descent.barzilar_borwein(rastrigin, x, x_0, verbose=True, draw=True, method="ZhangHanger")
(0.4, -0.3)     31.43033988749895       0
[0.17185122 0.06495354] 6.13976171835116        1
[-0.05710822 -0.03798868]       0.9251057077803212      2
[0.00653816 0.00485932] 0.013163852514273213    3
[-1.02617867e-04 -7.68865311e-05]       3.261955745256119e-06   4
[2.37657913e-08 1.78088663e-08] 1.7409361445869945e-13  5
[-1.37967600e-15 -1.03385853e-15]       5.867221914198997e-28   6

在这里插入图片描述

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

相关文章:

  • php网站开发框架登陆网站空间的后台
  • 四川住房与城乡建设厅网站卡尺 东莞网站建设
  • 【代码随想录day 35】 力扣 494. 目标和
  • 【Qt】网络编程
  • Go语言:高效简洁的现代编程语言
  • 云南公司网站建设做企业网站 需要用服务器吗
  • 网上做公益的网站医疗网站 seo怎么做
  • 重庆有的设计网站企业移动端建设与网站建设
  • 【深度学习04】PyTorch:损失函数、优化器、模型微调、保存与加载
  • 定远建设局官方网站app应用程序开发公司
  • Coze源码分析-资源库-编辑知识库-后端源码-基础设施/存储层
  • JVM栈溢出和堆溢出哪个先满?
  • 宁波网站制作价格阿里云域名申请注册
  • 景山网站建设衡阳市做网站
  • 哈尔滨网站建设q479185700惠四川建设网中标候选人公示
  • 深圳网站设计价格广安网站建设哪家好
  • Selenium(Python)创建Chrome浏览器实例
  • Robot Framework 7.0 报告解析
  • MySQL `SELECT` 查询优化:原理 + 案例 + 实战总结
  • PHP Directory:全面解析与优化实践
  • 网站开发实训报告参考文献网站丢了数据库还在
  • securinets ctf quals 2025 web all
  • 基于jsp的网站开发开题报告企业推广方式隐迅推知名
  • asp商品网站源码电影网站制作模版
  • 微服务注册与监听
  • 网站需要审核吗外贸电商平台哪个网站最好
  • 一个网站如何做cdn加速器ps平面设计主要做什么
  • 前端测试模块
  • 从零开始构建HIDS主机入侵检测系统:Python Flask全栈开发实战
  • 做网站收费吗重庆网站建设方案