本发明涉及一种船舶纵向运动参数决策方法,特别是一种船舶纵向运动多目标策略下最优参数决策方法,涉及船舶运动多目标优化和参数拟合两大领域。
背景技术:
在多目标优化问题中,优化目标之间互相联系,彼此制约,一个优化目标的性能提高通常会导致另外至少一个优化目标的性能退化,即多个优化目标很难同时得到最优结果。因此,一个较好的办法就是在多个目标之间进行协调,寻找折中解。
进化算法是一类模拟自然界生态系统中“优胜劣汰”行为的启发式搜索算法,具有很强的自适应性和自组织性。与传统优化算法相比,进化算法是一种建立在种群基础之上的概率搜索方法,它不需要提供额外的初始点,也不需要计算优化目标函数的梯度信息。因此,进化算法特别适合求解那些不能计算梯度信息或者是计算梯度信息需要很大开销、目标函数不连续以及传统优化算法无法求解的优化问题。进化算法一般从随机初始化一组候选解开始,通过不断迭代的实施进化操作,如交叉、变异和选择操作等,最终收敛到全局最优解。同时,进化算法在一次独立运行过程中可以得到多个解,非常符合多目标优化问题最优折中解的特点。另外,进化算法潜在的并行性和分布式特点使其在解决大规模优化问题上有着明显的优势。因此,进化算法解决了传统优化方法在处理复杂多目标优化问题时面临的局限性,目前,进化算法已经成为多目标优化领域的主流算法。
进化算法可以为船舶纵向运动参数辨识问题提供一个解集,解集里的每一个解在某一个目标上的性能不差于其他的解。因此,在没有更多评判标准的前提下,这些解均为当前的最优解。但是,很多情况下,实际问题中会要求只输出一个解,而如何在众多解中选择一个更合适的解,同样也是当前需要研究和讨论的问题之一。故而,针对多目标策略下的船舶纵向运动参数辨识问题,针对其输出的某一最优帕累托(pareto)前沿面,我们设计一个参数决策系统,根据不同的需求选择不同的最优参数输出。
技术实现要素:
针对上述现有技术,本发明要解决的技术问题是提供一种针对多目标策略下的船舶纵向运动参数辨识问题,针对其输出的某一最优pareto前沿面,根据不同的需求选择不同的最优参数输出的船舶纵向运动多目标策略下最优参数决策方法。
为解决上述技术问题,本发明提供一种船舶纵向运动多目标策略下最优参数决策方法,包括以下步骤:
步骤1:假设目标函数f1=(f1,1,f1,2,...,f1,n)表示纵向运动中的纵摇拟合精度的误差,目标函数f2=(f2,1,f2,2,...,f2,n)表示纵向运动中的升沉拟合精度的误差,多目标优化最后得到的帕累托前沿面得到最终的n组目标函数值数记为(f1,1,f2,1),(f1,2,f2,2),...,(f1,n,f2,n),执行步骤2;
步骤2:选择客户偏好:如果客户希望升沉参数辨识精度高,对纵摇拟合精度不做要求,则转步骤3;如果客户希望纵摇参数辨识精度高,而对升沉拟合精度不做要求,则转步骤4;如果客户希望纵摇和升沉参数同时辨识精度高,则转步骤5;
步骤3:从帕累托前沿面中选择目标函数f1中最小的值对应的个体作为最优参数输出,即f1=(f1,1,f1,2,...,f1,n)中值最小的个体对应的下标,记为(1,n1_min),则选择
步骤4:从帕累托前沿面中选择目标函数f2中最小的值对应的个体作为最优参数输出,即f2=(f2,1,f2,2,...,f2,n)中值最小的个体对应的下标,记为(2,n2_min)则选择
步骤5:对f1,1,f1,2,...,f1,n按照从小到大的顺序进行排序,得到排序后的新序列记为
步骤6:计算第ni点的误差,具体为:
利用点
利用点
并得到第ni点的误差erri,erri满足:
erri=err_lefti+err_righti
执行步骤7;
步骤7:求所有erri中最小值及其对应的点的下标,记为min_outnum,则此时选择的最优输出点为(f1,min_outnum,f2,min_outnum)。
本发明的有益效果:本发明跟其他方法的最显著的区别在于能够根据客户的需求,选择一组水动力参数作为输出,且方法简单,实用性强。在用单目标优化的方法求得的水动力参数时,每次仅能输出一个水动力参数,而本发明给出的方法能够在一组最优pareto前沿面里,根据不同的需求选择不同的最优参数输出,灵活性强。在对纵摇和升沉精度不作要求时,根据该点左右两边的拟合误差的大小能迅速找出一个折中解,方法简单实用。
附图说明
图1为本发明所述船舶纵向运动多目标策略下最优参数决策方法流程图;
图2为多目标策略下最优参数决策系统流程图前沿面;
图3第i点两侧的点做直线拟合示意图;
图4为实施例中pareto前沿面得到最终的n组目标函数值数组;
图5为实施例中pareto前沿面排序后的新序列;
图6为实施例中各点的err值;
图7为实施例中最优输出点在前沿面中对应的位置。
具体实施方式
下面结合附图举例对本发明做更详细地描述:
本发明船舶纵向运动多目标策略下最优参数决策方法流程如图1所示,包括:
步骤1、纵向运动包含纵摇和升沉运动,假设目标函数f1=(f1,1,f1,2,...,f1,n)表示的是纵摇拟合精度的误差,目标函数f2=(f2,1,f2,2,...,f2,n)表示的是升沉拟合精度的误差,f1,f2取值越小,拟合精度越高。多目标优化最后得到的pareto前沿面得到最终的n组目标函数值数记为(f1,1,f2,1),(f1,2,f2,2),...,(f1,n,f2,n);
步骤2、选择客户偏好。如果客户希望升沉参数辨识精度高,而对纵摇拟合精度不做要求,则转步骤3;如果客户希望纵摇参数辨识精度高,而对升沉拟合精度不做要求,则转步骤4;如果客户希望纵摇和升沉同时需要高精度输出,则转步骤5;
步骤3、从pareto前沿面中选择目标函数f1中最小的值对应的个体作为最优参数输出,即f1=(f1,1,f1,2,...,f1,n)中值最小的个体对应的下标,记为(1,n1_min),则选择
步骤4、从pareto前沿面中选择目标函数f2中最小的值对应的个体作为最优参数输出,即f2=(f2,1,f2,2,...,f2,n)中值最小的个体对应的下标,记为(2,n2_min)则选择
步骤5、对f1,1,f1,2,...,f1,n按照从小到大的顺序进行排序,得到排序后的新序列记为
步骤6、计算第ni点的误差:
利用点
利用点
第i个点的拟合如图3所示。
并得到第ni点的误差
erri=err_lefti+err_righti
步骤7、求所有erri中最小值及其对应的点的下标,记为min_outnum,则此时选择的最优输出点为(f1,min_outnum,f2,min_outnum)。
下面列举一具体实施例:
(1)根据获得的多目标优化最后的pareto前沿面得到最终的n组目标函数值数组(f1,1,f2,1),(f1,2,f2,2),...,(f1,n,f2,n),取值如图4所示。
(2)选择客户偏好。如果客户希望升沉参数辨识精度高,而对纵摇拟合精度不做要求,则转(3);如果客户希望纵摇参数辨识精度高,而对升沉拟合精度不做要求,则转(4);如果客户希望纵摇和升沉同时需要高精度输出,则转(5).
(3)求取最小f1值对应的下标,记为n1_min,则选择
(4)求取最小f2值对应的下标,记为n2_min,则选择
(5)对f11,f12,…,f1n按照从小到大的顺序进行排序,得到排序后的新序列记为
(6)按照顺序,从上面表格的第一个点开始,计算第ni点的误差:
利用点
利用点
并得到第ni点的误差
erri=err_lefti+err_righti
本例中得到的各点的err值如图6所示。
(7)求所有erri中最小值及其对应的点
min(erri)=0.3557,对应i=47
故此时选择的最优输出点为(f1,47,f2,47)=(0.5299,0.2594)
最优输出点所在位置如图7所示。
本发明具体实施方式还包括:
本发明针对多目标策略下船舶纵向运动参数辨识问题最优解选取问题,设计了一种最优解决策系统。本发明公开的方法区别于现有方法的显著特征在于:根据客户的实际需求,从pareto前沿面中选择最合适的一组参数作为输出,具体流程见图1所示。
本发明公开了一种船舶纵向运动多目标策略下的最优参数决策系统。实现方式如下:
根据客户偏好,如果客户希望纵摇参数辨识精度高,而对升沉拟合精度不做要求,则输出纵摇拟合误差目标函数的最小值对应的个体作为参数最优解输出;
如果客户希望升沉参数辨识精度高,而对纵摇拟合精度不做要求,则输出升沉拟合误差目标函数的最小值对应的个体作为参数最优解输出;
如果客户希望纵摇和升沉同时需要高精度输出,则在前沿面中选择一个折中解作为输出,该折中解的选择方法如下:
如图2所示,我们将该将目标函数矩阵[f1i,f2i]看作二维平面上的点,并按照某一维上数据从小到大进行排列,另一维上的数据跟随变动位置。任意选取一个点,对该点左侧的所有点做最小二乘直线拟合,拟合误差记为err_lefti;对该点右侧的每一个点也进行最小二乘直线拟合,得到拟合误差err_righti;则该点总误差记为erri=err_lefti+err_righti;取总误差最小的点对应的个体作为最优解输出。