一种全节点遍历路径优化方法

文档序号:6339086阅读:1180来源:国知局
专利名称:一种全节点遍历路径优化方法
技术领域
本发明属于路径规划领域,特别应用于对源和宿没有特殊规定的全节点遍历路径 规划,其模型可应用于SMT(表面贴装技术)自动检测路径规划等实际问题。
背景技术
路径规划作为一种抽象的数据模型,其原型可以是存在于任一领域的一个规划问 题,以自动检测为例,在工业自动化领域,很多自动检测过程都是针对一个平面中的多个检 测点检查,由于大多数设备都是串行工作,需要在检查完一个节点后再检查另一个,路径优 化的好就可以明显的节省时间,提高检查效率。以SMT领域,焊点的自动光学检测(AOI)为例,绝大多数检测设备的工作方式是, 移动X、Y轴使被检测的电路板(PCB)与取像的工业相机产生相对运动,移动相机到需要检 查的位置上方进行曝光取像,获得图像后再通过检测算法进行不良检查。这样,整个检查时 间就由控制轴移动时间、相机曝光时间、检测算法时间等3个不同的时间段的总和决定。由 于其中的检测过程是纯粹的软件过程,可以与控制轴的运动过程和相机的报告过程并行处 理,也就是在轴运动和相机曝光的同时,计算机运行检测算法进行不良检查,而相机曝光时 间一般极小(毫秒级),整个检查过程的时间花费主要归结为控制轴移动的时间。因此,为 了提高检测速度,缩短轴移动距离、提高电机速度就成了最直接有效的方法,任何电机的速 度都有其极限,而且高速电机的功率很高,启动、停止时对设备机体的冲击很大,价格也非 常昂贵,所以从设备综合性能的角度来讲,更好的优化检测过程的路径,缩小轴移动的距离 才是缩小检测时间最高效的手段。根据上面介绍的自动检查方式,可以不失一般性的假设被检测的电路板不运动, 只有相机在2维平面上进行运动。将相机停下曝光、检测的过程抽象为一个节点,相机移动 路径抽象为连接节点的边,边上的值为相机移动的距离。这样,寻找最优路径的问题就转化 为在检测节点网络中搜寻最优的遍历路径。由于实际检测中,相机可以在任意两个节点间 移动,所以这个网络为一个全向全连通图。又由于装载、卸载电路板的过程存在,使得相机 可以并行的移动到出发节点或从最终节点回到原点,所以遍历过程的源节点和宿节点可以 是任意的。理论上,寻找一个图的最优遍历路径是一个NP完全问题,也就是不可能在有限时 间得到真正的最优解,因此大多数检测设备都是以横向或者纵向优先的方法取得S型路 径,或者从外到内获得螺旋形的路径。这几种常用的方法在检测点足够密集的情况下与最 优遍历路径比较相似,但是当节点网络不是很密集甚至是稀疏的情况下,会带来很大的浪 费,如图2所示的情况。而在实际的检测过程中,由于被检测的电路板形状、大小经常会变 化,电路板上元件的布局也非常不固定,所以固定的S型路径和螺旋型路径基本上不可能 得到最优路径的近似。

