当前位置: 首页 > 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报文
  • 五一假期上海口岸出入境客流总量预计达59.4万人,同比增约30%
  • 十四届全国人大常委会举行第四十四次委员长会议
  • 上海国际咖啡文化节开幕,北外滩集结了超350个展位
  • 国台办:台商台企有信心与国家一起打赢这场关税战
  • 解放日报:中国大模型企业的发展机遇已经到来
  • 78家公募年度业绩比拼:23家营收净利双升,十强座次微调