摘要: 与Ford-Fulkerson方法不同,压入和重标记算法不是检查整个残留网络来找出增广路径,而是每次仅对一个顶点进行操作,并且仅检查残留网络中该顶点的相邻顶点。压入和重标记算法引入了一个新的概念叫做余流,余流的定义为e(u)=f(V,u)。我们知道,在流网络满足三个限制条件的情况下有e(u)=0,但是在该算法的执行过程中,并不能保证流守恒,但是却保持了一个“前置流”,前置流满足反对称性、容量限制、和放宽条件的流守恒特性,而这个放宽条件的流守恒特性就是指e(u)=0,当e(u)0时,则称顶点u溢出。下面对压入和重标记算法给出一个更直观的理解。 继续把流网络中的边看成是运输的管道,与之前For 阅读全文
posted @ 2010-08-03 08:48 open source 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 先简单看一下主过程:接下来介绍算法预流推进算法给每一个顶点一个标号h(v),表示该点到t的最短路(在残量网络中)。第一步hights()过程,就是BFS出初始最短路,计算出每一个顶点的h(v)。预流推进算法的特征是运用了预流来加快运算。预流说明图中的节点(除s, t),仅需要满足流入量 = 流出量。其中流入量流出量的接点,我们称之为活动节点。我们的算法就是不断地将活动结点,变为非活动结点,使得预流成为可行流。算法过程prepare(),即首先将与s相连的边设为满流,并将这时产生的活动结点加入队列Q。这是算法的开始。以后便重复以下过程直到Q为空:(1).选出Q的一个活动顶点u。并依次判断残量 阅读全文
posted @ 2010-08-03 08:17 open source 阅读(2094) 评论(3) 推荐(0) 编辑