首页 百科知识 四群四域四向基线倾角与距离最大化圈绕并行凸壳新算法

四群四域四向基线倾角与距离最大化圈绕并行凸壳新算法

时间:2024-10-17 百科知识 版权反馈
【摘要】:据此,可构造出效率更高的基于工作站机群的四群四域四向基线倾角与距离最大化圈绕并行凸壳新算法。第1-1步:子机群COWi在子分布域Si中,进行基线最大化与基线距离最大化的圈绕寻找子凸壳Qi各倾角最大顶点与基线距离最大顶点的并行处理。

4.4 四群四域四向基线倾角与距离最大化圈绕并行凸壳新算法

2007年,笔者依据同构化凸壳构造基本定理,在把本书第4章第4.3节算法改进为“在当前子分布域中,并行找出‘最大基线倾角’最大点的同时,还同步并行寻找‘当前子分布域基线距离’最大点”。据此,我们创造出基于四群四域四向“最大基线倾角与最大基线距离”的并行凸壳新算法。

定义4.8 记子凸壳QSi是定义4.6所论子分布域Si的凸壳,Qi,0、Qi,k、Qi,m均为是子凸壳QSi的顶点,1≤i≤5,k≥0,且为叙述简便可把Q1,0、S1分别另记为Q5,0、S5。若点D∈Si,DH是点D到基线Qi,0Qi,m的垂足;则称垂线DDH为点D到基线Qi,0Qi,m的距离(如图4.6所示)。

img61

图4.6 子分布域Si的基线与基线距离示意图

显然,若点D∈Si,能使点D到基线Qi,0Qi,m的距离DDH=max{XDX∣X∈Si},则点D(注:若有多个最大距离点,则只取离当前次新顶点Qi,k最近、最远的那两个最大距离点,且两者均)必为子凸壳QSi的顶点。

据此,可构造出效率更高的基于工作站机群的四群四域四向基线倾角与距离最大化圈绕并行凸壳新算法。其主要算法思想,可简要概述如下(如图4.4~4.6所示):

第0步:并行初始化处理。

1.“寻找二维点集S的分布域(仍记为S)的X轴、Y轴坐标值最大、最小的4个最外点”的4群并行处理:

(1)设定(注:可由用户自行决定并输入)初始分布域S={Pk(xk,yk)│1≤k≤m≥3}中各点的X轴坐标取值的最大、最小可能值分别为Xmax、Xmin,Y轴坐标取值的最大、最小可能值分别为Ymax、Ymin

(2)分别标记构成所论机群COW的4个子机群为COWi(i=1,2,3,4);标记子机群COWi下属各处理机的总数为ni;标记子机群COWi下属各处理机为Pij(1≤j≤ni)。

(3)并行地使子机群COWi下属各处理机Pi,j(i=1,2,3,4,1≤j≤ni),各用初始分布域S的X轴坐标可能值初始值域[Xmax,Xmin]的初始带宽WS(=(Xmax−Xmin)/(n1+n2+n3+n4)),对初始分布域S作带状划分出子分布域Si,j,并各自保存所获得的初始子分布域Si,j内各点;然后各对初始子分布域Si,j

