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

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

时间:2024-10-17 百科知识 版权反馈
【摘要】:2007年,笔者依据同构化凸壳构造基本定理,把本书第3章第3.2节提出的基线倾角最大化圈绕串行凸壳算法思想加以改进,再与本章第4.2节提出的凸壳并行化算法思想相结合,就催生出四群四域四向基线倾角最大化圈绕并行凸壳新算法。据此,可构造出效率更高的基于工作站机群的四群四域四向基线倾角最大化圈绕并行凸壳新算法。

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

2007年,笔者依据同构化凸壳构造基本定理,把本书第3章第3.2节提出的基线倾角最大化圈绕串行凸壳算法思想加以改进,再与本章第4.2节提出的凸壳并行化算法思想相结合,就催生出四群四域四向基线倾角最大化圈绕并行凸壳新算法。

定义4.6 二维点集S={Pi(xi,yi)│1≤i≤m≥3}中,其X轴、Y轴坐标值最大、最小的4个最外点(注:其退化情形,仅有3个最外点;不失一般性,可只考虑非退化最外点情形),均是S的凸壳Q的最左、最低、最右、最高顶点,沿顺时针方向顺次记为Q1,0(x1=min{xi│1≤i≤m≥3},y1),Q2,0(x2,y2=min {yi│1≤i≤m≥3}),Q3,0(x3=max{xi│1≤i≤m≥3},y3),Q4,0(x4,y4=max{yi│1≤i≤m≥3}),合称凸壳Q的初始顶点。这四个最外点Q1,0、Q2,0、Q3,0、Q4,0所决定的四边形,称为最外点四边形(注:除其4个顶点外,其内各点均为凸壳Q的内点)。除去最外点四边形中各内点后,最外点四边形把二维点集S分布域分成的四个小区域,顺次记为二维点集S的子分布域S1、S2、S3、S4(如图4.4所示)。

img59

图4.4 凸壳的初始顶点、子分布域示意图

定义4.7 记子凸壳QSi是定义4.6所论子分布域Si的凸壳,Qi,0、Qi+1,0均为子凸壳QSi的顶点,点Qi,k∈Si,1≤i≤5,k≥0,且为叙述简便,可把Q1,0、S1分别另记为Q5,0、S5。若点R∈Si,则称线段Qi,0Qi,k是子凸壳QSi的一条基线,称夹角∠Qi,0Qi,kR为点R对基线Qi,0Qi,k的基线倾角(如图4.5所示)。

显然,若点R∈Si,能使基线倾角∠Qi,0Qi,kR=max{∠Qi,0 Qi,kX∣X∈Si},则点R(注:若有多个最大倾角点,则只取离当前最大倾角顶点Qi,r最远的那个最大倾角点)必为子凸壳QSi的一个顶点。

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

img60

图4.5 子分布域Si的基线与基线倾角示意图

第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 右,i,j)、(x i,j,min=min{x│(x,y)∈Si,j},y 左,i,j)、(x 高,i,j,y i,j,max=max{y│(x,y)∈Si,j})、((x 低,i,j,,y i,j,min=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;连接初始顶点Q1,0、Q2,0构成当前基线Q1,0Q2,0;置当前新顶点的序号计数器r初值为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的次新顶点,求出其基线倾角最大化圈绕的基线倾角最大点Ri,j,0(注:若有多个最大倾角点,则只取最远处的那个最大倾角点,即离当前最大倾角顶点Qi,r最远的那个最大倾角点);在所得各组基线倾角最大点集{Ri,j,0│1≤j≤n1)中,找出当前子分布域Si的基线倾角最大点R,并标记为子凸壳Qi的最新顶点Qi,r+1;置序号计数器r为r+1。

第1-1-2步:“删除由子凸壳Qi的初始顶点Qi,0,当前次新顶点Qi,r−1、最新顶点Qi,r所构成三角形Qi,0Qi,r−1Qi,r的所有点”的子分布域Si极小化并行处理:

第1-1-2-1步:并行地使子机群COWi下属各处理机Pij各自生成“子凸壳Qi的初始顶点Qi,0,当前次新顶点Qi,r−1、最新顶点Qi,r”所构成的三角形Qi,0Qi,r−1Qi,r,并记为Δ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个子分布域Δi,j(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,0、最新顶点Qi,r记为新的基线Qi,0Qi,r,回到第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)的并行凸壳新算法研究,而且可进一步改进和提高其算法效率。

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

我要反馈