- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
平面嵌入 加入树边 外部活跃与相关 外部活跃与相关 * * 四川省绵阳南山中学 古楠 应用 算法在实际中的重要应用是电路板设计. 2 4 5 3 1 平面嵌入的目的不过是让所有的边都不相交! 目的 2 3 4 5 1 相关定义: 平面嵌入: 在平面内将一张图转化为所有边都不相交(除开段点处相交)的图的过程. 平面图: 能够进行平面嵌入的图. 对于一张n个节点的图算法的目的: 算法可以用O(n)的时间判断一张图是不是平面图并且实现平面嵌入,但由于时间的关系,我这里只介绍O(n2)的算法. 定义 深度优先遍历 首先对图进行一次深度优先遍历. 然后每个点将拥有属于它的边.将这些边做这样的定义: 树边:在深度优先搜索树中,节点与它儿子相连的边. 回落边:节点与它非儿子后裔相连的边. 平面图的边不会超过3n-5条. [定理] 简略流程 建立一张空图GP,然后进行深度优先遍历,完成后按照逆向深度优先搜索序处理所有节点: 把节点的树边加入图GP中. 向下遍历, 同时将节点的回落边加入到图GP中— walkdown. v2 当处理节点v的时候,会首先加入节点v的树边,不过在加入树边的时候得做一个分离操作: v1 c1 c2 v 将v1和v2称做它们所在的连通分量的根. 将v1和v2所在的分量称作v的子块. Walkdown — 向下遍历(1) 向下遍历— 回落边的加入过程 在处理节点v的时候,会进入它的每个子块进行顺时针和逆时针两次遍历,当回到连通分量的根节点或者遭遇终止节点时就会停止遍历. 终止节点:是外部活跃节点但不是相关节点的节点. 设当前处理节点为v, 对于原有节点,定义如下: 外部活跃节点: 与v的祖先有连接的节点 子块中有外部活跃节点的节点 相关节点: 与v有连接的节点 子块中有相关节点的节点 u v v’ s w s’ w’ k e 在这张图中,当前处理节点为v,k,s为外部活跃节点,e,w为相关节点. Walkdown — 向下遍历(2) 由于终止节点的存在,随机的遍历会很快遭遇终止节点而终止遍历,这将导致需要加入的边没有加入到图GP中.所以在遍历的时候有一个原则. 尽量晚的终止遍历. 有两个法则来约束遍历,从而维护这个原则. Walkdown — 向下遍历(2) 法则1: 当节点有多个子块需要遍历的时候,总是先进入没有外部活跃节点的子块进行遍历. 法则2: 每次进入子块进行遍历都优先选择是走向只具有相关性节点方向,否则选择走向具有相关性的节点的方向. Walkdown — 向下遍历(2) 节点是相关节点,那么加入回落边. 在满足两个法则的情况下,向下遍历时,会依次处理下面几种情况: 遇到终止节点或者块的根时,终止遍历. 节点有包含相关节点的子块,到它子块中继续遍历. 节点不是外部活跃节点,走向下一节点. 当加入回落边的以后,会将该边所连接的两个块和它们之间的块全部合并.它和分离是对应的.节点所在块与子块合并后也不再拥有该子块. 分离是在加入树边的时候. Walkdown — 向下遍历(2) 合并是在加入回落边以后. 翻转操作 为了将所有的回落边都顺利的加入图GP 中,图GP 必须始终满足一个性质. 这个性质就是: 外部活跃节点都必须留在外部面上. 翻转操作 我们把接触最外层空间的面,叫做外部面.(图中黄线标出的面) 翻转操作 为了将所有的回落边都顺利的加入图GP 中,图GP 必须始终满足一个性质. 这个性质就是: 外部活跃节点都必须留在外部面上. 加入回落边的时候会覆盖向下遍历时经过的面,这可能导致外部活跃节点被覆盖,为了保证图GP的性质.定义一个翻转操作. 翻转操作 u v w e v’ w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e w e s1 Walkdown — 向下遍历(3) u v w k v’ w k s2 e e s 信息取得 算法需要有快速取得外部活跃信息和相关信息的方法. 对于外部活跃信息可以通过预处理和以后的维护来快速取得. 对于相关节点,可以在向下遍历时查找取得.O(n)的算法有另一种取得方式(请参考论文). 接下来我们具体介绍外部活跃信息的取得. 外部活跃信息的取得 快速的取得外部活跃信息外部活跃信息. 给每个节点配备一个lowpoint,表示它能直接或者间接到达的最早祖先,间接是指通过它的子孙到达. 可以通过开始的深度优先搜索取得所有节点的lowpoint. 外部活跃信息的取得 给每个节点配备一个SDlist,其中记录它的所有儿子,并且是按照他们的lowpoint从小到大排序的. 维护SDlist: 在节点所在块与其子块合并后
文档评论(0)