有约束样条多项式和二次规划
Fan H, Zhu F, Liu C, et al. Baidu apollo em motion planner[J]. arXiv preprint arXiv:1807.08048, 2018.
附录2:Constrained Smoothing Spline and Quadratic Programming部分翻译
QP路径和速度规划使用同样的有约束平滑的样条多项式表示,下面我们将平滑样条多项式问题转化为具有线性约束的二次规划问题,因为一个具有二次型形式目标函数和线性约束的优化问题可以稳定且快速的求解。
在二次规划设置下,我们在给定二次目标函数和线性约束的情况下优化三阶平滑的m次函数
f
(
x
)
f(x)
f(x),这要求m>=5(参见Minimum-jerk)
f
(
x
)
=
Σ
i
=
0
m
p
i
x
i
=
p
T
x
(1)
f(x) = \Sigma_{i=0}^m p_{i}x^{i}=\mathbf{p}^T\mathbf{x} \tag1
f(x)=Σi=0mpixi=pTx(1)
将定义域
(
a
,
b
)
,
a
=
x
0
,
b
=
x
n
(a,b),a=x_0,b=x_n
(a,b),a=x0,b=xn上的平滑样条函数
f
(
x
)
f(x)
f(x),表示为基本的n个分段多项式的线性组合而成。将
x
0
=
a
,
x
1
,
x
2
,
.
.
.
,
x
n
=
b
x_0=a, x_1, x_2, ...,x_n=b
x0=a,x1,x2,...,xn=b 表示为节点(knots),则
f
(
x
)
f(x)
f(x)可表示为分段函数:
f
(
x
)
=
{
f
0
(
x
−
x
0
)
x
∈
[
x
0
,
x
1
)
f
1
(
x
−
x
1
)
x
∈
[
x
1
,
x
2
)
⋯
f
n
−
1
(
x
−
x
n
−
1
)
x
∈
[
x
n
−
1
,
x
n
]
(2)
f(x)=\left\{\begin{array}{ll} f_{0}\left(x-x_{0}\right) & x \in\left[x_{0}, x_{1}\right) \\ f_{1}\left(x-x_{1}\right) & x \in\left[x_{1}, x_{2}\right) \\ & \cdots \\ \tag2 f_{n-1}\left(x-x_{n-1}\right) & x \in\left[x_{n-1}, x_{n}\right] \end{array}\right.
f(x)=⎩
⎨
⎧f0(x−x0)f1(x−x1)fn−1(x−xn−1)x∈[x0,x1)x∈[x1,x2)⋯x∈[xn−1,xn](2)
其中每一项
f
k
(
x
)
=
p
k
0
+
p
k
1
x
+
…
p
k
m
x
m
f_{k}(x)=p_{k 0}+p_{k 1} x+\ldots p_{k m} x^{m}
fk(x)=pk0+pk1x+…pkmxm都是多项式,而
f
k
f_k
fk的系数为
p
k
=
(
p
k
0
,
p
k
1
,
…
,
p
k
m
)
T
\mathbf{p}_{k}=\left(p_{k 0}, p_{k 1}, \ldots, p_{k m}\right)^{T}
pk=(pk0,pk1,…,pkm)T。平滑样条参数向量定义为
p
=
(
p
0
T
,
p
1
T
,
…
,
p
n
−
1
T
)
T
\mathbf{p}=\left(\mathbf{p}_{0}^{T}, \mathbf{p}_{1}^{T}, \ldots, \mathbf{p}_{n-1}^{T}\right)^{T}
p=(p0T,p1T,…,pn−1T)T。
在数学上,样条求解器试图找到一个函数
f
^
\hat{f}
f^来优化再现核希尔伯特空间 (RKHS) 定义域上函数的线性组合,该域空间被描述为
Ω
=
{
f
:
[
a
,
b
]
→
R
∣
f
,
f
(
1
)
,
f
(
2
)
,
f
(
3
)
is abs. conti. and
∫
a
b
(
f
(
m
)
)
2
d
x
<
∞
,
m
=
0
,
1
,
2
,
3
}
.
(3)
\begin{array}{l} \Omega=\left\{f:[a, b] \rightarrow \mathbf{R} \mid f, f^{(1)}, f^{(2)}, f^{(3)}\right. \\ \\ \text { is abs. conti. and } \left.\int_{a}^{b}\left(f^{(m)}\right)^{2} d x<\infty, m=0,1,2,3\right\}. \tag3 \end{array}
Ω={f:[a,b]→R∣f,f(1),f(2),f(3) is abs. conti. and ∫ab(f(m))2dx<∞,m=0,1,2,3}.(3)
样条 QP 问题由目标函数、线性化约束和二次规划求解器构成。
arg
min
f
∈
Ω
P
(
f
)
=
∑
i
=
0
3
w
i
P
i
(
f
)
s
.
t
.
L
(
f
)
=
L
(
p
T
x
)
<
=
0
(4)
\begin{array}{} \arg \min _{f \in \Omega} \mathbf{P}(f)=\sum_{i=0}^{3} w_{i} \mathbf{P}_{i}(f)\\ \\ \tag4 s.t.\ \mathbf{L}(f)=\mathbf{L}(\mathbf{p^T x})<=\mathbf{0} \end{array}{}
argminf∈ΩP(f)=∑i=03wiPi(f)s.t. L(f)=L(pTx)<=0(4)
目标函数
P
(
f
)
\mathbf{P}(f)
P(f)是
Ω
\mathbf{\Omega}
Ω 上四个函数
P
i
,
i
=
0
,
1
,
2
,
3
\mathbf{P}_i , i =0, 1, 2, 3
Pi,i=0,1,2,3的线性组合。具体的
P
0
(
f
)
=
∫
a
b
(
f
(
x
)
−
g
(
x
)
)
2
d
x
P
1
(
f
)
=
∫
a
b
(
f
(
1
)
(
x
)
)
2
d
x
P
2
(
f
)
=
∫
a
b
(
f
(
2
)
(
x
)
)
2
d
x
P
3
(
f
)
=
∫
a
b
(
f
(
3
)
(
x
)
)
2
d
x
(5)
\begin{array}{l} \mathbf{P}_{0}(f)=\int_{a}^{b}(f(x)-g(x))^{2} \mathrm d x \\ \mathbf{P}_{1}(f)=\int_{a}^{b}\left(f^{(1)}(x)\right)^{2} \mathrm d x \\ \mathbf{P}_{2}(f)=\int_{a}^{b}\left(f^{(2)}(x)\right)^{2} \mathrm d x \\ \tag5 \mathbf{P}_{3}(f)=\int_{a}^{b}\left(f^{(3)}(x)\right)^{2} \mathrm d x \end{array}
P0(f)=∫ab(f(x)−g(x))2dxP1(f)=∫ab(f(1)(x))2dxP2(f)=∫ab(f(2)(x))2dxP3(f)=∫ab(f(3)(x))2dx(5)
其中
g
g
g 是在
Ω
\mathbf{\Omega}
Ω域内预先指定的准则函数。第一方程表示到引导线
g
g
g的距离,而其余三个描述
f
f
f的平滑度。约束泛函
L
(
f
(
x
)
)
\mathbf{L}(f(x))
L(f(x))根据问题设置包括以下类型:
- 边界约束。即在给定位置 x x x,满足 L ≤ f ( m ) ( x ) ≤ U , m = 0 , 1 , 2 , 3 L \leq f^{(m)}(x) \leq U, m=0,1,2,3 L≤f(m)(x)≤U,m=0,1,2,3。
- 0至 m m m阶导数的平滑性约束。由于 f f f是分段多项式,因此多项式在样条节点 x k , k = 1 , 2 , . . . , n − 1 x_k,k=1,2,...,n-1 xk,k=1,2,...,n−1处,0至 m m m阶导数对应相等。
- 单调性约束。该约束是专门为速度平滑器设计的,它保证路径在一系列指定点处是单调的。
定理1:式(4)中定义的目标函数 P \mathbf{P} P具有二次型形式,并且约束函数 L \mathbf{L} L对于参数 p \mathbf{p} p呈线性。
证明:为简单起见,将变量向量
x
(
i
)
,
i
=
0
,
1
,
2
,
3
x_{(i)}, i = 0, 1, 2, 3
x(i),i=0,1,2,3表示为
f
f
f关于参数
p
\mathbf{p}
p在
x
∈
[
x
k
,
x
k
+
1
)
,
k
=
0
,
1
,
.
.
.
,
n
−
1
x ∈ [x_k , x_{k+1}), k = 0, 1, ..., n − 1
x∈[xk,xk+1),k=0,1,...,n−1上的
i
i
i阶导数。也就是说,
x
(
0
)
=
(
1
,
x
~
,
x
~
2
,
…
,
x
~
m
)
T
x
(
1
)
=
(
0
,
1
,
2
x
~
,
…
,
m
~
x
m
−
1
)
T
x
(
2
)
=
(
0
,
0
,
2
,
…
,
m
(
m
−
1
)
x
~
m
−
2
)
T
x
(
3
)
=
(
0
,
0
,
0
,
…
,
m
(
m
−
1
)
(
m
−
2
)
x
~
m
−
3
)
T
(6)
\begin{array}{l} \mathbf{x}_{(0)}=\left(1, \tilde{x}, \tilde{x}^{2}, \ldots, \tilde{x}^{m}\right)^{T} \\ \mathbf{x}_{(1)}=\left(0,1,2 \tilde{x}, \ldots, \tilde{m} x^{m-1}\right)^{T} \\ \mathbf{x}_{(2)}=\left(0,0,2, \ldots, m(m-1) \tilde{x}^{m-2}\right)^{T} \\ \tag6 \mathbf{x}_{(3)}=\left(0,0,0, \ldots, m(m-1)(m-2) \tilde{x}^{m-3}\right)^{T} \end{array}
x(0)=(1,x~,x~2,…,x~m)Tx(1)=(0,1,2x~,…,m~xm−1)Tx(2)=(0,0,2,…,m(m−1)x~m−2)Tx(3)=(0,0,0,…,m(m−1)(m−2)x~m−3)T(6)
其中
x
~
=
x
−
x
k
,
x
∈
[
x
k
,
x
k
+
1
)
,
k
=
0
,
1
,
.
.
.
,
n
−
1
\tilde{x}=x-x_k, x ∈ [x_k , x_{k+1}), k = 0, 1, ..., n − 1
x~=x−xk,x∈[xk,xk+1),k=0,1,...,n−1,根据式(2),每一个
P
i
,
i
=
1
,
2
,
3
\mathbf{P}_i, i =1, 2, 3
Pi,i=1,2,3可以表示为积分的和
P
i
(
f
)
=
∑
k
=
0
n
−
1
∫
x
k
x
k
+
1
(
f
(
i
)
)
2
d
x
=
∑
k
=
0
n
−
1
∫
x
k
x
k
+
1
p
k
T
x
(
i
)
x
(
i
)
T
p
k
d
x
=
p
T
X
(
i
)
p
(7)
\begin{array}{l} \mathbf{P}_{i}(f)=\sum_{k=0}^{n-1} \int_{x_{k}}^{x_{k+1}}\left(f^{(i)}\right)^{2} \mathrm d x \\ \\ =\sum_{k=0}^{n-1} \int_{x_{k}}^{x_{k+1}} \mathbf{p}_{k}^{T} \mathbf{x}_{(i)} \mathbf{x}_{(i)}^{T} \mathbf{p}_{k} \mathrm d x \\ \\ \tag7 =\mathbf{p}^{T} \mathbf{X}_{(i)} \mathbf{p} \end{array}
Pi(f)=∑k=0n−1∫xkxk+1(f(i))2dx=∑k=0n−1∫xkxk+1pkTx(i)x(i)Tpkdx=pTX(i)p(7)
其中
X
(
i
)
\mathbf{X}_{(i)}
X(i)是分块对角阵
Diag
(
∫
x
0
x
1
x
(
i
)
x
(
i
)
T
d
x
,
…
,
∫
x
k
x
k
+
1
x
(
i
)
x
(
i
)
T
d
x
)
\operatorname{Diag}\left(\int_{x_{0}}^{x_{1}} \mathbf{x}_{(i)} \mathbf{x}_{(i)}^{T} d x, \ldots, \int_{x_{k}}^{x_{k+1}} \mathbf{x}_{(i)} \mathbf{x}_{(i)}^{T} d x\right)
Diag(∫x0x1x(i)x(i)Tdx,…,∫xkxk+1x(i)x(i)Tdx),类似的对
i
=
0
i=0
i=0有,
P
0
(
f
)
=
∑
k
=
0
n
−
1
∫
x
k
x
k
+
1
(
f
(
x
)
−
g
(
x
)
)
2
d
x
=
∑
k
=
0
n
−
1
∫
x
k
x
k
+
1
(
p
k
T
x
(
0
)
x
(
0
)
T
p
k
−
2
p
k
T
x
(
0
)
g
(
x
)
+
(
g
(
x
)
)
2
)
d
x
=
p
T
X
(
0
)
p
−
2
p
T
c
+
const.
\begin{array}{l} \mathbf{P}_{0}(f)=\sum_{k=0}^{n-1} \int_{x_{k}}^{x_{k+1}}(f(x)-g(x))^{2} \mathrm d x \\ \\ =\sum_{k=0}^{n-1} \int_{x_{k}}^{x_{k+1}}\left(\mathbf{p}_{k}^{T} \mathbf{x}_{(0)} \mathbf{x}_{(0)}^{T} \mathbf{p}_{k}-2 \mathbf{p}_{k}^{T} \mathbf{x}_{(0)} g(x)+(g(x))^{2}\right)\mathrm d x \\ \\ =\mathbf{p}^{T} \mathbf{X}_{(0)} \mathbf{p}-2 \mathbf{p}^{T} \mathbf{c}+\text { const. } \end{array}
P0(f)=∑k=0n−1∫xkxk+1(f(x)−g(x))2dx=∑k=0n−1∫xkxk+1(pkTx(0)x(0)Tpk−2pkTx(0)g(x)+(g(x))2)dx=pTX(0)p−2pTc+ const.
其中
X
(
0
)
\mathbf{X}_{(0)}
X(0)是分块对角阵
Diag
(
∫
x
0
x
1
x
(
0
)
x
(
0
)
T
d
x
,
…
,
∫
x
k
x
k
+
1
x
(
0
)
x
(
0
)
T
d
x
)
\operatorname{Diag}\left(\int_{x_{0}}^{x_{1}} \mathbf{x}_{(0)} \mathbf{x}_{(0)}^{T} d x, \ldots, \int_{x_{k}}^{x_{k+1}} \mathbf{x}_{(0)} \mathbf{x}_{(0)}^{T} d x\right)
Diag(∫x0x1x(0)x(0)Tdx,…,∫xkxk+1x(0)x(0)Tdx),且
c
=
∫
x
k
x
k
+
1
x
(
0
)
g
(
x
)
d
x
\mathbf{c}=\int_{x_{k}}^{x_{k+1}} \mathbf{x}_{(0)} g(x) d x
c=∫xkxk+1x(0)g(x)dx。
因此,目标函数 P ( f ) \mathbf{P}(f) P(f)对于样条系数矢量 p \mathbf p p具有标准二次型形式,具有凸性,证毕!