一种基于聚类交互的图形分割方法

文档序号:24623098发布日期:2021-04-09 20:29阅读:127来源:国知局
一种基于聚类交互的图形分割方法

本发明涉及计算机通信技术领域,更具体的,涉及一种基于聚类交互的图形分割方法。



背景技术:

对图进行子图划分,是图形学中的基础问题。进行子图划分后,可以把大规模的问题,分解为更小规模的问题,从而得到解决。在路径规划、机器人自动导航、智能交通、疾病控制、传播影响分析等领域子图分割都有广泛的应用。由于现在某些信息系统内的信息量巨大,里面有巨大的图数据结构需要处理,图的节点数可是上10亿,比如社交网络,大型的交通信息实时系统等。把大图进行划分到合适单台设备处理的大小,是这类应用正常运行中每日都需要处理的工作。特别是某些基于这些海量数据的实时应用系统,更要求在大规模图系统中实时的完成一些关键性的计算任务。把大图划分为子图,并在划分出来的子图内部的信息交互呈现高内聚,而子图之间的信息交互呈现低耦合,在理论上证明是np-complete问题[1]m.r.gareyandd.s.johnson,computersandintractability.aguidetothetheoryofnp-completeness.w.h.freemanandcompany,1979.[2]a.konstantinandh.balancedgraphpartitioning.inspaa’04,pages120–124,2004.所以这类问题现实的解决方法,都是基于某些问题的条件假设或使用某种启发算法,所有这些算法并不能保任何情况下划分问题的最优解。也就是说目前,图划分问题并没有公认统一的解决方法。

metis[3]g.karypisandv.kumar.afastandhighqualitymultilevelschemeforpartitioningirregulargraphs.technicalreporttr95-035,departmentofcomputerscience,universityofminnesota,1995.处理框架是很有代表性的算法工具集合,而且metis在大多数情况下,对图的划分可以得到较好的结果集合,但是metis框架需要对全图进行处理,并且对于图的可扩展性方面,支持很差,如果图中的某些部分信息更新,需要对全图进行重新计算。punch[4]delling,daniel&goldberg,andrew&razenshteyn,ilya&werneck,renato.(2011).graphpartitioningwithnaturalcuts.proceedings-25thieeeinternationalparallelanddistributedprocessingsymposium,ipdps2011.1135-1146.10.1109/ipdps.2011.108.等算法,在metis基础上融合了更多的基于自然分割(naturalcut)的计算。相比metis有所提升。

fennel[5]tsourakakis,c.e.,gkantsidis,c.,radunovic,b.,andvojnovic,m.fennel:streaminggraphpartitioningformassivescalegraphs.inwsdm(2014),pp.333–342.andspinner[6]martellac,logothetisd,loukasa,etal.spinner:scalablegraphpartitioninginthecloud[c]//ieeeinternationalconferenceondataengineering.ieee,2017:1083-1094.以及谷歌的线性嵌入[7]kevinaydin,mohammadhosseinbateni,vahabmirrokni.distributedbalancedpartitioningvialinearembedding.2016,:387-396.分割方法,这些方法使用了标签扩展的技术,并利用云计算的环境,在数据中心集群中,使用大数据的计算框架实现运算。上述算法虽然结果更佳优秀,但是由于他们是基于云环境的,基于大数据框架的。这些算法的实时性都无法保证,对于某些需要实时性的应用并不适合,划分规模可能需要动态调整,导致原来的计算需要重新做,处理效率低。



技术实现要素:

本发明为克服现有的图形分割方法存在实时性缺乏保证且处理效率低的技术缺陷,提供一种基于聚类交互的图形分割方法。

为解决上述技术问题,本发明的技术方案如下:

一种基于聚类交互的图形分割方法,包括以下步骤:

s1:输入多个处理节点,由处理节点组合形成抽象层次结构,从而构建图形分割系统;

s2:在图形分割系统中,采用节点划分算法对原图进行预处理,得到多个初始划分单元;

s3:获取初始划分单元的边数据和节点数据,根据边数据和节点数据采用初始聚类算法对初始划分单元进行聚类处理,得到多个划分单元,即cell;

