Tracing Cargo Through a Time-Expanded Multi-Commodity Network

Read per-commodity arc flows on a time-expanded network to identify which arcs each commodity uses, trace the routes of cargo from source to sink, compute holdover at a node, and determine when units are delivered.

Step 1 of 157%

Tutorial

Time-Expanded Multi-Commodity Networks

A time-expanded multi-commodity network represents each physical location ii at each discrete time step t=0,1,,Tt = 0, 1, \dots, T as a separate node (i,t)(i, t). Two kinds of arcs connect these time-stamped nodes:

  • Transit arcs (i,t)(j,t+τij)(i, t) \to (j, t + \tau_{ij}) representing physical movement from ii to jj taking τij\tau_{ij} time units.
  • Holdover arcs (i,t)(i,t+1)(i, t) \to (i, t + 1) representing cargo waiting at location ii from time tt to time t+1t + 1.

When several commodities share the network, each arc aa carries a separate flow variable xak0x_a^k \geq 0 for each commodity kk. The total flow on arc aa is kxak\sum_k x_a^k, but each commodity's behavior is captured by its own variables.

To trace commodity kk, we examine only the arc flows {xak}\{x_a^k\} and discard the flows of other commodities. The arcs with xak>0x_a^k > 0 are exactly the arcs along which units of commodity kk travel.

For example, on the arc a=((A,0),(B,1))a = ((A,0),(B,1)), suppose xa1=4x_a^1 = 4 and xa2=2x_a^2 = 2. Then 44 units of commodity 11 and 22 units of commodity 22 both move from AA to BB during that time step. To trace commodity 11, we record xa1=4x_a^1 = 4 and ignore the value 22.

navigate · Enter open · Esc close · ⌘K/Ctrl K toggle