0.618算法和基于Armijo准则的线搜索回退法

0.618代码如下:

import math

# 定义函数 h(t) = t^3 - 2t + 1

def h(t):

return t**3 - 2*t + 1

# 0.618 算法

def golden_section_search(a, b, epsilon):

ratio = 0.618

while (b - a) > epsilon:

x1 = b - ratio * (b - a)

x2 = a + ratio * (b - a)

h_x1 = h(x1)

h_x2 = h(x2)

if h_x1 < h_x2:

b = x2

else:

a = x1

return a # 或者返回 b ,因为它们的值非常接近

# 在 t 大于等于 0 的范围内进行搜索

t_min_618 = golden_section_search(0, 3, 0.001)

print("0.618 算法找到的最小值: ", h(t_min_618))

基于Armijo准则的线搜索回退法代码如下:

import numpy as np

def h(t):

return t**3 - 2*t + 1

def h_derivative(t):

return 3*t**2 - 2

def armijo_line_search(t_current, direction, alpha, beta, c1):

t = t_current

step_size = 1.0

while True:

if h(t + direction * step_size) <= h(t) + alpha * step_size * direction * h_derivative(t):

return t + direction * step_size

else:

step_size *= beta

if np.abs(step_size) < 1e-6:

break

return None

def gradient_descent(start, end, alpha, beta, c1, epsilon):

t = start

while True:

if t > end:

break

direction = -h_derivative(t) # 负梯度方向

next_t = armijo_line_search(t, direction, alpha, beta, c1)

if next_t is None or np.abs(h_derivative(next_t)) <= epsilon:

return next_t

t = next_t

return None

# 参数设置

alpha = 0.1 # Armijo 准则中的参数 alpha

beta = 0.5 # Armijo 准则中的参数 beta

c1 = 1e-4 # 自定义参数,用于控制 Armijo 条件的满足程度

epsilon = 1e-6 # 梯度范数的终止条件

# 搜索区间为 0,3

start = 0

end = 3

# 执行梯度下降算法,求得近似最小值点

t_min = gradient_descent(start, end, alpha, beta, c1, epsilon)

print(" 求得的最小值点为 :", t_min)

print(" 最小值点的函数值为 :", h(t_min))

相关推荐
宸津-代码粉碎机2 小时前
OpenAI 连夜迎战 Grok Bot 和 Muse:AI 智能体从 “会聊天” 到 “能办事”,现在入场还来得及吗
java·大数据·人工智能·分布式·python
专注仿真3 小时前
ACM算法
算法·深度优先
做萤石二次开发的哈哈4 小时前
视频解码器怎么对接?解码上墙、电视墙开窗与场景切换的ISAPI接入实战
人工智能·物联网·监控·视频编解码·大屏端·萤石开放平台·蓝海aiot一站式工作台
Leo.yuan4 小时前
2026年本地化Data Agent优质厂商盘点:哪些产品更适合企业生产环境
大数据·数据库·人工智能
长谷深风1114 小时前
Tool与Skill:AI能力设计的分水岭
java·人工智能·ai·大模型·aiagent
科技观察哨4 小时前
六足平台选型与纳米定位系统集成:HEB-640六自由度位移台在半导体光刻对准中的参数边界与国产替代评估
前端·人工智能
云上先途4 小时前
任务智能体可以自动完成哪些类型工作,是不是只能做简单重复操作?
大数据·人工智能
明志数科4 小时前
具身智能数据供给的分层:分布式采集与入厂采集的工程边界分析
人工智能·机器学习·机器人
像风一样自由20204 小时前
41.用FastAPI搭建一个RAG后端需要哪些接口
人工智能·大模型·fastapi·rag·智能体
小蒋观天下4 小时前
两轮车检测AI摄像头——2026行业竞争格局、商业模式与核心痛点
大数据·人工智能·安全·计算机视觉·ai大模型