舰船科学技术  2024, Vol. 46 Issue (1): 88-93    DOI: 10.3404/j.issn.1672-7649.2024.01.015   PDF    
改进高效全局优化算法在船型优化中的应用
朱雨辰     
上海海事大学,上海 201306
摘要: 船型优化问题的复杂度越来越大,导致昂贵数值计算量越来越大,进而优化成本越来越高,对优化技术提出了更高的要求:精简计算量,降低优化成本。本文针对高效全局优化算法进行研究和开发,对其初始样本点、加点法则以及收敛条件等进行了探讨,采用多种初始样本点数启动优化,采用“期望函数”作为单目标加点法则以及欧氏距离EIM函数作为多目标加点法则,使用遗传算法对加点函数进行寻优精确定位最佳新增样本点,并通过标准优化测试函数进行了验证。为船型优化问题提供了新的思路。
关键词: 船型优化     精简计算量     高效全局优化算法     加点法则    
Application of improved efficient global optimization algorithm
ZHU Yu-chen     
Shanghai Maritime University, Shanghai 201306, China
Abstract: The ship hull optimization problem is becoming more and more complex, resulting in an increasing amount of expensive numerical calculations, which in turn makes the optimization cost higher and higher. This puts forward higher requirements for optimization technology, to streamline the calculation amount and reduce the optimization cost. This paper conducts research and development on efficient global optimization algorithms, discusses its initial sample points, sample point adding rules and convergence conditions, using a variety of initial sample points to start optimization. Expected Improvement as the single-objective sample adding rule and euclidean. The distance EIM function is used as a multi-objective sample adding rule, and a genetic algorithm is used to optimize the sample adding function to accurately locate the best new sample points, and is verified through a standard optimization test function. It provides new ideas for ship type optimization problems.
Key words: ship hull optimization     streamline the calculation amount     efficient global optimization     sample adding role    
0 引 言

高效全局优化算法(Efficient Global Optimization, EGO)是Jones 在1998年提出[1]。它的基本思想是首先采用试验设计采样,进而构造一个初始的近似模型,EGO方法以Expected Improvement为核心加点法则进行迭代加点,用于选择下一个采样点以在全局优化问题中有效地探索设计空间,最终收敛到最优解。由于其加点法则能够智能地对目标函数进行采样,重点关注了真实最优解可能位于的区域,同时又避免了在目标函数平坦或已经被探索过的区域进行不必要的评估,从而提高了全局寻优的效率。因此,EGO方法是一种用于寻找复杂和昂贵目标函数的全局最优解机器学习优化技术。在处理黑盒函数(黑盒函数指的是数学形式未知或过于复杂而不能直接处理的函数)时特别有用。EGO目前已在飞机、汽车、风机等工程领域得到应用[2-11]

船舶线型优化是指在设计船舶时优化其外形和线型,以达到特定的性能、经济性和环境要求。面对日益严苛的节能减排要求,船舶线型优化问题变得更加复杂,如船型设计需要满足一系列的不等或等式约束条件,如排水体积、稳性等。通常基于CFD仿真进行设计,数值模拟需要大量的计算资源和时间成本。船型几何涉及数十数百个参数定义,不单单只是阻力性能优化,还包含推进效率、载重吨、稳性高等多个冲突的目标折中优化。这些问题使得船舶线型优化难度加大。对于像水面船舶这种两相流模拟,即使采用集群或者超算进行数值计算,单个诸如150万左右网格量的静水阻力粘流算例,采用100核并行计算,也需几十分钟得到阻力值,更不要说耐波性和操纵性优化。因此,必须寻找一种适用于船舶性能多目标优化、节约计算资源、加快优化周期的优化技术。

本文对EGO优化算法应用于船型优化进行探讨,在单目标和多目标EGO算法初始样本点数的设置、加点法则、收敛条件等方面进行研究,并采用标准优化测试函数进行了验证。

1 单目标EGO算法

