Skip to content

[Model] MinimumCostMaximumFlow #1029

@zhangjieqingithub

Description

@zhangjieqingithub

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:

  1. maximize |f|,
  2. 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}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    modelA model problem to be implemented.

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions