  The Max-Flow Min-Cut theorem is the classical duality result for the Max-Flow
problem, which considers flow of a single commodity. We study a multiple
commodity generalization of Max-Flow in which flows are composed of real-valued
k-vectors through networks with arc capacities formed by regions in \R^k. Given
the absence of a clear notion of ordering in the multicommodity case, we define
the generalized max flow as the feasible region of all flow values.
  We define a collection of concepts and operations on flows and cuts in the
multicommodity setting. We study the mutual capacity of a set of cuts, defined
as the set of flows that can pass through all cuts in the set. We present a
method to calculate the mutual capacity of pairs of cuts, and then generalize
the same to a method of calculation for arbitrary sets of cuts. We show that
the mutual capacity is exactly the set of feasible flows in the network, and
hence is equal to the max flow. Furthermore, we present a simple class of the
multicommodity max flow problem where computations using this tight duality
result could run significantly faster than default brute force computations.
  We also study more tractable special cases of the multicommodity max flow
problem where the objective is to transport a maximum real or integer multiple
of a given vector through the network. We devise an augmenting cycle search
algorithm that reduces the optimization problem to one with m constraints in at
most \R^{(m-n+1)k} space from one that requires mn constraints in \R^{mk} space
for a network with n nodes and m edges. We present efficient algorithms that
compute eps-approximations to both the ratio and the integer ratio maximum flow
problems.
