# `main.tex` 第 841--843 行详解 本文档解释 `eq:joint_psi_discrete` 为什么能同时影响两条路径、有限支撑核为什么会产生稀疏 Hessian,以及第 843 行所谓“块对角结构”到底是什么意思。 ## 1. 先把决策变量拆开 联合优化变量写成 $$ \mathbf z= \begin{bmatrix} \mathbf z_{\mathrm{park}}\\ \mathbf z_{\mathrm{exit}} \end{bmatrix}. $$ 其中,$\mathbf z_{\mathrm{park}}$ 包含泊入路径的全部配置点状态、区间控制量和弧长步长,$\mathbf z_{\mathrm{exit}}$ 同理。每条路径的变量维数为 $$ n_{\mathrm{park}}=5M_{\mathrm{park}}, \qquad n_{\mathrm{exit}}=5M_{\mathrm{exit}}, $$ 所以 $\mathbf z\in\mathbb R^{n_z}$,其中 $$ n_z=n_{\mathrm{park}}+n_{\mathrm{exit}}. $$ 这里的 $5M_\bullet$ 来自 $M_\bullet$ 个四维状态、$M_\bullet-1$ 个控制量以及一个弧长步长。 第 $i$ 个泊入路径位置是 $$ \mathbf p_i^{\mathrm{park}} = \begin{bmatrix}x_i^{\mathrm{park}}\\y_i^{\mathrm{park}}\end{bmatrix}, $$ 它只是 $\mathbf z_{\mathrm{park}}$ 中第 $i$ 个状态的位置分量,并不是额外的决策变量。定义状态到位置的选择矩阵 $$ \mathbf S_p= \begin{bmatrix} 1&0&0&0\\ 0&1&0&0 \end{bmatrix}. $$ 再定义作用于整个联合变量 $\mathbf z$ 的常数选择矩阵 $$ \mathbf E_i^{\mathrm{park}}\in\mathbb R^{2\times n_z}, \qquad \mathbf E_j^{\mathrm{exit}}\in\mathbb R^{2\times n_z}. $$ $\mathbf E_i^{\mathrm{park}}$ 在泊入路径第 $i$ 个四维状态对应的列上放置 $\mathbf S_p$,其余元素均为零;$\mathbf E_j^{\mathrm{exit}}$ 在驶离路径第 $j$ 个四维状态对应的列上放置 $\mathbf S_p$,其余元素均为零。因此 $$ \boxed{ \mathbf p_i^{\mathrm{park}} =\mathbf E_i^{\mathrm{park}}\mathbf z, \qquad \mathbf p_j^{\mathrm{exit}} =\mathbf E_j^{\mathrm{exit}}\mathbf z.} $$ 若用从 1 开始的元素下标表示,则 $\mathbf E_i^{\mathrm{park}}$ 选取 $\mathbf z$ 的第 $4(i-1)+1$、$4(i-1)+2$ 个元素;$\mathbf E_j^{\mathrm{exit}}$ 选取第 $$ n_{\mathrm{park}}+4(j-1)+1, \qquad n_{\mathrm{park}}+4(j-1)+2 $$ 个元素。 因此,只要目标函数同时包含 $\mathbf p_i^{\mathrm{park}}$ 和 $\mathbf p_j^{\mathrm{exit}}$,它就是整个 $\mathbf z$ 的函数。 ## 2. 将交互项显式写成 $\mathbf z$ 的函数 为简化记号,定义点对选择矩阵 $$ \mathbf D_{ij} =\mathbf E_i^{\mathrm{park}}-\mathbf E_j^{\mathrm{exit}} \in\mathbb R^{2\times n_z}. $$ 于是两个配置点的相对位置和距离分别为 $$ \mathbf r_{ij}(\mathbf z) =\mathbf p_i^{\mathrm{park}}-\mathbf p_j^{\mathrm{exit}} =\mathbf D_{ij}\mathbf z, $$ $$ d_{ij}(\mathbf z) =\|\mathbf D_{ij}\mathbf z\|. $$ 正文实现将两个弧长步长冻结为粗解给出的常数。记 $$ c_0=\frac{w_\varPsi}{v_0} \Delta s_{\mathrm{park}}^{(0)} \Delta s_{\mathrm{exit}}^{(0)}, $$ 其中上标 $(0)$ 表示粗解值。离散交互项便可以显式写成 $$ \boxed{ J_\varPsi(\mathbf z) =c_0\sum_{i=1}^{M_{\mathrm{park}}} \sum_{j=1}^{M_{\mathrm{exit}}} K\!\left( \|\mathbf D_{ij}\mathbf z\|; \rho_\varPsi,m_\varPsi \right).} $$ 把核函数的分段定义代入后,还可以完全展开为 $$ J_\varPsi(\mathbf z) =c_0\sum_{i=1}^{M_{\mathrm{park}}} \sum_{j=1}^{M_{\mathrm{exit}}} \begin{cases} \displaystyle \left( 1-\frac{\|\mathbf D_{ij}\mathbf z\|}{\rho_\varPsi} \right)^{m_\varPsi}, & \|\mathbf D_{ij}\mathbf z\|<\rho_\varPsi,\\[8pt] 0, & \|\mathbf D_{ij}\mathbf z\|\geq\rho_\varPsi. \end{cases} $$ 至此,表达式右侧只剩下决策变量 $\mathbf z$、常数选择矩阵 $\mathbf D_{ij}$ 以及固定参数,不再把 $\mathbf p_i^{\mathrm{park}}$ 和 $\mathbf p_j^{\mathrm{exit}}$ 当成独立符号。这里使用 $\mathbf D_{ij}$ 而不使用 $\mathbf A_{ij}$,是为了避免和正文凸走廊约束中的 $\mathbf A_k$ 混淆。 对于每个点对 $(i,j)$,定义 $$ \mathbf r_{ij}(\mathbf z) =\mathbf D_{ij}\mathbf z, \qquad d_{ij}(\mathbf z)=\|\mathbf D_{ij}\mathbf z\|. $$ 当 $00$;当两个点精确重合时,$\|\mathbf r_{ij}\|$ 在零点没有唯一梯度,需要使用平滑距离或在实现中单独处理该点对。 直接对联合变量 $\mathbf z$ 求导,则一个有效点对的梯度为 $$ \nabla_{\mathbf z} K\!\left(\|\mathbf D_{ij}\mathbf z\|\right) =K'(d_{ij}) \frac{\mathbf D_{ij}^{\mathsf T}\mathbf D_{ij}\mathbf z}{d_{ij}}. $$ 定义当前有限支撑域内的有效点对集合 $$ \mathcal I(\mathbf z)= \left\{(i,j)\ \middle|\ 0<\|\mathbf D_{ij}\mathbf z\|<\rho_\varPsi \right\}, $$ 便得到完整交互项关于联合决策变量的梯度: $$ \boxed{ \nabla_{\mathbf z}J_\varPsi(\mathbf z) =c_0\sum_{(i,j)\in\mathcal I(\mathbf z)} K'\!\left(\|\mathbf D_{ij}\mathbf z\|\right) \frac{\mathbf D_{ij}^{\mathsf T}\mathbf D_{ij}\mathbf z} {\|\mathbf D_{ij}\mathbf z\|}.} $$ 由于 $$ \mathbf D_{ij} =\mathbf E_i^{\mathrm{park}}-\mathbf E_j^{\mathrm{exit}}, $$ $\mathbf D_{ij}^{\mathsf T}$ 会把同一个二维点对梯度以相反符号写回 $\mathbf z_{\mathrm{park}}$ 和 $\mathbf z_{\mathrm{exit}}$ 对应的位置分量。这就是 $J_\varPsi(\mathbf z)$ 在一次联合求解中同时更新两条路径的代数原因。 两个梯度大小相等、方向相反。因为 $K'(d)<0$,梯度下降时: - 泊入点 $\mathbf p_i^{\mathrm{park}}$ 沿远离驶离点的方向移动; - 驶离点 $\mathbf p_j^{\mathrm{exit}}$ 沿远离泊入点的方向移动。 这就是第 841 行所说的“两条路径可在同一次求解中相互推离”。它并不是先固定一条路径再移动另一条,而是同一个目标函数对两组决策变量同时提供梯度。 需要注意,梯度形式是对称的,不代表最终位移一定相等。两条路径还分别受到引导场、长度、平滑性和走廊约束的作用;哪条路径更容易移动,取决于这些项共同形成的“刚度”。 ## 4. Hessian 的“跨路径耦合块”是什么 将联合变量按两条路径分块后,目标函数 Hessian 的结构可以概念性地写成 $$ \nabla^2_{\mathbf z\mathbf z}J= \begin{bmatrix} H_{\mathrm{pp}} & H_{\mathrm{pe}}\\ H_{\mathrm{ep}} & H_{\mathrm{ee}} \end{bmatrix}. $$ 这里: - $H_{\mathrm{pp}}$ 描述泊入变量之间的二阶关系; - $H_{\mathrm{ee}}$ 描述驶离变量之间的二阶关系; - $H_{\mathrm{pe}}$ 和 $H_{\mathrm{ep}}$ 描述泊入变量与驶离变量之间的二阶关系,称为跨路径耦合块。 若目标函数可以完全分离为 $$ J(\mathbf z)=J_{\mathrm{park}}(\mathbf z_{\mathrm{park}}) +J_{\mathrm{exit}}(\mathbf z_{\mathrm{exit}}), $$ 那么 $$ H_{\mathrm{pe}}=H_{\mathrm{ep}}=0, $$ 整个 Hessian 按两条路径呈块对角结构。加入 $J_\varPsi$ 后,一个核项同时依赖 $\mathbf p_i^{\mathrm{park}}$ 和 $\mathbf p_j^{\mathrm{exit}}$,所以相应的跨路径二阶导数一般不为零。 对于单个点对,可以把它的 Hessian 贡献写成 $$ \begin{bmatrix} G_{ij} & -G_{ij}\\ -G_{ij} & G_{ij} \end{bmatrix}, $$ 其中 $G_{ij}$ 是关于二维相对位置 $\mathbf r_{ij}$ 的 $2\times2$ 二阶导数矩阵。非对角位置的 $-G_{ij}$ 正是该点对造成的跨路径耦合。 ## 5. 为什么有限支撑核会让跨路径块稀疏 核函数满足 $$ K(d)=0,\qquad d\geq\rho_\varPsi. $$ 在严格满足 $d_{ij}>\rho_\varPsi$ 的区域内,$K(d_{ij})$ 是常数零,因此它的梯度和 Hessian 也都是零。于是: - 若点对 $(i,j)$ 的距离小于 $\rho_\varPsi$,它在跨路径块中产生非零项; - 若点对 $(i,j)$ 的距离大于 $\rho_\varPsi$,它不产生任何导数项。 例如,两条路径各有 4 个点,理论上共有 $4\times4=16$ 个点对。假设只有 $$ (1,1),\ (2,2),\ (2,3),\ (3,3),\ (4,4) $$ 这 5 对点的距离小于作用半径,那么跨路径块中只有与这 5 对点有关的位置非零,其余 11 对均为零。这就是第 841 行所说的“并非稠密的 $M_{\mathrm{park}}\times M_{\mathrm{exit}}$ 块”。 这里的 $M_{\mathrm{park}}\times M_{\mathrm{exit}}$ 是按“配置点对”描述的概念尺寸。由于每个位置点有 $x,y$ 两个分量,实际位置 Hessian 的跨路径块尺寸是 $$ 2M_{\mathrm{park}}\times2M_{\mathrm{exit}}, $$ 每个有效点对通常对应一个 $2\times2$ 小块。 ## 6. “其余部分均为块对角结构”是什么意思 第 843 行的“块对角”是按两条路径分成两个大块而言,并不是说单条路径内部的矩阵是对角矩阵。 ### 6.1 单条路径内部仍然存在耦合 配置约束 $$ \mathbf x_{k+1}=\mathbf x_k+ \frac{\Delta s}{2} \left[\mathbf f(\mathbf x_k,\sigma_k) +\mathbf f(\mathbf x_{k+1},\sigma_k)\right] $$ 同时依赖 $\mathbf x_k$、$\mathbf x_{k+1}$ 和 $\sigma_k$。所以,单条路径内部相邻配置点之间存在耦合,其 Jacobian/Hessian 通常是带状矩阵,而不是对角矩阵。 ### 6.2 但这些约束不连接两条路径 泊入路径的配置约束只包含 $\mathbf z_{\mathrm{park}}$,驶离路径的配置约束只包含 $\mathbf z_{\mathrm{exit}}$。因此按两条路径分块后,约束 Jacobian 具有如下形式: $$ J_{\mathrm{independent}}= \begin{bmatrix} B_{\mathrm{park}}&0\\ 0&B_{\mathrm{exit}} \end{bmatrix}. $$ 其中 $B_{\mathrm{park}}$、$B_{\mathrm{exit}}$ 内部可以是带状的,并不要求是对角的。 同样地: - 曲率与曲率变化率上界只约束各自路径; - 泊入走廊约束只作用于泊入路径; - 驶离走廊约束只作用于驶离路径; - $J_\ell$、$J_U$ 和 $J_\kappa$ 都可以分别写成泊入部分与驶离部分之和。 所以,在不考虑 $J_\varPsi$ 时,两条路径的数值结构基本可以分开处理。 ## 7. 关于装载位约束的一处重要问题 第 843 行称:“唯一的另一处跨路径耦合来自装载位处共享同一位姿”。结合当前论文第 335--347 行的定义,这句话并不严格准确。 当前边界条件写成 $$ \boldsymbol\eta^{\mathrm{park}}(s_{\mathrm{park}}) =\boldsymbol\eta_{\mathrm{load}}, $$ $$ \boldsymbol\eta^{\mathrm{exit}}(0) =\boldsymbol\eta_{\mathrm{load}}, $$ 而正文明确说明 $\boldsymbol\eta_{\mathrm{load}}$ 是由上层系统给出的固定值。若它确实是常量,那么这只是两组分别等于同一常量的边界约束: $$ h_{\mathrm{park}}(\mathbf z_{\mathrm{park}})=0, \qquad h_{\mathrm{exit}}(\mathbf z_{\mathrm{exit}})=0. $$ 第一组不含 $\mathbf z_{\mathrm{exit}}$,第二组不含 $\mathbf z_{\mathrm{park}}$,所以它们不会在 Jacobian 或 Hessian 中产生跨路径非零块。两条路径在几何上共享同一个已知端点,但在导数结构上没有直接耦合。 在当前问题定义下,固定的 $\boldsymbol\eta_{\mathrm{load}}$ 不会形成跨路径导数耦合。只有在另外重新定义约束时,才可能形成真正的跨路径约束,例如: 1. 直接施加 $$ \boldsymbol\eta^{\mathrm{park}}(s_{\mathrm{park}}) -\boldsymbol\eta^{\mathrm{exit}}(0)=0; $$ 2. 由上层模型额外引入一个待优化的共享位姿变量,并让两条路径的边界条件同时依赖该变量。这个做法已经改变了当前论文中“装载位姿由上层系统给定”的问题定义。 因此,按照论文当前“装载位姿固定”的问题定义,真正的跨路径导数耦合只来自 $J_\varPsi$。第 843 行建议相应修改。 ## 8. 可微性表述还需要哪些条件 第 841 行称 $J_\varPsi$ 对 $\mathbf z$ 整体可微,这需要附加条件: - 当两个路径点完全重合,即 $d_{ij}=0$ 时,欧氏范数 $\|\mathbf r_{ij}\|$ 的梯度没有唯一方向;当前核函数在 $d=0$ 处的径向导数通常又不为零,因此复合函数在重合点处不可微。 - 在截断点 $d=\rho_\varPsi$ 处,若 $m_\varPsi>1$,一阶导数可连续衔接到零;若还希望二阶导数连续,通常需要 $m_\varPsi>2$。 这不一定造成实际求解失败,因为车辆路径点通常不会精确重合,且参数可以选择足够高的 $m_\varPsi$。但论文若要声称“整体可微”,最好明确参数条件,并对 $d=0$ 使用平滑距离,例如 $$ d_\varepsilon=\sqrt{\|\mathbf r\|^2+\varepsilon^2}. $$ ## 9. 用一句话重新理解第 841--843 行 这几行的核心意思是: > 大部分目标项和约束都只在各自路径内部产生带状导数结构;交互项 $J_\varPsi$ 同时依赖两条路径,因此能在一次 NLP 求解中推动双方分离。由于核函数只作用于距离小于 $\rho_\varPsi$ 的点对,交互项产生的跨路径 Hessian 块通常是稀疏的。 按照当前“装载位姿为固定常量”的定义,不应再把装载位边界条件称为跨路径导数耦合。 ## 10. 建议替换原文的表述 可以将第 841--843 行改写为: > 式 (joint\_psi\_discrete) 同时依赖泊入与驶离路径的位置变量,故其关于两组变量的梯度均非零,两条路径可在同一次求解中相互推离。由有限支撑核的定义,仅当配置点对的距离小于 $\rho_\varPsi$ 时,该点对才对梯度及 Hessian 产生贡献;因此,交互项所形成的跨路径 Hessian 块仅在空间上相近的配置点对处非零。除 $J_\varPsi$ 外,其余目标项与约束均只作用于单条路径内部:配置约束在各自路径内耦合相邻配置点,形成带状结构;物理上界及走廊约束也不连接两条路径。由于 $\boldsymbol\eta_\mathrm{load}$ 是给定常量,两条路径分别等于该位姿的边界条件不产生跨路径导数耦合。因此,联合问题仅通过稀疏的 $J_\varPsi$ 块发生跨路径耦合。