EGO优化算法本身属于单目标优化算法,从“期望改善”(Expected Improvement,EI)函数开始剖析。

假设初始采样点的个数是n,使得${f_{\min }} = \min ({y^{(1)}},..., {y^{(n)}})$为当前函数最小值。在采样未知点${x}$时,其实它的函数值$y({x})$是不确定的。当然,它的值是唯一的,只是不知道。但可以把$y({x})$的不确定性作如下处理:认为它是一个符合正态分布的随机变量$Y{\text{~}}N(\hat y,{s^2})$,其中$\hat y$是Kriging模型预报的值,${s^2}$是Kriging模型预报的方差。

比如图1中,对于样本点$ x=0.77 $,认为这点的函数值是一个随机变量Y,给出了其正态分布$Y{\text{~}}N(\hat y,{s^2})$密度函数曲线,由图可见,它是有比目前的最小值${f_{\min }}$更小可能性的,因为密度函数曲线延伸至直线$y = {f_{\min }}$下。不同的密度函数与在直线$y = {f_{\min }}$下的不同距离(或者比目前最小值的不同提高量)有直接关系。如果以此衡量这些可能的提高量,就可以得到“期望改善”。

图 1 一维函数的近似模型和它的不确定性分析 Fig. 1 Kriging model for a function and its uncertainty

从数学上正式定义,假设在样本点${x}$的提高量$I{\text{ = }}\max ({f_{\min }} - Y,0)$。这个I也是一个随机变量,因为Y是一个随机变量(代表在${x}$点的函数值的不确定性)。为了获得“期望改善”,采用下面这个表达式来计算:

$ E[I({x})] \equiv E[\max({f_{\min }} - Y,0)]。$ (1)

其中,认为随机变量$Y{\text{~}}N(\hat y,{s^2})$$\hat y$是Kriging模型预报的值,${s^2}$是Kriging模型预报的方差。式(1)右边项可用积分形式表示,再通过一系列冗长的推导可以得到以下封闭形式的表达:

$ E[I({x})] = ({f_{\min }} - \hat y)\Phi \left(\frac{{{f_{\min }} - \hat y}}{s}\right) + s {\text{ϕ}}\left(\frac{{{f_{\min }} - \hat y}}{s}\right)。$ (2)

其中,${\text{ϕ}}( \cdot )$$\Phi ( \cdot )$是标准正态密度函数和标准正态分布函数。

期望改善函数是一个多峰函数。事实上,期望改善函数在样本点处值为0,并且其他地方的值都是正数(尽管也许会很小)。这些性质使得对期望改善函数寻优较为困难,因此采用遗传算法对该函数寻优,摒弃基于梯度的优化算法寻优。根据式(3)和式(4)可知,当预测点值越小时,期望改善函数值越大,当方差较大,期望改善函数值越大。

$ \frac{{\partial E(I)}}{{\partial \hat y}} = - \Phi \left( {\frac{{{f_{\min }} - \hat y}}{s}} \right) < 0,$ (3)
$ \frac{{\partial E(I)}}{{\partial s}} = {\text{ϕ}} \left( {\frac{{{f_{\min }} - \hat y}}{s}} \right) > 0。$ (4)

因此提出将期望改善函数EI($E[I({x})]$)值最大的点加入到样本点,重新构建Kriging模型。基于EI函数的加点准则同时考虑了搜索位置处的预测值和预测误差。根据期望改善函数EI的特性,当某点的预测值很小时,$({f_{\min }} - \hat y({x}))$就很大,式(2)偏向第一项,预测值就占主导地位,引导EGO算法向预测值极小处迭代寻优。当某点的预测误差很大时,式(2)偏向第二项,引导EGO算法向预测误差极小处迭代寻优。这样EGO算法很好地避免了寻优搜索过程陷入局部最优的风险,达到同时兼顾寻优效率和全局寻优的效果。另外,很重要的一点它也避免了过度依赖近似模型的精度。

整个EGO全局优化算法主要包含试验设计、Kriging模型构建和利用EI函数寻优加点进行优化迭代三部分,具体流程如下:

