112
Linear Programming: Chapter 13 Network Flows: Algorithms Robert J. Vanderbei May 21, 2000 Operations Research and Financial Engineering Princeton University Princeton, NJ 08544 http://www.princeton.edu/rvdb

Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

Linear Programming: Chapter 13Network Flows: Algorithms

Robert J. Vanderbei

May 21, 2000

Operations Research and Financial Engineering

Princeton University

Princeton, NJ 08544

http://www.princeton.edu/∼rvdb

Page 2: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

1 Agenda

• Primal Network Simplex Method

• Dual Network Simplex Method

• Two-Phase Network Simplex Method

• One-Phase Primal-Dual Network Simplex Method

• Planar Graphs

• Integrality Theorem

Page 3: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

1 Agenda

• Primal Network Simplex Method

• Dual Network Simplex Method

• Two-Phase Network Simplex Method

• One-Phase Primal-Dual Network Simplex Method

• Planar Graphs

• Integrality Theorem

Page 4: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

1 Agenda

• Primal Network Simplex Method

• Dual Network Simplex Method

• Two-Phase Network Simplex Method

• One-Phase Primal-Dual Network Simplex Method

• Planar Graphs

• Integrality Theorem

Page 5: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

1 Agenda

• Primal Network Simplex Method

• Dual Network Simplex Method

• Two-Phase Network Simplex Method

• One-Phase Primal-Dual Network Simplex Method

• Planar Graphs

• Integrality Theorem

Page 6: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

1 Agenda

• Primal Network Simplex Method

• Dual Network Simplex Method

• Two-Phase Network Simplex Method

• One-Phase Primal-Dual Network Simplex Method

• Planar Graphs

• Integrality Theorem

Page 7: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

1 Agenda

• Primal Network Simplex Method

• Dual Network Simplex Method

• Two-Phase Network Simplex Method

• One-Phase Primal-Dual Network Simplex Method

• Planar Graphs

• Integrality Theorem

Page 8: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

1 Agenda

• Primal Network Simplex Method

• Dual Network Simplex Method

• Two-Phase Network Simplex Method

• One-Phase Primal-Dual Network Simplex Method

• Planar Graphs

• Integrality Theorem

Page 9: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

2 Primal Network Simplex Method

Used when all primal flows are nonnegative (i.e., primal feasible).

Entering arc: (g,e)

Pivot Rules:

Entering arc: Pick a nontree arc hav-

ing a negative (i.e. infeasible) dual

slack.

Leaving arc: (d,g) Leaving arc: Add entering arc to

make a cycle.

Leaving arc is an arc on the cycle,

pointing in the opposite direction to

the entering arc, and

of all such arcs, it is the one with the

smallest primal flow.

Page 10: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

2 Primal Network Simplex Method

Used when all primal flows are nonnegative (i.e., primal feasible).

Entering arc: (g,e)

Pivot Rules:

Entering arc: Pick a nontree arc hav-

ing a negative (i.e. infeasible) dual

slack.

Leaving arc: (d,g) Leaving arc: Add entering arc to

make a cycle.

Leaving arc is an arc on the cycle,

pointing in the opposite direction to

the entering arc, and

of all such arcs, it is the one with the

smallest primal flow.

Page 11: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

2 Primal Network Simplex Method

Used when all primal flows are nonnegative (i.e., primal feasible).

Entering arc: (g,e)

Pivot Rules:

Entering arc: Pick a nontree arc hav-

ing a negative (i.e. infeasible) dual

slack.

Leaving arc: (d,g) Leaving arc: Add entering arc to

make a cycle.

Leaving arc is an arc on the cycle,

pointing in the opposite direction to

the entering arc, and

of all such arcs, it is the one with the

smallest primal flow.

Page 12: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

2 Primal Network Simplex Method

Used when all primal flows are nonnegative (i.e., primal feasible).

Entering arc: (g,e)

Pivot Rules:

Entering arc: Pick a nontree arc hav-

ing a negative (i.e. infeasible) dual

slack.

Leaving arc: (d,g) Leaving arc: Add entering arc to

make a cycle.

Leaving arc is an arc on the cycle,

pointing in the opposite direction to

the entering arc, and

of all such arcs, it is the one with the

smallest primal flow.

Page 13: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

2 Primal Network Simplex Method

Used when all primal flows are nonnegative (i.e., primal feasible).

Entering arc: (g,e)

Pivot Rules:

Entering arc: Pick a nontree arc hav-

ing a negative (i.e. infeasible) dual

slack.

Leaving arc: (d,g) Leaving arc: Add entering arc to

make a cycle.

Leaving arc is an arc on the cycle,

pointing in the opposite direction to

the entering arc, and

of all such arcs, it is the one with the

smallest primal flow.

Page 14: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

2 Primal Network Simplex Method

Used when all primal flows are nonnegative (i.e., primal feasible).

Entering arc: (g,e)

Pivot Rules:

Entering arc: Pick a nontree arc hav-

ing a negative (i.e. infeasible) dual

slack.

Leaving arc: (d,g) Leaving arc: Add entering arc to

make a cycle.

