基于复合蛙跳算法的火山岩最优化测井解释方法

2020-02-07 12:09徐苗苗印兴耀宗兆云
石油物探 2020年1期
关键词:蛙跳灰质火山岩

徐苗苗,印兴耀,宗兆云

(中国石油大学(华东)地球科学与技术学院,山东青岛266580)

最优化测井解释技术问世于20世纪80年代,对各种测井信息有着极高的利用率,对复杂岩性油气藏具有良好的求解能力[1]。最优化算法的选取是决定最优化测井解释求解精度以及运算效率的关键。在解决实际问题时建立的目标函数通常是多维的复杂函数,单纯从导数或梯度出发进行求解可能较为困难。受自然界中群体生活的昆虫、动物的复杂社会活动启发,诞生了一批模拟生物系统中群体生活习性的群体智能优化算法[2],如粒子群优化算法(particle swarm optimization,PSO)、细菌觅食法(bacteria foraging algorithm,BFA)、蚁群算法(ant colony optimization,ACO)、蛙跳算法(shuffled frog-leaping algorithm,SFLA)等。

SFLA是一种基于群体的亚启发式协同搜索群智能算法,是建立在群中个体模因(类似于人体基因)进化和利用模因实现全局信息交换基础上的一种全局优化算法[3-4],该算法以及其改进算法自提出以来就备受国内外各领域学者的关注,在水资源优化调度[5]、土地利用格局优化[6]、旅行商问题[7]、柔性作业车间调度[8]、瑞雷波非线性反演[9]等应用领域都取得了不错的效果,但目前还未有学者将其应用于最优化测井解释。复合形方法(complex method,CM)是BOX[10]将单纯形法改进得到的,作为一种直接有效求解约束优化问题的方法,局部搜索能力强,寻优速度快,对目标函数要求不高,无需对函数求导。在工程领域,为拱坝结构可靠性分析[11]、凸轮优化设计[12]等做出了重要的贡献。孙茹雪等[13]将该算法应用于火山岩的矿物组分计算,取得了较好的效果。

火山岩储层岩性种类复杂,每一种岩性都有成为储层的可能,不同岩性种类的矿物组成不尽相同,因而采用常规方法很难准确求取火山岩的矿物含量[14-16]。最优化测井解释可以充分利用多种测井信息,有效进行复杂岩性的储层参数反演,但待求解的目标函数通常为多维非线性方程,为保证求解精度及计算效率,需要寻找合适的优化算法。PAN等[17]根据QAPF分类方案,先将火山岩中的矿物分为5类:Q代表石英、A代表碱性长石、P代表斜长石和方柱石、F代表副长石、M代表铁镁矿物,然后采用遗传算法求解火山岩的矿物含量,此方法矿物分类繁琐,实用性差,且遗传算法在实际应用中容易产生早熟收敛的问题。孙茹雪等[13]对比了复合形方法和粒子群算法在中基性火山岩中的评价效果,发现复合形方法的解释效果优于粒子群算法,但复合形方法受初始点的影响大,且易陷入局部极值。潘保芝等[18]利用粒子群和细菌觅食的混合优化算法计算了凝灰质砂岩储层中泥质和凝灰质的含量,展现了该算法较强的优化能力。莫修文等[19]采用萤火虫算法计算凝灰质砂岩储层矿物含量,证明了萤火虫算法的可行性。本文依据研究工区内火山岩的岩性及矿物特征,建立了适用于不同类型火山岩储层的体积解释模型,针对模型的求解我们提出复合蛙跳算法,即将蛙跳算法(SFLA)的进化思想与复合形方法极强的局部搜索能力相结合,该算法具有较快的搜索速度以及全局寻优的能力。

1 最优化测井解释

1.1 建立体积解释模型

正确的测井解释模型是最优化测井解释的基础,也决定了后续矿物含量计算的准确性。本文以新疆某火山岩气田为研究工区,根据岩心、微电阻率扫描成像(FMI)、地层元素测井(ECS)等资料综合分析统计可知,该区石炭系发育的岩石类型可分为沉积岩和火山岩两大类,其中火山岩为主要储集岩性,包括火山熔岩类,火山碎屑岩类,浅成侵入岩类,以及火山沉积岩类。火山熔岩类岩石主要包括玄武岩、安山岩和流纹岩等,斑晶及基质矿物主要成分为长石和石英。火山碎屑岩类岩石主要包括火山角砾岩和凝灰岩,火山角砾、岩屑主要由安山岩、玄武岩及流纹岩碎屑组成;凝灰岩主要由长石晶屑、岩屑及火山灰组成。浅成侵入岩的斑晶主要为长石斑晶,有时存在黑云母和角闪石。火山沉积岩类岩石主要包括沉凝灰岩、凝灰质砂岩,碎屑组成主要为火山碎屑及陆源碎屑,其中火山碎屑含量大于50%,以火山灰为主。不同火山岩类型的主要矿物成分如表1所示。

表1 不同火山岩类型的主要矿物构成成分

