Motivation
The catalog has several flow-like models, but it does not have the continuous minimum-cost maximum-flow formulation used by CellRouter.
This model is useful because it records the CellRouter-aligned optimization target directly:
- first maximize the amount of flow sent from a designated source to a designated sink,
- then, among maximum-value flows, minimize total arc cost,
- keep the native continuous flow domain rather than imposing integrality.
This avoids the ambiguity of the broader name MinimumCostFlow, which often means a fixed-demand or arbitrary-supply formulation.
Associated rule:
Definition
Name: MinimumCostMaximumFlow
Reference:
Let G = (V,E) be a finite directed multigraph with loops and parallel arcs allowed. The instance has:
- a designated source vertex
s in V,
- a designated sink vertex
t in V, with s != t,
- finite arc capacities
u_e >= 0,
- nonnegative arc costs
c_e >= 0.
A feasible flow is a function
f : E -> R_{>= 0}
such that:
0 <= f_e <= u_e for every arc e,
- for every vertex
v notin {s,t}, total inflow at v equals total outflow from v.
The value of a flow is the net outflow from the source:
|f| = sum_{e in delta^+(s)} f_e - sum_{e in delta^-(s)} f_e.
The cost of a flow is:
cost(f) = sum_{e in E} c_e f_e.
The objective is lexicographic:
- maximize
|f|,
- subject to maximum flow value, minimize
cost(f).
So this is an optimization problem with a lexicographic objective.
Variables
Let m = |E|.
- Count:
m continuous variables
- Per-variable domain:
R_{>= 0}
- Meaning: variable
f_e is the amount of flow sent on arc e
A configuration is feasible iff it satisfies all capacity constraints and all nonterminal flow-conservation constraints.
Schema (data type)
Type name: MinimumCostMaximumFlow
Paper-aligned variant:
- directed multigraph input,
- continuous nonnegative real flows,
- finite nonnegative real capacities,
- finite nonnegative real costs.
| Field |
Mathematical type |
Description |
graph |
finite directed multigraph |
Directed network; loops and parallel arcs allowed |
source |
vertex |
Source vertex s |
sink |
vertex |
Sink vertex t |
capacities |
E -> R_{>=0} |
Finite arc capacity function u |
costs |
E -> R_{>=0} |
Nonnegative arc cost function c |
The cleaned model should not include a fixed required flow value. Multiple biological source and target sets are best treated as an instance-construction layer that adds auxiliary source and sink nodes before producing this final single-source/single-sink network.
Complexity
This problem is polynomial-time solvable. A safe registry-level complexity for a first implementation is to use the generic linear-programming formulation, with num_arcs flow variables and O(num_vertices + num_arcs) linear constraints.
A conservative exact expression for the catalog can therefore be:
poly(num_vertices + num_arcs)
If the registry requires a concrete expression string, use a deliberately conservative polynomial placeholder such as:
(num_vertices + num_arcs)^6
This is not intended as a best-known bound. It is a conservative polynomial bound justified by the standard linear-programming formulation of min-cost flow. A sharper strongly-polynomial network-flow bound can be substituted during implementation if the implementer chooses a specific algorithm and citation.
Reference for polynomial-time linear programming:
- L. G. Khachiyan, "A polynomial algorithm in linear programming," Soviet Mathematics Doklady 20, 191-194, 1979.
Extra Remark
For the CellRouter-aligned model:
- flows are continuous, not integral,
- capacities are finite nonnegative reals,
- costs are nonnegative because the biological construction uses costs of the form
-log(c_ij) from similarity/capacity scores,
- the objective is lexicographic max-flow-then-min-cost, not fixed-demand min-cost flow.
Integral-flow and fixed-demand variants are useful generalizations, but they should not be the default model for the CellRouter paper.
Reduction Rule Crossref
How to solve
Example Instance
Take vertices {s, a, b, t} and arcs:
| Arc |
Capacity |
Cost |
s -> a |
2 |
1 |
s -> b |
1 |
0 |
a -> b |
1 |
0 |
a -> t |
1 |
1 |
b -> t |
2 |
2 |
Expected Outcome
The maximum possible s-t flow value is 3.
One optimal minimum-cost maximum flow is:
f(s,a) = 2
f(s,b) = 1
f(a,b) = 1
f(a,t) = 1
f(b,t) = 2
Flow conservation holds at a and b:
- vertex
a: inflow 2, outflow 1 + 1 = 2,
- vertex
b: inflow 1 + 1 = 2, outflow 2.
The value is 3, and the cost is:
2*1 + 1*0 + 1*0 + 1*1 + 2*2 = 7.
A value-2 flow using only paths through b can be cheaper, but it is not optimal because the primary objective is maximum flow value. This example therefore checks the lexicographic objective rather than a simple minimum-cost objective.
BibTeX
@article{CellRouter2018,
title = {Reconstructing complex single-cell trajectories using CellRouter},
journal = {Nature Communications},
volume = {9},
pages = {892},
year = {2018},
doi = {10.1038/s41467-018-03214-y},
url = {https://doi.org/10.1038/s41467-018-03214-y}
}
@article{Khachiyan1979LP,
author = {L. G. Khachiyan},
title = {A polynomial algorithm in linear programming},
journal = {Soviet Mathematics Doklady},
volume = {20},
pages = {191--194},
year = {1979}
}
Motivation
The catalog has several flow-like models, but it does not have the continuous minimum-cost maximum-flow formulation used by CellRouter.
This model is useful because it records the CellRouter-aligned optimization target directly:
This avoids the ambiguity of the broader name
MinimumCostFlow, which often means a fixed-demand or arbitrary-supply formulation.Associated rule:
Definition
Name:
MinimumCostMaximumFlowReference:
Let
G = (V,E)be a finite directed multigraph with loops and parallel arcs allowed. The instance has:s in V,t in V, withs != t,u_e >= 0,c_e >= 0.A feasible flow is a function
f : E -> R_{>= 0}such that:
0 <= f_e <= u_efor every arce,v notin {s,t}, total inflow atvequals total outflow fromv.The value of a flow is the net outflow from the source:
|f| = sum_{e in delta^+(s)} f_e - sum_{e in delta^-(s)} f_e.The cost of a flow is:
cost(f) = sum_{e in E} c_e f_e.The objective is lexicographic:
|f|,cost(f).So this is an optimization problem with a lexicographic objective.
Variables
Let
m = |E|.mcontinuous variablesR_{>= 0}f_eis the amount of flow sent on arceA configuration is feasible iff it satisfies all capacity constraints and all nonterminal flow-conservation constraints.
Schema (data type)
Type name:
MinimumCostMaximumFlowPaper-aligned variant:
graphsourcessinktcapacitiesE -> R_{>=0}ucostsE -> R_{>=0}cThe cleaned model should not include a fixed required flow value. Multiple biological source and target sets are best treated as an instance-construction layer that adds auxiliary source and sink nodes before producing this final single-source/single-sink network.
Complexity
This problem is polynomial-time solvable. A safe registry-level complexity for a first implementation is to use the generic linear-programming formulation, with
num_arcsflow variables andO(num_vertices + num_arcs)linear constraints.A conservative exact expression for the catalog can therefore be:
poly(num_vertices + num_arcs)If the registry requires a concrete expression string, use a deliberately conservative polynomial placeholder such as:
(num_vertices + num_arcs)^6This is not intended as a best-known bound. It is a conservative polynomial bound justified by the standard linear-programming formulation of min-cost flow. A sharper strongly-polynomial network-flow bound can be substituted during implementation if the implementer chooses a specific algorithm and citation.
Reference for polynomial-time linear programming:
Extra Remark
For the CellRouter-aligned model:
-log(c_ij)from similarity/capacity scores,Integral-flow and fixed-demand variants are useful generalizations, but they should not be the default model for the CellRouter paper.
Reduction Rule Crossref
How to solve
MinimumCostCirculationvia [Rule] MinimumCostMaximumFlow to MinimumCostCirculation #1031.Example Instance
Take vertices
{s, a, b, t}and arcs:s -> a21s -> b10a -> b10a -> t11b -> t22Expected Outcome
The maximum possible
s-tflow value is3.One optimal minimum-cost maximum flow is:
f(s,a) = 2f(s,b) = 1f(a,b) = 1f(a,t) = 1f(b,t) = 2Flow conservation holds at
aandb:a: inflow2, outflow1 + 1 = 2,b: inflow1 + 1 = 2, outflow2.The value is
3, and the cost is:2*1 + 1*0 + 1*0 + 1*1 + 2*2 = 7.A value-2 flow using only paths through
bcan be cheaper, but it is not optimal because the primary objective is maximum flow value. This example therefore checks the lexicographic objective rather than a simple minimum-cost objective.BibTeX