Table of Contents
Fetching ...

The steady-states of splitter networks

Basile Couëtoux, Bastien Gastaldi, Guyslain Naves

TL;DR

The paper formalizes splitter networks as a versatile model of resource flow in belt-like systems, defines steady-states under capacity and fairness constraints, and develops two polynomial-time algorithms to compute them. It then designs several load-balancing networks (balancers) including Beneš-based, universal, and distributed constructions, and proves near-optimal size lower bounds for splitters via a connection to Knuth–Yao sampling. The work also provides a capacity-simulation toolkit with $G_{p/q}$ gadgets for rational capacities, analyzes the structure of steady-states, and extends the model to priority-driven variants with complexity results ranging from polynomial-time to NP-hard. Collectively, these results illuminate the trade-offs between throughput maximization, fairness, and network size, and establish a rich link between splitter networks, classical flow theory, Markov chains, and discrete sampling theory.

Abstract

We introduce splitter networks, which abstract the behavior of conveyor belts found in the video game Factorio. Based on this definition, we show how to compute the steady-state of a splitter network. Then, leveraging insights from the players community, we provide multiple designs of splitter networks capable of load-balancing among several conveyor belts, and prove that any load-balancing network on $n$ belts must have $Ω(n \log n)$ nodes. Incidentally, we establish connections between splitter networks and various concepts including flow algorithms, flows with equality constraints, Markov chains and the Knuth-Yao theorem about sampling over rational distributions using a fair coin.

The steady-states of splitter networks

TL;DR

The paper formalizes splitter networks as a versatile model of resource flow in belt-like systems, defines steady-states under capacity and fairness constraints, and develops two polynomial-time algorithms to compute them. It then designs several load-balancing networks (balancers) including Beneš-based, universal, and distributed constructions, and proves near-optimal size lower bounds for splitters via a connection to Knuth–Yao sampling. The work also provides a capacity-simulation toolkit with gadgets for rational capacities, analyzes the structure of steady-states, and extends the model to priority-driven variants with complexity results ranging from polynomial-time to NP-hard. Collectively, these results illuminate the trade-offs between throughput maximization, fairness, and network size, and establish a rich link between splitter networks, classical flow theory, Markov chains, and discrete sampling theory.

Abstract

We introduce splitter networks, which abstract the behavior of conveyor belts found in the video game Factorio. Based on this definition, we show how to compute the steady-state of a splitter network. Then, leveraging insights from the players community, we provide multiple designs of splitter networks capable of load-balancing among several conveyor belts, and prove that any load-balancing network on belts must have nodes. Incidentally, we establish connections between splitter networks and various concepts including flow algorithms, flows with equality constraints, Markov chains and the Knuth-Yao theorem about sampling over rational distributions using a fair coin.
Paper Structure (27 sections, 45 theorems, 29 equations, 27 figures)

This paper contains 27 sections, 45 theorems, 29 equations, 27 figures.

Key Result

Theorem 1.5

There is an algorithm that given a splitter network $G = (I \uplus S \uplus O ,E)$ with capacities $c: I \uplus O \to [0,1]$, finds a steady-state $(t,F)$ in time $O(|S|^2 + |S| \ \mathrm{sd}(G_z))$, where $G_z$ is the graph obtained by identifying $I \cup O$ into a single vertex $z$, and $\mathrm{s

Figures (27)

  • Figure 1: 3 splitter networks given with capacities and associated steady-states. Splitter will be represented by circle vertices, terminals by square vertices. Each terminal is tagged by its capacity, and each arc by its throughput. Saturated arcs are bolder than fluid arcs.
  • Figure 2: An example of steady-state in a moderately small network, and the reverse network with its steady-state obtained by reversal. Notice that the reversed steady-state satisfies rule \ref{['eqn:maximization']} but not rule \ref{['eqn:strong-maximization']}.
  • Figure 3: Four examples of throughput changes at a single splitter, depending on which arcs are fluid.
  • Figure 4: Configurations of splitters and the corresponding vertex in the residual graph. The outgoing arcs from a vertex of the residual graphs are highlighted in red: notice that in a sub-steady-state, the throughputs on these arcs must be equal.
  • Figure 5: A network having several steady-states. Any value for $\varepsilon$ between $0$ and $\frac{1}{2}$ gives a steady-state.
  • ...and 22 more figures

Theorems & Definitions (110)

  • Definition 1.1
  • Definition 1.2
  • Definition 1.3
  • Definition 1.4
  • Theorem 1.5
  • Definition 1.6
  • Definition 1.7
  • Definition 1.8
  • Proposition 1.9
  • Theorem 1.10: knuth1976complexity
  • ...and 100 more