何國(guó)建
(杭州瑞利聲電有限公司,杭州,310023)
石油行業(yè)中,在油層確定后需要對(duì)具體油層進(jìn)行采油,通常需要在對(duì)應(yīng)油層進(jìn)行射孔,射孔傳輸包括電纜傳輸和油管傳輸。油管傳輸?shù)幕驹頌閷⑸淇讟尨唇釉谝黄?,接在油管柱尾端,并在預(yù)先分析的情況下,在特定區(qū)域給射孔槍填充彈藥,并下放到定位處[1]。一方面保證油層的油可以在油管中傳輸,另一方面避免其它底層被破壞。
井下的油層并不是連續(xù)的,而射孔槍串的拼接是連續(xù)的,在工程中我們希望使用最少的射孔槍的數(shù)目,在對(duì)應(yīng)射孔槍位置填充最少的彈藥達(dá)到工程所需最佳的效果。當(dāng)油層較多、射孔槍較多時(shí)候,人工無(wú)法快速設(shè)計(jì)出較為合理的方案,需設(shè)計(jì)較為合理的算法來(lái)實(shí)現(xiàn)此功能。
油管輸送式射孔是在地面上將所有射孔槍通過(guò)中接頭統(tǒng)一連接后,一次性輸送到地下,利用導(dǎo)爆線同時(shí)引爆射孔,通常情況下所有油層只進(jìn)行一次射孔。射孔槍只有在油層對(duì)應(yīng)的地方進(jìn)行射孔彈填充,槍與槍之間的中接頭部分不進(jìn)行填充彈藥操作。此時(shí)引入一個(gè)問(wèn)題,即中接頭在油層中分布較多時(shí),對(duì)應(yīng)油層的射開(kāi)孔數(shù)據(jù)將大幅度減小,導(dǎo)致油氣產(chǎn)量下降。該問(wèn)題的優(yōu)化目標(biāo)是降低油層中分布的中接頭數(shù)目、長(zhǎng)度[2]。
如果不考慮射孔槍的使用效率,可看作動(dòng)態(tài)規(guī)劃的問(wèn)題,例如一維下料問(wèn)題、鋼管分割問(wèn)題。但其本質(zhì)為二維動(dòng)態(tài)規(guī)劃,在鋼管分割問(wèn)題中的商品價(jià)格也為動(dòng)態(tài)規(guī)劃[3]。如果以動(dòng)態(tài)規(guī)劃的思路考慮該問(wèn)題的話,此時(shí)目標(biāo)函數(shù)為整體槍串裝彈的使用效率最高[4,5]。其數(shù)學(xué)公式為
式中,f是目標(biāo)函數(shù),f1為槍串裝彈長(zhǎng)度,為槍串總長(zhǎng)。約束條件為油層總長(zhǎng)(有時(shí)包含安全槍距離)小于槍串總長(zhǎng)。槍串中具體排列的射孔槍所具有的加權(quán)效益也會(huì)隨著已經(jīng)排列好的射孔槍所具有的效益而改變。該算法的時(shí)間復(fù)雜度將會(huì)大幅度提高[6]。通過(guò)將射孔槍串中的總中接頭數(shù)目最小、長(zhǎng)度最短的問(wèn)題分解為小問(wèn)題:選擇合適的射孔槍在當(dāng)前油層中以獲得最高的使用效率,求解出所有的局部最優(yōu)解來(lái)近似等于全局最優(yōu)解[7]。
假設(shè)條件:(1)整個(gè)油層中都用射孔槍進(jìn)行連接,不考慮地層中特殊的分布;(2)在一次工程射孔中只使用一種統(tǒng)一規(guī)格的中接頭對(duì)射孔槍進(jìn)行連接,目標(biāo)函數(shù)為:
其中[a1,a2]為當(dāng)前油層的分布集合,a1為油層的底層,a2為油層的頂層。[b1,b2]為當(dāng)前射孔槍的分布集合,b1為當(dāng)前射孔槍的底端位置,b2為當(dāng)前射孔槍的頂端位置[8]。
對(duì)于此問(wèn)題的解空間可以用樹形圖進(jìn)行表示,如圖1所示。如果該問(wèn)題的解有n個(gè),n也可以表示為槍串中射孔槍的數(shù)目。子集樹有2n個(gè)葉結(jié)點(diǎn),遍歷子集樹的算法需要O(2n)計(jì)算時(shí)間。此問(wèn)題可用不同的剪枝函數(shù)和最優(yōu)解表示方法來(lái)獲得最終結(jié)果[9]。
圖1 樹形圖
(1)初始化過(guò)程
初始化整體油層的集合 oilLayout,油層長(zhǎng)度oilLayoutLength,需要使用的射孔槍的長(zhǎng)度集合platoonLength,需要使用的中接頭的長(zhǎng)度middleJointLength,當(dāng)前油層集合currentOilLayout,當(dāng)前射孔槍位置集合currentPlatoon,當(dāng)前槍串長(zhǎng)度gunLength。
(2)比較過(guò)程
對(duì)所有射孔槍進(jìn)行遍歷,計(jì)算出每個(gè)射孔槍在當(dāng)前油層射孔的使用率,選出一個(gè)射孔使用率最高的射孔槍,記錄此射孔槍為當(dāng)前局部最優(yōu)解。
(3)更新過(guò)程
求解出一次局部最優(yōu)解以后更新當(dāng)前油層集合currentOilayout和當(dāng)前射孔槍位置集合currentPlatoon,為下一次計(jì)算局部最優(yōu)解提供條件。
(4)迭代過(guò)程
重復(fù)(2)、(3)過(guò)程,直到射孔槍的總長(zhǎng)略大于整體油層長(zhǎng)度,以求出全部解,輸出所有最優(yōu)解的集合。
2.3.1 求解局部最優(yōu)解
求解局部最優(yōu)解就是選擇最高使用率的射孔槍。利用
進(jìn)行計(jì)算。式中的f為加權(quán)使用率,f1為使用率,f2為當(dāng)前射孔槍的長(zhǎng)度。利用
求解出f1。此公式的先驗(yàn)條件為集合[a1,a2]和集合[b1,b2]相交,即當(dāng)前射孔槍在當(dāng)前油層中。
2.3.2 更新條件
求解出一次局部最優(yōu)解后,當(dāng)前油層集合currentOilLayout需要與上一次選出的射孔槍位置集合求出差集。然后將差集重新賦值給currentOilLayout,此數(shù)據(jù)給下次計(jì)算使用。
2.3.3 結(jié)束條件
采用 while語(yǔ)句進(jìn)行判斷,如果槍串長(zhǎng)度gunLength 采用實(shí)際數(shù)據(jù)進(jìn)行測(cè)試,參考實(shí)際測(cè)井油層的分布情況、射孔槍的類型和中接頭類型。從表1中可以看出,此算法能夠很好地計(jì)算出排列分布集合,具體到每個(gè)射孔槍的頂端和底端位置,并且能夠獲得較高的射孔槍裝彈的實(shí)際覆蓋率。對(duì)于油層分布較為復(fù)雜、射孔槍類型較多的情況下,通過(guò)本文算法的計(jì)算結(jié)果還是較為合理。在有3 m安全槍的情況下,得到實(shí)際覆蓋率為93.34%,射孔槍的數(shù)目為37個(gè),全滿的數(shù)目為1個(gè),半滿槍的數(shù)目為19個(gè),全空的數(shù)目為17個(gè)。 表1 實(shí)驗(yàn)結(jié)果分析表 在表2中展示了實(shí)際的計(jì)算結(jié)果??梢钥闯鲈趯?duì)應(yīng)的位置選擇了更好地射孔槍類型,避免了過(guò)多使用最長(zhǎng)槍串類型帶來(lái)的不良后果。盡可能地通過(guò)局部最優(yōu)解來(lái)實(shí)現(xiàn)全局最優(yōu)解。 表2 實(shí)驗(yàn)優(yōu)化結(jié)果分析表 從圖2中可以直觀地看到具體射孔槍排列順序:左列中黑色為油層,中間為射孔槍和中接頭排列,右側(cè)為射孔槍裝彈情況排列情況。從圖中可以看出,算法基本滿足設(shè)計(jì)要求。 算法還可進(jìn)行一點(diǎn)優(yōu)化。圖3中,同一油層進(jìn)行優(yōu)化排炮,實(shí)際覆蓋率從93.34%提高到了97.2%,射孔槍的數(shù)目為44個(gè),全滿的數(shù)目為1個(gè),半滿槍數(shù)目為16個(gè),全空的數(shù)目為27個(gè)。 圖2 實(shí)際計(jì)算結(jié)果圖 圖3 優(yōu)化計(jì)算結(jié)果圖 本文設(shè)計(jì)的算法能夠基本計(jì)算出射孔槍使用率較高的排列分布,也可以得到較為合理的全局結(jié)果,但是因?yàn)樗惴ㄍǔJ亲韵露稀⒉灰蕾囎訂?wèn)題等特點(diǎn),還有待提高的地方。擬從以下兩方面進(jìn)行改進(jìn):(1)在空間搜索復(fù)雜度上,分支上選取的時(shí)候可以設(shè)計(jì)更為合理的減枝算法,以減少計(jì)算時(shí)間;(2)求解全局最優(yōu)解上,因貪心算法的性質(zhì)決定其只能求解局部最優(yōu)解,很難保證所有的局部最優(yōu)解的集合就是全局最優(yōu)解。只有設(shè)計(jì)出較好的動(dòng)態(tài)規(guī)劃的算法才可以計(jì)算出全局最優(yōu)解。3 實(shí)驗(yàn)結(jié)果分析
4 結(jié)論和建議