Leaving arc is an arc on the cycle,

pointing in the opposite direction to

the entering arc, and

of all such arcs, it is the one with the

smallest primal flow.

Page 15: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

2 Primal Network Simplex Method

Used when all primal flows are nonnegative (i.e., primal feasible).

Entering arc: (g,e)

Pivot Rules:

Entering arc: Pick a nontree arc hav-

ing a negative (i.e. infeasible) dual

slack.

Leaving arc: (d,g) Leaving arc: Add entering arc to

make a cycle.

Leaving arc is an arc on the cycle,

pointing in the opposite direction to

the entering arc, and

of all such arcs, it is the one with the

smallest primal flow.

Page 16: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

2 Primal Network Simplex Method

Used when all primal flows are nonnegative (i.e., primal feasible).

Entering arc: (g,e)

Pivot Rules:

Entering arc: Pick a nontree arc hav-

ing a negative (i.e. infeasible) dual

slack.

Leaving arc: (d,g) Leaving arc: Add entering arc to

make a cycle.

Leaving arc is an arc on the cycle,

pointing in the opposite direction to

the entering arc, and

of all such arcs, it is the one with the

smallest primal flow.

Page 17: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

2 Primal Network Simplex Method

Used when all primal flows are nonnegative (i.e., primal feasible).

Entering arc: (g,e)

Pivot Rules:

Entering arc: Pick a nontree arc hav-

ing a negative (i.e. infeasible) dual

slack.

Leaving arc: (d,g) Leaving arc: Add entering arc to

make a cycle.

Leaving arc is an arc on the cycle,

pointing in the opposite direction to

the entering arc, and

of all such arcs, it is the one with the

smallest primal flow.

Page 18: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

3 Primal Method—Second Pivot

Entering arc: (d,e)

Leaving arc: (d,a)

Explanation of leaving arc rule:

• Increase flow on (d,e).

• Each unit increase produces a unitincrease on arcs pointing in thesame direction.

• Each unit increase produces a unitdecrease on arcs pointing in the op-posite direction.

• The first to reach zero will be the onepointing in the opposite direction andhaving the smallest flow among allsuch arcs.

Page 19: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

3 Primal Method—Second Pivot

Entering arc: (d,e)

Leaving arc: (d,a)

Explanation of leaving arc rule:

• Increase flow on (d,e).

• Each unit increase produces a unitincrease on arcs pointing in thesame direction.

• Each unit increase produces a unitdecrease on arcs pointing in the op-posite direction.

• The first to reach zero will be the onepointing in the opposite direction andhaving the smallest flow among allsuch arcs.

Page 20: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

3 Primal Method—Second Pivot

Entering arc: (d,e)

Leaving arc: (d,a)

Explanation of leaving arc rule:

• Increase flow on (d,e).

• Each unit increase produces a unitincrease on arcs pointing in thesame direction.

• Each unit increase produces a unitdecrease on arcs pointing in the op-posite direction.

• The first to reach zero will be the onepointing in the opposite direction andhaving the smallest flow among allsuch arcs.

Page 21: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

3 Primal Method—Second Pivot

Entering arc: (d,e)

Leaving arc: (d,a)

Explanation of leaving arc rule:

• Increase flow on (d,e).

• Each unit increase produces a unitincrease on arcs pointing in thesame direction.

• Each unit increase produces a unitdecrease on arcs pointing in the op-posite direction.

• The first to reach zero will be the onepointing in the opposite direction andhaving the smallest flow among allsuch arcs.

Page 22: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

3 Primal Method—Second Pivot

Entering arc: (d,e)

Leaving arc: (d,a)

Explanation of leaving arc rule:

• Increase flow on (d,e).

• Each unit increase produces a unitincrease on arcs pointing in thesame direction.

• Each unit increase produces a unitdecrease on arcs pointing in the op-posite direction.

• The first to reach zero will be the onepointing in the opposite direction andhaving the smallest flow among allsuch arcs.

Page 23: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

3 Primal Method—Second Pivot

Entering arc: (d,e)

Leaving arc: (d,a)

Explanation of leaving arc rule:

• Increase flow on (d,e).

• Each unit increase produces a unitincrease on arcs pointing in thesame direction.

• Each unit increase produces a unitdecrease on arcs pointing in the op-posite direction.

• The first to reach zero will be the onepointing in the opposite direction andhaving the smallest flow among allsuch arcs.

Page 24: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

3 Primal Method—Second Pivot

Entering arc: (d,e)

Leaving arc: (d,a)

Explanation of leaving arc rule:

• Increase flow on (d,e).

• Each unit increase produces a unitincrease on arcs pointing in thesame direction.

• Each unit increase produces a unitdecrease on arcs pointing in the op-posite direction.

• The first to reach zero will be the onepointing in the opposite direction andhaving the smallest flow among allsuch arcs.

Page 29: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

5 Dual Network Simplex Method

Used when all dual slacks are nonnegative (i.e., dual feasible).

Leaving arc: (g,a)

Pivot Rules:

Leaving arc: Pick a tree arc having anegative (i.e. infeasible) primal flow.