由表1可知,在火山熔岩类、火山碎屑岩类、浅成侵入岩类中,石英、长石、辉石、黑云母、角闪石是主要的构成矿物,在凝灰岩、凝灰质砂岩等火山沉积岩类中,粒径为0.01~2.00mm的火山灰占比较大,潘保芝等[18]、莫修文等[19]在构建凝灰质砂岩体积解释模型时均将凝灰质作为填充物,类似于砂岩岩石物理模型中的泥质成分。考虑到在实际地层中不同岩性种类并非单独出现,因此在进行矿物含量以及弹性参数估计时无需分岩性、分深度段展开计算。我们针对不同类型的火山岩建立统一的体积解释模型,石英和长石代表浅色矿物,黑云母、角闪石、辉石等代表暗色矿物,石英、长石、铁镁矿物共同构成骨架的支撑矿物,将凝灰质视作填充物,最终根据石英,长石,铁镁矿物,凝灰质,孔隙5部分建立了如图1所示的火山岩测井体积解释模型。

图1 火山岩测井体积解释模型

1.2 建立测井响应方程

实际测井资料中,因孔隙度相对于矿物含量较易获得,故本文只对孔隙度以外的其它4种组分的含量进行计算。本文根据预处理后的补偿中子孔隙度φN,声波时差Δt,密度ρb以及伽马GR测井值建立测井响应方程:

(1)

式中:φNf,φNqua,φNfel,φNma,φNash分别为孔隙流体、石英、长石、暗色矿物、凝灰质5种组分的中子响应特征值;ρf,ρqua,ρfel,ρma,ρash分别为5种组分的密度响应特征值;Δtf,Δtqua,Δtfel,Δtma,Δtash分别为5种组分的声波时差响应特征值;GRf,GRqua,GRfel,GRma,GRash分别为5种组分的伽马响应特征值;Vf,Vqua,Vfel,Vma,Vash分别为5种组分的体积分数。初始测井响应特征值可以依据常用岩石矿物手册[20]予以确定。由于长石,铁镁矿物均为同一类矿物,其特征值可依据测井曲线与实测测井曲线的误差确定。凝灰质的密度、中子、伽马、声波时差测井响应值可以依据凝灰岩井段测井参数的交会分析确定。

1.3 约束条件与目标函数

为使解释结果符合实际,给出如下约束条件:

(2)

根据测井响应方程(1)和约束条件(2),确定目标函数为:

Q=(φN-Y1)2/E1+(ρb-Y2)2/E2+(Δt-
Y3)2/E3+(GR-Y4)2/E4

(3)

式中:Y1,Y2,Y3,Y4分别代表中子孔隙度,密度,声波时差,伽马的实际测井值,E1,E2,E3,E4分别为上述4种测井曲线的方差。

2 复合蛙跳算法

复合形算法是一种求解约束优化问题的有效算法,优点在于对目标函数要求不高,无需求导,可通过比较目标函数值确定搜索方向,其基本思路如下,对于n维优化问题,在可行域内建立包括r个顶点的初始复合形,一般情况下n+1≤r≤2n;计算各顶点的目标函数值,从求解目标函数极小值的角度来看,其最小函数值对应的顶点为最好点xg,最大函数值对应的点为最差点xb;计算除最差点之外其余各点的形心xe:

(4)

以形心和最坏点构造搜索方向(xe-xb),找出最坏点的映射点x0:

x0=xe+α(xe-xb)

(5)

以映射点x0代替原来的最差点xb构成新的复合形,通过反复迭代,复合形不断向最优解收缩,具体的算法流程[21]如图2所示。其中,α,η,δ,β均为映射系数,α系数是以形心为中心,向最差点的反方向映射,若映射点不在可行域内,通过η对其进行收缩,若映射点的目标函数值依然比最差点大,通过δ在形心和最差点之间寻找映射点,若此时映射点仍然不能替换最差点,则利用β将全部顶点向最好点方向映射,映射系数设置流程可参照图2,其中η以η2的形式收缩,当z=5时,η可缩小到10-3数量级,x,x00分别为根据不同映射系数得到的映射点。因为复合形方法无需对目标函数求导,所以运算简单,但是其优化结果很大程度上受初始点的影响,容易陷入局部极值。

图2 复合形方法流程

蛙跳算法模拟青蛙群体的觅食行为,其基本思想为:一片湿地内的所有青蛙构成一个种群,每只青蛙都通过不断跳跃寻找食物,为了快而准地找到食物,将青蛙种群划分为不同的子种群,青蛙在子种群中彼此交流,在精英个体的指导下改变自己的跳跃方向和步长,当子种群进化到一定程度后,将所有子种群进行混合,可使每只青蛙得到更全面的信息,避免受到子种群中某个个体偏执思想的影响,进而保证整个种群快速、准确地寻找到食物。蛙跳算法需要调整的参数少,计算速度快,全局寻优能力强,但在寻优后期搜索速度变慢,精度降低。

