1. 引言
传统的随机规划大多研究的是随机变量分布信息完全已知的情况或者不确定性被处理成分布已知的随机变量 [1] [2] [3]。但在实际中不确定性的分布函数很难完全已知或者只知道分布部分信息。而分布鲁棒优化只是对随机变量的未知分布提出了限制约束,并还沿用了鲁棒优化的最差期望性能,在计算方面也较为容易实现。因此,对分布鲁棒优化的研究成为运筹学领域研究的热点。
常见的分布鲁棒优化问题的数学形式为
(1)
其中,
表示在分布F下关于
取期望,
是分布不确定集。早在1958年,Scarf为解决一些简单的库存问题提出了分布鲁棒优化模型 [4]。对于不确定集的模糊性的处理常用的方法是利用分布的矩信息。例如,Bertsimas和Popescu用期望和方差定义分布集合 [5],Bertsimas、Natarajan和Teo用边缘矩已知定义分布集合 [6] [7],Delage和Ye用不确定参数的均值、协方差矩阵构造分布不确定集合 [8],Wiesemann、Kuhn和Sim用概率约束和矩约束构造了不确定集 [9]。除此之外还有其他构造不确定集合的方法。如Alison用K-L散度 [10],Kuhn用wasserstein距离来构造不确定集 [11]。在2016年,叶剑雄等人受分布鲁棒优化的启发,考虑了一类不确定参数自治切换系统的分布鲁棒最优控制问题 [12],其中不确定参数的分布是未知的,但一阶矩和二阶矩已知,并以最差期望性能为目标性能。
本文将以文献 [12] 的模型为基础,进一步考虑多参数不确定切换系统的分布鲁棒最优控制问题。已知不确定参数的一阶矩和二阶矩信息,以一阶矩和二阶矩为约束,通过最小化不确定集中的所有分布的最坏情况期望为目标性能,建立分布鲁棒最优控制模型,重点考虑了离散分布情形的问题。该问题是一个min-max问题,其内层优化是求解最差期望性能的分布,外层为具有动力系统约束的非线性最优控制问题。本文运用非线性规划方法求解内层问题,再利用竞争粒子群对外层问题进行迭代计算。最后,以一类微生物批式流加发酵的分布鲁棒最优控制问题作为实例,阐述了多参数不确定切换系统的分布鲁棒最优控制问题的应用,并验证了所构造算法的有效性。
2. 问题描述
考虑如下带有不确定参数的切换系统:
(2)
这里,
是状态向量,
是连续控制函数,
为离散控制,
是不确定参数。一般情况下,
被假设为确定的,但这一假设在许多实际问题中并不成立。本文假设对于
只知道它的一些分布信息,进而考虑如下切换系统的分布鲁棒最优控制问题:
(3)
这里,U是凸紧集且
,F是不确定参数
的一个分布,该分布下
的一阶矩和二阶矩分别为
和
。
对上述问题,本文考虑离散分布的情形。设
,其中分量
有
种可能取值,分别为
。并令
,
,
。令
为参数向量
的第k种可能取值,由于
的各分量分别有
种取值,可知
,且
。设
。问题(DROCP)可以等价于如下问题(DROCP1):
(4)
为了将控制函数
参数化,令
。利用分段常值函数来近似控制函数
,即
(5)
这里,
,
,
是集合I的示性函数,即
(6)
定义
,
。令
是对应于
的系统(2)的解。则问题(DROCP1)可近似为如下有限维的参量最优控制问题(DROCP2):
(7)
3. 计算方法
显然,问题(DROCP2)是一个min-max问题,其内层关于
的优化问题是约束线性,目标函数为多项式结构,相对容易求解,但其外层为具有动力系统约束的非线性最优控制问题,其求解难度相对较大。为充分利用内层优化相对容易求解的特点,本文将内层问题与外层问题分别求解。其中,内层问题利用非线性规划方法进行求解,外层问题则通过构造竞争粒子群 [13] 进行求解。
为叙述方便,令
。对于给定的
,先将
转化成
,再通过Python里的minimize函数求解内层问题
,并给出其估计值。然后,构造如下竞争粒子群算法来计算问题(DROCP2)的外层问题的最优解。
算法3.1
步骤1 设置种群中粒子总数M。k是迭代次数,令
。
步骤2 随机产生一个初始种群
。设置初始速度
,
。设置最大迭代数
。
步骤3 当
时,记
。若
,则计算性能指标
,
。否则,计算性能指标
。
步骤4 计算
和
。
步骤5 当
时,依次执行6~9。
步骤6 从
中任意选取三个粒子,分别记为
,并记
\
。
步骤7 假设
,令
,
,
。这里,
,
,
分别表示第j轮竞争中的获胜者和两个失败者。
步骤8 根据位置和速度更新公式更新
。其中,位置更新公式和速度更新公式分别如下:
(8)
(9)
这里
表示
的影响参数,
表示
的影响参数。
是在第k次迭代的第j轮竞争中(0, 1)区间上不同的随机数。
步骤9 记
,
,
,
。
步骤10
。
4. 数值算例
本节以一类微生物批式流加发酵模型为例,对上述算法进行验证。批式流加发酵过程是指在开始时往发酵罐注入一定的微生物和底物搅拌均匀后培养一段时间,之后为了使底物浓度和发酵液的营养物浓度保持在一定范围内,将底物分批次灌入发酵罐中。设
为连续状态变量。其中,X是生物量浓度(g/L),S是底物浓度(g/L)以及V是发酵液体积(L)。
表示底物的流加速度(L/h),
。假设整个批式流加发酵时间区间为
。根据微生物生长特征,将整个发酵过程分为N个阶段,即
,这里N是一个正整数。把每个阶段再分成
个子区间,即
。底物在一个子区间流加,下一个子区间不流加,即
(10)
如此交替进行,且在
阶段内,每次流加时长相同,两次流加之间间隔的时长也相同。记
阶段内底物每次流加时长为
,即
,并将一次流加的开始到下一次流加的开
始称为一个流加控制周期,其时长记为
,即
,
。在生物实验
中,一般取
为一个固定常数,即
。根据上面叙述,有
(11)
令
,并令
为包含所有满足约束的
的集合。由
可知,当
给定后,则v在任何时刻的值可唯一确定,记为
。批式流加发酵过程控制系统描述如下:
(12)
(13)
(14)
其中,
是细胞的比衰减率,
是培养液中底物的浓度,
是细胞的比生长率,以及
是底物的比消耗率。具体形式如下:
(15)
(16)
这里,
是细胞的最大比生长率,
是饱和常数,
是细胞停止生长的底物浓度的临界值。
和
是动力学参数。
事实上,在不同的发酵阶段
和
会发生变化,因此,我们考虑把
和
看作是不确定参数。假设不确定参数的一阶矩和二阶矩分别是
、
以及
、
。为叙述方便,令
。
4.1. 最优控制问题
本算例考虑的最优控制问题如下:以100 s为控制周期,即
选取合适的流加时间
,使得生物浓度在终端时刻达到最大。该最优控制模型描述如下:
(17)
令
,
分别是参数
、
的可能取值,
和
是其相应的概率,即
,
,
,
。设
,
。上述最优控制问题(OPC)可以等价于以下最优控制问题(OPC1):
(18)
4.2. 数值结果
设初始值为
,
,
,
,
,
,
,
,
,
,
,
。将总的发酵时间分成25个阶段,即0 < 1 < 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < 11 < 12 < 13 < 14 < 15 < 16 < 17 < 18 < 19 < 20 < 21 < 22 < 23 < 24 < 25。在不确定参数
和
的连续分布的离散化中,我们在区间
和区间
上分别各选择了8个特征元素
,
,这里
,
。利用改进的欧拉法对系统进行数值计算,其中步长为
1/3600。在算法(3.1)中,
,
以及
。算法通过Python软件编程实现,在AMD Ryzen 7 4800H的处理器下求解问题(OCP1)一次的运行时长约为117小时。此时,得到的最优
= (1.79×10−5, 2.46 × 10−5, 1.37 × 10−4, 5.22 × 10−1, 4.70 × 10−1, 1.14 × 10−4, 1.56 × 10−4, 7.37 × 10−3),
= (1.50 × 10−1, 8.24 × 10−4, 1.76 × 10−2, 3.27 × 10−2, 6.65 × 10−1, 1.03 × 10−1, 2.19 × 10−2, 8.20 × 10−3),在这个结果下
Figure 1. The concentrations of biomass under
,
and
图1. 在
,
和最优
下,生物量的浓度变化
Figure 2. The concentrations of substrate under
,
and
图2. 在
,
和最优
下,底物的浓度变化
得到的最优切换信号
= (0.000, 49.353, 60.000, 33.102, 5.868, 30.660, 24.768, 27.960, 0.100, 13.893, 7.750, 14.415, 17.429, 22.922, 27.714, 34.639, 15.891, 44.281, 36.272, 39.631, 36.491, 49.297, 60.000, 54.140, 12.930) (s)。在以上最优
,
和最优
下得到的最优值为−0.95465。图1和图2给出了在
,
和最优
下生物量浓度和底物浓度的轨迹。
5. 结论
本文考虑了多参数不确定切换系统分布鲁棒最优控制问题。以不确定参数已知的一阶矩和二阶矩为约束,以最差期望性能为目标性能,建立切换系统分布鲁棒最优控制模型。利用非线性规划方法对内层问题进行求解,再利用竞争粒子群方法对外层进行求解。最后,以一类微生物批式流加发酵分布鲁棒最优控制问题对切换系统分布鲁棒最优控制问题的应用进行了说明。数值结果显示了算法的有效性。
基金项目
国家自然科学基金面上项目(11671335);福建省自然科学基金项目(2021J01660)。