Entering arc: (d,e)Entering arc: Remove leaving arc tosplit the spanning tree into two subtrees.Entering arc is an arc reconnecting thespanning tree with an arc in the oppositedirection, and, of all such arcs, is the onewith the smallest dual slack.

Page 30: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

5 Dual Network Simplex Method

Used when all dual slacks are nonnegative (i.e., dual feasible).

Leaving arc: (g,a)

Pivot Rules:

Leaving arc: Pick a tree arc having anegative (i.e. infeasible) primal flow.

Entering arc: (d,e)Entering arc: Remove leaving arc tosplit the spanning tree into two subtrees.Entering arc is an arc reconnecting thespanning tree with an arc in the oppositedirection, and, of all such arcs, is the onewith the smallest dual slack.

Page 31: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

5 Dual Network Simplex Method

Used when all dual slacks are nonnegative (i.e., dual feasible).

Leaving arc: (g,a)

Pivot Rules:

Leaving arc: Pick a tree arc having anegative (i.e. infeasible) primal flow.

Entering arc: (d,e)Entering arc: Remove leaving arc tosplit the spanning tree into two subtrees.Entering arc is an arc reconnecting thespanning tree with an arc in the oppositedirection, and, of all such arcs, is the onewith the smallest dual slack.

Page 32: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

5 Dual Network Simplex Method

Used when all dual slacks are nonnegative (i.e., dual feasible).

Leaving arc: (g,a)

Pivot Rules:

Leaving arc: Pick a tree arc having anegative (i.e. infeasible) primal flow.

Entering arc: (d,e)Entering arc: Remove leaving arc tosplit the spanning tree into two subtrees.Entering arc is an arc reconnecting thespanning tree with an arc in the oppositedirection, and, of all such arcs, is the onewith the smallest dual slack.

Page 33: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

5 Dual Network Simplex Method

Used when all dual slacks are nonnegative (i.e., dual feasible).

Leaving arc: (g,a)

Pivot Rules:

Leaving arc: Pick a tree arc having anegative (i.e. infeasible) primal flow.

Entering arc: (d,e)Entering arc: Remove leaving arc tosplit the spanning tree into two subtrees.Entering arc is an arc reconnecting thespanning tree with an arc in the oppositedirection, and, of all such arcs, is the onewith the smallest dual slack.

Page 34: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

5 Dual Network Simplex Method

Used when all dual slacks are nonnegative (i.e., dual feasible).

Leaving arc: (g,a)

Pivot Rules:

Leaving arc: Pick a tree arc having anegative (i.e. infeasible) primal flow.

Entering arc: (d,e)Entering arc: Remove leaving arc tosplit the spanning tree into two subtrees.Entering arc is an arc reconnecting thespanning tree with an arc in the oppositedirection, and, of all such arcs, is the onewith the smallest dual slack.

Page 35: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

6 Dual Network Simplex Method—Second Pivot

Leaving arc: (d,a)

Entering arc: (b,c)

Optimal!

Page 36: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

6 Dual Network Simplex Method—Second Pivot

Leaving arc: (d,a)

Entering arc: (b,c)

Optimal!

Page 37: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

6 Dual Network Simplex Method—Second Pivot

Leaving arc: (d,a)

Entering arc: (b,c)

Optimal!

Page 38: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

6 Dual Network Simplex Method—Second Pivot

Leaving arc: (d,a)

Entering arc: (b,c)

Optimal!

Page 39: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

7 Explanation of Entering Arc Rule

Recall initial tree solution:

Leaving arc: (g,a)

Entering arc: (d,e)

• Remove leaving arc. Need to find areconnecting arc.

• Consider some reconnecting arc. Addflow to it.

– If it reconnects in the same di-rection as leaving arc, such as(f,d), then flow on leaving arc de-creases.

– Therefore, leaving arc’s flow can’tbe raised to zero.

– Therefore, leaving arc can’t leave.No good.

• Consider a potential arc reconnecting in the opposite direction, say (b,c).

– Its dual slack will drop to zero.

– All other reconnecting arcs pointing in the same direction will drop by the sameamount.

– To maintain nonnegativity of all the others, must pick the one that drops the least.

Page 40: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

7 Explanation of Entering Arc Rule

Recall initial tree solution:

Leaving arc: (g,a)

Entering arc: (d,e)

• Remove leaving arc. Need to find areconnecting arc.

• Consider some reconnecting arc. Addflow to it.

– If it reconnects in the same di-rection as leaving arc, such as(f,d), then flow on leaving arc de-creases.

– Therefore, leaving arc’s flow can’tbe raised to zero.

– Therefore, leaving arc can’t leave.No good.

• Consider a potential arc reconnecting in the opposite direction, say (b,c).

– Its dual slack will drop to zero.

– All other reconnecting arcs pointing in the same direction will drop by the sameamount.

– To maintain nonnegativity of all the others, must pick the one that drops the least.

Page 41: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

7 Explanation of Entering Arc Rule

Recall initial tree solution:

Leaving arc: (g,a)

Entering arc: (d,e)

• Remove leaving arc. Need to find areconnecting arc.

