A linear program is the problem of optimizing an linear objective function within some polytope $A$ over the field $\mathbf R$. There are polynomial-time algorithms for solving this problem. In some cases, there is a linear change of variables that transforms the polytope $A$ into a polytope $B$ which can be solved by min-cost flow, and such that the original polytope $A$ is a linear projection of $B$. The min-cost flow polytope can be defined by three classes of constraints: 1. $y_i \geq 0$ 2. $y_i \leq u_i$ 3. The additional linear constraints are of the form $B' y = v$, where $v$ is a fixed vector and every column of $B'$ contains exactly one $-1$, one $+1$, and the other entries are all zero. The new variables $y$ correspond to edges in a directed graph. The $u_i$ is the edge capacity. The rows of $B'$ correspond to vertex demands. The columns of $B'$ correspond to the source and destination vertex of each edge. The objective function can be always be realized by an appropriate edge cost. My question is are --- under what conditions can a polytope $A$ be transformed by a linear change of variables into a min-cost flow polytope? Can this be done effectively? Does this require increasing the number of constraints and/or variables by a large amount (in which case leaving it as general LP might be faster)?