- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.3.2 广度优先遍历 若从顶点V出发,先访问V,然后依次访问V的各个未曾访问的邻接点,再分别从这些邻接点出发依次访问它们的邻接点。 7.5 有向无环图及其应用 无环的有向图称为有向无环图(directed acycline graph)简称DAG图。 1.描述含有公共子式的有效工具 2.描述一项工程或系统的行进过程的有效工具。 可判断工程能否顺利进行 估算整个工程完成所必须的最短时间 对应于有向图,即进行拓扑排序和关键路径 7.5 有向无环图及其应用 1.描述含有公共子式的有效工具 表达式:((a+b)*(b*(c+d))+(c+d)*e)*((c+d)*e) 7.5 有向无环图及其应用 1.描述含有公共子式的有效工具 表达式:((a+b)*(b*(c+d))+(c+d)*e)*((c+d)*e) 7.5 有向无环图及其应用 1.描述含有公共子式的有效工具 节省存储空间 加快运算速度 2.描述一项工程或系统的行进过程的有效工具 可判断工程能否顺利进行 估算整个工程完成所必须的最短时间 对应于有向图,即进行拓扑排序和关键路径 拓扑排序举例(计算机专业的课程) 拓扑排序举例(计算机专业的课程) 拓扑排序 用顶点表示活动,用弧表示活动间的优先关系的有向图,称为顶点表示活动的网(Activity On Vertex Network),简称AOV-网 拓扑序列: C1 C2 C3 C4 C5 C7 C9 C10 C11 C6 C12 C8 或 :C9 C10 C11 C6 C1 C12 C4 C2 C3 C5 C7 C8 关键路径 1、关键路径思想: 活动ai的最早开始时间e(i)和最迟开始时间l(i)相等,则ai为关键活动,即:若e(i)=l(i),则ai关键活动 由关键活动组成的路径称为关键路径 2、如何计算e(i)和l(i) ? 1) e(i)的计算 e(i)=ve(j) ve(源点)=0 开始向前推进 ve(j)=Max{ve(i)+dut(i,j)} ( i,j∈E ) 2) l(i)的计算 l(i)=vl(k)-dut(j,k) vl(汇点)=ve(汇点) 向后推进 vl(i)=Min{vl(j)-dut(i,j)} ( i,j∈E ) 单源最短路径----迪杰斯特拉(Dijkstra)算法 构造最小生成树的算法有: 普里姆Prim算法 克鲁斯卡尔Kruskal算法. Prim算法 假设G=(V,E)是一个具有n 个顶点的连通网络,T=(U,TE)是G的最小生成树,其中U是T的顶点集,TE是T的边集,U和TE的初值均为空。 算法开始时,首先从V中任取一个顶点(假定为U0),将此顶点并入U中,此时最小生成树顶点集U={U0};然后从那些一个端点已在U中,另一个端点仍在U外的所有边中,找一条最短(即权值最小)的边,假定该边为(Vi,Vj), 其中Vi∈U,Vj∈V-U,并把该边(Vi,Vj)和顶点Vj分别并入T的边集TE和顶点集U;如此进行下去,每次往生成树里并入一个顶点和一条边,直到n-1次后,把所有n 个顶点都并入生成树T的顶点集U中,此时U=V,TE中包含有(n-1)条边;这样,T就是最后得到的最小生成树。 最小生成树的构造过程举例(普里姆算法) 0 1 2 3 5 4 6 5 1 5 3 5 2 4 6 6 0 1 6 2 1 3 5 4 ∞ 5 ∞ 0 2 1 1 5 3 5 4 6 5 4 0 2 5 1 4 1 5 3 2 4 6 0 2 1 5 4 3 2 1 5 4 3 0 2 5 3 1 4 1 4 2 5 3 0 2 5 3 1 5 4 6 1 4 2 任意一个顶点置入生成树T; 置初始候选边集; while (T中顶点数目<n) { 从候选边中选择最短的边(u,v); 将边(u,v)及顶点v扩充到T中; 调整候选边集; } Prim算法的描述 设一个数组closedge,记录每个孤立顶点vi 连到已有生成树T的情况,closedge[i]记录顶点vi ,它需要两个域: closedge[i].adjvex: 表示vi连到生成树T中的哪个顶点 closedge[i].lowcost:
文档评论(0)