• Consider some reconnecting arc. Addflow to it.

– If it reconnects in the same di-rection as leaving arc, such as(f,d), then flow on leaving arc de-creases.

– Therefore, leaving arc’s flow can’tbe raised to zero.

– Therefore, leaving arc can’t leave.No good.

• Consider a potential arc reconnecting in the opposite direction, say (b,c).

– Its dual slack will drop to zero.

– All other reconnecting arcs pointing in the same direction will drop by the sameamount.

– To maintain nonnegativity of all the others, must pick the one that drops the least.

Page 42: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

7 Explanation of Entering Arc Rule

Recall initial tree solution:

Leaving arc: (g,a)

Entering arc: (d,e)

• Remove leaving arc. Need to find areconnecting arc.

• Consider some reconnecting arc. Addflow to it.

– If it reconnects in the same di-rection as leaving arc, such as(f,d), then flow on leaving arc de-creases.

– Therefore, leaving arc’s flow can’tbe raised to zero.

– Therefore, leaving arc can’t leave.No good.

• Consider a potential arc reconnecting in the opposite direction, say (b,c).

– Its dual slack will drop to zero.

– All other reconnecting arcs pointing in the same direction will drop by the sameamount.

– To maintain nonnegativity of all the others, must pick the one that drops the least.

Page 43: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

7 Explanation of Entering Arc Rule

Recall initial tree solution:

Leaving arc: (g,a)

Entering arc: (d,e)

• Remove leaving arc. Need to find areconnecting arc.

• Consider some reconnecting arc. Addflow to it.

– If it reconnects in the same di-rection as leaving arc, such as(f,d), then flow on leaving arc de-creases.

– Therefore, leaving arc’s flow can’tbe raised to zero.

– Therefore, leaving arc can’t leave.No good.

• Consider a potential arc reconnecting in the opposite direction, say (b,c).

– Its dual slack will drop to zero.

– All other reconnecting arcs pointing in the same direction will drop by the sameamount.

– To maintain nonnegativity of all the others, must pick the one that drops the least.

Page 44: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

7 Explanation of Entering Arc Rule

Recall initial tree solution:

Leaving arc: (g,a)

Entering arc: (d,e)

• Remove leaving arc. Need to find areconnecting arc.

• Consider some reconnecting arc. Addflow to it.

– If it reconnects in the same di-rection as leaving arc, such as(f,d), then flow on leaving arc de-creases.

– Therefore, leaving arc’s flow can’tbe raised to zero.

– Therefore, leaving arc can’t leave.No good.

• Consider a potential arc reconnecting in the opposite direction, say (b,c).

– Its dual slack will drop to zero.

– All other reconnecting arcs pointing in the same direction will drop by the sameamount.

– To maintain nonnegativity of all the others, must pick the one that drops the least.

Page 45: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

7 Explanation of Entering Arc Rule

Recall initial tree solution:

Leaving arc: (g,a)

Entering arc: (d,e)

• Remove leaving arc. Need to find areconnecting arc.

• Consider some reconnecting arc. Addflow to it.

– If it reconnects in the same di-rection as leaving arc, such as(f,d), then flow on leaving arc de-creases.

– Therefore, leaving arc’s flow can’tbe raised to zero.

– Therefore, leaving arc can’t leave.No good.

• Consider a potential arc reconnecting in the opposite direction, say (b,c).

– Its dual slack will drop to zero.

– All other reconnecting arcs pointing in the same direction will drop by the sameamount.

– To maintain nonnegativity of all the others, must pick the one that drops the least.

Page 46: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

7 Explanation of Entering Arc Rule

Recall initial tree solution:

Leaving arc: (g,a)

Entering arc: (d,e)

• Remove leaving arc. Need to find areconnecting arc.

• Consider some reconnecting arc. Addflow to it.

– If it reconnects in the same di-rection as leaving arc, such as(f,d), then flow on leaving arc de-creases.

– Therefore, leaving arc’s flow can’tbe raised to zero.

– Therefore, leaving arc can’t leave.No good.

• Consider a potential arc reconnecting in the opposite direction, say (b,c).

– Its dual slack will drop to zero.

– All other reconnecting arcs pointing in the same direction will drop by the sameamount.

– To maintain nonnegativity of all the others, must pick the one that drops the least.

Page 47: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

7 Explanation of Entering Arc Rule

Recall initial tree solution:

Leaving arc: (g,a)

Entering arc: (d,e)

• Remove leaving arc. Need to find areconnecting arc.

• Consider some reconnecting arc. Addflow to it.

– If it reconnects in the same di-rection as leaving arc, such as(f,d), then flow on leaving arc de-creases.

– Therefore, leaving arc’s flow can’tbe raised to zero.

– Therefore, leaving arc can’t leave.No good.

• Consider a potential arc reconnecting in the opposite direction, say (b,c).

– Its dual slack will drop to zero.

– All other reconnecting arcs pointing in the same direction will drop by the sameamount.

– To maintain nonnegativity of all the others, must pick the one that drops the least.

Page 48: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

7 Explanation of Entering Arc Rule

Recall initial tree solution:

