Programming
Topics
Terminology and Notation
Network diagrams
Generic problems (TP, AP, SPP, STP, MF)
LP formulations
Finding solutions with Excel add-in
Network Optimization
Network flow programming (NFP) is a special
case of linear programming
Important to identify problems that can be
modeled as networks because:
(1) Network representations make
optimization models easier to visualize
and explain
(2) Very efficient algorithms are available
[-200]
[-200]
(6)
1
2
(7)
(3)
(4)
6
(6)
11
(5)
(7)
10
13
(2)
(6)
(5)
14
12
(7)
[-150]
(2)
[-300]
9
17
(2)
(5)
5
(4)
(4)
16
15
8
[200]
[-250]
[200]
Terminology
Nodes and arcs
Arc flow (variables)
Upper and lower bounds
Cost
Gains (and losses)
Shortest Path
Problem
Pure
Minimum
Cost
Flow
Problem
Generalized
Minimum
Cost
Flow
Problem
Maximum Flow
Problem
Linear
Program
Transportation Problem
We wish to ship goods (a single commodity) from
m warehouses to n destinations at minimum cost.
Warehouse i has si units available i = 1,,m and destination
j has a demand of dj, j = 1,,n .
Goal: Ship the goods from warehouses to destinations
at minimum cost.
Example:
Warehouse
Supply
San Francisco
350
Los Angeles
600
From/To
SF
LA
Markets
New York
Chicago
Austin
NY
2.5
--
Chicago
1.7
1.8
Demand
325
300
275
Austin
1.8
1.4
(M)
LA
[-325]
CHI
[-300]
AUS
[-275]
DUM
[-50]
(1.7)
(1.8)
SF
(0)
[600]
NY
(1.8)
(1.4)
(0)
Modeling Issues
Costs on arcs to dummy destination = 0
(In some settings it would be necessary
to include a nonzero warehousing cost.)
The objective coefficient on the LA NY arc is M.
This denotes a large value and effectively prohibits
use of this arc (could eliminate arc).
We are assured of integer solutions because
technological matrix A is totally unimodular.
(important in some applications)
Decision variables: xij = amount shipped from
warehouse i to destination j
Min
i =1 j =1
cijxij
s.t.
xij
j =1
i =1
xij = dj , j = 1,,n
Transportation Model
Change
E
F
G
H
I
J
Name:Trans_2x3
Objective Terms Solver:
Type: Trans
Ship. Cost:
1735 Type:
Goal: Min
Sup. Cost:
0 Sens.:
Objective:
1735
Dem. Rev.:
0 Integer:
Solve
Trans. Flows
1
2
3
Supply Data
Name
D1
D2
D3
Min.
Max.
1
S1
325
25
0
0
350
2
S2
0
275
275
0
600
Demand
Min.:
325
300
275
Data
Max: 10000 10000 10000
Revenue:
0
0
0
Received:
325
300
275
Trans. Costs
Name
1
S1
2
S2
1
D1
2.5
1000
2
D2
1.7
1.8
3
D3
1.8
1.4
Cost Shipped
0
350
0
550
K
L
Jensen Network
Linear
Yes
No
N
O
Ph. 1 Iter.
8
Total Iter.
9
Comp. Time 00:00
Status Optimal
Assignment Problem
Special case of transportation problem:
same number of sources and destinations
all supplies and demands = 1
Example
4 ships to transport 4 loads from single port
to 4 separate ports;
Each ship will carry exactly 1 load;
Associated shipping costs as shown.
Port/load
Ship
1
2
3
4
1
5
6
7
5
2
4
6
5
4
3
6
7
7
6
4
7
5
6
6
[1]
(5)
(4)
(6)
(7)
[-1]
(6)
(7)
(5)
[-1]
[-1]
[-1]
(6)
[1]
(7)
[1]
3
(5)
[1]
(5)
(7)
(6)
(4)
(6)
(6)
Example
(cij) = cost/length
2
(2)
(3)
(4)
[1]
(2)
(1)
(1)
(6)
[-1]
(7)
3
(2)
x12 = 1,
x 24 = 1,
Network Model
Change
E
F
Name: SP_9x6
Type: Net
Goal: Min
Objective:
9
J
K
L
Solver: Jensen Network
Type: Linear
Sens.: Yes
N
O
Ph. 1 Iter.
7
Total Iter.
7
Comp. Time 00:00
Status Optimal
Solve
Arc Data and Flows
Num. Name Flow Origin Term.
1
Arc1
1
1
2
2
Arc2
0
1
3
3
Arc3
0
3
2
4
Arc4
1
2
4
5
Arc5
0
2
5
6
Arc6
0
3
5
7
Arc7
0
5
4
8
Arc8
1
4
6
9
Arc9
0
5
6
Cost
4
6
2
2
1
2
1
3
7
Network Notation
A = set of Arcs, N = set of nodes
Forward Star for node i : FS(i ) = { (i, j ) : (i, j ) A }
Reverse Star for node i : RS(i ) = { (j,i ) : (j,i ) A }
FS(i )
RS(i )
cijxij
(i, j )A
s.t.
xij
xji
1, i = s
1, i = t
0, i N \ {s, t}
Min
s.t.
cijxij
(i,j )A
xij - xji =
(i, j )FS(i ) (j, i )RS(i )
m 1, i = s
1,
i N \ {s}
(2)
6
4
(4)
(3)
(1)
(6)
(i, j )P
Equivalent Formulation
(i, j )P
pij : P Path
Min - log
(i, j )P
pij : P Path
1
40
4
2
15
2
3
20
3
4
10
1
Stage 1
Stage 2
Stage 3
Stage 4
Stage 5
Example
2
(2)
4
(4)
(3)
(1)
(1)
(2)
1
(6)
(2)
(7)
5
Max-cut
Solution
[2] (2)
2
[0]
(1)
[0]
(2)
3
[xij]
(uij)
flow capacity
[2] (2)
[5] ()
Maximum flow = 5
MF Excel Solution
(j,i )RS(i )
xij uij
"(i,j ) A
Min-Cut Problem
Cut: A partition of the nodes into two sets S and T. The origin
node must be in S and the destination node must be in T.
S1
= {1}
T1
{2,3,4,5,6}
S2
= {1,2,3}
T2
{4,5,6}
S3
T3
{2,4,6}
{1,3,5}
V(S1,T1) = 10
V(S2,T2) = 5
V(S3,T3) = 14
If the reduced cost for xij has value 1 then arc (i,j ) has its
tail (i ) in S and its head (j ) in T.
(ii) Reduced costs are the shadow prices on the simple bound
constraint xij uij.
(iii) Value of another unit of capacity is 1 or 0 depending on
whether or not the arc is part of the bottleneck
Note that the sum of the arc capacities with reduced costs of 1
equals the max flow value.
Change
Name:MF_10x6
Type: Net
Goal: Max
Objective:
5
Solve
Arc Data and Flows
Num. Name Flow Origin Term. Upper
1
Arc1
3
1
2
4
2
Arc2
2
1
3
6
3
Arc3
0
3
2
2
4
Arc4
2
2
4
2
5
Arc5
1
2
5
1
6
Arc6
2
3
5
2
7
Arc7
0
5
4
1
8
Arc8
2
4
6
3
9
Arc9
3
5
6
7
10
Arc10
5
6
1 1E+10
Cost
0
0
0
0
0
0
0
0
0
1
MF Example
Name
Arc1 Flow
Arc2 Flow
Arc3 Flow
Arc4 Flow
Arc5 Flow
Arc6 Flow
Arc7 Flow
Arc8 Flow
Arc9 Flow
Arc10 Flow
Constraints
Cell
$N$9
$N$10
$N$11
$N$12
$N$13
$N$14
Name
Node1 Balance
Node2 Balance
Node3 Balance
Node4 Balance
Node5 Balance
Node6 Balance