①如果初始子分布域Si,j非空,则使其处理机Pi,j在自己初始子分布域Si,j内,并行找各自的X轴、Y轴坐标值最大、最小的4个最外点(xi,j,max=max{x│(x,y)∈Si,j},y 右,ij)、(x ijmin=min{x│(x,y)∈Si,j},y 左,ij)、(x 高,ij,y ijmax=max{y│(x,y)∈Si,j})、((x 低,ij,,y ijmin=min{y│(x,y)∈Si,j});

②从各处理机Pi,j所得的各初始子分布域Si,j(1≤j≤ni)的全部最右点集Right={(xi,j,max,y 右,i,j)│1≤j≤ni }、全部最左点集Left={(x i,j,min,y 左,i,j)│1≤j≤ni }、全部最高点集High={(x 高,i,j,y i,j,max)│1≤j≤ni }、全部最低点集Low={((x 低,i,j,y i,j,min)│1≤j≤ni )中,并行找出各初始子分布域Si的4个最外点:最右点(xi,max=max{x│(x,y)∈Right},y 右,i)、最左点(x i,min= min{x│(x,y)∈Left},y 左i)、最高点(x 高,i,y i,max=max{y│(x,y)∈High}、最低点(x 低,i,y i,min=min{y│(x,y)∈Low};

③从各子机群COWi(1≤i≤4)的全部最外点集{(xi,max,y 右,i)∣1≤i≤4 }、{(x i,min,y 左i)│1≤i≤4 }、{(x 高,i,y i,max)∣1≤i≤4 }、{(x 低,i,y i,min)│1≤i≤4 }中,分别找出初始子分布域S的4个(注意:它可能退化为3个)最外点;作为并标记为二维点集S的凸壳Q的初始顶点Q1,0(x min,1,y 0,min,1)、Q2,0(x0,min,2,y min,2)、Q1,0(x max,3,y 0,max,3)、Q1,0(x0,max,4,y max,4);其中,初始顶点Q1,0(x min,1,y 0,min,1)也可另记为Q5,0(x min,5,y 0,min,5),以便叙述简洁。

(4)各子机群COWi(1≤i≤4)并行地从分布域S中删除其最外点四边形Q1,0Q2,0Q3,0Q4,0的所有点(注:它除4个顶点外,其余各点均为凸壳Q的内点),所剩分布域仍记为S。

2.“构造分布域S的4个子分布域S1、S2、S3、S4(注意:它可能退化为3个子分布域S1、S2、S3)”的4群并行处理:

(1)各子机群COWi(1≤i≤4)并行地对初始分布域S,按照实际值初始值域[xmax,3,xmin,1]的实际带宽WS=(xmax,3−xmin,1)/(n1+n2+n3+n4),带状划分出子分布域Si,j

(2)并行地分别使子机群COWi(1≤i≤4),以由初始顶点Qi,0、Qi+i0构成的各自初始分布域Si的基线Qi,0Qi+i0为分界判据,把“点P(x,y)∈S,且与最外点四边形Q1,0Q2,0Q3,0Q4,0位于基线Qi,0Qi+i0不同侧”的所有点,保存为后续并行处理的二维点集S分布域的子分布域Si(注意:S1=S5),并自然而然地删除位于外点四边形Q1,0Q2,0Q3,0Q4,0中的所有内点。

第1步:“子机群COW i(1≤i≤4)分别在子分布域Si中生成子凸壳Qi各顶点”的并行化处理。

第1-1步:子机群COWi在子分布域Si中,进行基线(倾角逆时针方向;下同,略)最大化与基线距离最大化的圈绕寻找子凸壳Qi各倾角最大顶点与基线距离最大顶点的并行处理。

第1-1-1步:“子机群COWi基线倾角最大化圈绕寻找子凸壳Qi下一新顶点”的并行处理:

第1-1-1-1步:初始子分布域Si仍标记为当前子分布域Si;连接初始顶点Qi,0、Qi+1,0构成当前基线Qi,0Qi+1,0;置当前基线倾角最大新顶点的序号计数器r初值为0;置当前基线距离最大新顶点的序号计数器d初值为0。

第1-1-1-2步:并行地使子机群COWi下属各处理机Pi,j(1≤j≤ni),用带宽Wi=(max{x│(x,y)∈Si}−min{x│(x,y)∈Si})/ ni,把当前子分布域Si带状划分为ni个子分布域Si,j(1≤j≤n1)。

第1-1-1-3步:并行地使子机群COWi下属各处理机Pij各在自己的子分布域Sij(1≤j≤n1)的全部点中,均以Qi,r为子凸壳Qi的次新顶点,求出其对基线Qi,rQi+1,0的基线倾角最大点Ri,j,0(注:若有多个最大倾角点,则只取距当前次新倾角顶点最远处的那个最大倾角点,即离当前最大倾角顶点Qi,r最远的那个最大倾角点),并同时求出对基线Qi,rQi+1,0的基线距离最大点Di,j,0(注:若有多个最大距离点,则只取离当前次新顶点Qi,k最近、最远的那两个最大距离点,且两者均);在所得各组基线倾角最大点集{Di,j,0│1≤j≤n1)中,并行找出当前子分布域Si的基线倾角最大点R,并标记为子凸壳Qi的最新顶点Qi,r+1,置序号计数器r为r+1;并行找出当前子分布域Si的基线距离最大点,若只有一个当前基线距离最大点D、且不同于当前基线倾角最大点R,则标记D为子凸壳Qi的另一最新顶点Qi,d+1,置序号计数器d为d+1。

第1-1-2步:“删除由子凸壳Qi的初始顶点Qi,0、Qi+1,0,当前基线倾角最大次新顶点Qi,r−1、基线倾角最大最新顶点Qi,r,与当前基线距离最大新顶点Qi,D1、Qi,D2(注:Qi,D1、Qi,D2分别为最近端、最远端当前最大距离点)所构成的多边形Qi,0Qi,r Qi,D1 Qi,D2Qi+1,0的所有点”的子分布域Si极小化并行处理:

第1-1-2-1步:并行地使子机群COWi下属各处理机Pij各自生成自己的多边形Qi,0Qi,r Qi,D1Qi,D2Qi+1,0,并记为Δi。

第1-1-2-2步:并行地使子机群COWi下属各处理机Pi,j(1≤j≤ni),用带宽Wi=(max{x│(x,y)∈Δi}−min{x│(x,y)∈Δi})/ ni,把当前Δi带状划分为ni个子分布域Δij(1≤j≤n1)。

第1-1-2-3步:并行地使子机群COWi下属各处理机Pi,j(1≤j≤n1),各自删除在自己的子区域Δi,j(1≤j≤n1)中的全部点。

第1-1-2-4步:把删除Δi中全部点后的原子分布域Si,仍标记为当前子分布域Si;若当前子分布域Si非空(即还有未找出的凸壳顶点),则把子凸壳Qi的初始顶点Qi+1,0、最新顶点Qi,r记为新的基线Qi,rQi+1,0,回到第1-1-1-2步,否则转而执行第1-1-3步。

第1-1-3步:子凸壳Qi的全部顶点标记处理:顺次标记已求得的子凸壳Qi全部顶点。

第3步:形成凸壳。

结束步:顺序把各子分布域S1、S2、S3、S4中所得各顶点依次两两连接而得到的凸多边形Q,必定是所求二维有限点集S的凸壳Q。

不难看出,与四群四域四向基线倾角最大化圈绕并行凸壳算法相比,一方面因本方法还可并行地求得基线距离最大点,故各机群不仅可更快、更多地找出凸壳顶点;而另一方面因本方法还能时间更早、面积更大地删除多边形中内点,故可更多、更快地缩小凸壳顶点的当前分布域,从而大大减少本新算法的计算时间。同时,它一样易于推广到基于机群的m群、n域、p向(m>2,n>2,p>2)的并行凸壳新算法研究,以进一步改进和提高其算法效率。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