1)利用优化拉丁超立方方法在设计空间采取样本点,生成设计空间的初始样本点集;

2)计算所有样本点的目标函数值;

3)根据所有样本点的设计变量值和目标函数值构建Kriging模型;

4)构建EI函数,通过单目标遗传算法求解EI函数最大值对应的设计点;

5)将该设计点添加入样本点集;

6)验证近似模型是否满足精度要求及最终停止法则($\max EI < 0.1\% $)。若满足,算法停止输出最优值;否则返回步骤2。

以一个简单的一维函数为例,图2为根据期望改善函数不断添加新的样本点示意图。图中实线表示真实函数,虚线表示近似模型,阴影区域表示$\hat y \pm s$,圆形点表示初始样本点,方形点表示已新添的样本点,三角形点表示即将新添的样本点。初始时,采样6个样本点构建近似模型,可以看出近似模型与真实函数曲线还存在一定差距。当第2次迭代时,可见在x=2.5时,EI值最大,此时在此添加新的样本点,重构近似模型(见图2(a));当第5次迭代时,EI最大值出现在x=17.4左右处,则在此添加新的样本点重新构建近似模型(见图2(b)),此时近似模型曲线与真实函数曲线趋于一致。从上面的加点过程来看,第2次加点时EI值最大处是预报方差较大处,而第5次加点时EI值最大处发生在$\hat y$较小值处,这表明EGO方法既考虑了近似模型局部精度问题,同时又在不断地探求全局最优值。

图 2 基于EGO方法的一维函数寻优示意图 Fig. 2 Optimization for a one-dimensional function based on EGO method
2 多目标EGO算法

单目标EGO算法在解决单目标优化问题上大大降低了数值模拟耗时长和计算资源耗费大的问题,而实际工程应用中存在很多的多目标优化问题,因此将EGO算法推广到多目标优化问题上具有非常重要的工程意义及价值。其实,EGO算法中最重要的是EI加点准则,而将单目标EGO算法推广到多目标EGO算法,整个算法框架和流程依旧不变,只需要提出合理的多目标EI准则,而提高函数$I{\text{ = }}\max ({f_{\min }} - Y,0)$不再是简单的一维距离,需要在多维空间中重新定义。本文采用欧氏距离EIM准则来实现多目标EGO算法。

在多目标优化问题中,最优解并非唯一,一般由多个点组成近似Pareto前沿,这里记为:

$ {S}{\text{ = }}\left[ \begin{gathered} f_1^1{\text{ }}f_2^1{\text{ }} \cdots {\text{ }}f_m^1 \\ f_1^2{\text{ }}f_2^2{\text{ }} \cdots {\text{ }}f_m^2 \\ {\text{ }} \vdots {\text{ }} \vdots {\text{ }} \ddots {\text{ }} \vdots \\ f_1^k{\text{ }}f_2^k{\text{ }} \cdots {\text{ }}f_m^k \\ \end{gathered} \right]。$ (5)

其中,S为根据当前近似模型得到的近似Pareto前沿;m为目标函数的个数;k为当前Pareto前沿上点的个数。多目标的近似Pareto前沿S将原本单目标的唯一解$ {f}_{\min} $进行了拓展:解的个数从1个变成了k个;解的维数从一维变成了m维。因此,根据这个思想,将一维的EI函数拓展为二维EI矩阵(Expected Improvement Matrix, EIM):

