Table of Contents
Fetching ...

Solving the Convex Flow Problem

Theo Diamandis, Guillermo Angeris

TL;DR

The paper defines the convex flow problem on hypergraphs, enabling concave utilities over net and edge flows with convex feasible edge sets, thereby generalizing classical network flow models. It develops a dual-decomposition algorithm that splits across edges, leveraging Fenchel-conjugate subproblems and edge-specific arbitrage computations to achieve scalable, parallelizable optimization, and presents a practical Julia implementation ConvexFlows.jl. Key contributions include deriving a tractable dual, interpreting dual variables as prices, handling two-node edges efficiently, and providing primal-feasibility restoration, with numerical demonstrations in optimal power flow and decentralized exchange routing. The approach yields substantial speedups over conic solvers on large problems while preserving network structure, enabling broader applicability to power systems, wireless networks, economics, and finance. Overall, the framework offers a flexible, scalable method for solving complex, nonlinear network-flow problems with clear economic interpretations and an accessible software toolchain.

Abstract

In this paper, we introduce the solver ConvexFlows for the convex flow problem first defined in the authors' previous work. In this problem, we aim to optimize a concave utility function depending on the flows over a graph. However, unlike the classic network flows literature, we also allow for a concave relationship between the input and output flows of edges. This nonlinear gain describes many physical phenomena, including losses in power network transmission lines. We outline an efficient algorithm for solving this problem which parallelizes over the graph edges. We provide an open source implementation of this algorithm in the Julia programming language package ConvexFlows.jl. This package includes an interface to easily specify these flow problems. We conclude by walking through an example of solving for an optimal power flow using ConvexFlows.

Solving the Convex Flow Problem

TL;DR

The paper defines the convex flow problem on hypergraphs, enabling concave utilities over net and edge flows with convex feasible edge sets, thereby generalizing classical network flow models. It develops a dual-decomposition algorithm that splits across edges, leveraging Fenchel-conjugate subproblems and edge-specific arbitrage computations to achieve scalable, parallelizable optimization, and presents a practical Julia implementation ConvexFlows.jl. Key contributions include deriving a tractable dual, interpreting dual variables as prices, handling two-node edges efficiently, and providing primal-feasibility restoration, with numerical demonstrations in optimal power flow and decentralized exchange routing. The approach yields substantial speedups over conic solvers on large problems while preserving network structure, enabling broader applicability to power systems, wireless networks, economics, and finance. Overall, the framework offers a flexible, scalable method for solving complex, nonlinear network-flow problems with clear economic interpretations and an accessible software toolchain.

Abstract

In this paper, we introduce the solver ConvexFlows for the convex flow problem first defined in the authors' previous work. In this problem, we aim to optimize a concave utility function depending on the flows over a graph. However, unlike the classic network flows literature, we also allow for a concave relationship between the input and output flows of edges. This nonlinear gain describes many physical phenomena, including losses in power network transmission lines. We outline an efficient algorithm for solving this problem which parallelizes over the graph edges. We provide an open source implementation of this algorithm in the Julia programming language package ConvexFlows.jl. This package includes an interface to easily specify these flow problems. We conclude by walking through an example of solving for an optimal power flow using ConvexFlows.
Paper Structure (97 sections, 152 equations, 10 figures)

This paper contains 97 sections, 152 equations, 10 figures.

Figures (10)

  • Figure 1: A hypergraph with 4 nodes and 3 edges (left) and its corresponding bipartite graph representation (right).
  • Figure 2: An example convex nondecreasing cost function $c(w) = w^2$ for an edge flow (left) and its corresponding concave, nondecreasing edge utility function $V$ (right).
  • Figure 3: An example concave edge gain function $\gamma(w) = \sqrt{w}$ (left) and the corresponding allowable flows (right).
  • Figure 4: The power loss function (left), the corresponding power output (middle), and the corresponding set of allowable flows (right).
  • Figure 5: Wireless ad-hoc network. The (outgoing) hyperedge associated with user $u$ is shown in blue, and the corresponding set of outgoing neighbors $O_u$ contains user $v$ and the two base stations, $b_1$ and $b_2$
  • ...and 5 more figures