s4:判断图形分割系统中所有处理节点是否已分配,若是,则执行步骤s6;否则,执行步骤s5;

s5:调用动态调整算法,调整各个cell的大小和边界,保证所有处理节点均进入某个cell中;

s6:对得到的cell进行聚类处理,得到cell的具象表示和抽象表示,完成原图的分割。

上述方案中,先对原图进行初始分割,增加其调整的灵活性,在对划分单元进行调整时不需要大量的重复计算,执行效率高;同时,采用动态调整算法对数据进行实时更新,可以实时地改变分割策略,实现原图的分割,可以作为动态性能要求高的系统的分割方法。

上述方案中,本方案基于一种基于聚类交互的图形分割方法还提出一种基于聚类交互的图形分割系统,包括处理节点生成模块、节点划分模块、数据划分模块、初始聚类模块、分配情况判定模块、动态调整模块、聚类处理模块和图形分割模块;其中:

所述处理节点生成模块用于输入处理节点,并通过处理节点组合形成抽象层次结构,构建图形分割系统;

所述节点划分模块用于图形分割系统中,对原图进行预处理,得到多个初始划分单元;

数据划分模块用于获取初始划分单元的边数据和节点数据;

所述初始聚类模块根据边数据和节点数据对初始划分单元进行聚类处理,得到多个划分单元,即cell;

所述分配情况判定模块用于判断图形分割系统中所有处理节点是否已分配:

若是,将数据传输至所述聚类处理模块中;

否则,则由所述动态调整模块调用动态调整算法,调整各个cell的大小和边界,保证所有处理节点均进入某个cell中,并将得到的结果传输至所述聚类处理模块中;

所述聚类处理模块对得到的cell进行聚类处理,得到cell的具象表示和抽象表示;

所述图形分割模块根据cell的具象表示和抽象表示,完成原图的分割。

上述方案中,通过所述的一种基于聚类交互的图形分割系统可以实现本方案所述的聚类交互的图形分割方法。

与现有技术相比,本发明技术方案的有益效果是:

本发明提供的一种基于聚类交互的图形分割方法,先对原图进行初始分割,增加其调整的灵活性,在对划分单元进行调整时不需要大量的重复计算,执行效率高;同时,采用动态调整算法对数据进行实时更新,可以实时地改变分割策略,实现原图的分割,可以作为动态性能要求高的系统的分割方法。

附图说明

图1为本发明所述方法流程示意图;

图2为聚类分割图的抽象层次示意图;

图3为cell和cell边缘节点示意图;

图4为某cell的深度优先搜索树;

图5为深度优先最先满足调制策略;

图6为深度优先最先满足调整策略执行结果;

图7为最优代价调制策略;

图8为最优代价调制策略执行结果;

图9为expend/withdraw操作说明一;

图10为expend/withdraw操作说明二;

图11为merge/split操作说明一;

图12为merge/split操作说明二;

图13为cell划分的层次数据结构图;

图14为在l1层上重新进行划分示意图;

图15为在l1层上重新进行划分结果示意图;

图16为新的l2分类结果示意图;

图17为一实施例中cell的初始核心确定示意图;

图18为一实施例中各cell自动扩充示意图;

图19为一实施例中分类结果示意图;

图20为一实施例中动态调整初始状态示意图;

图21为一实施例中cell加入g、h、i、j示意图;

图22为一实施例中cell边界a、b移动到cell2示意图;

图23为一实施例中边界更新后的cell1和cell2;

图24为一实施例中实时路径规划图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

如图1所示,本方案提供一种基于聚类交互的图形分割方法,属于计算机与通信领域;可应用于机器人任务规划、机器人自动配送、无人机导航、实时交通信息系统、车联网、疾病控制以及传播分析等领域,具体为,包括以下步骤:

s1:输入多个处理节点,由处理节点组合形成抽象层次结构,从而构建图形分割系统;

s2:在图形分割系统中,采用节点划分算法对原图进行预处理,得到多个初始划分单元;

s3:获取初始划分单元的边数据和节点数据,根据边数据和节点数据采用初始聚类算法对初始划分单元进行聚类处理,得到多个划分单元,即cell;

