当前位置: 首页 > wzjs >正文

o2o好网站活动营销案例100例

o2o好网站,活动营销案例100例,网站开发算前端吗,网站建设书籍免费对于一个带权(假设每条边上的权均为大于零的实数)连通无向图 G 中的不同生成树,其每棵树的所有边上的权值之和也可能不同;图的所有生成树中具有边上的权值之和最小的树称为图的最小生成树(Minimal Spanning Tree&#…

对于一个带权(假设每条边上的权均为大于零的实数)连通无向图 G 中的不同生成树,其每棵树的所有边上的权值之和也可能不同;图的所有生成树中具有边上的权值之和最小的树称为图的最小生成树(Minimal Spanning Tree)。

按照生成树的定义, n n n 个顶点的连通图的生成树有 n n n 个顶点、 ( n − 1 ) (n-1) (n1) 条边。因此,构造最小生成树的准则有以下 3 条:

  1. 必须只使用该图中的边来构造最小生成树;
  2. 必须使用且仅使用 ( n − 1 ) (n-1) (n1) 条边来连接图中的 n n n 个顶点;
  3. 不能使用产生回路的边。

构造最小生成树有多种算法,其中多数算法利用了最小生成树的下列一种简称为 MST 的性质:假设 N = ( V , E ) N=(V,E) N=(V,E) 是一个连通网(带权连通图), U U U 是顶点集 V V V 的一个非空子集。若 ( u , v ) (u,v) (u,v) 是一条具有最小权值(代价)的边,其中 $ u\in U,~v\in V-U$ ,则必存在一棵包含边 ( u , v ) (u,v) (u,v) 的最小生成树。

这个结论的证明,此处从略,可以参考《数据结构》(严蔚敏,人民邮电出版社)。

求图的最小生成树有很多实际应用,例如城市之间的交通工程造价最优问题就是一个最小生成树问题。求图的最小生成树有两个算法著名的算法:普里姆算法和克鲁斯卡尔算法。

普里姆算法

普里姆算法的构造过程

普里姆(Prim)算法是一种构造最小生成树的算法。

假设 G = ( V , E ) G=(V,E) G=(V,E) 是一个具有 n n n 个顶点的带权连通图, T = ( U , T E ) T=(U,TE) T=(U,TE) G G G 的最小生成树,其中 U U U T T T 的顶点集, T E TE TE T T T 的边集,则由 G G G 构造从起始点 v v v 出发的最小生成树 T T T 的步骤如下:

  1. 初始化 U = { v } U=\{v\} U={v} ,以 v v v 到其他顶点的所有边为候选边。
  2. 重复以下步骤 ( n − 1 ) (n-1) (n1) 次,使得其他 ( n − 1 ) (n-1) (n1) 个顶点被加入到 U U U 中。
    • 从候选边中挑选权值最小的边加入 T E TE TE ,设该边在 V − U V-U VU 中的顶点是 k k k ,将 k k k 加入 U U U 中;
    • 考査当前 V − U V-U VU 中的所有顶点 j j j ,修改候选边,若 ( k , i ) (k,i) (k,i) 的权值小于原来和顶点 j j j 关联的候选边,则用 ( k , i ) (k,i) (k,i) 取代后者作为候选边。

例如,对于图 8.4.7 所示带权连通图,假设起始点为顶点 0,采用普里姆算法构造最小生成树。

在这里插入图片描述

图 8.4.7 带权连通图
  1. 最小生成树 T T T 包含所有顶点。
  2. U = { 0 } , V − U = { 1 , 2 , 3 , 4 , 5 , 6 } U=\{0\},~V-U=\{1,2,3,4,5,6\} U={0}, VU={1,2,3,4,5,6} ,在这两个顶点集之间选择第 1 条最小边 ( 0 , 5 ) (0,5) (0,5) 添加到 T E TE TE 中,即 T E = { ( 0 , 5 ) } TE=\{(0,5)\} TE={(0,5)}
  3. U = { 0 , 5 } , V − U = { 1 , 2 , 3 , 4 , 6 } U=\{0,5\},~V-U=\{1,2,3,4,6\} U={0,5}, VU={1,2,3,4,6} ,在这两个顶点集之间选择第 2 条最小边 ( 5 , 4 ) (5,4) (5,4) 添加到 T E TE TE 中,即 T E = { ( 0 , 5 ) , ( 5 , 4 ) } TE=\{(0,5),(5,4)\} TE={(0,5),(5,4)}
  4. U = { 0 , 5 , 4 } , V − U = { 1 , 2 , 3 , 6 } U=\{0,5,4\},~V-U=\{1,2,3,6\} U={0,5,4}, VU={1,2,3,6}​ ,在这两个顶点集之间选择第 3 条最小边 ( 4 , 3 ) (4,3) (4,3)​ 添加到 T E TE TE​ 中,即 T E = { ( 0 , 5 ) , ( 5 , 4 ) , ( 4 , 3 ) } TE=\{(0,5),(5,4),(4,3)\} TE={(0,5),(5,4),(4,3)}​。
  5. U = { 0 , 5 , 4 , 3 } , V − U = { 1 , 2 , 6 } U=\{0,5,4,3\},~V-U=\{1,2,6\} U={0,5,4,3}, VU={1,2,6}​ ,在这两个顶点集之间选择第 4 条最小边 ( 3 , 2 ) (3,2) (3,2)​ 添加到 T E TE TE​ 中,即 T E = { ( 0 , 5 ) , ( 5 , 4 ) , ( 4 , 3 ) , ( 3 , 2 ) } TE=\{(0,5),(5,4),(4,3),(3,2)\} TE={(0,5),(5,4),(4,3),(3,2)}​。
  6. U = { 0 , 5 , 4 , 3 , 2 } , V − U = { 1 , 6 } U=\{0,5,4,3,2\},~V-U=\{1,6\} U={0,5,4,3,2}, VU={1,6}​ ,在这两个顶点集之间选择第 5 条最小边 ( 2 , 1 ) (2,1) (2,1)​ 添加到 T E TE TE​ 中,即 T E = { ( 0 , 5 ) , ( 5 , 4 ) , ( 4 , 3 ) , ( 3 , 2 ) , ( 2 , 1 ) } TE=\{(0,5),(5,4),(4,3),(3,2),(2,1)\} TE={(0,5),(5,4),(4,3),(3,2),(2,1)}​。
  7. U = { 0 , 5 , 4 , 3 , 2 , 1 } , V − U = { 6 } U=\{0,5,4,3,2,1\},~V-U=\{6\} U={0,5,4,3,2,1}, VU={6} ,在这两个顶点集之间选择第 6 条最小边 ( 1 , 6 ) (1,6) (1,6) 添加到 T E TE TE 中,即 T E = { ( 0 , 5 ) , ( 5 , 4 ) , ( 4 , 3 ) , ( 3 , 2 ) , ( 2 , 1 ) , ( 1 , 6 ) } TE=\{(0,5),(5,4),(4,3),(3,2),(2,1),(1,6)\} TE={(0,5),(5,4),(4,3),(3,2),(2,1),(1,6)},即得到了最小生成树,如图 8.4.8 所示。

在这里插入图片描述

图 8.4.8 由普里姆算法得到的最小生成树

如果每次选择最小边时,存在多条同样权值的边可选,则任选其一即可。

克鲁斯卡尔算法

克鲁斯卡尔(Kruskal)算法是一种按权值的递增次序选择合适的边来构造最小生成树的方法。

克鲁斯卡尔算法的构造过程

假设 G = ( V , E ) G=(V,E) G=(V,E) 是一个具有 n n n 个顶点的带权连通无向图, T = ( U , T E ) T=(U,TE) T=(U,TE) G G G 的最小生成树,则构造最小生成树的步骤如下:

  1. U U U 的初值为 V V V (即包含有 G G G 中的全部顶点), T E TE TE 的初值为空集(即图 T T T 中的每一个顶点都构成一个分量)。
  2. 将图 G G G 中的边按权值从小到大的顺序依次选取,若选取的边未使生成树 T T T 形成回路,则加入 T E TE TE ,否则舍弃,直到 T E TE TE 中包含 ( n − 1 ) (n-1) (n1) 条边为止。

以图 8.4.7 所示的带权连通图为例,采用克鲁斯卡尔算法构造最小生成树,其过程如下:

  1. 将所有边按权值递增排序:(0,5), (2,3), (1,6), (1,2), (3,6), (3,4), (4,6), (4,5), (0,1)

  2. 最小生成树 T T T 包含所有顶点。

  3. 选最小的边 (0,5) 加入到 T T T 中,此时不会出现回路。

  4. 选第 2 小的边 (2,3) 加入到 T T T 中,此时不出现回路。

  5. 选第 3 小的边 (1,6) 加入到 T T T 中,此时不出现回路。

  6. 选第 4 小的边 (1,2) 加入到 T T T​ 中,此时不出现回路。

  7. 选第 5 小的边 (3,6) 加入到 T T T 中,此时出现回路,故舍弃它。选第 6 小的边 (3,4) 加入到 T T T 中,此时不出现回路。

  8. 选第 7 小的边 (4,6) 加入到 T T T 中,此时出现回路,故舍弃它。选第 8 小的边 (4,5) 加入到 T T T​ 中,此时不出现回路。

    至此在 T T T 中已经有 6 条边( n = 7 n=7 n=7),产生了最小生成树,如图 8.4.9 所示。

    在这里插入图片描述

    图 8.4.9 由克鲁斯卡尔算法得到的最小生成树

将这里用克鲁斯卡尔算法所得到的最小生成树,与上一节中用普里姆算法得到的最小生成树对比,可以发现,二者结果相同。这在本例中是一个巧合。

http://www.dtcms.com/wzjs/818040.html

相关文章:

  • 怎么做购物网站流感吃什么药效果最好
  • 自己做淘宝返利网站重庆ppt制作
  • 2_试列出网站开发建设的步骤做网站需要监事吗
  • 成都公司网站开发wordpress重新发布
  • 哪些网站做的不好用网站整合营销推广
  • 中国建设官方网站登录富海人才招聘网官网
  • 做网站都能赚钱吗wordpress主题seven
  • 扬州市广陵区城乡建设局网站长沙企业网站排名优化
  • 如何在百度上搜索到自己的网站国家三大外贸平台
  • 给客户建设网站税率杭州做搜索引擎网站的公司
  • 网站视频下载软件南通关键词优化软件
  • 网站建设能给客户带来什么免费站群系统
  • 北京网站建设 专业10年微信公众平台官网小程序
  • 怎么提升网站收录沂南网站设计
  • 爱站网长尾词挖掘店铺设计理念怎么写
  • 广州网站建设哪家便宜水果建设网站前的市场分析
  • 导航网站超链接如何做制作软件的流程
  • 怎样在网站上做友情链接培训的网站建设
  • 江苏大都建设工程有限公司网站网站制作时间表
  • 郑州做网站便宜wordpress fifth
  • 专业的论坛网站建设免费空间asp网站源码
  • 10000个免费货源网站icodepython基础教程
  • opencms做网站 谁三亚建设工程信息网站
  • iframe 网站前台模板自己做软件
  • 专门做试卷的网站手机端竞价恶意点击能防止吗
  • 黄陂建设网站湖北工程建设信息网
  • 衡水网站开发报价html5网站和传统网站的优点
  • 做一个网站完整的网页视频网站怎样做
  • js 取网站域名亚马逊雨林的资料
  • 苏州网站设计师招聘信息郑州app软件公司