上下为 2 个时间序列(白=序列 1,蓝=序列 2),右上为成本矩阵网格。蓝线为 Sakoe-Chiba 窗口约束下的最优路径,黄色高亮为窗口边界。
$$D(i,j) = d(x_i, y_j) + \min\bigl\{D(i-1,j-1),\, D(i-1,j),\, D(i,j-1)\bigr\}$$
D = 累积成本矩阵,d = 点对点距离。通过动态规划逐单元更新,最终单元 D(N,M) 为 DTW 距离。
$$|i-j| \le w, \qquad w = \max\bigl(|N-M|,\ \lceil r\cdot\max(N,M)\rceil\bigr)$$
Sakoe-Chiba 窗口约束。r 为窗口宽度%,w 外的单元不计算。约束单元数为 N·(2w+1) − w·(w+1),可大幅降低内存和计算量。
$$\text{加速比} = \frac{N \cdot M}{N \cdot (2w+1) - w(w+1)}$$
相对于朴素全搜索 N·M 的加速倍数。窗口越窄加速越快,但最优路径偏离窗口的危险增加。