s4:判断图形分割系统中所有处理节点是否已分配,若是,则执行步骤s6;否则,执行步骤s5;

s5:调用动态调整算法,调整各个cell的大小和边界,保证所有处理节点均进入某个cell中;

s6:对得到的cell进行聚类处理,得到cell的具象表示和抽象表示,完成原图的分割。

在具体实施过程中,先对原图进行初始分割,增加其调整的灵活性,在对划分单元进行调整时不需要大量的重复计算,执行效率高;同时,采用动态调整算法对数据进行实时更新,可以实时地改变分割策略,实现原图的分割,可以作为动态性能要求高的系统的分割方法。

在具体实施过程中,本方案基于一种基于聚类交互的图形分割方法还提出一种基于聚类交互的图形分割系统,包括处理节点生成模块、节点划分模块、数据划分模块、初始聚类模块、分配情况判定模块、动态调整模块、聚类处理模块和图形分割模块;其中:

所述处理节点生成模块用于输入处理节点,并通过处理节点组合形成抽象层次结构,构建图形分割系统;

所述节点划分模块用于图形分割系统中,对原图进行预处理,得到多个初始划分单元;

数据划分模块用于获取初始划分单元的边数据和节点数据;

所述初始聚类模块根据边数据和节点数据对初始划分单元进行聚类处理,得到多个划分单元,即cell;

所述分配情况判定模块用于判断图形分割系统中所有处理节点是否已分配:

若是,将数据传输至所述聚类处理模块中;

否则,则由所述动态调整模块调用动态调整算法,调整各个cell的大小和边界,保证所有处理节点均进入某个cell中,并将得到的结果传输至所述聚类处理模块中;

所述聚类处理模块对得到的cell进行聚类处理,得到cell的具象表示和抽象表示;

所述图形分割模块根据cell的具象表示和抽象表示,完成原图的分割。

在具体实施过程中,通过所述的一种基于聚类交互的图形分割系统可以实现本方案所述的聚类交互的图形分割方法。

实施例2

更具体的,本方案将进一步阐述本发明所述的方法及系统,具体的:本发明通过生成有限(k)个处理节点,处理节点ni,i<k能力有限,只能处理一定大小的图。现要处理的大图都是联通的,该图所有顶点的集合为v,边的集合为e,边(p,q)∈e,其中p,q∈v,边和顶点都有权值。目前的问题在于,要将联通的原图,分成k个子图,使得每个子图都能在k个处理节点中放下,且分割尽量均匀,并且在后期数据处理过程中,ni和nj节点之间的通信开销很少i,j<k。由处理节点组合形成抽象层次结构,不同的层次抽象的本层内的信息交互可由本层抽象服务器处理,构建图形分割系统。

更具体的,在所述步骤s2中,所述节点划分算法包括初始划分算法和更新算法,具体为:

在图形分割系统中,最初没有任何分类信息的时候或者处理节点信息更新幅度大时,(与上次划分图对应的划分单元数据更改大,信息差别很大,如:节点关机一段时间,信息重新采集后发现与原节点的数据差别很大,新增了大量节点)通过所述初始划分算法,对抽象层次结构进行重建;

当处理节点保存的信息持续更新或更新幅度较小时,调用所述更新算法;更新算法根据初始划分单元信息的交互对重建后的抽象层次结构进行微调。

在具体实施过程中,所述交互为cell的自主操作,可以保证系统在各层及上,继续满足划分的要求。cell的自主操作如下:

expend:扩大cell,加入新的节点。在执行expend的时候,需要对扩大cell进行效用评估,以此计算边界等改变后的权值变化。

merge:和并cell,当两个cell都很小时,通过合并,可以增大cell。

split:拆分cell,当一个cell很大时,可以拆分层2个cell。

withdraw:cell边界的向内收缩,原来的边界节点进入邻居cell。

withdraw+expend形成边界的连续移动。

更具体的,在所述步骤s3中,所述初始聚类算法对初始划分单元进行聚类处理的过程具体为:

s31:设k为聚类核心,每个聚类的最大权为m,最小聚类核心大小c;若k为0,则表示自然聚类;

s32:寻找可以实现聚类的边数据lij和节点数据vi,进行处理节点权值的计算,具体为:

