网络流问题是一类重要的组合优化问题,它在图论和运筹学中有着广泛的应用,如交通网络中的流量分配、资源分配问题等。费用流(或称为最小费用最大流)问题是网络流问题的一个变种,它要求在满足流量需求的前提下,使得流的传输费用最小。
理论基础
最小费用最大流算法(Minimum Cost Maximum Flow, MCMF)是在网络流问题中,用于寻找网络中费用最小的最大流的算法。其主要原理是在残留网络上不断寻找增广路(即增加流量的路径),并通过贪心算法选择费用最小的增广路。在每次寻找增广路后,算法会更新网络流以及残留网络的状态,直到无法找到增广路或者网络流达到最大值。
1. 基本概念
- 图(Graph):由节点(Vertex)和边(Edge)组成的集合,用于建模实际问题中的元素和它们之间的关系。
- 网络(Network):在图的基础上,每条边附加了容量(Capacity)和费用(Cost)属性的图。
- 流(Flow):在网络中,从源点(Source)到汇点(Sink)的一种流量分配方式,满足每条边的流量不超过其容量。