一种基于加权多策略蛙跳算法的超高密度电法并行反演方法与流程

文档序号:12033679阅读:682来源:国知局
一种基于加权多策略蛙跳算法的超高密度电法并行反演方法与流程
本发明涉及地球物理电法反演领域,特别涉及一种基于加权多策略蛙跳算法的超高密度电法并行反演方法。
背景技术
:超高密度电法是在高密度电法基础上发展起来的一种勘探方法,它利用多通道阵列电极系测量系统,在地表或井-地布设阵列电极系,采集任意电极间关于地下电阻率信息的大量实测数据,并利用先进的正反演方法重建精确的电阻率图像。超高密度电法是一种成本低、采集效率高、信息丰富和解释精度高的新型勘探方法,能够满足对地质体进行高精度定位的工程需求。然而,超高密度电法反演是一个复杂的非线性函数寻优过程,具有高维和非凸的特性。目前针对超高密度电法资料处理和解释的方法多采用2.5维线性或拟线性反演方法,存在着依赖初始模型、易陷入局部极值、偏导数矩阵求解困难等问题。非线性反演方法能够较好地解决以上问题,因此利用遗传算法、粒子群算法和进化算法等非线性优化算法进行非线性反演已经成为了对地质资料进行高精度解释的重要途径。但是,超高密度电法的采集数据量大,反演参数多,模型搜索空间大,采用非线性反演方法的收敛速度慢,计算效率低。蛙跳算法是一种新型的群体进化算法,兼具文化基因算法和粒子群算法的优点,全局搜索和局部搜索同时进行,收敛快且易于并行实现,是解决非线性反演方法计算效率问题的一种新的途径。因此,结合超高密度电法的特点,对蛙跳算法进行改进,增强算法跳出局部极值的能力,提高反演算法的计算效率,快速地求解超高密度电法的反问题,获得高质量的解释结果,具有重要的理论意义和广泛的应用前景。技术实现要素:本发明提供一种基于加权多策略蛙跳算法的超高密度电法并行反演方法,该方法通过在局部搜索中加入权重系数来增强算法跳出局部极值的能力,通过将最小二乘搜索策略引入到蛙跳算法的局部搜索中来实现多策略的局部搜索,提高算法的局部收敛速度,最后采用cuda技术并行计算各青蛙的适应度和各模因组的局部搜索过程,提高算法的总体计算效率。为实现上述目标,本发明所采用的技术方案如下:一种基于加权多策略蛙跳算法的超高密度电法并行反演方法,包括以下步骤:(1)根据反演的规模初始化蛙跳算法中青蛙的种群规模p,模因组个数m和组内迭代次数iterl,随机初始化蛙群,其中,每只青蛙采用实数编码,值由勘探区域的模型参数组成;(2)根据下式计算蛙群中各个青蛙的适应度:式中φd为数据拟合误差,φm为正则化项,dpre为预测数据矢量,dobs为观测数据矢量,λ为正则化系数,c为粗糙度矩阵,m为各青蛙代表的模型参数矢量;(3)将蛙群内青蛙按照个体适应度降序排列,并保存全局适应度最优的青蛙xg;(4)将整个蛙群分成m个模因组,每个模因组含n只青蛙,满足关系p=m×n,具体的分组方式如下式:其中gi为第i个模因组,每个模因组内具有最优和最差适应度的青蛙分别保存为xb和xw;(5)蛙群分组后分别对各模因组内最差青蛙xw进行局部搜索,其局部搜索的策略为:式中f为权重系数,rand为[0,1]间的独立随机数,t为当前迭代次数,a为雅克比矩阵;当进行局部搜索时,首先采用策略1向模因组内最优解xb(t)的方向更新青蛙,如果得到的xw(t+1)优于xw(t),则取代模因组内xw(t),否则采用策略2向全局最优解xg(t)的方向更新青蛙,如果得到的xw(t+1)优于xw(t),则取代模因组内xw(t),否则计算雅克比矩阵a,并采用策略3向最小二乘解的方向更新青蛙,步骤(5)反复迭代直至达到组内迭代次数iterl;(6)当各模因组完成局部搜索后,将所有模因组内的青蛙进行全局混洗,即重新混合排序,并更新全局最优青蛙xg;(7)判断是否满足算法的终止条件,如果为否,则跳转至步骤(4),如果为是,则跳转至步骤(8);(8)将算法此时的全局最优青蛙xg作为反演结果输出。本发明的方法采用基于cuda技术的gpu并行计算实现,其中蛙跳算法的整体反演过程为主函数,在cpu中采用串行计算的方式实现;各个青蛙的适应度计算过程(步骤2)和各个模因组的局部搜索过程(步骤5)计算量大且具备并行性,因此在gpu中采用并行计算的方式实现。通过上述过程,本发明的方法显著提高了超高密度电法反演的质量和效率,具体表现在:(1)超高密度电法的采集数据量大,解空间复杂,传统反演方法极易陷入局部极值。采用权重系数改进蛙跳算法的局部搜索过程,能够扩大xw在进化时的搜索范围,促使反演算法跳出局部极值,搜索到高质量的全局解,得到更准确的反演结果;(2)超高密度电法反演的计算规模大,收敛缓慢和计算效率低。通过引入最小二乘搜索策略来优化算法的收敛过程。最小二乘搜索是一种高效率的定向搜索,取代蛙跳算法中的随机搜索后,能够提高局部搜索的收敛速度,促使算法快速收敛;(3)利用蛙跳算法的并行特征,采用cuda技术进行gpu并行加速,能够高效地进行细粒度并行计算,使得算法的计算效率整体显著提高。附图说明图1是本发明基于加权多策略蛙跳算法的超高密度电法并行反演方法的流程图。图2是本发明适应度计算的流程图。图3是本发明多策略局部搜索的流程图。具体实施方式下面结合附图对本发明的实施方式进行详细阐述,附图作为本发明的一部分,表示了本发明的一种具体实现。如图1所示,本发明提供了一种基于加权多策略蛙跳算法的超高密度电法并行反演方法,具体包括以下步骤:(1)根据反演的规模初始化蛙跳算法中青蛙的维数d,种群规模p,模因组个数m和组内迭代次数iterl,随机初始化蛙群,其中,每只青蛙采用实数编码,值由勘探区域的模型参数组成;(2)根据下式计算蛙群中各个青蛙的适应度:式中φd为数据拟合误差,φm为正则化项,dpre为预测数据矢量,dobs为观测数据矢量,λ为正则化系数,c为粗糙度矩阵,m为各青蛙代表的模型参数矢量;具体的适应度计算过程如图2所示,首先根据青蛙的模型参数矢量m调用有限体积法正演得到各电极的电位矩阵,然后根据超高密度电法的电极排列方式计算预测数据矢量dpre,并根据数据预测矢量dpre和已知的观测数据矢量dobs计算数据拟合误差,然后根据粗糙度矩阵c和模型参数矢量m计算正则化项,最后根据数据拟合误差φd和正则化项φm结合正则化系数λ计算青蛙的适应度;(3)将蛙群内青蛙按照个体适应度降序排列,并保存全局适应度最优的青蛙xg;(4)将整个蛙群分成m个模因组,每个模因组含n只青蛙,满足关系p=m×n,具体的分组方式如下式:其中gi为第i个模因组,每个模因组内具有最优和最差适应度的青蛙分别保存为xb和xw;(5)蛙群分组后分别对各模因组内最差青蛙xw进行局部搜索,其局部搜索的策略为:式中f为权重系数,用于扩大xw的搜索空间,增强算法跳出局部极值的能力,rand为[0,1]间的独立随机数,t为当前迭代次数,a为雅克比矩阵;如图3所示,当进行模因组内局部搜索时,首先采用策略1向模因组内最优解xb(t)的方向更新青蛙,如果得到的xw(t+1)优于xw(t),则取代模因组内xw(t),否则采用策略2向全局最优解xg(t)的方向更新青蛙,如果得到的xw(t+1)优于xw(t),则取代模因组内xw(t),否则计算雅克比矩阵a,并采用策略3向最小二乘解的方向更新青蛙,结束本次模因组内局部搜索;最后判断是否达到组内局部搜索迭代次数iterl,如果为否,则继续执行步骤(5),如果为是,则跳转至步骤(6);(6)当各模因组完成局部搜索后,将所有模因组内的青蛙进行全局混洗,即重新混合排序,并更新全局最优青蛙xg;(7)判断是否满足算法的终止条件,如果为否,则跳转至步骤(4),如果为是,则跳转至步骤(8);(8)将算法此时的全局最优青蛙xg作为反演结果输出。本发明的方法采用基于cuda技术的gpu并行计算实现,其中蛙跳算法的整体反演过程为主函数,在cpu中采用串行计算的方式实现;各个青蛙的适应度计算过程(步骤2)和各个模因组的局部搜索过程(步骤5)计算量大且具备独立并行性,因此在gpu中采用并行计算的方式实现。其中gpu计算部分已在图1中标出。图2描述了适应度计算时的cuda并行线程划分,其中每个青蛙启用一个独立的线程,一共划分p个并行线程;图3描述了多策略局部搜索时的cuda并行线程划分,其中每个模因组启用一个独立的线程,一共划分m个并行线程。本实施例采用一个经典模型来验证加权多策略蛙跳算法的反演有效性。所选用的模型包含2个100ωm的高阻异常体,大小均为2m×4m,异常体位于勘探区域的中间,顶部埋深分别为1m和5m,背景电阻率为10ωm。超高密度电法的电极个数为30,电极距为1m。蛙跳算法的反演参数为:p=30,m=6,n=5,iterl=10,f=1.3。本实施例的具体执行过程如下:首先放置好电极,设定电极距,并设定超高密度电法的电极矩阵,采集观测数据。然后将观测数据读取至计算机中。计算机开始在cpu中执行本发明提出的加权多策略蛙跳算法,当进行适应度计算和局部搜索时,cpu调用对应的gpu并行计算模块来实现高效计算。以上适应度计算和局部搜索的并行计算模块均可通过调用或修改gpu厂商提供的cuda函数库中已封装好的函数实现。算法反复迭代直到满足算法终止条件时,输出反演结果。本实施例中用于反演的计算环境如下:cpu为i7-6500u,内存为8gb,gpu为gtx960m,操作系统为windows8.1。在上述环境中,标准蛙跳算法和加权多策略蛙跳算法的反演性能比较如表1所示:算法名称反演数据误差计算时间(分钟)并行计算时间(分钟)标准蛙跳算法3.23633105加权多策略蛙跳算法1.8447549表1表1中采用均方误差mse(meansquareerror)来衡量反演的数据误差。由表1可知,加权多策略蛙跳算法的反演数据误差小于标准蛙跳算法,这是因为权重系数f的加入,提高了加权多策略蛙跳算法模因组内最差青蛙xw的搜索范围,增强了算法跳出局部极值的能力。同时加权多策略蛙跳算法的计算时间小于标准蛙跳算法的计算时间,说明最小二乘策略的加入提高了算法的收敛速度。最后,对于两种蛙跳算法,采用并行计算后的计算时间均远小于未采用并行计算的计算时间,尤其是加权多策略蛙跳算法,采用并行计算优化后仅耗时49分钟,说明本发明的cuda并行计算方法显著提高了反演过程的计算效率,具有很好的加速效果。以上所述仅为本发明的优选实施方式,应当指出,对于本
技术领域
的技术人员,在不脱离本发明原理的前提下,可对上述技术内容做出若干修改或修饰,但凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施方式所做的任何简单修改或修饰,均仍属于本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1