wi=vi*a+b*∑(i,j)∈elij(1)

其中,a+b=1,a,b≥0;wi表示处理节点的权值,i、j为处理节点编号;选择正确的lij和vi是聚类是否有效的关键,不同的参数聚类效果不同。

s33:将计算得到的权值由大至小进行排序;

s34:选取最大权值的处理节点f作为第一类核心,从这个处理节点出发,广度优先扩充到c个处理节点大小,形成一个划分单元,即cell;

s35:从剩下处理节点中选择权值最大,且与前面已经形成cell的处理节点不相邻的处理节点作为第二类的核心,再扩充到c个处理节点大小,直至找到k个聚类核心;

s36:不相邻的高权值节点形成cell核心,向外扩张;所有cell同步扩大,直至碰到其他cell边界或该cell已满(总数权值与m*β相比较大致判断满,β是系统参数,0<β<1)。

在cell核心生长过程中,该步骤可以并行执行,发消息,收应答这种方式确认进度,因此,本方法可以并行分布式处理。

在具体实施过程中,所述cell可以看成一个节点,继续进行聚类,如图2所示,l1cell层的节点,就代表是l0cell层的一个单元。以此向上层类推,直到完成系统需要的分割。cell有cell的权重和cell的边界两个重要属性,cell的权重计算可以有cell内节点的权重之和来表示,如式(3)所示。cell的边界如图3所示,cell的边缘节点集合,构成cell的边界,cell的边缘节点只属于一个cell。

在具体实施过程中,图划分是在最高层次上进行的。由于构建层次是由底向上进行的,整个层次模型保留了最初的聚类结构。最初的聚类结构,在本方法中成为l0cell,高层的操作是基于次层的cell的,比如l2cell要基于l1cell层来形成。

在具体实施过程中,初始聚类算法通过选择正确的边数据lij和节点数据vi,以及公式(1)中的a,b参数,来保证实现了算法的高内聚和低耦合。在不同层次的图中可以选择不同的参数和定义不同的边数据和节点数据,以实现对不同层的节点的更好的聚类结果。其中,图的划分的差异容忍度margin要大于l0cell层中最大cell的权重,否则不适用本算法。这时可以使用其他算法比如基于邻接矩阵的特征向量分割。

在具体实施过程中,进入初始聚类算法的图的数据量也是有限的,并保证聚类的输入图是联通的。太大的图的处理可以分几块,每块分别做初始聚类,分块边缘的节点连接信息是保持的,所以经过初始聚类后,仍然可以把不同系统处理的分块数据,拼接起来或逻辑上连接起来。分块一般是有逻辑意义的,比如道路交通图的城市划分。本方法只讨论一个初始聚类数据量输入到系统后要做的处理。多个分块数据的合并,可以分别做聚类,最后再通过分块边界点的逻辑连接形成一个统一的系统。比如:各省可以分别在不同的系统中做初始聚类,最后再通过不同系统的的网络,在逻辑上合并成一个全国交通网络,全国的交通网络如果有划分的需求可以再在现在当前的系统中做分类。

更具体的,在所述步骤s3中,当k=0时,则判断的标准为核心节点q的聚类权值足够大,具体表示为:

wq>wf*α(2)

其中,α表示系统参数,0<α<1。

更具体的,在所述步骤s5中,所述动态调整算法采用分布式算法,分布式算法的每个步骤均设置了超时;若图形分割系统正常运行,则不会引发超时;若超时,返回步骤s3中,重新划分cell。

更具体的,在所述步骤s5中,所述动态调整算法具体为:

需要调整的cell,即源cell,发送调整需求给邻居cell;

邻居cell判断自身的改变代价以及改变后的收益后,将判断结果反馈回源cell;此步骤是可以递归的,若邻居cell可以决定则执行进行反馈,否则,需要继续扩散需求,由其他cell进行判断;其中,扩散的速度和深度由源cell控制;

源cell收到反馈后,决定在与那些cell合作完成更新,或进行下一步计算,并把对应的调整命令发送至对应的邻居cell。