发明内容
为了解决上述问题,提高自动检测效率,本发明提供了一种高效、可靠的全节点遍 历路径寻优方法。所述方法具体包括—种全节点遍历路径优化方法,其特征在于,所述方法包括以下步骤步骤A、根据需要解决的问题构建节点网络,在可能出现分支的地方建立节点,以 从一个节点到另一个节点的花费作为该有向边的值;步骤B、构建节点网络的最小生成树;步骤C、根据最小生成树,以新增边花费最小为原则,对所有有分支的节点,逐一去 除分支并建立端点间的连接;步骤D、不断重复步骤C直到网络的最小生成树每个节点都没有分支,转化为节点 单向队列,从而生成优化后的遍历路径。优选的,所述步骤B中的节点网络一般为双向或者全向网络,所述的双向网络是 指两个连通的节点间的边是有向的,即对于连通的A、B节点,无论从A节点到B节点还是从 B节点到A节点都是可行的(如果A、B节点间是单向连通的,则只能从A到B,不能从B到 A)。所述全向网络是指网络中任一个节点和网络中的所有其他节点间都是双向连通的。两 个节点间的边代表从一个节点到另一个节点间的花费。其中所述花费是节点间的距离,在其他应用中也可以是时间、金钱等其他代价,所 以在本发明中对于花费并不仅仅限定于节点之间的距离。优选的,所述步骤B中构建最小生成树的具体步骤为优选但不限于使用Prim算 法构建网络的最小生成树。优选的,在所述步骤A中,根据需要解决的问题构建节点网络,其方法为根据具体问题,在可能出现分支的地方建立节点;以从一个节点到另一个节点的花费作为该有向边的值;优选的,所述步骤C包括以下具体步骤(1)根据构建的最小生成树建立节点间的连通矩阵;优选的,矩阵横纵坐标均为 节点索引,矩阵值代表横纵坐标节点对间是否连通,连通的值为1,不连通的值为0 ;(2)根据构建的最小生成树建立有分支的节点队列优选的,节点队列中的每个 节点最少包含节点序号和分支个数两个信息;(3)根据构建的最小生成树建立端点节点的队列;优选的,端点队列中的每个节 点最少包含节点序号信息;(4)对分支节点队列的每一个节点,试探性切断节点的一个分支,同时建立端点间 的一个新连接,记录网络增加的花费(网络增加的花费是指新增边的花费和被截断边花费 的差值);优选的,在切断节点分支时,临时性的将分支节点队列中的该节点分支数减1,将 新连接的端点的分支数加1 ;(5)以增加花费最小为准则,对有分支节点逐一去掉其它分支,直到保留花费最小 的单向连接。增加的花费是新增边和去除边的花费差,去分支时一个有分支的节点最少有3 个分支可以选择,如图5中的N0.4节点,新增的连接也有很多选择,而去掉不同分支时,端 点的情况也不一样,也就是新增连接的候选也不一样,所以需要一个准则来决定去掉哪个 新增哪个,这个准则就是新增的花费减去去掉的花费最小。要把新增连接的花费和去除分
4支的花费当做一个整体看,就是整个网络的新增花费;(6)更新连通矩阵;优选的,将新增加的连通的端点设为1,断开的分支位置设为0 ;(7)更新分支节点队列;优选的,从节点队列中去掉没有分支的节点;(8)更新端点队列。优选的,从端点队列中去掉新建立连接后的两个端点;优选的,所述步骤(4)中建立端点间新连接的操作中需要检查新建立的连接是否 会使节点的拓扑结构中出现环,如果使环结构出现则不能建立该连接。优选的,检查环结构出现的具体步骤为(9)以端点队列中的一个端点为起始点,通过连通矩阵检查与该端点连接的其他 端点,所有相连的端点都以该端点序号作为标记;(10)再检查与已标记节点相连接的节点,以同样的值标记未标记的节点;(11)重复上一步骤,直到相连接的所有节点都被标记;(12)检查网络中的所有节点,如果所有节点都被标记,则表示所有节点间是连通 的,没有环结构,否则,代表网络中出现环结构,网络已不是全连通的。优选的,所述步骤D的具体步骤为重复步骤(4)至步骤(8),直到分支节点队列为空,端点队列中只有2个端点。优选的,端点队列的2个端点一个为起点,一个为终点,从起点出发通过连通矩阵 可以得到节点遍历路径。优选的,在得到优化好的路径后,还可以按横向或纵向优先的方式即S路径方式, 或者螺旋路径方式,得到另一遍历路径作为备份路径。优选的,在得到优化好的路径后,通过和备份路径比较花费,选取花费最小的路径 作为优化后的遍历路径。


