求解条件非线性最优扰动的并行梯度定义数据处理方法与流程

文档序号:18827143发布日期:2019-10-09 02:03阅读:736来源:国知局
求解条件非线性最优扰动的并行梯度定义数据处理方法与流程

本发明涉及计算机和大气海洋学科交叉领域,尤其是涉及一种求解条件非线性最优扰动的并行梯度定义数据处理方法。



背景技术:

条件非线性最优扰动(cnop)是指在一定物理约束条件下,在预报时刻具有最大非线性发展的一类初始扰动,该方法已经被广泛应用于探讨天气和气候研究中的预报性问题。

在数学上,cnop的求解属于带约束的函数最优化问题,目前大气海洋领域一般采用基于伴随模式提供梯度信息的约束优化算法(如spg、sqp、l-bfgs)对其进行求解。实际上,使用梯度定义直接求解目标函数关于优化变量的梯度是最基本、最简单的方法,但是在大气海洋科学中数值模式的复杂度普遍较高,维度基本都在10^3以上。考虑到计算量的问题,大气海洋科学领域普遍基于数值模式相应的伴随模式来求解梯度信息,这使得cnop的求解非常依赖于伴随模式,而且伴随模式的开发和验证往往需要消耗巨大的工作量,这大大限制了cnop的广泛应用。近年来,随着计算机及相关技术的广泛普及,如并行技术、降维技术等,使用梯度定义直接进行梯度求解的计算量过大的问题,已经可以通过使用计算机相关技术来解决。本发明提供一种用于高效求解cnop的并行梯度定义法,旨在促进cnop方法在数值天气和气候可预报性研究中的应用。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种求解条件非线性最优扰动的并行梯度定义数据处理方法。

本发明的目的可以通过以下技术方案来实现:

一种求解条件非线性最优扰动的并行梯度定义数据处理方法,包括以下步骤:

步骤1:初始化相关优化变量;

步骤2:采用梯度定义方法求解得出条件非线性最优扰动最优值结果;

步骤3:循环迭代步骤2并判断是否满足停止迭代条件;

步骤4:当满足停止迭代条件时输出原始求解空间的条件非线性最优扰动最优值结果。

进一步地,所述的步骤2具体包括以下分步骤:

步骤21:求解条件非线性最优扰动的目标函数关于优化变量的梯度;

步骤22:使用spg2梯度投影算法沿梯度下降的方向搜索可转化为最优值结果的目标函数最小值。

进一步地,所述步骤21中的目标函数关于优化变量的梯度,其计算公式为:

式中,f′(x)表示目标函数关于优化变量的梯度,表示优化变量每个变量关于目标函数的一阶偏导数。

进一步地,所述的优化变量每个变量关于目标函数的一阶偏导数的计算公式为:

式中,δx表示变量增量,x1,…,xi,…,xn表示所有优化变量。

进一步地,所述步骤21中的梯度的优化计算采用mpi技术进行并行计算,所述并行计算采用主-从进程,所述主-从进程中的主进程用于负责任务的分配和结果的收集并将任务均分,若任务无法均分时通过计算为子进程分配任务。

进一步地,当数值模式的维度需要降维时,该数据处理方法中还包括:对得到的优化变量的样本数据使用奇异值分解算法或主成分分析算法进行降维后在特征空间进行梯度的求解和寻优。

进一步地,所述步骤3中的停止迭代条件为:是否超过最大迭代步数或最优值是否超过设定次数保持不变。

与现有技术相比,本发明具有以下优点:

(1)精度高,本发明求解cnop并行梯度定义方法是使用梯度定义方法代替伴随模式求解目标函数关于优化变量的梯度信息,并通过计算机领域的mpi并行技术将梯度信息的计算过程并行优化,然后使用基于梯度信息的约束优化算法——spg2梯度投影算法优化求解得到cnop,求解结果的精确度高