更具体的,在所述步骤s5中,所述动态调整算法中设置有控制中心,用于任意指定一个cell的逻辑处理单元,是一个虚拟的控制节点,直接连通所有的cell;首先,对消息类型和状态进行定义,具体为:

msg_dymodbegin:由控制中心发送给其他的cell,表示现在进入动态调整阶段;其他处理节点收到这个消息,就进入调整;消息包括所有有调整需求的cell信息;

msg_dymodbeginack:msg_dymodbegin应答消息,cella发给cellbmsg_dymodbegin消息,则cellb收到消息应该发给cellamsg_dymodbeginack应答,如果没有发送,说明异常;

msg_dymodreq:由有调整需求的cell发送,消息包括需要其他cell完成的动作和有效距离;

msg_dymodack:反馈当前cell的状况,发送msg_dymodreq给来源邻居cell;

msg_dymodnbreq:邻居询问消息;cell在超时tl前没有收到邻居发送发送msg_dymodack;发该消息询问;

msg_dymoddecision:由有调整需求的cell发送其需求给邻居,要求邻居在d范围内给出应答;在收到了所有处理节点的反馈后,有调整需求的cell经过策略计算,决定如何调整的结果;发送本消息给需要有调整动作的cell;

msg_dymoddecisionok:需要执行动作的cell,如果执行成功,返回给请求源cell的信息;

msg_dymoddecisionfail:需要执行动作的cell,如果执行失败,返回给请求源cell的信息;

msg_dymodend:由控制中心发送给其他的cell,表示现在退出动态调整阶段;

dymodready:相关节点进入动态调整;此时,cell不可接受动态调整;

normal:正常状态;此时,cell可以接收调整;

更具体的,源cell表示有调整需求的cell;同时,设cell的网络直径为d;tr0表示邻居cell的超时;td0表示邻居cell执行的超时;

所述动态调整算法具体包括以下步骤:

s501:初始状态下,所有处理节点都在normal状态下,控制中心收集动态调整需求,如果控制中心接收到调整需求,控制中心将在一个时间窗口tw内等待其他节点的需求;然后广播动态调整消息msg_dymodbegin;

s502:动态调整开始阶段,由全局控制中心记录当前有哪些cell需要动态调整,并广播msg_dymodbegin这一消息给控制中心的邻居cell,该消息的生存时间为d;

s503:某cell收到msg_dymodbegin这个消息,设置状态为dymodready,并返回应答消息msg_dymodbeginack给发来msg_dymodbegin消息的cell;然后这个cell要转发给其他的邻居cell(水平分割的方式,不会再发给这个消息来源的那个邻居),并让这个消息的生存时间-1,如果消息生存时间为0,不转发;如果某cell没有应答msg_dymodbeginack发送;则邻居cell认为该邻居cell此更新周期不存在;

s504:有调整需求的cella,在进入dymodready后,这个cell发送msg_dymodreq消息给他的邻居,msg_dymodreq消息包括这个cell需要他的邻居cell完成的事项,比如:请求邻居接收cella的8个节点,有效距离为4;并设置这个消息的生存时间为d;

s505:当某cell接收到msg_dymodreq后,从消息中可以判断这个消息的源cell,并根据有效距离判断该信息是否需要本cell处理;如果有效距离大于0,则需要处理,记录下该消息的来源邻居cell和有效距离,然后修改这个消息的有效距离为-1,并让消息生存周期-1;如果cell收到多个cell不同有效距离>0的msg_dymodreq消息,则仅记录最大有效距离的cell;

s506:当某cell接受到了所有msg_dymodbegin消息中的有调整需求的cell的msg_dymodreq消息后(某些msg_dymodreq消息可能不在有效距离内);等待一定时间tl后,如果没有收到邻居的msg_dymodack消息,则发msg_dymodnbreq消息给其邻居cell询问消息包含源cell信息,及其对于有效msg_dymodreq的距离;若msg_dymodnbreq在tr0时间内没有应答,认为邻居失效;邻居在收到msg_dymodnbreq后,反馈自己当前对应源cell的msg_dymodreq消息有效距离;

如果本cell的距离是邻居中最小的有效距离(没有应答的邻居,认为已经失效,不计算):

