Initializing help system before first use

Mathematical formulation

Shortest path problem

The problem of finding the least cost route through a network is known as the shortest path problem. We can state this problem via binary variables usea associated with each arc a where usea=1 if arc a is selected and 0 otherwise.

For every node in the network except the source and sink nodes we establish a flow balance constraint: the sum of incoming travel is the same as the outgoing travel. The source node only has a single outgoing used arc, the sink node has a single incoming used arc. In the following, we define an arc a via its origin ARCa,1 and its destination node ARCa,2.

min a∈Arcs LENa·usea
s.t. a∈Arcs | ARCa,1=Source usea = 1, a∈Arcs | ARCa,2=Sink usea = 1
a∈Arcs | ARCa,2=Source usea = 0, a∈Arcs | ARCa,1=Sink usea = 0

∀ n ∈ Nodes - {Source,Sink}: a∈Arcs | ARCa,2=n usea = a∈Arcs | ARCa,1=n usea
∀ a∈Arcs: usea ∈{0,1}

In the model formulation above, we can add the delays caused by roadworks as an additional coefficient to the objective function so that they are taken into account by the shortest path calculation:

min a∈Arcs (LENa+MAXDELAYa)·usea

However, this means that we assume

  1. all delays take their maximum value and
  2. all roads incur delays.

These assumptions yield an overly conservative prediction. This case provides an upper bound on the total travel time estimate but it can certainly be considered as fairly unlikely to happen.

Robust optimization problem

The problem that we really wanted to state is

  1. delays take values up to their specified maximum value and
  2. up to N roads incur delays.

This means that the value of the delay per arc is not fixed, but uncertain. If delaya denotes the uncertain duration of the delay associates with arc a∈Arcs we can state the cardinality constrained uncertainty set as follows:

U = {delay : | {delaya: delaya>0 }| ≤ N, 0≤delaya≤MAXDELAYa ∀ a∈Arcs}

The resulting robust optimization problem then has the following form.

min a∈Arcs (LENa+delaya)·usea
s.t. a∈Arcs | ARCa,1=Source usea = 1, a∈Arcs | ARCa,2=Sink usea = 1
a∈Arcs | ARCa,2=Source usea = 0, a∈Arcs | ARCa,1=Sink usea = 0

∀ n ∈ Nodes - {Source,Sink}: a∈Arcs | ARCa,2=n usea = a∈Arcs | ARCa,1=n usea
∀ a∈Arcs: usea ∈{0,1}
delay ∈ U = {delay : | {delaya: delaya>0 }| ≤ N, 0≤delaya≤MAXDELAYa ∀ a∈Arcs}