$ {\mathbf{EIM}}{\text{ = }}\left[ \begin{gathered} {{EI}}_1^1{\text{(}}{\boldsymbol{x}}{{) EI}}_2^1{\text{(}}{\boldsymbol{x}}{\text{) }} \cdots {{ EI}}_m^1{\text{(}}{\boldsymbol{x}}{\text{)}} \\ {{EI}}_1^2{\text{(}}{\boldsymbol{x}}{{) EI}}_2^2{\text{(}}{\boldsymbol{x}}{\text{) }} \cdots {{ EI}}_m^2{\text{(}}{\mathbf{x}}{\text{)}} \\ {\text{ }} \vdots {\text{ }} \vdots {\text{ }} \ddots {\text{ }} \vdots \\ {{EI}}_1^k{\text{(}}{\boldsymbol{x}}{{) EI}}_2^k{\text{(}}{\boldsymbol{x}}{\text{) }} \cdots {{ EI}}_m^k{\text{(}}{\boldsymbol{x}}{\text{)}} \end{gathered} \right]。$ (6)

其中的每一个元素根据式(2)可得:

$ {{EI}}_i^j({\boldsymbol{x}}) = (f_i^j - {\hat y_i}({\boldsymbol{x}}))\Phi \left(\frac{{f_i^j - {{\hat y}_i}({\boldsymbol{x}})}}{{{s_i}({\boldsymbol{x}})}}\right) + {s_i}({\boldsymbol{x}})\phi \left(\frac{{f_i^j - {{\hat y}_i}({\boldsymbol{x}})}}{{{s_i}({\boldsymbol{x}})}}\right)。$ (7)

其中,$ {f}_{i}^{j} $是近似Pareto前沿S矩阵中第j行第i列的元素,即第j个点的第i个目标分量,而$ {\hat y_i}({\boldsymbol{x}}) $${s_i}({\boldsymbol{x}})$表示第i个目标函数的Kriging近似模型的预测值及标准差。

根据图3可以更加直观地理解式(6)所得的一个二维EI矩阵。矩阵中的任一元素如${\text{EI}}_1^1$表示点$ \boldsymbol{x} $与近似Pareto前沿上第一个非支配点的第一个坐标分量$ {f}_{1}^{1} $$ {f}_{1} $目标方向上的EI值;${\text{EI}}_2^1$表示$ \boldsymbol{x} $与近似Pareto前沿上第一个非支配点的第二个坐标分量$ {f}_{2}^{1} $$ {f}_{2} $目标方向上的EI值,即EI矩阵中任一${{EI}}_i^j({{x}})$表示近似Pareto前沿的第j个点的第i个目标的期望提高值。因此,EI矩阵可以用来衡量任一点对当前近似Pareto前沿在所有目标方向上的期望提高值,这正是多目标EGO算法的核心内容,但单纯EI矩阵还无法作为更新点的准则,必须合理利用EI矩阵,将其转换成一个数值量来衡量任一未知点对当前近似Pareto前沿点的总体提高量,进而作为多目标EI准则加点。

图 3 二维EI矩阵示意图[12] Fig. 3 2D example of the EI matrix

本文采用欧氏距离EIM准则,表示如下:

$ {\text{EI}}{{\text{M}}_e}({\boldsymbol{x}}) = \mathop {\min }\limits_{j = 1}^k \sqrt {\sum\limits_{i = 1}^m {{{\left( {{{EI}}_i^j\left( {\boldsymbol{x}} \right)} \right)}^2}} }。$ (8)

多目标EI加点的思想就是在EIM最大的点处加点,即当前近似Pareto前沿所有目标性能方向提高量最大的样本点加入样本库,更新近似模型,从而更新近似Pareto前沿,该EIM准则具有收敛性,最终会收敛到多目标优化问题的最优解。其基本流程跟单目标EGO算法流程整体相同,只是加点法则更改为EIM准则。

3 标准优化测试函数验证

为了验证单目标和多目标EGO算法的可靠性,采用常用的优化测试函数进行分析验证。

1)单目标优化问题

选用标准Branin-Hoo函数测试,该函数常用来考察近似模型的精度以及EGO算法可靠性,表达式如下:

$ f\left( {\boldsymbol{x}} \right) = a{({x_2} - bx_1^2 + c{x_1} - r)^2} + s(1 - t)\cos({x_1}) + s。$ (9)

其中,$a = 1,b = 5.1/(4{{\text{π}} ^2}),c = 5/{\text{π}} ,r = 6,s = 10,t = 1/(8{\text{π}} )$.