则该cell把本cell的可接受节点状况(判断自己节点的改变代价,以及改变后的收益)和接收请求的状况作为内容发送消息msg_dymodack给有效距离内msg_dymodreq消息的来源邻居cell(在步骤s505记录的);否则等待更小有效距离的邻居cell返回msg_dymodack给本cell;

s507:当某cell收到msg_dymodack时,检查是否需要转发;如果需要转发,在转发消息中附上自己cell的状况信息(判断自己节点的改变代价,以及改变后的收益),并发送给msg_dymodreq消息的来源邻居cell(在步骤s505记录的),以此确保源cell所有发出的消息的应答都可以收回;

s508:源cell的所有邻居cell都有msg_dymodack应答后,开始计算最优调整策略;决定好最优策略后;把调整决定发msg_dymoddecision给对应的cell;如果某邻居没有msg_dymodack应答,同步骤s506方式处理;

s509:cell收到msg_dymoddecision后,根据msg_dymoddecision执行操作;如果执行导致这个cell的一致性受损,则拒绝执行,并把当前cell的状态作为内容,发消息msg_dymoddecisionfail给源cell;如果执行成功,则发消息msg_dymoddecisionok给源cell;

s510:源cell如果收到msg_dymoddecisionfail,或有消息超时td;需要重新发起收集动态调整需求给控制中心,等待下一轮的资源调整;

s511:有调整需求的cell收到所有的需要执行cell的反馈结果后(msg_dymoddecisionok或msg_dymoddecisionfail),发消息通知全局控制中心;则完成本轮调整;

s512:本轮所有有调整需求的cell执行完后,全局控制中心广播msg_dymodend,退出动态调整;其他cell收到该消息,退出dymodready状态,返回正常状态normal,此时可以接收新的调整变化。

在具体实施过程中,动态调整算法是基于cell的调整,cell会与其他邻接的cell进行消息传递,以判断是否需要把边界扩展或内缩。这些操作可以让部分cell内的节点转移,形成新的图分割。通过动态调整,改善cell的内聚性和降低cell之间的耦合性,从而提高划分的质量。动态调整算法是在初始划分的基础上做的局部改善,只能是局部优化,如果初始划分出现重大误差,不能通过动态调整修正这种误差。出现此情况,需要更改初始聚类中的函数参数。

cell的动态性和自主性体现在,cell会根据接收到的消息,决定做什么动作,以保证cell的内聚性提高以及降低cell之间的耦合性。

由于每次动态调整算法更改的只是少量节点。所以动态调整算法会很快收敛。如果要更改节点数量多,应该退回初始聚类算法处理。

动态调整算法,以分布式算法形式出现。如果是集中式处理,下述算法仍可运行。对分布式算法,由于任何环节可能失效,所以各步骤设置了超时,如果系统正常运行,不会引发超时。系统效率可以保证。

在具体实施过程中,由于资源调整是少量的,所述动态调整算法的控制算法2不会无限执行。如果某cell的调整请求3次都未能处理。说明系统已经不可动态调整。报错,建议进入系统参数修改或动态调整算法,重新划分。所述动态调整算法的控制算法2执行过程执行概要具体包括:

a1:需要调整的节点发送调整需求给邻接边界节点。这个节点是源节点。

a2:邻接节点判断自己节点的改变代价,以及改变后的收益。反馈给源节点。此操作是可以递归的,如果本节点可以决定则直接返回,如果本节点不能决定,需要继续扩散需求,扩散的进度和深度由源节点控制。

a3:源节点收到反馈后,决定在与那些节点合作完成更新,或下一步计算的过程。并把调整命令发给对应的邻接节点。

由于输入条件,本算法可以保证收敛结束。

更具体的,所述tl的计算公式具体为:

tl=l*tr0;

所述td的计算公式具体为:

td=l*td0;

其中,l表示有效距离。

在具体实施过程中,所述步骤s508可以有多种策略,具体距离如下:

如图4所示,假设每个cell内的一个节点可以代表1个权重,权重状态每个cell0到-5都是正常状态;当前cell1节点权重新增了8,为了达到平衡需要把当前节点多出来的8个权重向周围节点扩散,图中还有其他节点的权重也不在正常范围内。但是当前cell只处理自己cell权重不平衡问题。图中调整的有效距离是4,下面图5-图8的有效距离也是4。

