钻井分布问题的优化Word格式.docx
- 文档编号:4695473
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:26
- 大小:202.68KB
钻井分布问题的优化Word格式.docx
《钻井分布问题的优化Word格式.docx》由会员分享,可在线阅读,更多相关《钻井分布问题的优化Word格式.docx(26页珍藏版)》请在冰点文库上搜索。
两点之间的距离定义转换为欧氏距离,在欧氏距离条件下,考虑网格的横纵方向不确定,即网格可以旋转并且可以在横纵方向上平移,在这种变换条件下,找到旋转的角度和移动量,确定在该角度和移动量下,可以被利用的就钻井的数目。
问题三:
问题三是问题二的一般情况。
即任数目的旧钻井可被利用的条件以及该条件下的算法分析。
2、问题的分析
显然,可以将整个网格视为一个平面直角坐标系,相对应的,每一个旧井和节点便会有一个在该坐标系下的坐标。
注意到以单位一为边长的正方形构成该网格,所以可以知道,该网格的整数部分均是单位1的若干倍。
若对每一个坐标进行去整操作,得到的新的坐标点位于以两条坐标轴为邻边的单位正方形里面,并且与原坐标一一对应。
对旧井点是否可被利用的判断,均可以在该正方形中进行。
如图2.1,将所有的点归一到该单位正方形中,则满足条件的旧井点位于图中的阴影部分。
通过坐标的变换以及变换坐标后对符合条件点的筛选,可以得到满足可被利用的旧井点的数目以及编号。
在问题二中,两点之间的距离变为欧式距离。
同时,在网格横纵向不确定,即整个网格可以在平面中旋转并且可以横纵向平移时,满足条件的旧井数目在网格变换的条件下,较问题一会有相对的变化。
在欧式距离下,满足可被利用的旧井的范围如图2.2中阴影部分所示。
图2.2
沿用问题二中的欧式距离。
结论为若通过结点等效变换后,n个结点均落在以一个结点为圆心,以ε为半径的圆中时,满足旧井点可以被全部利用。
3、模型假设与符号系统:
3.1模型的假设
(1)假设网格是无限大的,并且勘探所在地地形不会影响钻井位置的选取。
(2)视钻井的实际大小相对于网格之间的距离是很小的,即钻井可被视为质点。
(3)由运动的相对性,网格横纵移动可以等效的看做钻井点相对于网格的移动。
(4)若旧的钻井点与网格之间的距离在给定误差ε(ε=0.05)范围内,则认为该旧井点可以被再次使用。
(5)以所给的12个例点为基准建立平面坐标系。
将空间中的距离问题转化为坐标系中的点的坐标的代数运算。
3.2符号系统:
符号
含义
ε
判断误差
坐标系中任意点的坐标
进行归一变换后的任意点坐标
平移坐标系后的任一点坐标
Δx
坐标系的横向移动量
Δy
坐标系的纵向移动量
θ
坐标系的旋转量
φ
坐标系旋转时的旋转步长
a
坐标系移动时的移动步长
fix
对一个数进行去整操作
d
两点之间的距离
||
逻辑或
&
逻辑与
4、问题一的建模和求解
4.1问题分析
(1)假设任意旧井点的坐标为
对该点坐标进行取小数的操作,
,得到新点
,这些点均位于以坐标轴为临边的单位正方形中。
此时,各个旧井点与结点的距离之间的关系可以转化为点的坐标之间的关系。
依照题目所给的距离关系,若点的坐标满足关系
(判断条件Ⅰ),则这些点是可以被再次利用的。
图4.1旧井的散点图
图4.2归一化后旧井散点图
(2)再考虑网格,即整个坐标系可以横纵向移动时,设网格横纵向移动量分别为Δx,Δy,在
(1)中,将所有的旧井点归一到以原点为参考点的单位正方形考虑是否可以再次利用。
在网格可以移动时,这个参考单位正方形将会改变将会改变。
考虑到移动时的周期性,取移动量为[-0.5,0.5]。
为简化问题,将坐标系移动时的点的坐标变化等效地视为点的坐标的变化。
坐标系分别横纵向平时,其坐标转换公式为:
(3)在坐标移动时,旧井点有可能会移出单位正方形但是却依然满足可被利用的条件,因此,要在判断的时候再次对坐标点进行归一化。
如图4.1所示。
(4)利用
(1)中的判断条件Ⅰ,逐一对归一转化并且经过坐标系移动变换后的点的坐标进行判断。
在具体运算中,取坐标系的移动步长a=0.01。
具体算法流程图4.2如下:
图4.4
Matlab代码见附录。
经过运算,结果为:
得到一些坐标的横纵移动量Δx,Δy,在这些移动量下,得到的旧井可利用数目达到最大,为四个,编号为2,4,5,10。
移动量的关系如下图4.5所示(该表为整个结果的一部分)。
图4.5
5、问题二的建模和求解
(1)在问题二中,两点之间的距离变为欧式距离。
在欧式距离条件下,沿用问题一中的解决方案,将坐标系中任一点经过去整处理,归一到单位正方形中。
坐标的处理方法和问题一中相同。
如图5.1,则满足条件的点位于图中阴影部分。
(2)首先考虑坐标系的旋转。
当坐标系以远点为中心旋转一定角度
后,点就相对应地旋转-
,可以得到当坐标系旋转时,坐标点的代换关系为:
(3)以旋转步长
旋转坐标系,每旋转一个
,就相应地移动坐标系的横纵方向。
达到角度、横、纵的全方位比较。
横纵坐标移动范围为(
),在确定的精度下,通过对已修正点的逐个比较,记录符合条件的点。
在欧氏距离下,判断点是否可被利用的判断条件为:
(4)考虑到在旋转坐标系(即点的旋转)时,旧井点有可能落到单位正方形外,所以要对旋转过后的点进行二次修正,使其全部落到单位正方形中进行比较判断。
为简化二次修正,只需要对进行过旋转平移后的点统一取绝对值,再用其绝对值减去对其绝对值去整后的数值,即是符合比较条件的点的坐标。
(5)进行每个井点与正方形网格结点比较,得出可被利用的旧井编号以及坐标移动量,旋转角度。
具体算法流程图5.3如下。
用matlab进行编程计算,得到结果的结果为:
当横纵向移动量以及旋转量一定时,会对应最大的可被利用旧井数为四个。
编号为2,4,5,10。
图5.2
6.问题三的建模和求解
(1)规定在问题三中使用欧氏距离。
设想一个极限的情况:
所有的点都集中在一个很小的区域,这个区域为一个以
为半径的圆,这个圆的圆心为一个结点,显然,只要旧井点落在这个圆中,则这些旧井点都可以被该圆心(结点)利用。
在这种情况下,这些旧井点只能被同一个结点利用。
但是在现实情况中,旧井点都是随机分布的,这些旧井点分布在整个网格中,将单个网格对称地分成四个部分,如图6.1,标记为区域1,2,3,4,在区域1的旧井点只需要考虑该旧井点与结点1的位置关系即可。
满足可被利用的的区域为以1为圆心的四分之一圆。
在问题一、二中,通过去整使坐标位于单位正方形中。
类似地,把这些点通过去整操作划归到某一个单位正方形中(除去整数的大小决定了这个单位正方形的位置,因为正方形的具体位置不影响结果,在此不再赘述。
)可以看到,在1,2,3,4各个区域可以等效的转移到A,B,C,D区域中。
等效转移的过程是3和C显然是对应的。
1区域和A区域的对应关系证明如下:
由于区域1位于离它最近的结点的右下角,2位于左下角,3位于右上角,4位于左上角,可以把可以把网格中任一点都转换到同一个网格结点中(如图6.1所占的区域)。
称这个网格结点为统一参考结点。
接下来的问题就是考虑在统一了参考节点之后,旧井点应满足怎样的条件,才能被完全利用。
图6.1
(2)结论:
当给定的n个旧井点通过结点等效变换之后位于一个以一个结点为圆心,以ε为半径的圆中时,这些旧井点可以被完全利用。
(3)经过平移旋转等变换,要使能落入以ε为半径的圆中的点尽可能多。
在n个给定的点中,若ε也给定,则能被利用的旧井数是一定的。
若要旧井全被利用,需合理地改变ε的大小。
7、模型的优缺点及其优化
7.1模型的优点:
把点通过变换放入一个正方形内,在这个单位正方形内寻找符合条件的旧井点。
这样的处理大为简化了计算过程,给数据的后期处理带来了很大的便利。
在选择计算过程中,给每一个旧井点确定好其分布范围,在这个范围内进行比较,简化了算法。
7.2不足之处:
当横纵坐标移动间隔比较大时,精度不高。
移动间隔比较小时,运算时间比较长。
代码的执行效率太低。
在问题三中,若经过变换把旧井点放在一个等效圆附近时,坐标系的旋转将不会影响旧井点是否可被利用,影响最大的将会是坐标系的平移。
考虑到在问题二中的坐标系旋转后得到的结果和问题一中的结果是一样的,均为四个。
因此。
这样的误差在一定条件下是可以接受的。
7.3优化:
选择合适的移动间隔使能够解决问题的情况下使运算时间合理化,在程序运行时间和要求的精确度之间做出一个平衡。
经过实际的运算,可以得到当移动步长为Δx=Δy=0.01时,可以在精确度和计算时间上做出一个平衡。
7.4模型的推广:
该模型可以推广到一些需要先期进行实地勘探并且在初期的试验点可以被再次利用的工程中来。
比如在市政工程中消防栓的布置,在先行的试验中设置的消防栓可以被再次利用,通过合理的布局使整个消防栓的整个布置达到尽可能地合理。
同样的,若把整个城市视作一个网格,在这个网格中已经有先行布置好的相关公共机构,若类似地把这些已经有的机构视作试验点,依据人口密度等因素设置相应的网格范围,可以做到相关机构的合理设置,比如人口密集区的警位点设置。
附录1:
问题一源代码:
%符号说明(取旧井坐标轴增大方向为正方向)
%矩阵A表示旧矿井的横纵坐标
%矩阵B表示网格的横纵坐标
%矩阵C表示旧矿井变换后的横纵坐标
%矩阵D做临时存储矩阵用
%矩阵赋值
A=[0.51.4133.373.44.724.725.437.578.388.989.5;
23.51.53.515.526.244.12.014.53.410.8];
B=[01234567891011;
01234567891011];
C=zeros;
D=zeros;
%旧矿井坐标转换模块
fori=1:
2
forj=1:
12
C(i,j)=A(i,j)-fix(A(i,j));
end
%坐标移动以及比较模块
%i表示旧井横坐标移动量
%j表示旧井纵坐标移动量
%a表示给定误差0.05
%b记录可以利用旧井个数的总和
%c记录不用挖新井的旧井编号
%d记录最优方案网格的横坐标移动量d=-i
%e记录最优方案网格的纵坐标移动量e=-j
%f记录移动次数
%g记录移动精度
%矩阵E保存每次移动的参数,b,d,e,
g=input('
请输入移动精度:
'
);
E=zeros;
a=0.05;
f=0;
b=0;
c=0;
fori=-0.5:
g:
0.5
forj=-0.5:
f=f+1;
fork=1:
D(1,k)=C(1,k)+i;
D(2,k)=C(2,k)+j;
ifabs(D(1,k))<
=0.05
ifabs(D(2,k))<
=0.05|(D(2,k))>
=0.95
b=b+1;
c=k;
elseifabs(D(1,k))>
E(3+b,f)=c;
d=-i;
e=-j;
E(1,f)=b;
E(2,f)=d;
E(3,f)=e;
%查找筛选模块
%x存储可用矿井数筛选最大值
%F矩阵存储查找出最大值对应的位置坐标
%G矩阵存储查找出的最大值的坐标轴移动量及矿井编号
%y存储矩阵F的列数,即满足最大要求的情况数目
x=max(E(1,:
));
%[x,y]=find(E(1,:
)==x);
F=zeros;
F=find(E(1,:
y=size(F,2);
G=zeros;
form=1:
y
forl=1:
x+2
G(l,m)=E(l+1,F(1,m));
%输出模块
%z存储要输出矿井编号
fprintf('
最大可用旧井数为:
%d\n'
x)
forn=1:
x
z=G(n+2,1);
第%d个可用旧井编号为:
n,z)
附录二:
问题二的源代码
%符号说明(坐标取旧井坐标轴增大方向为正方向)
%矩阵D做旋转并移动后坐标临时存储矩阵用
%i,j,k,l,m,n,o,p为循环计数
%坐标旋转移动以及比较模块
%h记录旋转精度
%s记录旋转弧度值(正数表示负时针转动)
%矩阵E保存每次移动的参数,b,d,e,s
%矩阵H做旋转后坐标临时存储矩阵用
H=zeros;
%AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
%AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
h=input('
请输入旋转精度:
foro=-90:
h:
90
forp=1:
H(1,p)=C(1,p)*cos(o*pi/180)-C(2,p)*sin(o*pi/180);
H(2,p)=C(1,p)*sin(o*pi/180)+C(2,p)*cos(o*pi/180);
fori=-sqrt
(2)/2:
sqrt
(2)/2
forj=-sqrt
(2)/2:
D(1,k)=H(1,k)+i;
D(2,k)=H(2,k)+j;
ifabs(D(1,k)-fix(D(1,k)))<
=0.5
ifabs(D(2,k)-fix(D(2,k)))<
ifsqrt((abs(D(1,k)-fix(D(1,k))))^2+(abs(D(2,k)-fix(D(2,k))))^2)<
=a
elseifabs(D(2,k)-fix(D(2,k)))>
ifsqrt((abs(D(1,k)-fix(D(1,k))))^2+(abs(D(2,k)-fix(D(2,k)))-1)^2)<
elseifabs(D(1,k)-fix(D(1,k)))>
ifsqrt((abs(D(1,k)-fix(D(1,k)))-1)^2+(abs(D(2,k)-fix(D(2,k))))^2)<
ifsqrt((abs(D(1,k)-fix(D(1,k)))-1)^2+(abs(D(2,k)-fix(D(2,k)))-1)^2)<
E(4+b,f)=c;
s=-o;
E(4,f)=s;
x+3
z=G(n+3,1);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 钻井 分布 问题 优化