通过基于单目标EGO算法对该函数的应用,考察了两点:1)采用相同的初始样本点以及其他相同的参数配置,运行三次EGO算法(因为EI最值寻优采用遗传算法存在随机性)查看优化结果情况;2)采用不同的初始样本点,其他采用相同的配置,查看优化结果情况。图4结果显示,采用更多的初始样本点,EGO算法收敛更快,初始样本点越多。初始近似模型的精度越高,EGO算法能够更快在全局最优点附近搜索;采用较少的样本点,总体的目标函数评价次数并没有比采用较多的样本点数多。因此,也表明了EGO算法不仅依赖初始的近似模型精度,同时又不完全依赖初始的近似模型精度。图5结果显示,多次运行EGO算法整个迭代收敛过程会不同,这是由于在评价EI准则时采用了遗传算法寻优,而遗传算法具有随机性。但即便如此,对最终优化结果并未产生影响。

图 4 基于不同初始样本点数的单目标EGO算法寻优迭代结果 Fig. 4 Iteration results by single-objective EGO based on different initial numbers of samples

图 5 基于相同初始样本点数的单目标EGO算法寻优三次迭代结果 Fig. 5 Three iteration results by single-objective EGO based on the same initial numbers of samples

2)多目标优化问题

选择2个多目标优化测试函数[13],对其采用多目标EGO算法寻优,并将所得结果与文献[12]的结果进行对比分析。2个测试函数ZDT1和ZDT2分别为:

