- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 网络流问题 网络流及其应用 一、网络最大流问题 1 基本概念 2 最大流最小割切定理(2F定理)Ford, Fulkerson, 1956 3 求网络最大流的标号法(2F,1957) 标号法求可改进路径的实例1 标号法求可改进路径的实例2 具体的算法过程 算法实现 ACM试题 PKU 1149 PIGS ZOJ 1157 A Plug for UNIX ZOJ 1734 Power Network 问题:毫无疑问,任何容量网络的最大流流量是唯一的,是确定的,但最大流Fij是唯一的吗? 二、最小费用最大流问题 1 数学模型 2 最小费用最大流算法 2) 求最小费用可改进路 3 最小费用最大流实例 4 算法实现 图的连通度问题:问题示例 连通性的基本概念(无向图) 三、图的顶点连通度 特殊情况 应该怎样求顶点连通度?方法一 方法二(示例) 基本概念及定理 问题 求P(A,B)的算法 P(A,B) 算法的证明 求顶点连通度的算法 四、图的边连通度 基本概念及定理 问题 求P(A,B)的算法 求边连通度的算法 k(G)和k’(G)的关系 求从A’到B’’的最大流F 流出A’’的一切弧的流量和,即为P(A,B),所有具有流量1的弧(Vi’,Vj’’)对应的顶点Vi构成了一个割顶集,在图G中去掉这些顶点后则图G变成不连通了。 A V1 V2 B A’ V1’ V2’ B’ A’’ V1’’ V2’’ B’’ 1 ∞ 1 ∞ 1 ∞ 1 ∞ ∞ ∞ 如下图所示,设AV1V2B是从A到B的P(A,B)条独立轨中的某一条,在所构成的网络N中,同样有一条从A’到B’’的有向轨。设从源点A到汇点的最大流为F。 F≥P(A,B)的证明 A V1 V2 B A’ V1’ V2’ B’ A’’ V1’’ V2’’ B’’ 1 ∞ 1 ∞ 1 ∞ 1 ∞ ∞ ∞ F≤P(A,B)的证明 由1、2可得,F=P(A,B) 设k(G)的初始值为∞ 分析图G中的每一对不相邻顶点,则求出P(A,B)以及对应的割顶集; 如果P(A,B)小于k(G),则k(G)=P(A,B),并保存其割顶集。 重复执行1、2两步,直至所有不相邻顶点对分析完为止,即可求出图的顶点连通度k(G)和最小割顶集了。 定义1:设图G的边数为|E|,去掉G的任意k-1条边后(1≤k≤|E|),所得到的子图仍然连通,而去掉某k条边后的子图不连通,则称G是k边连通图,k称作图G的边连通度,记做k’(G)。 定义2:设E’是连通图G的一个边子集。在G中删去E’ 后图不连通,则称E’是G的桥集。最小桥集中边的个数,称作图G的边连通度,记做k’(G)。 V1 V8 V9 V10 V7 V4 V3 V6 V5 V2 弱独立轨的定义:A、B是无向图G的两个顶点,从A到B的2条没有公共边的轨,互称为弱独立轨。 从A到B之间弱独立轨的最大条数,记作P’(A,B) 设A、B是无向图G中任意两个顶点,最少删除m(A,B)条边可使得A和B不再连通。(不特别区分相邻的顶点) 定理:m(A,B)=P’(A,B) Menger定理: 图的邻接矩阵存储结构 #define MAX_VERTEX_NUM 10 #define MAX 100 //权值的最大值 typedef int VertexType; typedef struct { int c; //容量 int f; //流量 }ArcType; //弧结构 typedef struct { VertexType vexs[MAX_VERTEX_NUM];//顶点数组 ArcType ArcMatrix [MAX_VERTEX_NUM][MAX_VERTEX_NUM]; //邻接矩阵(每个元素有两个分量,分别表示容量和流量) int vexnum,arcnum; //顶点数和边(弧)数 }MGraph; //图的邻接矩阵存储结构 采用邻接矩阵存储表示,构造有向网N void CreateDN(MGraph N) { int v1,v2, c,f; N.arcnum = N.vexnum = 0; for(int i=0;iMAX_VERTEX_NUM;i++) { for(int j=0;jMAX_VERTEX_NUM;j++) { N.ArcMatrix[i][j].c=MAX; N.ArcMatrix[i][j].f=MAX; } } for(i=0;iMAX_VERTEX_NUM;i++) N.vexs[i]=i; char filename[30]; //使用文件流来构建邻接矩阵 cin filename; ifstream openfile(filename); openfile N.vexnum;
您可能关注的文档
最近下载
- xsb-1显示仪表说明书.docx VIP
- 乡村振兴乡村旅游-浙江省乡村旅游设计方案.pdf VIP
- DELTA台达VFD-ME300精巧简易型向量控制变频器使用手册调试说明.pdf
- 眼附属器的解剖ppt参考课件.ppt
- 土壤及地下水采样实施实施方案gp.docx
- 小学科学新教科版三年级上册全册思维导图(共三个单元)(2025秋).doc VIP
- 1415地面流水地质作用.pptx VIP
- Unit1GrowingUpUnderstandingideasTheageofmajority课件高中英语选择性.pptx VIP
- 写文章的软件4篇.docx VIP
- GB 50026-2020 工程测量标准.docx
原创力文档


文档评论(0)