Leaving arc: (g,a)

Entering arc: (d,e)

• Remove leaving arc. Need to find areconnecting arc.

• Consider some reconnecting arc. Addflow to it.

– If it reconnects in the same di-rection as leaving arc, such as(f,d), then flow on leaving arc de-creases.

– Therefore, leaving arc’s flow can’tbe raised to zero.

– Therefore, leaving arc can’t leave.No good.

• Consider a potential arc reconnecting in the opposite direction, say (b,c).

– Its dual slack will drop to zero.

– All other reconnecting arcs pointing in the same direction will drop by the sameamount.

– To maintain nonnegativity of all the others, must pick the one that drops the least.

Page 49: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

8 Two-Phase Network Simplex Method

Example.

• Turn off display of dual slacks.

• Turn on display of artificial dual

slacks.

Page 50: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

8 Two-Phase Network Simplex Method

Example.

• Turn off display of dual slacks.

• Turn on display of artificial dual

slacks.

Page 51: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

8 Two-Phase Network Simplex Method

Example.

• Turn off display of dual slacks.

• Turn on display of artificial dual

slacks.

Page 52: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

9 Two-Phase Method–First Pivot

Use dual network simplex method.

Leaving arc: (d,e) Entering arc: (e,f)

Dual Feasible!

Page 53: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

9 Two-Phase Method–First Pivot

Use dual network simplex method.

Leaving arc: (d,e) Entering arc: (e,f)

Dual Feasible!

Page 54: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

9 Two-Phase Method–First Pivot

Use dual network simplex method.

Leaving arc: (d,e) Entering arc: (e,f)

Dual Feasible!

Page 55: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

9 Two-Phase Method–First Pivot

Use dual network simplex method.

Leaving arc: (d,e) Entering arc: (e,f)

Dual Feasible!

Page 56: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

10 Two-Phase Method–Phase II

• Turn off display of artificial dual

slacks.

• Turn on display of dual slacks.

Page 57: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

10 Two-Phase Method–Phase II

• Turn off display of artificial dual

slacks.

• Turn on display of dual slacks.

Page 58: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

10 Two-Phase Method–Phase II

• Turn off display of artificial dual

slacks.

• Turn on display of dual slacks.

Page 62: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

12 Two-Phase Method–Third Pivot

Entering arc: (f,c)

Leaving arc: (a,f)

Optimal!

Page 63: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

12 Two-Phase Method–Third Pivot

Entering arc: (f,c)

Leaving arc: (a,f)

Optimal!

Page 64: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

12 Two-Phase Method–Third Pivot

Entering arc: (f,c)

Leaving arc: (a,f)

Optimal!

Page 65: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

12 Two-Phase Method–Third Pivot

Entering arc: (f,c)

Leaving arc: (a,f)

Optimal!

Page 66: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

13 Online Network Simplex Pivot Tool

Click here (or on any displayed network) to try out the online network simplex pivot tool.

Page 67: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

14 One-Phase Primal-Dual Method

• Artificial flows and slacks are multiplied

by a parameter µ.

• In the Figure, 6, 1 represents 6 + 1µ.

• Question: For which µ values is dictio-

nary optimal?

• Answer:

• That is, 9 ≤ µ <

∞.

• Lower bound on µ

is generated by arc(g,d).

• Therefore, (g,d) en-ters.

• Arc (a,d) leaves.

Page 68: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

14 One-Phase Primal-Dual Method

• Artificial flows and slacks are multiplied

by a parameter µ.

• In the Figure, 6, 1 represents 6 + 1µ.

• Question: For which µ values is dictio-

nary optimal?

• Answer:

• That is, 9 ≤ µ <

∞.

• Lower bound on µ

is generated by arc(g,d).

• Therefore, (g,d) en-ters.

• Arc (a,d) leaves.

Page 69: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

14 One-Phase Primal-Dual Method

• Artificial flows and slacks are multiplied

by a parameter µ.

• In the Figure, 6, 1 represents 6 + 1µ.

• Question: For which µ values is dictio-

nary optimal?

• Answer:

• That is, 9 ≤ µ <

∞.

• Lower bound on µ

is generated by arc(g,d).

• Therefore, (g,d) en-ters.

• Arc (a,d) leaves.

Page 70: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

14 One-Phase Primal-Dual Method

• Artificial flows and slacks are multiplied

by a parameter µ.

• In the Figure, 6, 1 represents 6 + 1µ.

• Question: For which µ values is dictio-

nary optimal?

• Answer:

• That is, 9 ≤ µ <

∞.

• Lower bound on µ

is generated by arc(g,d).

• Therefore, (g,d) en-ters.

• Arc (a,d) leaves.

Page 71: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

14 One-Phase Primal-Dual Method

• Artificial flows and slacks are multiplied

by a parameter µ.

• In the Figure, 6, 1 represents 6 + 1µ.

• Question: For which µ values is dictio-

nary optimal?

• Answer:

• That is, 9 ≤ µ <

∞.

• Lower bound on µ

is generated by arc(g,d).

• Therefore, (g,d) en-ters.

• Arc (a,d) leaves.