处理策略有多种,比如最先满足原则。如图5所示,当前节点将会沿黑色边扩散边上的数量的节点到周围节点。执行后结果如图6.

在具体实施过程中,也可以执行最优代价法调整,根据需要移动的cell内部节点的数量和路径,进行判断。可能形成如图7的调整策略。执行结果如图8。

更具体的,所述cell的自主操作,可以保证系统在各层及上,继续满足划分的要求。cell的自主操作如下:

expend:扩大cell,加入新的节点。在执行expend的时候,需要对扩大cell进行效用评估,以此计算边界等改变后的权值变化。

merge:和并cell,当两个cell都很小时,通过合并,可以增大cell。

split:拆分cell,当一个cell很大时,可以拆分层2个cell。

withdraw:cell边界的向内收缩,原来的边界节点进入邻居cell。

withdraw+expend形成边界的连续移动。

在具体实施过程中,如图9和图10所示,如果从图9变为图10,cella的节点a、b对连接的cellb的节点d、e进行扩张expend,cella的节b、c,对cellc的节点g扩张expend,即cella.expend({d,e,g})。形成图10的扩张结果。d、e、g进入cella,成为新的边界,b成为内部节点。cellb的h、i、j成为边界。cellc的f、l、k成为边界。同理反向操作,在图10中的cella.withdraw({d,e,g}),就变为图9。

在具体实施过程中,如图11和图12,如果cella和cellb从图11变为图12的状况,就是cella.merge(cellb)操作。反之,如果由于cella的节点太大,需要拆分成两个cell,就可以在图12的基础上,调用cellb=cella.split(),把cella拆分成新的cella和cellb。在拆分过程中,实际是在cell内部进行划分,例如,cella内部分别以节点x和节点y形成了几乎权重均等的划分,就可以依据此划分来进行split操作。

在具体实施过程中,所述动态调整算法的控制算法2在步骤s509中,执行决定的时候,就通过cell的自主操作完成。例如:图7的调整策略,在cella与cellb之间传递边界节点集合m的操作,可以这样实现,cella.withdraw(m),cellb.expend(m)。

更具体的,所述cell的具象表示具体表示cell之间的边界,即该层的内环网络。

其中,在所述步骤s6中,对得到的cell进行聚类处理后,还得到cell的抽象表示;所述cell的抽象表示具体表示当每个cell在需要继续向上抽象时,即相对k分类,cell的数量过多时,将每个cell视为一个节点;对于某个cell的邻居cell与这个cell之间的所有通路,汇聚成一条边;过程涉及到对于cell的抽象层级计算,具体为:将cell作为节点,形成下一层聚类的原始数据,计算公式为:

wcell=∑i∈cellwi(3)

其中,wcell表示cell的权重,表示ci和cj汇聚为节点后,这两个节点之间的边值,其是原来这两个cell中的所有边值之和。

在具体实施过程中,为了方便聚类查找和后继的基于cell的运算处理,我们把cell聚类生成的新数据分为两个部分:cell的具象表示和cell的抽象表示。cell的具象表示具体表示cell之间的边界,即该层的内环网络,如图13的粗线节点和连接,由cell中的边缘节点和他们之间的连接组成。通过内环网络可以实现cell间的数据通信。内环网络可以用来计算跨cell路由等操作。计算路由的时候,内环网络的节点不仅仅适用内环网络的信息,还会使用cell内的信息。更高层的内环网络,也是由其下层内环网络中的部分节点和连接组成。每层的内环网络部分中,属于cell中的节点和这些节点的连接,成为cell的具象表示。这边信息是需要在进行具体网络计算时候要使用的。

在具体实施过程中,从l0cell开始,每层都有具象表示+抽象表示,他们是图初始划分创建的层次结构数据。

在具体实施过程中,现有聚创建的层次结构中,找到适合的层次进行k的调整(根据每层节点的度的平均值,决定每层次的聚类大小),在该层上,使用初始聚类算法进行聚类。

