Quincus

Network design

The best route through a badly built network is still a bad answer.

Dispatch optimizes inside a structure somebody already committed to. Network design chooses the structure itself: where facilities sit, which lanes exist, and how much capacity to commit before demand is known. These are the decisions that are expensive to reverse, which is exactly why they should not be made on a forecast.

LIVE

Site the network

Facilities to open3
Plan against
123

At 45% uncertainty across 80 scenarios, planning against the scenario set is 0.0% cheaper in expectation than planning against the average. That difference is the value of the stochastic solution.

Facilities open3
Expected cost2871.43
Worst case (p90)4676.48
VSS0.00 · 0.0%
Modescenario set
Runs in your browser on a simplified version of the production method. Illustrative of behavior, not of production performance.

The problem class

Decisions you cannot walk back.

Facility location and hub structure.

Where to put capacity, and how many echelons the network should have. These are expensive to reverse, which is why they should not be made on a forecast.

Capacity commitment under uncertainty.

How much to contract before demand resolves, and how much to leave flexible.

Multi-period expansion.

What to build now so that what you build later is still available to you.

The method

How the structural decision is made.

Capacitated facility location
miniFfiyi+iFjDcijxijs.t.ixij=dj,    jxijQiyi,    yi{0,1}\min \sum_{i \in F} f_i y_i + \sum_{i \in F}\sum_{j \in D} c_{ij} x_{ij} \quad \text{s.t.} \quad \sum_{i} x_{ij} = d_j, \;\; \sum_{j} x_{ij} \le Q_i y_i, \;\; y_i \in \{0,1\}

Fixed opening cost against variable flow cost, with capacity binding only on facilities that are open. The binary layer is what makes this hard and what makes the answer worth having.

Two-stage stochastic program with recourse
minyY  cy+Eξ ⁣[Q(y,ξ)],Q(y,ξ)=minx{q(ξ)x  :  Wxh(ξ)T(ξ)y}\min_{y \in Y} \; c^\top y + \mathbb{E}_{\xi}\!\left[ Q(y, \xi) \right], \qquad Q(y, \xi) = \min_{x} \left\{ q(\xi)^\top x \; : \; Wx \ge h(\xi) - T(\xi)\,y \right\}

The first stage commits capacity before uncertainty resolves. The second stage responds once it has. Solved by Benders decomposition, which separates the structural decision from the thousands of scenarios it has to survive.

Two-stage decision tree with a first-stage capacity commitment fanning into five scenarios, each followed by a recourse decisionbefore uncertainty resolvesaftercommitcapacity0.10recourse0.20recourse0.40recourse0.20recourse0.10recourse
What the scenario set is worth
VSS=zEEVzRP\mathrm{VSS} = z_{\mathrm{EEV}} - z_{\mathrm{RP}}

The value of the stochastic solution is the measurable cost of having planned against an average instead of a distribution. It is usually large, and it is usually invisible until someone computes it.

Efficient frontier of candidate network designs plotted against expected cost and service level at the tenth percentile0.000.250.500.751.000.000.250.500.751.00dominatedselected designdominatedexpected costservice level at 10th percentile

Illustrative shape, not client data. Candidate network designs against expected cost and tenth-percentile service level.

What this changes

What the frontier tells you.

  1. 01

    Capacity sized against a scenario set rather than a single forecast, with the cost of that choice quantified.

  2. 02

    Resilience expressed as a position on a frontier rather than as an adjective in a board paper.

  3. 03

    Expansion sequenced so early commitments preserve later options instead of foreclosing them.

Where it runs

Sectors that lean on this capability.

If your network makes decisions under uncertainty, we should talk.

We work with a small number of operators at a time. Tell us what your network is optimizing for.

Start a conversation