Page 72: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

14 One-Phase Primal-Dual Method

• Artificial flows and slacks are multiplied

by a parameter µ.

• In the Figure, 6, 1 represents 6 + 1µ.

• Question: For which µ values is dictio-

nary optimal?

• Answer:

1 + µ ≥ 0 (a, b) µ ≥ 0 (f, b)

−2 + µ ≥ 0 (a, c) 20 + µ ≥ 0 (c, e)

µ ≥ 0 (a, d) −1 + µ ≥ 0 (f, c)

µ ≥ 0 (e, a) −9 + µ ≥ 0 (g, d)

−3 + µ ≥ 0 (a, g) 12 + µ ≥ 0 (f, e)

µ ≥ 0 (b, c) 6 + µ ≥ 0 (g, e)

3 + µ ≥ 0 (b, d)

• That is, 9 ≤ µ <

∞.

• Lower bound on µ

is generated by arc(g,d).

• Therefore, (g,d) en-ters.

• Arc (a,d) leaves.

Page 73: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

14 One-Phase Primal-Dual Method

• Artificial flows and slacks are multiplied

by a parameter µ.

• In the Figure, 6, 1 represents 6 + 1µ.

• Question: For which µ values is dictio-

nary optimal?

• Answer:

1 + µ ≥ 0 (a, b) µ ≥ 0 (f, b)

−2 + µ ≥ 0 (a, c) 20 + µ ≥ 0 (c, e)

µ ≥ 0 (a, d) −1 + µ ≥ 0 (f, c)

µ ≥ 0 (e, a) −9 + µ ≥ 0 (g, d)

−3 + µ ≥ 0 (a, g) 12 + µ ≥ 0 (f, e)

µ ≥ 0 (b, c) 6 + µ ≥ 0 (g, e)

3 + µ ≥ 0 (b, d)

• That is, 9 ≤ µ <

∞.

• Lower bound on µ

is generated by arc(g,d).

• Therefore, (g,d) en-ters.

• Arc (a,d) leaves.

Page 74: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

14 One-Phase Primal-Dual Method

• Artificial flows and slacks are multiplied

by a parameter µ.

• In the Figure, 6, 1 represents 6 + 1µ.

• Question: For which µ values is dictio-

nary optimal?

• Answer:

1 + µ ≥ 0 (a, b) µ ≥ 0 (f, b)

−2 + µ ≥ 0 (a, c) 20 + µ ≥ 0 (c, e)

µ ≥ 0 (a, d) −1 + µ ≥ 0 (f, c)

µ ≥ 0 (e, a) −9 + µ ≥ 0 (g, d)

−3 + µ ≥ 0 (a, g) 12 + µ ≥ 0 (f, e)

µ ≥ 0 (b, c) 6 + µ ≥ 0 (g, e)

3 + µ ≥ 0 (b, d)

• That is, 9 ≤ µ <

∞.

• Lower bound on µ

is generated by arc(g,d).

• Therefore, (g,d) en-ters.

• Arc (a,d) leaves.

Page 75: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

14 One-Phase Primal-Dual Method

• Artificial flows and slacks are multiplied

by a parameter µ.

• In the Figure, 6, 1 represents 6 + 1µ.

• Question: For which µ values is dictio-

nary optimal?

• Answer:

1 + µ ≥ 0 (a, b) µ ≥ 0 (f, b)

−2 + µ ≥ 0 (a, c) 20 + µ ≥ 0 (c, e)

µ ≥ 0 (a, d) −1 + µ ≥ 0 (f, c)

µ ≥ 0 (e, a) −9 + µ ≥ 0 (g, d)

−3 + µ ≥ 0 (a, g) 12 + µ ≥ 0 (f, e)

µ ≥ 0 (b, c) 6 + µ ≥ 0 (g, e)

3 + µ ≥ 0 (b, d)

• That is, 9 ≤ µ <

∞.

• Lower bound on µ

is generated by arc(g,d).

• Therefore, (g,d) en-ters.

• Arc (a,d) leaves.

Page 76: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

14 One-Phase Primal-Dual Method

• Artificial flows and slacks are multiplied

by a parameter µ.

• In the Figure, 6, 1 represents 6 + 1µ.

• Question: For which µ values is dictio-

nary optimal?

• Answer:

1 + µ ≥ 0 (a, b) µ ≥ 0 (f, b)

−2 + µ ≥ 0 (a, c) 20 + µ ≥ 0 (c, e)

µ ≥ 0 (a, d) −1 + µ ≥ 0 (f, c)

µ ≥ 0 (e, a) −9 + µ ≥ 0 (g, d)

−3 + µ ≥ 0 (a, g) 12 + µ ≥ 0 (f, e)

µ ≥ 0 (b, c) 6 + µ ≥ 0 (g, e)

3 + µ ≥ 0 (b, d)

• That is, 9 ≤ µ <

∞.

• Lower bound on µ

is generated by arc(g,d).

• Therefore, (g,d) en-ters.

• Arc (a,d) leaves.

Page 77: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

15 Second Iteration

• Range of µ values:

