# Fotiadis–Vamvoudakis：有限时域神经 HJB 与时域延长

本文实现对应 Filippos Fotiadis、Kyriakos G. Vamvoudakis，*A Physics-Informed Learning Framework to Solve the Infinite-Horizon Optimal Control Problem*，IJRNC 35(16):6932–6944 (2025)，[DOI](https://doi.org/10.1002/rnc.70028)。实际逐页阅读和公式定位使用 [arXiv 2505.21842v1](https://arxiv.org/abs/2505.21842)，2025-05-28，共 18 页。正文 §1–7、所有内嵌证明、三个算例和参考文献已读；该版本没有另立附录。以下页码均是这个预印本的 PDF 页码，不冒充期刊页码。

正式卷页已由出版社信息和[作者主页](https://fotiadisff.github.io/)核对。本轮作者主页对应条目只链接期刊，未找到可直接核查的公开源代码。实现为根据论文方程编写的原创 MATLAB 代码，没有搬用未明确许可的第三方实现。出版社完整版本尚未下载，未声称两个版本逐字相同。

本轮全文 PDF 的 SHA-256：`fd061724a82bb8cf853529cca41060d1f9208125912833dffbf8ea0de62d6e28`；可公开下载的固定版本为 <https://arxiv.org/pdf/2505.21842v1>。

## 全文机制及与代码的对应

| 页/节 | 内容与实现落点 |
|---|---|
| p2–3，§2，(1)–(4) | 已知控制仿射 f,g，Q 正定、R 正定，无折扣调节成本；贪婪策略 `u=-0.5 R^-1 g' grad V`。`pinn_problem` 给模型/成本，评价中按该式产生控制。 |
| p3–5，§3，(5)–(8)，Algorithm 1 | 真正训练时间相关神经值函数；损失为有限时域 HJB、终端和原点残差平方和。`pinn_value` 是可训练 tanh 多层网络，`pinn_loss` 对输入作自动微分，再对网络参数作高阶自动微分；`train_hjb_pinn` 用 Adam。没有将多项式线性最小二乘标成 PINN。 |
| p5–8，§4.1，Lemmas 1–4，(9)–(16) | 零终端成本下单调有界、逐点收敛、Dini 定理下的紧集一致收敛，是理想有限时域解的理论链。程序分别检查有限时域和稳态残差，不从训练 loss 宣称这些假设自动成立。 |
| p8–9，§4.2–4.3，Lemma 5、Theorem 1，(17)–(20) | 非零半正定终端函数夹逼；值函数与控制收敛的论述。实现对有解析参照的例子分别报 value 和 policy 误差。 |
| p9，§5.1，(21)–(22)，Remark 4 | 在局部时间 t=0 切片计算无穷时域 HJB 残差。该残差受有限时域截断与网络逼近共同影响；非零残差并不只意味着时域不够长。`evaluate_hjb_pinn` 使用独立随机点。 |
| p9–10，§5.2，(23)–(25)，Theorem 2 | 新问题只训练长度 ΔT，以前一网络 `V_old(x,0)` 作冻结终端目标。总时域累加，局部网络时间始终 `[0,ΔT]`，物理闭环执行冻结的 `u(x,0)`。 |
| p11、13，§5.3，Theorem 3，(26)–(30) | 界研究终端近似误差经过一个精确最优控制算子的传播；每次新 PINN 求解还有自己的优化/逼近误差，不能忽略后宣称误差永不累积。程序保存每阶段损失、边界误差与独立 HJB 检查。 |
| p13–14，§6.1，Figures 1–3、Table 1 | 摆的参数、T=1→2→3→4；本轮主要数值复现对象。论文给 `g=1/J` 的简写，原始状态方程明确输入只进入速度方程，代码按维度使用 `[0;1/J]`。 |
| p14–15，§6.2，Figures 4–7 | 四次值函数例子的模型、Q、所称解析参照存在下述可验证不一致；原文与修正代价分别保留，不悄悄换成本。 |
| p16，§6.3、Table 2 | 三阶系统，3×500 网络、20000 flow、27000 boundary/origin；本轮未执行这套规模。表中 R 与 MSE 非单调，不以定性描述代替原始数值。 |
| p16–18，§7、References | 结论与来源链已读；无附录和作者代码下载说明。 |

## 四次值函数算例的确定性问题

预印本 p14 §6.2 写

```text
f1 = -x1+x2+2*x2^3
f2 = -0.5*(x1+x2)+0.5*x2*(1+2*x2^2)*sin(x1)^2
g  = [0;sin(x1)], R=1
Q  = x1^2+x2^2+x2^4
V_claimed = 0.5*x1^2+x2^2+x2^4
u_claimed = -sin(x1)*(x2+2*x2^3)
```

直接代回 (4)，`gradV'*f+Q-0.25*(g'*gradV)^2 = -x2^4`。因此在所写 Q 下不能把 V_claimed 当已验证最优解。只把 Q 中四次项系数改为 2，恒等式才成立。代码提供 `quartic_paper` 与 `quartic_corrected` 两个明确名称；后者是数学修正变体。本轮诊断同时检查非零原文残差、精确的 `-x2^4` 恒等式，以及修正后的零残差。原页已按 PDF 图像检查，确认不是文本抽取丢失系数。

## 本轮实现与论文配置的差异

实现入口在 `reproductions/pinn_infinite_horizon2025/run_pinn_reproduction.m`。默认 reduced 运行先做一维精确 LQR 检查，再做论文摆例 T=1:4。

论文摆例使用 3 个隐藏层、每层 100 个 tanh 节点，10000 flow、1600 boundary/origin，flow minibatch 500，初始学习率 0.005，并以每个 minibatch loss 小于 1e-3 为停止条件。本轮 reduced 配置使用 3×48，保留 10000/1600 数据规模，minibatch 256/128，初始学习率 0.003、明确的 inverse-time decay 与固定更新预算。实际配置和训练停止位置全部保存，不把固定预算说成达到了论文停止阈值。

另采用适合这两个对称模型的 `V(x,t)=0.5(N(x,t)+N(-x,t))-N(0,t)` 神经结构，使 V(0,t)=0 和原点梯度精确成立。网络全部隐藏层和输出层仍参与非线性 Adam 训练；这不是给网络加解析值函数，也不是监督拟合 oracle。该结构是明确记录的实现变体，原点损失因此恒为零；终端条件仍以软残差训练。更换非对称系统时不能沿用此结构。

## 评价口径

- LQR 用 `V_T(x,t)=tanh(T-t)x²` 核对时间/状态导数与 HJB；解析值函数只用于诊断和评价，不进入网络损失。
- held-out 点与训练采样种子独立，报告有限时域 HJB、终端误差和 t=0 稳态 HJB 的均方值、最大值；有 oracle 时分别报值函数和策略误差。
- 冻结 `u(x,0)` 后，对若干初值用连续反馈 `ode45` 积分状态与累计真实阶段成本；报告是否离开训练域、是否提前停止及最终状态范数。有限积分成本不是自动得到的无穷时域精确成本。
- 独立训练调用以同一种子重复 12 次更新，检查数据、损失与参数一致；这是确定性短前缀检查，不冒充完整第二轮训练。
- 文中从值函数一致收敛到控制一致收敛的论述还需要对应正则性/梯度条件；本轮独立报告导数和控制误差。数值训练不代替审计 §4 所需的轨迹紧性和正则性。

实际运行结果和局限在本方法 README 及 `evidence/v0.3/pinn/` 的 summary、CSV、MAT 和图中记录。