$ \min {\text{ }}\left\{ \begin{gathered} {f_1}({{x}}) = {x_1} ,\\ {f_2}({{x}}) = g({{x}})h({f_1}({{x}}),g({{x}})),\\ g({{x}}) = 1 + \frac{9}{{29}}\sum\nolimits_{i = 2}^{30} {{x_i}} ,\\ h({f_1}({{x}}),g({{x}})) = 1 - \sqrt {\frac{{{f_1}({{x}})}}{{g({{x}})}}} 。\end{gathered} \right. $ (10)

其中,$0 \leqslant {x_i} \leqslant 1,1 \leqslant i \leqslant 30$

$ \min {\text{ }}\left\{ \begin{gathered} {f_1}({{x}}) = {x_1},\\ {f_2}({{x}}) = g({{x}})h({f_1}({{x}}),g({{x}})),\\ g({{x}}) = 1 + \frac{9}{{29}}\sum\nolimits_{i = 2}^{30} {{x_i}},\\ h({f_1}({{x}}),g({{x}})) = 1 - {\left( {\frac{{{f_1}({{x}})}}{{g({{x}})}}} \right)^2}。\end{gathered} \right. $ (11)

其中,$0 \leqslant {x_i} \leqslant 1,1 \leqslant i \leqslant 30 $

针对这2个测试函数,在寻找EIM准则最优值时采用了相同的遗传算法参数配置,EGO算法初始的样本点数为11k-1(k为设计变量个数,这里30),优化迭代次数最大50。图6图7结果显示,本文基于多目标EGO算法成功寻找到多目标函数的最优解集,整体上得到的结果趋势也与文献[12]所得结果相差无几。ZDT1在Pareto前沿均匀获得37个,而ZDT2在Pareto前沿获得的点数为20个,虽然不是很均匀,但是也找到了相当数量的全局最优解。因此,采用多目标EGO算法非常高效,并且结果可靠。

图 6 ZDT1的Pareto前沿结果对比 Fig. 6 Comparison of Pareto fronts of ZDT1

图 7 ZDT2的Pareto前沿结果对比 Fig. 7 Comparison of Pareto fronts of ZDT2
4 结 语

本文提出了船型优化设计中面临的数值计算量巨大问题,针对该问题研究了高效的优化算法及优化测试函数验证。采用基于Kriging模型的高效全局优化算法(EGO)既可以快速获得全局最优解,又使得优化中从数值计算的整体计算量的角度大大缩减计算成本。在船型优化领域虽然有不少学者采用近似模型方法,可以大大加快优化求解的速度,但单纯采用近似模型首先必须考虑其精度,一般通过交叉验证方法去验证,因为后续优化求解完全依赖近似模型,如果近似模型局部预报精度较差,即目标性能的评估不可靠,则所求最优解经过CFD重新计算验证,目标性能也许并不是最优。因此,采用EGO方法为船型优化设计提供了新思路,其不完全依赖于近似模型,通过单目标或多目标EI加点准则(EIM准则)不断迭代添加新船型更新近似模型并逐代不断探寻到全局最优解。该方法兼顾近似模型的精度提升和全局最优解的探索,通过该方法可以实现单目标和多目标优化求解,未来该方法将直接应用于船型优化设计问题实例中进行进一步验证和改善。尽管针对的是船型优化设计提出的优化方法但可应用于很多工程问题,如船型几何设计、结构优化设计、船体附体优化设计、管系布置设计、舱室布置提升空气质量设计等。

参考文献
[1]
JONES D R, SCHONLAU M, WELCH W J. Efficient global optimization of expensive black-box functions[J]. Journal of Global optimization, 1998, 13: 455-492. DOI:10.1023/A:1008306431147
[2]
JEONG S, OBAYASHI S. Efficient global optimization (EGO) for multi-objective problem and data mining[C]//2005 IEEE Congress on Evolutionary Computation. IEEE, 2005, 3: 2138−2145.
[3]
BARTOLI N, BOUHLEL M A, KUREK I, et al. Improvement of efficient global optimization with application to aircraft wing design[C]//17th AIAA/ISSMO Multidisciplinary Analysis and Optimization Conference. 2016: 4001.
[4]
HE Y , SUN J , SONG P , et al. Variable-fidelity expected improvement based efficient global optimization of expensive problems in presence of simulation failures and its parallelization[J]. Aerospace Science and Technology, 2021: 106572.
[5]
ZHANG Y, LI J, XU C, et al. Vehicle Aerodynamic Optimization: On a Combination of Adjoint Method and Efficient Global Optimization Algorithm[J]. SAE International Journal of Passenger Cars - Mechanical Systems, 2019, 12(2).
[6]
ZUHAL L R, FAZA G A, PALAR P S, et al. Multi-Objective Kriging-Based Optimization for High-Fidelity Wind Turbine Design[C]//AIAA Scitech 2019 Forum. 2019.
[7]
YE F, WANG H, LI G. Variable stiffness composite material design by using support vector regression assisted efficient global optimization method[J]. Structural and Multidisciplinary Optimization, 2017(1): 56. DOI:10.1007/s00158-017-1658-8
[8]
王普毅, 白影春, 林程, 等. 基于EGO加点策略的动力电池包多目标优化[J]. 汽车工程, 2021, 43(10): 1457-1465.
[9]
毛星波, 盛冬发, 朱军. EGO算法在系杆拱桥成桥索力优化中的应用研究[J]. 河南科技, 2022(11): 041.
[10]
王红涛, 竺晓程, 杜朝辉. 改进EGO算法在跨声速翼型气动优化设计中的应用[J]. 上海交通大学学报, 2009(11): 1832-1836.
WANG Hong-tao, ZHU Xiao-cheng, DU Chao-hui. Application of the improved EGO algorithm in transonic airfoil aerodynamic optimization design[J]. Joural of Shanghai Jiaotong University, 2009(11): 1832-1836.
[11]
王若宇. 改进的高效全局优化算法及其在车身轻量化设计中的应用研究[D]. 长沙: 湖南大学, 2023.
[12]
詹大为. 并行EGO算法研究及其应用[D]. 武汉: 华中科技大学, 2018.
[13]
ZHAN D, CHENG Y, LIU J. Expected improvement matrix-based infill criteria for expensive multiobjective optimization[J]. IEEE Transactions on Evolutionary Computation. 2017, 21(6): 956−975.