2 ≤ µ ≤ 9.

• Entering arc: (a,c)

• Leaving arc: (b,c)

New tree:

Page 78: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

15 Second Iteration

• Range of µ values:

2 ≤ µ ≤ 9.

• Entering arc: (a,c)

• Leaving arc: (b,c)

New tree:

Page 79: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

15 Second Iteration

• Range of µ values:

2 ≤ µ ≤ 9.

• Entering arc: (a,c)

• Leaving arc: (b,c)

New tree:

Page 80: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

15 Second Iteration

• Range of µ values:

2 ≤ µ ≤ 9.

• Entering arc: (a,c)

• Leaving arc: (b,c)

New tree:

Page 81: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

15 Second Iteration

• Range of µ values:

2 ≤ µ ≤ 9.

• Entering arc: (a,c)

• Leaving arc: (b,c)

New tree:

Page 82: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

15 Second Iteration

• Range of µ values:

2 ≤ µ ≤ 9.

• Entering arc: (a,c)

• Leaving arc: (b,c)

New tree:

Page 83: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

16 Third Iteration

• Range of µ values:

1.5 ≤ µ ≤ 2.

• Leaving arc: (a,g)

• Entering arc: (g,e)

New tree:

Page 84: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

16 Third Iteration

• Range of µ values:

1.5 ≤ µ ≤ 2.

• Leaving arc: (a,g)

• Entering arc: (g,e)

New tree:

Page 85: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

16 Third Iteration

• Range of µ values:

1.5 ≤ µ ≤ 2.

• Leaving arc: (a,g)

• Entering arc: (g,e)

New tree:

Page 86: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

16 Third Iteration

• Range of µ values:

1.5 ≤ µ ≤ 2.

• Leaving arc: (a,g)

• Entering arc: (g,e)

New tree:

Page 87: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

16 Third Iteration

• Range of µ values:

1.5 ≤ µ ≤ 2.

• Leaving arc: (a,g)

• Entering arc: (g,e)

New tree:

Page 88: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

16 Third Iteration

• Range of µ values:

1.5 ≤ µ ≤ 2.

• Leaving arc: (a,g)

• Entering arc: (g,e)

New tree:

Page 89: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

17 Fourth Iteration

• Range of µ values:

1 ≤ µ ≤ 1.5.

• A tie:

– Arc (f,b) enters, or

– Arc (f,c) leaves.

• Decide arbitrarily:

– Leaving arc: (f,c)

– Entering arc: (f,b)

Page 90: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

17 Fourth Iteration

• Range of µ values:

1 ≤ µ ≤ 1.5.

• A tie:

– Arc (f,b) enters, or

– Arc (f,c) leaves.

• Decide arbitrarily:

– Leaving arc: (f,c)

– Entering arc: (f,b)

Page 91: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

17 Fourth Iteration

• Range of µ values:

1 ≤ µ ≤ 1.5.

• A tie:

– Arc (f,b) enters, or

– Arc (f,c) leaves.

• Decide arbitrarily:

– Leaving arc: (f,c)

– Entering arc: (f,b)

Page 92: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

17 Fourth Iteration

• Range of µ values:

1 ≤ µ ≤ 1.5.

• A tie:

– Arc (f,b) enters, or

– Arc (f,c) leaves.

• Decide arbitrarily:

– Leaving arc: (f,c)

– Entering arc: (f,b)

Page 93: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

17 Fourth Iteration

• Range of µ values:

1 ≤ µ ≤ 1.5.

• A tie:

– Arc (f,b) enters, or

– Arc (f,c) leaves.

• Decide arbitrarily:

– Leaving arc: (f,c)

– Entering arc: (f,b)

Page 94: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

17 Fourth Iteration

• Range of µ values:

1 ≤ µ ≤ 1.5.

• A tie:

– Arc (f,b) enters, or

– Arc (f,c) leaves.

• Decide arbitrarily:

– Leaving arc: (f,c)

– Entering arc: (f,b)

Page 95: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

17 Fourth Iteration

• Range of µ values:

1 ≤ µ ≤ 1.5.

• A tie:

– Arc (f,b) enters, or

– Arc (f,c) leaves.

• Decide arbitrarily:

– Leaving arc: (f,c)

– Entering arc: (f,b)

Page 96: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

17 Fourth Iteration

• Range of µ values:

1 ≤ µ ≤ 1.5.

• A tie:

– Arc (f,b) enters, or

– Arc (f,c) leaves.

• Decide arbitrarily:

– Leaving arc: (f,c)

– Entering arc: (f,b)

Page 97: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

18 Fifth Iteration

• Range of µ val-

ues: 1 ≤ µ ≤ 1.

• Leaving arc: (f,b)

• Nothing to Enter.

Primal Infeasible!

Page 98: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

18 Fifth Iteration

• Range of µ val-

ues: 1 ≤ µ ≤ 1.

• Leaving arc: (f,b)

• Nothing to Enter.

Primal Infeasible!

Page 99: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

18 Fifth Iteration

• Range of µ val-

ues: 1 ≤ µ ≤ 1.

• Leaving arc: (f,b)