图1是全节点遍历路径优化简要流程图;图2是一种可能的检测点分布示意图;图3是全节点遍历路径优化方法流程图;图4是节点去分支过程的流程图;图5是环结构生成示意图。
具体实施例方式下面根据说明书附图并结合优选实施例对本发明的技术方案作进一步详细说明。 在此,本发明的示意性实施例及说明用于解释本发明,但并不作为对本发明的限定。如图1所示为全节点遍历路径优化简要流程图,包括以下步骤步骤A、根据需要解决的问题构建节点网络,在可能出现分支的地方建立节点,以 从一个节点到另一个节点的花费作为该有向边的值;步骤B、构建节点网络的最小生成树;步骤C、根据最小生成树,以新增边花费最小为原则,对所有有分支的节点,逐一去 除分支并建立端点间的连接,其中所述边花费指两个节点间的边长;步骤D、不断重复步骤C直到网络的最小生成树每个节点都没有分支,转化为节点单向队列,从而生成优化后的遍历路径。在得到优化好的路径后,还进一步按横向或纵向优先的方式即S路径方式得到另 一遍历路径作为备份路径。通过和备份路径比较花费,选取花费最小的路径作为优化后的 遍历路径。本发明公开的一种高效的全节点遍历路径优化方法在本实施例的应用参见图3, 具体步骤如下步骤301、为本实施例构建节点网络。本实施例为X、Y平面自动检测路径规划,网络中的节点为预先规划好的检测点, 网络中的边为相应节点间的距离,由于本实施例中,设备可以从一个检测点移动到任一一 其他检测点,所以所有节点间都有边,而且边的方向为双向的,构建的网络为连通完全图。由于所有检查点都必须经过并进行检查,而且实际应用中对检查过程的起始点和 终点并不做要求,所以本方法的目标是在构建好的连通网络中寻找最短的遍历路径,同时 并不做源和宿位置的限制。步骤302、获得节点网络的最小生成树。网络的最小路径遍历问题是一个NP完全问题,无法在有限的时间内得到最优解。 使用基本的深度优先或者广度优先方法得到的遍历路径,在实际应用中意味着出现走回头 路的情况,显然不是最优路径。最小生成树可以得到节点的最近邻居,是寻找最优路径的很 好的出发点。本实施例中使用Prim算法获得网络的最小生成树,当然实际应用时也可以采 用别的方法,本发明并不限制获得最小生成树的方法。步骤303、建立连通矩阵。根据获得的最小生成树建立连通矩阵,可以使用2维数组的方式存储,不连通的 节点对使用0标记,连通的使用1标记。步骤304、建立有分支的节点队列。根据获得的最小生成树搜索有分支的节点,将这些节点按队列或者数组的方式存 储,每个节点结构中应该至少包括节点序号、分支数等信息。步骤305、建立端点节点队列。根据获得的最小生成树建立端点节点队列,端点节点是最小生成树上只有一个邻 居,也就是只有一条边的节点,端点节点的队列同样可以按队列或者数组的方式存储,每个 节点结构中应该包括节点序号、邻居序号的信息。步骤306、去掉分支节点的一个分支,建立一个端点间的新连接。去掉最小生成树 的分支并且建立新连接的准则为新增边花费最小,具体方法如附图4所示,步骤如下步骤401、对当前节点的所有分支,取其中的某一分支截断。分支截断后,需要更新 与该边相关的节点连通矩阵和端点队列、分支节点队列。步骤402、如果分支截断以后,新增加了端点,则在端点队列中加入该节点。步骤403、在端点队列中查找花费最小的端点节点对,连接起来。在建立新连接的时候需要检查该连接是否会导致环形结构的出现。附图5是产生 环结构的一个例子。如果打断No. 4和No. 6节点的连接,同时对No. 8节点和No. 9节点建 立新连接,这时No. 6、No. 7、No. 8、No. 9节点会形成环结构。检查环结构的方法如下(1)以端点队列中的一个端点为起始点,通过连通矩阵检查与该端点连接的其他
6端点,所有相连的端点都以该端点序号作为标记;(2)再检查与已标记节点相连接的节点,以同样的值标记未标记的节点;(3)重复上一步骤,直到相连接的所有节点都被标记;(4)检查网络中的所有节点,如果所有节点都被标记,则表示所有节点间是连通 的,没有环结构,否则,代表网络中出现环结构,网络已不是全连通的。步骤404、计算最小生成树上新增路径的花费。新增路径的花费为新增边的花费和被截断边花费的差值。步骤405、比较新增的花费是否是最小花费(每次计算的花费和之前累积的去比, 总是保留最小的那个)。步骤406、如果是新增花费最小的选择,则记录新增路径花费的值,被截断的边,以 及新连接的端点状况。步骤407、针对节点的所有分支进行步骤401-步骤406操作,最终输出新增花费最 小时的截断分支和新增端点连接情况。步骤307、根据步骤407输出的结果,更新连通矩阵。被截断的边的对应位置设为0,新增边的对应位置设为1。步骤308、根据步骤407输出的结果,更新分支节点队列。从分支节点队列中去掉已经没有分支的节点。步骤309、根据步骤407输出的结果,更新端点队列。
从端点队列中去掉新建连接时所用的端点。步骤310、检查网络中的分支节点情况,如果网络中还要分支节点则重复步骤306 一步骤309,直到网络中不再有分支节点为止。网络中的分支节点情况可以从分支节点队列或者网络的连通矩阵获得。循环结束时,分支节点队列应该为空,端点队列应该只有2个节点。步骤311、生成优化后的路径。根据端点队列中保存的节点信息,以一个节点为起点,另一个节点为终点,由网络 的连通矩阵构建起点到终点的节点队列,即为优化后的路径。步骤312、生成备份路径。由最初网络状态,以S型路径或者螺旋形路径的方式,生成网络的遍历路径,用作 优化路径的备份。步骤314、比较步骤311生成的优化路径和步骤312生成的备份路径的花费,取花 费最小的为最终的优化路径。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来讲,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
1.一种全节点遍历路径优化方法,其特征在于,所述方法包括以下步骤步骤A、根据需要解决的问题构建节点网络,在可能出现分支的地方建立节点,以从一 个节点到另一个节点的花费作为该有向边的值;步骤B、构建节点网络的最小生成树;步骤C、根据最小生成树,以新增花费最小为原则,对所有有分支的节点,逐一去除分支 并建立端点间的连接;步骤D、不断重复步骤C直到网络的最小生成树每个节点都没有分支,转化为节点单向 队列,从而生成优化后的遍历路径。
2.根据权利要求1所述的方法,其特征在于,所述步骤B中的节点网络为双向或者全向 网络,两个节点间的边代表从一个节点到另一个节点间的花费。
3.根据权利要求1所述的方法,其特征在于,所述步骤B优选但不限于使用Prim算法 构建网络的最小生成树。
4.根据权利要求1所述的方法,所述步骤C优选进一步包括以下具体步骤(1)根据构建的最小生成树建立节点间的连通矩阵;(2)根据构建的最小生成树建立有分支的节点队列(3)根据构建的最小生成树建立端点节点的队列;(4)对分支节点队列的每一个节点,试探性切断该分支节点的一个分支,同时从端点 节点的队列中找出距离最近的两个端点节点,在其间建立一个新连接,记录网络增加的花 费;(5)以增加花费最小为准则,对有分支节点逐一去掉其它分支,直到保留花费最小的单 向连接;(6)更新连通矩阵;(7)更新分支节点队列;(8)更新端点节点队列。
5.根据权利4所述的方法,其特征在于,在距离最近的两个端点节点间建立新连接时, 还需要检查新建立的连接是否会使节点的拓扑结构中出现环,如果使环结构出现则不能建 立该连接。
6.根据权利1所述的方法,其特征在于,所述在步骤D中,所述节点单向队列是指节点网络变成单向连通的队列。此时分支节点队列为空,端点 队列中只有2个端点。
7.根据权利6所述方法,其特征在于,端点队列的2个端点一个为起点,一个为终点,从 起点出发通过连通矩阵可以得到节点遍历路径。
8.根据权利1所述方法,其特征在于,在得到优化好的路径后,还需要对原始节点网络 按横向或纵向优先的方式即S路径方式得到另一遍历路径作为备份路径。
9.根据权利8所述方法,其特征在于,在得到优化好的路径后,通过和备份路径比较花 费,选取花费最小的路径作为优化后的遍历路径。
全文摘要
本发明提供了一种高效快速的全节点遍历路径优化的方法,最终生成一个单向的节点队列路径。本方法包括以下几个步骤首先根据需要解决的实际问题构建节点网络,该网络可以是全向网络,以节点间的边记录路径花费;然后对全部节点建立最小生成树,针对生成树上的所有分支和端点建立队列;之后通过试探性的算法对有分支的节点逐一切断各个分支,每切断一个分支就根据端点队列搜索距离最小的端点对进行连接,不断进行这步操作,直到原最小生成树中的所有分支都被断开,所有节点连接成一个单向队列。在建立新的端点连接时,本方法还提供一种检测机制以避免新连接使节点队列形成一个环,从而避免路径中有节点丢失。此外本发明中还包括一个横向或纵向优先的路径作为优化路径的备选,以提高整个方法的可靠性。
文档编号G06F17/50GK102004839SQ201010594468
公开日2011年4月6日 申请日期2010年12月17日 优先权日2010年12月17日
发明者李鹏杰, 郑众喜 申请人:北京优纳科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1