上一篇介绍了控制 的线性问题之 Bang-Bang Controls, 我们知道 Bang-Bang 控制是指 仅在单点处成立. 相反的, 如果 在一些区间上成立, 我们就称 在区间上是 singular (非奇异?非平凡?).
下面将以一个具体的例子说明如何求解 Singular Controls 问题.
Example. 我们考虑如下一个渔业模型的最优化问题.
subject to
(1)
.
其中 表示收获鱼的单位, 是一个单位的价格, 是鱼的可捕获性, 是收获一个单位的成本. 控制 是收获所付出的努力, 积分代表总利润、收入减去成本. 我们可以得到
(2)
(3)
(4)
假设 在一些区间上横成立. 同时假设 , 这就意味着 . 因此, 我们由 , 可得
(5)
对 (5) 式两边关于 求微分, 可得
(6)
与 (3) 式连立并结合 (5) 式, 可得
因此,
是一个常值, 因此在 singular interval 上 , 利用系统的方程(1), 可得
注意到, 这个最优控制问题的控制是有界的, 因此, 如果 不在 内, 那么该问题仍然是一个 Bang-Bang control. 如果 , 就是 singular control.
那么问题来了, 对于这样的最优控制问题如何数值求解呢? 事实上只需要在更新控制 处做一些调整就可以了. 比如对于该问题, 我们需要做如下更改:
for i=1:N+1
temp = p*q*x(i)-c-q*x(i)*lambda(i)
if (temp < 0)
u1(i) = 0;
else if(temp == 0)
u1(i) = (p*q-c)(2*p*q^2);
else
u1(i) = M;
end
end
u = 0.5*(u1 + odeu);
但是, 实际上在数值计算中是很难精确的得到 temp==0 的结果的, 所以在实际计算中, 我们会在零附近取一个很小的区间 ( 如(-0.00001, 0.00001) ) 以此来表示temp==0的情况.