您好,欢迎访问三七文档
钻井布局的最优方案摘要本题重点研究了勘探钻井布局的最优化问题。根据实际情况,为了节约钻探费用,只有最大限度的利用旧井,减少钻新井;根据已知井的坐标点对钻井布局进行平面几何坐标化处理,把井的分布转化为平面上的点,用Matlab编程把井的位置在网格上表示出来,移动网格,并将网格的移动转化为井的移动,求出新坐标点,用LINGO验证。问题1可知网格的横向和纵向是固定的,并规定两点间的距离为其横向距离及纵向距离的最大值。在平面上平行移动网格,使可利用的旧井数尽可能大,将题中给出点取整得到距离最近的结点坐标,取横坐标和纵坐标到结点距离中最大的作为两点间的距离。引入0-1变量,把旧井数最大作为目标,把旧井与网格结点的横纵距离不超过0.05个单位作为约束条件,建立最优化模型。通过Matlab求出可利用的旧井为2,4,5,10的旧井,用LINGO验证。问题二考虑欧氏距离的误差意义下,网格的横向和纵向不固定(可以旋转移动),即平面直角坐标系中的几何距离。引入0-1变量,以可利用的旧井数最大为目标,把井与网格结点的欧氏距离不超过0.05作为约束,并用Matlab软件进行搜索求解,最后运用LINGO编程验证。2问题重述勘探部门在某地区找矿要在一个区域内按纵横等距的网格点来布置井位,进行“撒网式”全面钻探。由于钻一口井的费用很高,为尽量利用旧井,少打新井,以节约钻探费用。新设计的井位与原有井位重合(或相当接近),便可利用旧井的地质资料,不必打这口新井。比如钻一口新井的费用为500万元,利用旧井资料的费用为10万元,则利用一口旧井就节约费用490万元。假设平面上有n个点iP,其坐标为nibaii...2,1),(,表示已有的n个井位。新布置的井位是一个正方形网格N的所有结点。假定每个格子的边长都是1单位。整个网格是可以在平面上任意移动的。若一个已知点与某个网格结点ix的距离不超过给定误差(=0.05单位),则认为iP处的旧井资料可以利用,不必在结点ix处打新井。为进行辅助决策,勘探部门要求我们研究如下问题:1)假定网格的横向和纵向是固定的,并规定两点间的距离为其横向距离及纵向距离的最大值。在平面上平行移动网格,使可利用的旧井数尽可能大。试提供数值计算方法,并对下面的数值例子用计算机进行计算。2)在欧氏距离的误差意义下,考虑网格的横向和纵向不固定(可以旋转)的情形,给出算法及计算结果。i123456789101112ai0.501.413.003.373.404.724.725.437.578.388.989.50bi2.003.501.503.515.502.006.244.102.014.503.410.803问题分析为了尽量利用旧井,少打新井,以节约钻探费用成本达到勘探部门的要求,按照题意给出的坐标点的井位在平面上进行分析,对网格进行平行移动,将网格的平行移动看作点的平行移动,根据12个旧井井位点的坐标,计算坐标点的移动,移动后的旧井坐标点与新井比较,求出坐标点。由问题一可知,网格的横向和纵向是固定的,因此网格只能做平行移动,即对网格进行横向移动和纵向移动,移动距离不能过大(0.01单位)。把旧井用Matlab编入每个格子的边长(井位的纵横间距)都是1单位(比如100米)的网格中,并且两点间的距离为其横向距离(横坐标之差绝对值)及纵向距离(纵坐标之差绝对值)的最大值,那么每个点横纵坐标的取整值为距离此点最近的结点坐标,分别求出横纵坐标与其距离最近的结点坐标之差的绝对值,较大值即为旧井与其最近结点的距离。如果求出的距离不超过给定误差ε(=0.05单位),那么就可以利用这口旧井,记录下这口井的编号。判断移动位置是否等于1,如果等于1,就终止输出记录;如果不等于1继续横向和纵向移动旧井,记录下每次移动得到的可利用的旧井编号,再把得到的旧井进行比较,找出数量最多的一组解,用LINGO进行搜索求解验证,即为最优化布局。对于问题二,考虑到网格的横向和纵向是不固定(可以旋转)的情形,搜索可利用的旧井数目最多,由于旧井所在网格是可以旋转的,在欧氏距离的误差意义下,两点间的距离变成欧氏距离(平面直角坐标系中的几何距离)。因此只需在横向平移和纵向平移的基础上再加上绕原点的旋转。4条件假设1)假设整个网格可以在平面上任意移动;2)假设一个已知点与某个网格结点ix的距离不超过给定误差;3)假设旧井的网格在新井的网格上进行平行移动,如果结点重合,便可利用旧井的地质资料,不必打这口新井,可以利用旧井;4)假设旧井能够最大限度的被利用,节约费用;5)假设每个格子的边长(井位的纵横间距)都是1单位;6)假设移动距离不能超过1单位;7)假设问题1中网格的横向和纵向是固定的;8)假设问题2在欧氏距离的误差意义下,考虑网格的横向和纵向是可以旋转的;5符号说明a:原点横向坐标b:原点纵向坐标;ia:第i口井横向坐标;ib:第i口井纵向坐标;m:横向坐标移动距离;n:纵向坐标移动距离;ix:10变量;id:第i口井到原点的距离;ie:第i口井旋转后的横坐标;if:第i口井旋转后的纵坐标;w:第i口井旋转后与新井点的旋转夹角;iq:第i口井与原点的夹角;6模型建立问题1建立模型如下:由问题1分析可知,在平面几何图形上平行移动网格,即对旧井横向和纵向移动,将每次移动所得到的可利用旧井数进行比较(例,图1),通过对各点进行比较,取数量最多的一组解,然后求出横纵坐标与其距离最近的结点坐标之差的绝对值,建立最优化模型,用Matlab编程求出可利用旧井的分布数量和编号,通过LINGO软件编程检验所求结果。由于新布置的井位是一个正方形网格N的所有结点,所以要平移网格,但平移不能准确找出坐标点,要换位思考,固1定网格的坐标,把平移网格转化为平移旧井坐标。因此,结点是从原点开始的整数坐标,旧井坐标为:)...2,1(),(nibaii,将旧井在原有位置基础上横向、纵向分别平移m,n个单位,由于“正方形网格”每个格子的边长都为1单位,新井坐标是正方形网络的所有结点,旧井位的平移范围只需在一个网格之内,所以m,n范围是10,10nm;这样平移后旧井的坐标为:)...2,1(),(ninbmaii,若一个已知点与某个网格结点ix的距离不超过给定误差(=0.05单位),则认为第i口井处的旧井资料可以利用,不必在结点处打新井。所以旧井平移后横纵坐标得到离它最近的新井结点的坐标为:)...2,1(])5.0[],5.0([ninbmaii平行移动网格后得到可利用旧井的数量,求得移动后的新井点与其最近的结点距离:]5.0[mamaii]5.0[nbnbii引入0-1变量,1ix时,第i口旧井会被利用;0ix时,第i口旧井不会被利用;最优化模型规划:)...2,101niiixi(口井不被利用第口井被利用第在12口旧井中,以可利用的旧井位最多为目标,建立目标函数:121maxiixy已知点与某个网格结点ix的距离不超过给定误差(=0.05单位),约束条件为:)12...2,1(05.0]5.0[)12...2,1(05.0]5.0[ixnbnbixmamaiiiiii1,010nm;根据上述引入0-1变量,建立目标函数,模型约束条件,建立模型如下:1,010)12...2,1(05.0]5.0[)12...2,1(05.0]5.0[)12...2,1(1,0max121nmixnbnbixmamaixxyiiiiiiiii问题1算法1)在(0,1)范围之间选择0.01为步长,分别横向和纵向移动,得到新的坐标;2)对平移得到的新坐标求出最近网格坐标;3)两点间的距离为横向距离(横坐标之差绝对值)及纵向距离(纵坐标之差绝对值)的最大值,判断是否在误差范围之内,满足要求的记录加1;4)对12口井进行搜索并比较得到利用旧井数量最多时,记录最大数和编号;5)重复求解,按给定步长搜索完范围。给出可利用的最大旧井数量和编11号。问题2建立模型如下:欧氏距离的误差意义下,考虑网格的横向和纵向不固定(可以旋转)的情形,两点间的距离变成欧氏距离。使旧井所在网格旋转,分别将12口旧井作为原点,让旧井所在网格绕原点旋转,算出旧井坐标旋转到预设新井坐标位置的旋转角度,进而化简得到旋转后的坐标。以旋转后与结点误差最小,确立以可利用的旧井位最多为目标,建立优化模型,用Matlab编程求解,然后用LINGO程求解验证。使旧井所在网格旋转,分别将12口旧井作为原点为坐标得到旋转后的坐标:引入0-1变量,1ix时,第i口旧井会被利用;0ix时,第i口旧井不会被利用;最优化模型规划:欧氏距离的误差意义下,以原点为坐标得到旋转后的坐标点),(iife:)...2,101niiixi(口井不被利用第口井被利用第12...2,105.05.05.022ixffeeiiiii设第i口井位到原点距离为id,第i口井位坐标点与原点夹角为iq,第i口井位井(a,b)(ai,bi)w(xi,yi)井位到预设新井井位的旋转角度为w,已知旋转原点坐标为),(ba,第i口井位纵坐标为),(iiba;12...2,122ibbaadiiiiiidbbqarcsin旋转后坐标;iiiidqwdqwsin,cos在12口旧井中,以可利用的旧井位最多为目标,建立目标函数:121maxiixy模型建立如下;12...2,11,012...2,105.05.05.022ixixffeeiiiiii问题2算法1)以每口井为原点,用欧式距离公式求出其他各点与原点的距离及夹角;2)用合适的步长角度,在)180,0(范围内,以选定的井为圆心旋转,求出新坐标的位置;3)用欧式距离公式求出点的新坐标与最近点坐标点之间的距离。判断是否在给定误差范围之内,满足要求加1,记录最大数;4)对12口井进行搜索并比较得到利用旧井数量最多时,记录最大数和编号;5)重复求解,按给定步长搜索完范围,给出可利用的最大旧井数量和编号;7模型求解问题1根据上述建立的最优化模型,利用Matlab编程求出可利用旧井的分布数量和编号。每次移动0.01时,在平面上网格平行移动得到可利用的旧井坐标最多。最后编程求得12口旧井中有编号分别为:2,4,5,10共4口可被利用,然后用LINGO进行验证如附录1:问题:2由上述建立的最优化模型可知,欧氏距离的误差意义下,通过数学软件Matlab编程搜索求解在步长取π/180时,搜索到可利用的旧井数编号为:1,6,7,8,9,11共6口旧井,然后用LINGO进行验证如附录4。附录1,MATLAB求解a=[0.501.413.003.373.404.724.725.437.578.388.989.50];b=[2.003.501.503.515.502.006.244.102.014.503.410.80];plot(a,b,'o')gridd=[];forxx=0:0.01:1x=a+xx;foryy=0:0.01:1y=b+yy;c=[];fori=1:12;ifabs(x(i)-round(x(i)))0.05&&abs(y(i)-round(y(i)))0.05c=[c,i];endendiflength(c)length(d)d=c;endendendd附录2:LINGO验证sets:aa/1..12/:a,b,x;endsetsdata:a=00.501.413.003.373.404.724.725.437.578.388.989.50;b=22.003.501.503.515.502.006.244.102.014.503.410.80;enddatamax=@sum(aa(i):x(i));@for(aa(i):@abs(a(i)+
本文标题:钻井布局的最优方案
链接地址:https://www.777doc.com/doc-1987091 .html