给定k个分类,判断应该在哪层进行重新聚类的方法如下:

a.总数n/k=m,m是否需要聚类(计算各层平均度di,各层的平均节点大小wi,若其中θ是一个常数,范围由系统参数决定,则i就是要选择的层次)

b.根据新聚类的调整分类的容忍度判断,决定cell的大小,以此决定在哪个层次进行聚类。容忍度应要大于某层的最大的节点的大小。

在具体实施过程中,例如图2所示的系统,l2层的分割数量需要调整,经计算,需要在l1层重新划分。先将l1层的划分结果取消,如图14所示;使用更小的单元大小后,l1层划分如图15所示;在图15的基础上,进行l2层分类,最后形成图16的分类结果;由以上过程可以看出,l0在这次变化过程中,没有任何改变。

在具体实施过程中,一种基于聚类交互的图形分割方法及对应的系统,先对原图进行初始分割,增加其调整的灵活性,在对划分单元进行调整时不需要大量的重复计算,执行效率高;同时,采用动态调整算法对数据进行实时更新,可以实时地改变分割策略,实现原图的分割,可以作为动态性能要求高的系统的分割方法。

实施例3

更具体的,在实施例1和实施例2的基础上,将本发明所述方法及系统应用于具体实现场景,具体为:

1.初始划分

基于道路的人员通过率lij,计算出来的节点的权重,本质上等同于道路上的人员在节点聚集的情况。根据人员就近访问的特点。所以得到的指标具有聚类的特性。在计算节点权重时,只使用了道路属性lij

wi=∑(i,j)∈elij(5)

根据计算出来的权值,按照初始聚类算法的步骤,对节点排序,取c=7,自然聚类,α=0.51,执行后,初始核心形成如下图17中节点所示。不同的cell用不同的颜色表示,灰色表示没有分配的节点。

步骤s36执行后,自同步动扩充各cell如图18所示,注意各cell之间没有直接相连,中间的节点还没有分配。

经过动态调整算法进行边界动态调整后,得到的分类图,如图19所示。

2.动态调整

当某节点加入新的节点的时候,根据动态调整规则。进行图的变化步骤。

如图20,在初始状态有两个向相邻的单元,cell1和cell2。现cell1中加入新的节点g、h、i、j,如图21所示。由于cell的大小有限,加入4个节点后,cell1超过上限了,需要调整cell1的边界,经过计算决定a,b节点移除cell1,让他们加入cell2.如图22所示。边界移动后,cell1和cell2会形成新的边界。如图23所示。

3.划分图后动态运行实例

实时路径规划软件,计算最短路径。如图24所示,现在在cell1的a节点,希望找到到cell4中的b节点的当前最短路径。

查找过程分为以下步骤:

step1.a节点到cell1的内环网络,即到cell1的具象节点c、d、e的路径计算。

step2.cell1的具象节点,到cell4的具象节点,在内环网络上的最短路径,由于每个cell内部有网络,所以在每个cell内进行选路的时候,不一定选中的是内环网络路径,有可能是经过cell的内部路径更快。但是在内环网络上的节点,可以知道这些最短路径的信息。所以最后通过查询当前的路径计算表,可以得到从c、d、e三个节点分别到t、u、v、w四个节点的最短路径长度。

step3.在cell2中,查找从t、u、v、w四个边界节点到b的距离分别是多少。

step4.利用前面3步计算的结果,计算a节点分别经过c、d、e到达cell2的边界节点后,再到达b节点的最小组合路径长度。决定当前a选c、d、e哪条路径更好。假设a选了a-x-d的路径。

step5.得到当前路径规划的结果,a即出发,并在a运动过程中,系统持续更新相关的路径信息。

step6.当a到达x节点后,根据动态路径更新的情况,当前去往b节点的最短路径应该选择x-c这条路,则a可以临时更换路径,选择x-c的路径。

以上过程持续进行,直到a到达b。在a整个选路的过程中,都是根据当前最新路径信息进行规划的。而系统之所以可以做到实时更新,正是由于,对整个路径图做了子图划分。每个子图内部,可以实时更新信息,并且把子图内部更新的信息,通过内环网络,更新子图之间的路径选择信息。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1