(2)求解速度快,本发明求解cnop并行梯度定义方法是使用梯度定义方法代替伴随模式求解目标函数关于优化变量的梯度信息,并通过计算机领域的mpi并行技术将梯度信息的计算过程并行优化,然后使用基于梯度信息的约束优化算法——spg2梯度投影算法优化求解得到cnop,除此之外,本发明算法还针对梯度定义的运算过程设置了并行的mpi主从进程,此外,若数据维度过高,本发明中还引入了奇异值分解算法svd或主成分分析算法pca对原始空间数据进行降维并在最终求解出结果时从特征空间转换回到原始空间以确保整体求解速度的快速程度。

附图说明

图1为本发明并行梯度定义方法求解条件非线性最优扰动的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

实施例

如图1所示为本发明方法的具体流程示意图,现对其中步骤进行具体说明如下:

a.在数学上,梯度是指多元函数关于多变量的一阶偏导向量。假设目标函数用发f(x)表示,优化变量为n维的向量,表示为x(x1,x2,x3,…,xi,…,xn),i=1,2,3,…,n,那么优化变量每一维xi关于目标函数f(x)的一阶偏导数可表示为以此类推,则得到如下公式的梯度向量f′(x),即:

式中,f′(x)表示目标函数关于优化变量的梯度,表示优化变量每个变量关于目标函数的一阶偏导数。

b.每一维优化变量xi关于目标函数f(x)的一阶偏导采用导数的定义进行计算,根据定义优化变量xi的一阶偏导等于当在目标函数f(x)的自变量xi上的某一点增加增量δx时,目标函数输出值的增量f(x1,…,xi+δx,…,xn)-f(x1,…,xi,…,xn)与自变量增量δx的比值在δx趋于0时的极限,公式表示如下,其中δx是一个小的增量:

式中,δx表示变量增量,x1,…,xi,…,xn表示所有优化变量。

c.在进行cnop求解时,目标函数值需要对数值模式进行积分,如果δx值过小,那么会导致数值模式没有发展,即f(x1,…,xi+δx,…,xn)-f(x1,…,xi,…,xn)=0,那么最后计算得到的梯度为0向量。而δx值过大则与导数的定义相违背。为了取得最合适的δx值,δx的值通过优化变量的值进行适应性调整,具体的方案是通过如下的公式进行适应性确定。

d.在大气海洋科学领域,cnop求解涉及的目标函数的优化变量维度非常高,梯度向量的维度和优化变量的维度相同,串行求解梯度向量计算量过大的问题。但是梯度向量各个维度的计算时相互独立的没有依赖关系。可以了mpi技术将梯度向量的计算进行并行化以提高计算效率。mpi并行中各个进程之间通过mpi_send和mpi_recv函数来进行信息的交互。

e.梯度向量并行计算策略整体上采用了主-从进程的管理方式,主进程负责任务的分配和结果的收集。梯度向量每一维的计算为一个计算任务,假设梯度向量为n维,总进程数为pn,n除以pn的余数用rd表示,n除以pn的商用qu表示。若rd=0,那么所有的进程均分配到qu个任务;如果rd≠0,那么前rd个子进程分配qu+1个任务,剩余的子进程和主进程分配qu个任务。

f.如果数值模式的维度非常高,即使是并行之后计算量也非常大,这时可以先使用奇异值分解算法svd/主成分分析算法pca方法进行降维。首先得到优化变量的样本数据,然后使用主成分分析算法pca/奇异值分解算法svd进行降维,并选取特征值占比大且累计特征值占比超过90%的前pcs个特征向量,作为特征空间。

g.使用梯度定义法计算得到目标函数关于优化变量的梯度信息后,再使用spg2梯度投影算法在求解空间优化求解得到cnop。spg2梯度投影算法是一种求解最小值的算法,若优化问题不是最小值问题。可进行一定的处理转换为最小值的求解问题。spg2梯度投影算法需要提供目标函数关于优化变量的梯度信息,本发明中使用梯度的定义求解得到目标函数关于优化变量的梯度信息。

h.并行梯度定义方法是一个迭代寻优的过程,每一次迭代都会记录最优解,若迭代次数超过最大迭代步数(记为maxiter)或者找到的最优值超过limits次保持不变,寻优结束,算法输出得到最优值,若进行了降维,需要将最优值还原到原始解空间得到cnop,还原过程利用特征向量矩阵进行。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1