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

基于函数下降趋势的FISTA算法

FISTA算法的使用

import optimtool.hybrid as oh
from optimtool.base import sp
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
oh.fista.normal(f, x, x_0, verbose=True)

normal算法的可视化图例,
在这里插入图片描述
可以看到图例中有函数上升趋势的突出区域,基于函数下降趋势的FISTA算法采用如下代码段对算法做出了下降趋势的限制,

# hybrid/fista.py#L179-L180
phiu = get_value(funcs, args, u, mu, proxim)
x_0 = u if phiu <= f[-1] else x_0

代码通过获取最新的迭代函数值,对当前迭代步的迭代函数值做下降趋势的判断,得到最新的迭代点,即图例中的上升趋势受变量u的当前函数趋势控制,

oh.fista.decline(f, x, x_0, verbose=True)

同样的实例,decline算法的下降趋势相当平滑,
在这里插入图片描述

相关文章:

  • el-form里面的input输入框按回车自动刷新页面的问题
  • Hyper-V 管理工具
  • 12.5/Q1,GBD高分文章解读
  • 深度强化学习 pdf 董豪| 马尔科夫性质,马尔科夫过程,马尔科夫奖励过程,马尔科夫决策过程
  • 香港免费云服务器申请教程,配置4核8G
  • 制作一款打飞机游戏17:敌人
  • G1 人形机器人软件系统架构与 Python SDK
  • SystemV-消息队列与责任链模式
  • Discuz!+DeepSeek:传统论坛的智能化蜕变之路
  • 鸿蒙移动应用开发--渲染控制实验
  • C++异步操作 - future async package_task promise
  • Vue项目依赖注入的使用
  • 深度学习模型搭建的基础原理详细介绍
  • C++学习笔记(三十六)——STL之排序算法
  • Java中内部类
  • 电脑硬盘丢失怎么找回?解决硬盘数据恢复的2种方法
  • win10中打开python的交互模式
  • c++STL——stack、queue、priority_queue的模拟实现
  • 【Linux】46.网络基础(3.3)
  • linux下使用wireshark捕捉snmp报文
  • 安徽临泉一小区交付后多楼层现裂缝,专家组论证称不影响安全
  • 体坛联播|曼城击败维拉迎英超三连胜,巴萨遭遇魔鬼赛程
  • 外汇局:将持续强化外汇形势监测,保持汇率弹性,坚决对市场顺周期行为进行纠偏
  • 解放日报:128岁的凤凰自行车“双轮驱动”逆风突围
  • 俄官员称乌克兰未遵守停火,乌方暂无回应
  • 玉渊谭天丨先爆视频再爆订单,美关税影响下企业因短视频火出圈