本文将蛙跳算法的进化思想与复合形方法极强的局部搜索能力结合起来,提出了一种复合蛙跳算法。其数学描述为:在可行域内随机生成F个复合形顶点作为初始种群A=[x1,x2,...,xF],每一个顶点代表一个可能解,对于n维问题,第i个顶点可以表示为xi=[xi1,xi2,...,xin],计算每个顶点的目标函数值并按升序进行排列,记目标函数值最小的顶点为最好顶点X*,将F个顶点分到p个子种群中,每个子种群包含的顶点个数为m,F=p×m。分组规则为:目标函数值最小的顶点分到第1个子种群,次之的分到第2个子种群,第p个顶点分到第p个子种群,第p+1个顶点重新分到第1个子种群,以此类推。将每个子种群中目标函数值最小的顶点记为xg,目标函数值最大的顶点记为xb。按照复合形寻优过程在子种群内进行局部进化,直至达到局部迭代次数NE。为使得优化结果不陷入局部极值,在完成子种群进化后将所有子种群中的顶点进行混合来保证全局信息的交流,然后按照目标函数值大小重新排序和分组,直至满足精度要求或达到全局迭代次数ME。复合蛙跳算法的运算流程如图3所示。

图3 复合蛙跳算法流程

因为SFLA是求解无约束优化问题的算法,为使其适用于约束优化问题,所以引入自适应罚函数对约束条件进行处理,使约束优化问题转化为无约束优化问题,具体如下:

(6)

式中:f(x)为目标函数;gi(x)为不等式约束条件;hj(x)为约束优化条件。

自适应罚函数φ(x)的具体表示形式为:

(7)

式中:λ(t)为惩罚系数,等于群体中的个体总数与当前群体可行解个数的比值。

3 实际资料处理

分别利用蛙跳算法以及复合蛙跳算法对研究工区内某井段矿物含量进行计算。选取凝灰岩层段分别绘制密度-伽马,中子孔隙度-声波时差交会图(图4)以确定凝灰质对密度、中子孔隙度、伽马、声波时差的测井响应值。表2为参考相关资料确定的火山岩各矿物组分测井响应特征值[13,18-19]。

由于待求问题为四维优化问题,所以在程序运算中设置每组复合形顶点个数为8个,为避免出现因初始种群数量过小而使结果陷入局部极值的情况,本文设定9个子种群,共72个顶点,构成初始种群。图5为采用SFLA和CFLA得到的子种群最小目标函数值随全局迭代次数变化的曲线,其中对SFLA算法设置局部进化20次,全局迭代30次,对CFLA算法设置局部进化15次,全局迭代20次,此时目标函数可收敛。表3为采用SFLA和CFLA得到的各种矿物含量与岩心切片矿物含量的平均相对误差。图6为采用SFLA和CFLA得到的最优化测井解释结果,左边4道分别为伽马、声波时差、中子孔隙度、密度的计算测井曲线与实测测井曲线,第5~8道分别为凝灰质、石英、长石、铁镁矿物的体积含量及其岩心切片数据(红色圆点),第9道为不同深度对应的测井岩性。可以看出,采用CFLA计算的矿物含量与岩心切片数据吻合度高,相对误差值低,计算得到的测井曲线与实测测井曲线更为接近,其中凝灰岩、凝灰质砂砾岩层段中凝灰质的含量偏高,这与实际情况相符,说明本文建立的火山岩体积解释模型可以较为合理地对不同类型的火山岩进行模拟,复合蛙跳算法相较于蛙跳算法在计算精度和计算效率方面均有明显的提升。

图4 凝灰岩层密度-伽马交会图(a)和中子孔隙度-声波时差交会图(b)

表2 火山岩各矿物组分测井响应特征值

图5 采用SFLA(a)和CFLA(b)得到的子种群最小目标函数值随全局迭代次数变化的曲线

表3 采用SFLA和CFLA得到的各种矿物含量与岩心切片矿物含量的平均相对误差

4 结论

1) 火山岩岩性复杂,矿物类型多样,恰当且全面的确定主要成分并建立体积解释模型是储层参数准确计算的第1步,除孔隙、石英、长石、铁镁矿物等熔岩类的组分,在凝灰岩类岩石中含量为50%的凝灰质也不容忽视,各组分测井响应特征值可依据岩石矿物资料给定初始值,而后依据实测测井曲线与计算测井值的误差进行调整。

2) 复合形方法具有极强的寻优能力,但初始点的选取对后续最优点的确定影响较大,易陷入局部极值;蛙跳算法在寻优后期搜索速度变慢。复合蛙跳算法集合了蛙跳算法与复合形方法的优势,在精度和计算效率上均有明显提高。

3) 实际资料的处理结果表明:火山岩体积解释模型适应于种类复杂火山岩;复合蛙跳算法计算得到的矿物含量与岩心切片数据的吻合程度更高,相较于蛙跳算法运算效率提高了约1倍,是一种有效的最优化解释方法。

猜你喜欢
蛙跳灰质火山岩
“三层七法”:提高初中生三级蛙跳能力的实践研究
达巴松凸起石炭系火山岩油气勘探技术研究
接财接福
抗逆转录病毒治疗对艾滋病患者脑灰质体积的影响
内蒙古巴尔陶勒盖-复兴屯发现特大型陆相火山岩型铅锌银矿床
“发福”影响脑容量
三坐标测量在零件安装波动中的应用
火山岩体追踪识别及其在气藏有效开发中的应用
灰质越多越聪明