
HJB 方程的推导基于动态规划原理,其核心思想是将整个时间段的优化问题分解为无数个微小时间间隔内的优化问题。




下面以 Python 实现一个简单的 HJB 方程的数值求解,使用有限差分法求解上述示例中的HJB方程。
import numpy as npimport matplotlib.pyplot as plt# 参数设置T = 1.0 # 终止时间Nx = 100 # 状态变量离散化数量Nt = 1000 # 时间离散化数量x_max = 2.0 # 状态变量范围 [-x_max, x_max]dt = T / Ntdx = 2 * x_max / Nxx = np.linspace(-x_max, x_max, Nx+1)t = np.linspace(T, 0, Nt+1) # 时间从T到0逆向# 初始化价值函数 V(x, T) = 0.5 * x^2V = 0.5 * x**2# 使用向后时间步进for n in range(Nt):# 计算空间导数 dV/dxdVdx = np.zeros_like(V)dVdx[1:-1] = (V[2:] - V[:-2]) / (2 * dx)# 边界条件 (Neumann边界条件 dV/dx=0)dVdx[0] = (V[1] - V[0]) / dxdVdx[-1] = (V[-1] - V[-2]) / dx# 更新价值函数 V_t + 0.5*(V_x)^2 = 0V_new = V - dt * 0.5 * (dVdx)**2V = V_new.copy()# 可视化结果plt.figure(figsize=(8,6))plt.plot(x, V, label='价值函数 $V(x, 0)$')plt.xlabel('状态变量 $x$')plt.ylabel('价值函数 $V$')plt.title('HJB 方程数值解')plt.legend()plt.grid()plt.show()# 计算最优控制策略 u*u_star = -dVdxplt.figure(figsize=(8,6))plt.plot(x, u_star, label='最优控制 $u^*$')plt.xlabel('状态变量 $x$')plt.ylabel('控制变量 $u^*$')plt.title('最优控制策略')plt.legend()plt.grid()plt.show()

HJB 方程是解决动态优化和最优控制问题的强大工具。通过动态规划原理,HJB 方程将复杂的优化问题转化为偏微分方程的求解问题。尽管在高维情况下数值求解 HJB 方程可能面临维度灾难,但在低维或具有特定结构的问题中,HJB 方程提供了清晰的解析或数值解法。
好文章,需要你的鼓励
穆拉蒂时隔18个月首次接受重大媒体采访,介绍其创立的Thinking Machines Lab正在开发的"交互模型"。该模型能以200毫秒间隔处理音频、文本和视频流,捕捉人类交流中的中断、修正和停顿。她还谈及OpenAI"政变周"经历,强调行业决策权过于集中的担忧,并回应了公司近期研究人员离职问题,表示这是初创实验室的正常波动。
STATE16研究院这篇综述发现,物理AI系统存在"静默失效"风险——AI以高度自信执行基于错误世界信息的动作,却不触发任何报警,并提出在AI输出与物理执行之间建立独立授权层的框架。
本期《Quick Charge》播客涵盖多个热点话题:特斯拉疑似试图删除FSD欺诈相关证据以规避巨额赔付;卡特彼勒持续推进建筑领域电气化布局;住宅太阳能30%税收抵免即将到期。此外,嘉宾Tom Pacheco就高压系统与电池技术培训展开探讨,强调电动车技术人才培养的紧迫性。节目同时提醒有意安装太阳能的用户尽快行动,可通过EnergySage平台比较多家安装商报价。
UIUC与微软联合研发的OpenWebRL框架让4B小模型仅凭400条初始数据,通过在真实网站上边做边学的强化学习方式,在网页智能体基准上超越了用27万条数据训练的竞争对手。