• Nothing to Enter.

Primal Infeasible!

Page 100: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

18 Fifth Iteration

• Range of µ val-

ues: 1 ≤ µ ≤ 1.

• Leaving arc: (f,b)

• Nothing to Enter.

Primal Infeasible!

Page 101: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

19 Online Network Simplex Pivot Tool

Click here (or on any displayed network) to try out the online network simplex pivot tool.

Page 102: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

20 Planar Networks

Definition. Network is called

planar if can be drawn on

a plane without intersecting

arcs.

Theorem. Every planar net-

work has a dual—dual nodes

are faces of primal network.

df

e

ab

c

B

C

D

A

Notes:

• Dual node A is “node at infinity”.

• Primal spanning tree shown in red.

• Dual spanning tree shown in blue (don’t forget node A).

Theorem. A dual pivot on the primal network is exactly a primal pivot on the dual network.

Page 103: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

20 Planar Networks

Definition. Network is called

planar if can be drawn on

a plane without intersecting

arcs.

Theorem. Every planar net-

work has a dual—dual nodes

are faces of primal network.

df

e

ab

c

B

C

D

A

Notes:

• Dual node A is “node at infinity”.

• Primal spanning tree shown in red.

• Dual spanning tree shown in blue (don’t forget node A).

Theorem. A dual pivot on the primal network is exactly a primal pivot on the dual network.

Page 104: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

20 Planar Networks

Definition. Network is called

planar if can be drawn on

a plane without intersecting

arcs.

Theorem. Every planar net-

work has a dual—dual nodes

are faces of primal network.

df

e

ab

c

B

C

D

A

Notes:

• Dual node A is “node at infinity”.

• Primal spanning tree shown in red.

• Dual spanning tree shown in blue (don’t forget node A).

Theorem. A dual pivot on the primal network is exactly a primal pivot on the dual network.

Page 105: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

20 Planar Networks

Definition. Network is called

planar if can be drawn on

a plane without intersecting

arcs.

Theorem. Every planar net-

work has a dual—dual nodes

are faces of primal network.

df

e

ab

c

B

C

D

A

Notes:

• Dual node A is “node at infinity”.

• Primal spanning tree shown in red.

• Dual spanning tree shown in blue (don’t forget node A).

Theorem. A dual pivot on the primal network is exactly a primal pivot on the dual network.

Page 106: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

20 Planar Networks

Definition. Network is called

planar if can be drawn on

a plane without intersecting

arcs.

Theorem. Every planar net-

work has a dual—dual nodes

are faces of primal network.

df

e

ab

c

B

C

D

A

Notes:

• Dual node A is “node at infinity”.

• Primal spanning tree shown in red.

• Dual spanning tree shown in blue (don’t forget node A).

Theorem. A dual pivot on the primal network is exactly a primal pivot on the dual network.

Page 107: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

20 Planar Networks

Definition. Network is called

planar if can be drawn on

a plane without intersecting

arcs.

Theorem. Every planar net-

work has a dual—dual nodes

are faces of primal network.

df

e

ab

c

B

C

D

A

Notes:

• Dual node A is “node at infinity”.

• Primal spanning tree shown in red.

• Dual spanning tree shown in blue (don’t forget node A).

Theorem. A dual pivot on the primal network is exactly a primal pivot on the dual network.

Page 108: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

20 Planar Networks

Definition. Network is called

planar if can be drawn on

a plane without intersecting

arcs.

Theorem. Every planar net-

work has a dual—dual nodes

are faces of primal network.

df

e

ab

c

B

C

D

A

Notes:

• Dual node A is “node at infinity”.

• Primal spanning tree shown in red.

• Dual spanning tree shown in blue (don’t forget node A).

Theorem. A dual pivot on the primal network is exactly a primal pivot on the dual network.

Page 109: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

20 Planar Networks

Definition. Network is called

planar if can be drawn on

a plane without intersecting

arcs.

Theorem. Every planar net-

work has a dual—dual nodes

are faces of primal network.

df

e

ab

c

B

C

D

A

Notes:

• Dual node A is “node at infinity”.

• Primal spanning tree shown in red.

• Dual spanning tree shown in blue (don’t forget node A).

Theorem. A dual pivot on the primal network is exactly a primal pivot on the dual network.

Page 110: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

21 Integrality Theorem

Theorem. Assuming integer data, every basic feasible solution assigns integer flow to every

arc.

Corollary. Assuming integer data, every basic optimal solution assigns integer flow to every

arc.

Page 111: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

21 Integrality Theorem

Theorem. Assuming integer data, every basic feasible solution assigns integer flow to every

arc.

Corollary. Assuming integer data, every basic optimal solution assigns integer flow to every

arc.

Page 112: Linear Programming: Chapter 13 Network Flows: Algorithms · 2000-08-25 · 2 Primal Network Simplex Method Used when all primal flows are nonnegative (i.e., primal feasible). Entering

21 Integrality Theorem

Theorem. Assuming integer data, every basic feasible solution assigns integer flow to every

arc.

Corollary. Assuming integer data, every basic optimal solution assigns integer flow to every

arc.