基于贪心算法的油管传输射孔排炮的实现

2022-01-11 12:06:08何国建
声学与电子工程 2021年4期
关键词:射孔数目使用率

何国建

(杭州瑞利声电有限公司,杭州,310023)

石油行业中,在油层确定后需要对具体油层进行采油,通常需要在对应油层进行射孔,射孔传输包括电缆传输和油管传输。油管传输的基本原理为将射孔枪串拼接在一起,接在油管柱尾端,并在预先分析的情况下,在特定区域给射孔枪填充弹药,并下放到定位处[1]。一方面保证油层的油可以在油管中传输,另一方面避免其它底层被破坏。

井下的油层并不是连续的,而射孔枪串的拼接是连续的,在工程中我们希望使用最少的射孔枪的数目,在对应射孔枪位置填充最少的弹药达到工程所需最佳的效果。当油层较多、射孔枪较多时候,人工无法快速设计出较为合理的方案,需设计较为合理的算法来实现此功能。

1 问题分析

油管输送式射孔是在地面上将所有射孔枪通过中接头统一连接后,一次性输送到地下,利用导爆线同时引爆射孔,通常情况下所有油层只进行一次射孔。射孔枪只有在油层对应的地方进行射孔弹填充,枪与枪之间的中接头部分不进行填充弹药操作。此时引入一个问题,即中接头在油层中分布较多时,对应油层的射开孔数据将大幅度减小,导致油气产量下降。该问题的优化目标是降低油层中分布的中接头数目、长度[2]。

如果不考虑射孔枪的使用效率,可看作动态规划的问题,例如一维下料问题、钢管分割问题。但其本质为二维动态规划,在钢管分割问题中的商品价格也为动态规划[3]。如果以动态规划的思路考虑该问题的话,此时目标函数为整体枪串装弹的使用效率最高[4,5]。其数学公式为

式中,f是目标函数,f1为枪串装弹长度,为枪串总长。约束条件为油层总长(有时包含安全枪距离)小于枪串总长。枪串中具体排列的射孔枪所具有的加权效益也会随着已经排列好的射孔枪所具有的效益而改变。该算法的时间复杂度将会大幅度提高[6]。通过将射孔枪串中的总中接头数目最小、长度最短的问题分解为小问题:选择合适的射孔枪在当前油层中以获得最高的使用效率,求解出所有的局部最优解来近似等于全局最优解[7]。

2 数学模型

假设条件:(1)整个油层中都用射孔枪进行连接,不考虑地层中特殊的分布;(2)在一次工程射孔中只使用一种统一规格的中接头对射孔枪进行连接,目标函数为:

其中[a1,a2]为当前油层的分布集合,a1为油层的底层,a2为油层的顶层。[b1,b2]为当前射孔枪的分布集合,b1为当前射孔枪的底端位置,b2为当前射孔枪的顶端位置[8]。

2.1 问题解空间

对于此问题的解空间可以用树形图进行表示,如图1所示。如果该问题的解有n个,n也可以表示为枪串中射孔枪的数目。子集树有2n个叶结点,遍历子集树的算法需要O(2n)计算时间。此问题可用不同的剪枝函数和最优解表示方法来获得最终结果[9]。

图1 树形图

2.2 算法

(1)初始化过程

初始化整体油层的集合 oilLayout,油层长度oilLayoutLength,需要使用的射孔枪的长度集合platoonLength,需要使用的中接头的长度middleJointLength,当前油层集合currentOilLayout,当前射孔枪位置集合currentPlatoon,当前枪串长度gunLength。

(2)比较过程

对所有射孔枪进行遍历,计算出每个射孔枪在当前油层射孔的使用率,选出一个射孔使用率最高的射孔枪,记录此射孔枪为当前局部最优解。

(3)更新过程

求解出一次局部最优解以后更新当前油层集合currentOilayout和当前射孔枪位置集合currentPlatoon,为下一次计算局部最优解提供条件。

(4)迭代过程

重复(2)、(3)过程,直到射孔枪的总长略大于整体油层长度,以求出全部解,输出所有最优解的集合。

2.3 算法具体实现

2.3.1 求解局部最优解

求解局部最优解就是选择最高使用率的射孔枪。利用

进行计算。式中的f为加权使用率,f1为使用率,f2为当前射孔枪的长度。利用

求解出f1。此公式的先验条件为集合[a1,a2]和集合[b1,b2]相交,即当前射孔枪在当前油层中。

2.3.2 更新条件

求解出一次局部最优解后,当前油层集合currentOilLayout需要与上一次选出的射孔枪位置集合求出差集。然后将差集重新赋值给currentOilLayout,此数据给下次计算使用。

2.3.3 结束条件

采用 while语句进行判断,如果枪串长度gunLength

3 实验结果分析

采用实际数据进行测试,参考实际测井油层的分布情况、射孔枪的类型和中接头类型。从表1中可以看出,此算法能够很好地计算出排列分布集合,具体到每个射孔枪的顶端和底端位置,并且能够获得较高的射孔枪装弹的实际覆盖率。对于油层分布较为复杂、射孔枪类型较多的情况下,通过本文算法的计算结果还是较为合理。在有3 m安全枪的情况下,得到实际覆盖率为93.34%,射孔枪的数目为37个,全满的数目为1个,半满枪的数目为19个,全空的数目为17个。

表1 实验结果分析表

在表2中展示了实际的计算结果。可以看出在对应的位置选择了更好地射孔枪类型,避免了过多使用最长枪串类型带来的不良后果。尽可能地通过局部最优解来实现全局最优解。

表2 实验优化结果分析表

从图2中可以直观地看到具体射孔枪排列顺序:左列中黑色为油层,中间为射孔枪和中接头排列,右侧为射孔枪装弹情况排列情况。从图中可以看出,算法基本满足设计要求。

算法还可进行一点优化。图3中,同一油层进行优化排炮,实际覆盖率从93.34%提高到了97.2%,射孔枪的数目为44个,全满的数目为1个,半满枪数目为16个,全空的数目为27个。

图2 实际计算结果图

图3 优化计算结果图

4 结论和建议

本文设计的算法能够基本计算出射孔枪使用率较高的排列分布,也可以得到较为合理的全局结果,但是因为算法通常是自下而上、不依赖子问题等特点,还有待提高的地方。拟从以下两方面进行改进:(1)在空间搜索复杂度上,分支上选取的时候可以设计更为合理的减枝算法,以减少计算时间;(2)求解全局最优解上,因贪心算法的性质决定其只能求解局部最优解,很难保证所有的局部最优解的集合就是全局最优解。只有设计出较好的动态规划的算法才可以计算出全局最优解。

猜你喜欢
射孔数目使用率
有机物“同分异构体”数目的判断方法
中学化学(2024年4期)2024-04-29 22:54:35
PFC和2315XA进行电缆射孔下桥塞
化工管理(2021年7期)2021-05-13 00:45:20
电缆输送射孔的优缺点分析
《哲对宁诺尔》方剂数目统计研究
牧场里的马
射孔井水力压裂模拟实验相似准则推导
某油田分段射孔水平井的产能研究分析
河南科技(2015年23期)2015-02-23 08:09:02
胃肠外科围手术期合理使用抗菌药物的探讨
吓死我了
吓死我了