Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

C&O 370 Deterministic OR Models

Practice Questions for the Final

Problem 1: Stochastic Optimization (15 marks)


CarCo is an automobile company that manufactures cars and trucks. Each of these requires steel, hours
on an assembly machine, and hours on a finishing machine. The per-vehicle resource requirements for
cars and trucks, and the revenue earned by selling them are given by the following table:

Vehicle Steel Assembly machine Finishing machine Revenue


(tons) (hours) (hours) ($ per vehicle)
Car 2 18 10 300
Truck 3 20 15 400

CarCo has its own steel reserves and owns the assembly machine, but it does not own the finishing
machine and must rent processing time on it. There are 2200 hours available on the assembly machine.
At most 1400 hours on the finishing machine may be rented at the rate of $5 per hour. There is some
uncertainty regarding the amount of steel CarCo can use for manufacturing cars and trucks (since it
also uses steel for other products). The demand for cars and trucks, that is, the maximum number
of units that may be sold, is also uncertain. Nevertheless, CarCo must specify beforehand how many
hours it wants to rent on the finishing machine. After some careful analysis, CarCo has come up with
the following scenario-representation to model the uncertainty in demands and steel-availability.

Scenario Demand for cars Demand for trucks Steel availability (tons)
1 90 25 280
2 80 50 320
3 100 30 300

Each of these scenarios occurs with probability 31 . Once a given scenario materializes, CarCo of
course needs to decide how many cars and trucks to manufacture.

(a) Formulate CarCo’s problem of maximizing expected net profit in the presence of uncertainty as
a 2-stage stochastic linear program. Ignore the fact that the number of cars and trucks produced
must be an integer. Specify clearly what are your first- and second-stage variables. (10 marks)

(b) Suppose that after a scenario materializes, CarCo can now also rent additional hours on the
finishing machine if necessary, but at a higher rental rate of $15 per hour (in every scenario).
There is no limit on how many such additional hours it may rent. How would your model from
part (a) change to incorporate this? (5 marks)

1
Problem 2: Robust Optimization (15 marks)
Machinco produces four products, requiring time on two machines and two types (skilled and unskilled)
of labor. The profit (in $) of a unit of each product, the amount of machine-time and labor (in hours)
needed to produce a unit of each product, and the total availability of machine-time and labor are
given in the following table:
Product Machine 1 Machine 2 Skilled Labor Unskilled Labor Profit ($)
1 11 4 8 7 300
2 7 6 5 8 260
3 6 5 5 7 220
4 5 4 6 4 180
Availability 700 500 600 600
Using decision variables xi , i = 1, . . . , x4 to denote the number of units produced of product i, and
ignoring integrality constraints, Machinco considers the following LP to find a production plan that
maximizes its monthly profit.

max 300x1 + 260x2 + 220x3 + 180x4 (Det-LP)


s.t. 11x1 + 7x2 + 6x3 + 5x4 ≤ 700
4x1 + 6x2 + 5x3 + 4x4 ≤ 500 (1)
8x1 + 5x2 + 5x3 + 6x4 ≤ 600 (2)
7x1 + 8x2 + 7x3 + 4x4 ≤ 600 (3)
x1 , x2 , x3 , x4 ≥ 0. (4)
Suppose that the processing times listed above are uncertain. In particular, suppose the time
requirements on machine 1 of at most Γ products deviate by ± 2 units, where Γ ∈ {0, 1, . . . , 4}; the
other resource requirements are unchanged. The following (non-linear) robust mathematical model
with uncertainty parameter Γ incorporates this uncertainty:
max 300x1 + 260x2 + 220x3 + 180x4 (Rob-P)
s.t. 11x1 + 7x2 + 6x3 + 5x4 + β1 (x, Γ) ≤ 700 (5)
(1), (2), (3), (4).
P
where β1 (x, Γ) = maxS⊆{1,2,3,4}:|S|≤Γ j∈S 2xj .
(a) Formulate β1 (x, Γ) as a linear program, and use this to give a linear-programming formulation of
(Rob-P). Let (Rob-LP) denote your LP formulation. (10 marks)
(b) Let OPT Det-LP denote the optimal value of (Det-LP), and OPT Rob-LP(Γ) denote the optimal value
of (Rob-LP) with parameter Γ. Order the following values in decreasing order: OPT Rob-LP(3) ,
OPT Det-LP , OPT Rob-LP(2) , and OPT Rob-LP(0) . Give a reason for your answer. (5 marks)
Solution: We have
OPT Det-LP = OPT Rob-LP(0) ≥ OPT Rob-LP(2) ≥ OPT Rob-LP(3) .
Note that inequality (5) above is equivalent to
ã11 x1 + ã12 x2 + ã13 x3 + ã14 x4 ≤ 700 for all (ã11 , ã12 , ã13 , ã14 ) ∈ A1 (Γ) (6)
where

A1 (Γ) := (ã11 , ã12 , ã13 , ã14 ) : ã11 ∈ [11 − 2, 11 + 2], ã12 ∈ [7 − 2, 7 + 2],
ã13 ∈ [6 − 2, 6 + 2], ã14 ∈ [5 − 2, 5 + 2],
at most Γ of the ãij s deviate from the mid-point of their intervals .
is the underlying uncertainty set. The inequalities above follow from the observation that as we
increase the uncertainty parameter Γ, the uncertainty set A1 (Γ) expands. So if Γ ≤ Γ0 , then
any x satisfying (6) with Γ0 , also satisfies (6) with Γ; thus, the optimal solution to the robust
problem with parameter Γ0 is a feasible solution to the robust problem with parameter Γ, and
hence OPT Rob-LP(Γ) ≥ OPT Rob-LP(Γ0 ) . When Γ = 0, then A1 (Γ) consists of the single vector
(11, 7, 6, 5), which means that the robust problem is the same as the deterministic LP, so we have
OPT Det-LP = OPT Rob-LP(0) .

2
Problem 3: Integer Programming Modeling I (20 marks)
Nellie Furtado has just come out with a new album. She insists on releasing the album in a cassette
version as well. A cassette tape has two sides (1 and 2). The songs on each side of the tape must total
between 14 and 16 minutes in length. The length and type of each song are given in the following table

Song Type Length (in minutes)


1 Ballad 4
2 Hit 5
3 Ballad 3
4 Hit 2
5 Ballad 4
6 Hit 3
7 Ballad and Hit 5
8 Ballad and Hit 4

The assignment of songs to the tape must satisfy the following conditions:
1. Each song must be assigned to exactly one side.
2. Each side must have at least two ballads.
3. Side 1 must have at least three hit songs.
4. Exactly one of song 5 and song 6 must be on side 1.
5. If songs 2 and 4 are on side 1, then song 5 must be on side 2.
We would also like to maximize the amount of used tape on side 1 of the cassette.
Formulate an integer program that can be used to assign Nellie’s songs to sides of the cassette tape.
Solution:
Decision Variables: For i = 1, . . . , 8, let xi be a binary decision variable indicating if song i is
on side 1; that is xi = 1 if song i is on side 1, and 0 otherwise. Let si denote the length of song i (so
s1 = 4, s2 = 5, . . . ).
Objective: We seek to
8
X
maximize s i xi .
i=1

Constraints: We need to ensure that both sides have length between 14 and 16 minutes.
8
X 8
X
14 ≤ si xi ≤ 16, 14 ≤ si (1 − xi ) ≤ 16.
i=1 i=1

The various other constraints are encoded as follows. The label of a constraint below is the label of
the condition it encodes.

xi ∈ {0, 1} for alli = 1, . . . , 8 (7)


x1 + x3 + x4 + x7 + x8 ≥ 2, 5 − (x1 + x3 + x4 + x7 + x8 ) ≥ 2 (8)
x2 + x4 + x6 + x7 + x8 ≥3 (9)
x5 + x6 =1 (10)
x2 + x4 ≤ 2 − x5 (11)

So our integer program is as follows.


8
X
max s i xi
i=1
X8 8
X
s.t. 14 ≤ si xi ≤ 16, 14 ≤ si (1 − xi ) ≤ 16
i=1 i=1
(1) − (5)

3
Problem 4: Integer Programming Modeling II (20 marks)
The FKK Zipper Company must draw up a production program for the next nine weeks. The total
number of workers available in week t, t = 1, . . . , 9, is Lt . Each jobs lasts for pi weeks, and once started,
it must be processed without interruption (for pi weeks); during each week t = 1, . . . , pi that is devoted
to the processing of job i, `i,t number of skilled workers are required to work full-time on the job. For
example, if job 1 lasts for 3 weeks, with `1,1 = 2, `1,2 = 3, `1,3 = 1, and it is started on week 5, then
one requires 2 skilled workers working full time on job 1 in week 5, 3 workers in week 6, and 1 worker
in week 7.

(a) FKK wants to find a feasible schedule that minimizes the maximum number of works used during
any of the nine weeks. Formulate this as an integer programming problem. (12 marks)
(Hint: Include the following decision variables for each job i, each week t = 1, . . . , 9:

1 if job i starts at week t,
sit := and zit := # of workers required for job i in week t.)
0 otherwise

(b) Suppose job 1 must start at least two weeks before job 3. Formulate this condition as a constraint
(you do not need to re-write the entire model). (6 marks)

(c) Suppose jobs 1 and 2 both need the same machine and thus cannot be carried out simultaneously.
Formulate this condition as a constraint (you do not need to re-write the entire model).
(6 marks)

4
Problem 5: Branch and Bound & Valid Inequalities (20 marks)
Consider the following integer programming problem:

max 3x1 + x2 + 2x3 (IP)


s.t. 2x1 + x2 + 3x3 ≤ 10 (12)
5x1 + 3x2 + 4x3 ≤ 18 (13)
x1 , x2 , x3 ≥ 0, integer

Solving the LP relaxation of (IP), denoted by (LP0 ), yields the solution x1 = 18


5
, x2 = 0 and x3 = 0.
Applying the branch-and-bound procedure, we branch on x1 and first consider the branch x1 ≥ d 18 5
e.
Let (LP1 ) be the LP obtained by adding this constraint to (LP0 ). This LP turns out to be infeasible.
Considering the other branch, we add the constraint
 
18
x1 ≤ (14)
5
to (LP0 ). Let (LP2 ) denote the resulting LP. Let s1 , s2 and s3 denote the slack variables for constraints
(12), (13), and (14), respectively. Note that these are also integer in any solution to (IP). Solving (LP2 )
yields the following final simplex tableau.
1 1 1
z + x
2 2
+ s
2 2
+ s
2 3
= 10 12
5 3 7 7
− x
4 2
+ s1 − s
4 2
+ s
4 3
= 4
x1 + s3 = 3
3 1 5 3
x
4 2
+ x3 + s
4 2
− s
4 3
= 4
.

(a) Based on the current partial branch-and-bound tree, give the tightest possible upper bound on
the optimal value of (IP).
Continue the branch-and-bound procedure from node (LP2 ), by branching on the variable x3 .
Consider only the “≤”-branch obtained by branching on x3 . Use the final simplex tableau for
(LP2 ) and solve any LP-relaxations encountered using the dual simplex method.
Draw the resulting branch-and-bound tree (with root node corresponding to (LP0 )). Label each
node of the tree by the corresponding LP, its optimal solution and optimal value. Can one
conclude that an optimal solution to (IP) has been found? (12 marks)

Solution:
There was a typo in the question (which has been corrected above); the intention was to consider
only the “≤”-branch. The solutions below show the execution both when one considers the “≤”-
branch and the “≥”-branch.
Note that OPT IP must be an integer since x1 , x2 , x3 are integers and their objective-function
coefficients are also integers. Thus, based on the current partial tree, we may conclude that
OPT IP ≤ bOPT LP0 c since (LP0 ) is the LP-relaxation of (IP), and also that OPT IP ≤ bOPT LP2 c
since any feasible solution to (IP) must lie in the feasible region of (LP2 ) (because (LP1 ) is given
to be infeasible). Thus, the best bound we can give so far is OPT IP ≤ 10.
Considering the “≤”-branch. We refer to the above optimal tableau for (LP2 ) as (T2 ).
Branching on x3 and considering the “≤”-branch means that we obtain (LP3 ) by adding the
constraint x3 ≤ b 43 c = 0 to (LP2 ). Using a new slack variable s4 , this means that we add the
constraint
x3 + s4 = 0.
We add this equation as a row of (T2 ), but this yields a system of equations that not currently
a tableau for the new basis {s1 , x1 , x3 , s4 }. We convert this system to a tableau for this basis by
subtracting the x3 -row to the above equation and obtain the following tableau.
1 1 1
z + x
2 2
+ s
2 2
+ s
2 3
= 10 21
5 3 7 7
− x
4 2
+ s1 − s
4 2
+ s
4 3
= 4
x1 + s3 = 3
3 1 5 3
x
4 2
+ x3 + s
4 2
− s
4 3
= 4
3 1 5
− x
4 2
− s
4 2
+ s
4 3
+ s4 = − 43 .

5
1/2 1/4
Now s4 leaves the basis since it is negative, and x2 enters the basis since 3/4
< 1/2
. Pivoting gives
the following new tableau.
1 4 2
z + s
3 2
+ s
3 3
+ s
3 4
= 10
1 1 5
+ s1 − s
3 2
− s
3 3
− s
3 4
= 3
x1 + s3 = 3
x3 + s4 = 0
1 5 4
x2 + s
3 2
− s
3 3
− s
3 4
= 1.

This tableau is optimal for (LP3 ), and the optimal solution is integral, so it is also feasible to
(IP). Moreover, the value of this feasible solution is 10, which is the upper bound we obtained
above on OPT IP , so we conclude that x1 = 3, x2 = 1, x3 = 0 is an optimal solution to (IP).
Drawing the branch-and-bound tree is left as an exercise.

Considering the “≥”-branch. Branching on x3 and considering the “≥”-branch means that
we obtain (LP3 ) by adding the constraint x3 ≥ d 34 e = 1 to (LP2 ). This is equivalent to adding
the equation
−x3 + s4 = −1,
where s4 is a new slack variable, to the tableau (T2 ). We convert the resulting equation system
to a tableau for the new basis {s1 , x1 , x3 , s4 } by adding the x3 -row to the above equation. This
yields the following tableau.
1 1 1
z + x
2 2
+ s
2 2
+ s
2 3
= 10 21
5 3 7 7
− x
4 2
+ s1 − s
4 2
+ s
4 3
= 4
x1 + s3 = 3
3 1 5 3
x
4 2
+ x3 + s
4 2
− s
4 3
= 4
3 1 5
x
4 2
+ s
4 2
− s
4 3
+ s4 = − 41 .

Now s4 leaves the basis since it is negative, and s3 enters the basis. Pivoting gives the following
new tableau.
4 3 2
z + x
5 2
+ s
5 2
+ s
5 4
= 10 25
1 2 7 7
− x
5 2
+ s1 − s
5 2
+ s
5 4
= 5
3 1 4 14
(T3 ) x1 + x
5 2
+ s
5 2
+ s
5 4
= 5
x3 − s4 = 1
3 1 4 1
− x
5 2
− s
5 2
+ s3 − s
5 4
= 5
.

This tableau is optimal for (LP3 ), but the optimal solution is not integral, so we need to branch
further.
Branching on the fractional variable x1 , we obtain (LP4 ) from (LP3 ) by adding the inequality
x1 ≥ d 14
5
e, or equivalently −x1 + s5 = −3. Adding this equation to (T3 ) and converting the
resulting system to a tableau for the basis {s1 , x1 , x3 , s3 , s5 } gives
4 3 2
z + x
5 2
+ s
5 2
+ s
5 4
= 10 25
1 2 7 7
− x
5 2
+ s1 − s
5 2
+ s
5 4
= 5
3 1 4 14
x1 + x
5 2
+ s
5 2
+ s
5 4
= 5
(T4 )
x3 − s4 = 1
3 1 4 1
− x
5 2
− s
5 2
+ s3 − s
5 4
= 5
3 1 4
+ x
5 2
+ s
5 2
+ s
5 4
+ s5 = − 15 .

All coefficients in the s5 -row are positive while s5 has a negative value, thus we can conclude that
(LP3 ) is infeasible.
We now consider the other branch, adding the inequality x1 ≤ b 14
5
c or equivalently x1 + s6 = 2
to (LP3 ). Let (LP5 ) denote the resulting LP. Adding this equation to the tableau (T3 ) and

6
converting it into a basis for {s1 , x1 , x3 , s3 , s6 } gives
4 3 2
z + x
5 2
+ s
5 2
+ s
5 4
= 10 25
1 2 7 7
− x
5 2
+ s1 − s
5 2
+ s
5 4
= 5
3 1 4 14
x1 + x
5 2
+ s
5 2
+ s
5 4
= 5
x3 − s4 = 1
3 1 4 1
− x
5 2
− s
5 2
+ s3 − s
5 4
= 5
3 1 4
− x
5 2
− s
5 2
− s
5 4
+ s6 = − 54 .
s6 leaves the basis and s4 enters, to yield the tableau
1 1 1
z + x
2 2
+ s
2 2
+ + s
2 6
= 10
5 3 7
− x
4 2
+ s1 − s
4 2
+ s
4 6
= 0
x1 + s6 = 2
(T5 ) 3 1 5
x
4 2
+ x3 + s
4 2
− s
4 6
= 2
s3 − s6 = 1
3 1 5
x
4 2
+ s
4 2
+ s4 − s
4 6
= 1.

This is the optimal solution for (LP5 ), and it is integral, so it is also a feasible solution to (IP).
The value of this feasible solution is 10, which was the upper bound we had obtained earlier on
OPT IP . Thus, we conclude that x1 = 2, x2 = 0, x3 = 2 is an optimal solution to (IP).
Again, drawing the branch-and-bound tree is left as an exercise.

(b) Running the simplex method on (LP0 ) (the LP relaxation of (IP)) yields the following final
simplex tableau:
z + 54 x2 + 52 x3 + 35 s2 = 54 5
1 7 2 14
− x
5 2
+ x
5 3
+ s1 − s
5 2
= 5
3 4 1 18
x1 + x
5 2
+ x
5 3
+ s
5 2
= 5

Generate a Gomory cut from the x1 -row. Add the resulting inequality to the above tableau and
re-optimize using the dual simplex method. (8 marks)

Solution: The Gomory-cut generated from the x1 -row is


3 4 1 3
x2 + x3 + s 2 ≥ .
5 5 5 5
Introducing a new slack variable s3 , this becomes
3 4 1 3
− x2 − x3 − s 2 + s 3 = −
5 5 5 5
and adding it to the above tableau gives
4 2 3 54
z + x
5 2
+ x
5 3
+ s
5 2
= 5
1 7 2 14
− x
5 2
+ x
5 3
+ s1 − s
5 2
= 5
3 4 1 18
x1 + x
5 2
+ x
5 3
+ s
5 2
= 5
3 4 1
− x
5 2
− x
5 3
− s
5 2
+ s3 = − 35 .
2/5
Now s3 leaves the basis and x3 enters since 4/5
= min 4/5 , 2/5 3/5 
,
3/5 4/5 1/5
. Pivoting gives the following
tableau.
z + 12 x2 + 1
s
2 2
+ 1
s
2 3
= 21
2
5 3 7 7
− x
4 2
+ s1 − s
4 2
+ s
4 3
= 4
x1 + s3 = 3
3 1 5 3
x
4 2
+ x3 + s
4 2
− s
4 3
= 4
.
This is the optimal solution to the new LP (obtained by adding the Gomory cut from the x1 -row).

7
Problem 6: Maximum flows: Ford-Fulkerson Algorithm (15 marks)

a
10 8
10

10
s b t

8
8 5
c

Figure 1: Flow network for parts (a) and (b)

(a) Perform two iterations of the Ford-Fulkerson algorithm on the flow network G shown in Figure 1.
Give the following information with each iteration: (i) the value of the current flow (you do not
need to show the flow on the graph G); (ii) the residual graph Gf with respect to the current
flow; (iii) the s-t path in Gf used to augment the current flow; and (iv) the amount by which the
current flow is augmented. (10 marks)

(b) Running the Ford-Fulkerson algorithm to termination on the flow network of part (a) yields the
following residual graph.

a
10 8
8 2

10
s b t

8
8 5
c

Compute a minimum s-t cut in the flow network of part (a). What is its capacity? (5 marks)

8
Problem 7: Maximum flows: Formulation I (15 marks)
We are given n jobs and a single machine on which these jobs need to be processed. The machine is
available for T time units 1, 2, . . . , T , and it can process at most one job in any given time unit. Each
job j = 1, . . . , n requires exactly one time unit on the machine, and it can be processed only at certain
time units t that lie in a given set Sj ⊆ {1, 2, . . . T }.
Formulate the problem of finding the maximum number of jobs that can be processed on the machine
subject to the above restrictions as a max-flow problem in an appropriate flow network. Specify the
correspondence between flows in your flow network and feasible solutions to the given problem.
Solution: This problem has the familiar flavor to the transportation problem considered in class, and
is similar to Q3 on Assignment 5. In our flow network, we create a node j for every job j = 1, . . . , n,
and a node i for every time unit i in 1, . . . , T . For every job j, and node i, where i ∈ Sj , we add an
edge (j, i) representing that job j may be processed at time unit i. We add a source s with edges (s, j)
to every job-node j, and a sink t with edges (i, t) from every time-node i.
In order to specify the capacities, it helps to first think about how flows in this network correspond
to feasible schedules. We view job j being processed at time unit i as sending one unit of flow along
the path s → j → i → t (note that i ∈ Sj , so the edge (j, i) is present in our flow network). Conversely,
given an integer flow, a non-zero flow on the edge (j, i) represents that job j is processed at time unit
i (note that i ∈ Sj ). Given this correspondence, the flow on edge (s, j) represents the total number of
time units when job j is processed; this can be at most 1, so we set the capacity of each edge (s, j) to
1. Similarly the flow on edge (i, t) denotes the number of jobs that are processed at time unit i, and
since this can be at most one, we give the edge (i, t) a capacity of 1. We may give the edges (j, i) any
integer capacity M ≥ 1.
Given our correspondence, an integer flow of value v corresponds to a feasible schedule that processes
v jobs, and vice versa. Hence, our goal is to find an integer-valued max-flow in the above flow network,
which can be done by using the Ford-Fulkerson algorithm since all capacities are integers.

9
Problem 8: Maximum flows: Formulation II (15 marks)
Eikea furniture company produces n products, each of which needs to be processed on a stretching
machine and a finishing machine. There is a time horizon of T time units. The stretching machine
is available only during time units in S1 ⊆ {1, 2, . . . , T }, and the finishing machine is available only
during time units in S2 ⊆ {1, . . . , T }. To modularize operations, each product i = 1, . . . , n is broken up
into ci blocks that can be processed independently. Each block of a product must first be processed on
the stretching machine at some time-unit t, and then be processed at a later time-unit on the finishing
machine. At each time unit t ∈ S1 , the stretching machine can process process at most one block of
any given product, and at most st blocks in total. At each time unit t ∈ S2 , the finishing machine can
process (at most) ft blocks (that could belong to the same product or to distinct products).
Formulate a max-flow problem in an appropriate flow network to determine if all the products can
be processed within the time horizon of T time units. Specify how flows in your flow network translate
to feasible solutions.
Solution: This also has the flavor of the transportation problem, and we will set things up carefully
so that a unit of flow corresponds to the processing of a block of a product on the stretching and
finishing machines. Our flow network will have a node i for every product i = 1, . . . , n. We will have
two stretching nodes at and bt and the edge (at , bt ) for every time t ∈ S1 . We will have a nodes ct for
every time t ∈ S2 . (Intuitively, think of at and bt as denoting the points when a block arrives at and
leaves the stretching machine respectively.) We also create an edge (bt , ct0 ) for every t ∈ S1 , t0 ∈ S2
with t0 > t. We add a source s with edges (s, i) for every product i, and a sink, which we will denote
τ (to avoid confusion with time t), with edges (ct , τ ) for every t ∈ S2 .
We would like to impose the correspondence that a block of product i that is processed on the
stretching machine at time t ∈ S1 , and then on the finishing machine at time t0 ∈ S2 , t0 > t corresponds
to a unit of flow sent along the path s → i → at → bt → ct0 → τ . Conversely, given an integer flow,
a non-zero flow on (i, at ) represents that a block of product i is processed on the stretching machine
at time t (note that t ∈ S1 ). All flow entering at must leave on the edge (at , bt ) and then the node bt
via some edge (bt , ct0 ) (note that t0 ∈ S2 , t0 > t), so this means that this block of product i does get
processed on the finishing machine at some later time t0 ∈ S2 . Under this correspondence, we have the
following.

• The flow on an (s, i) edge represents the total number of blocks product i processed; therefore,
we set the capacity of each such edge to ci .

• The flow on an (i, at ) edge represents the total number of blocks of product i processed on the
stretching machine at time t; this can be at most 1, so we set the capacity of each such edge to 1.

• The flow on an (at , bt ) edge represents the total number of blocks (over all products) processed
on the stretching machine at time t; this can be at most st , so we set the capacity of each such
edge to st .

• The flow on a (ct0 , τ ) edge denotes the total number of blocks (over all products) processed on
the finishing machine at time t0 ; this can be at most ft0 , so we set the capacity of each such edge
to ft0 .

We may give the edges (bt , ct0 ) any integer capacity M ≥ min{st , ft0 }.
Given our correspondence, a feasible solution corresponds to an integer flow that saturates all the
(s, i) edges, that is, sends ci units of flow on each (s, i) edge. Notice that such a flow must be a max-
flow, since thePvalue of the flow is equal to the total capacity of all the (s, i) edges. Conversely, any
m
flow of value i=1 ci must saturate all the (s, i) edges, and hence is a max-flow. Such an integer-valued
yields a feasible solution as mentioned above. Hence, our goal is to determine whether there is an
integer-valued max-flow of value m
P
i=1 i in the above flow network, which can be done by using the
c
Ford-Fulkerson algorithm since all capacities are integers.

10
Problem 9: Maximum flows (10 marks)
Let (G, {ce }, s, t) be a flow network, f be an s-t flow, and (A, B) be an s-t cut. Prove that the following
statements are equivalent.

(a) A has only incoming edges in the residual graph Gf with respect to the flow f .

(b) v(f ) = c(A, B).

(c) f is a maximum s-t flow, and (A, B) is a minimum s-t cut.

The implications (a) =⇒ (b) =⇒ (c) were proved in class; so you need to establish the reverse
implication (c) =⇒ (a).
(Note: You will not be tested on proofs on the exam, but you may be asked to justify your answer at
various places; this question is intended to test your understanding of maximum flows.)

11
Problem 10: True or False (15 marks)
For each of the following answer True or False. Give a reason for your answer. You may use any proof
or theorem stated in class or in the notes.

(a) Let OPT denote the optimal value of the following deterministic LP:

max cT x subject to Ax ≤ b, ` ≤ x ≤ u, where A = (aij ) ∈ Rm×n , `, u ∈ Rn .

Let OPT Soy denote the optimal value of Soyster’s robust model, wherein, for any i, j, the entry in
row i, column j of A can lie anywhere in the interval [aij − ∆ij , aij + ∆ij ]. Then OPT ≥ OPT Soy .
(3 marks)

(b) In the branch-and-bound algorithm, if the optimal value of the LP for a given node is 20, then
the best integer solution in the feasible region for that node has value at most 20. (3 marks)

(c) Let (IP) be an integer program and (LP) be its LP-relaxation. Let x = 21 y (1) + 12 y (2) be a feasible
solution for (LP) but not for (IP), where y (1) , y (2) are feasible solutions to (IP). One can find a
valid inequality for (IP) that cuts off x (i.e., the inequality is violated by x). (3 marks)

Solution: False.
If αT x ≤ β is a valid inequality for (IP), then we have

αT y (1) ≤ β, αT y (2) ≤ β
(1) (2) 
and so we also have αT y +y 2
≤ β, so x satisfies the inequality. (In general, if x is a point
in the convex hull of the feasible region (IP), then any inequality that is valid for (IP) is also
satisfied by x.)

(d) In a flow network with source s and sink t, the value of a maximum s-t flow could be strictly less
than the capacity of a minimum s-t cut. (3 marks)

Solution: False.
The max-flow min-cut theorem tells us that in any flow network, the value of a maximum s-t flow
is equal to the capacity of a minimum s-t cut.

(e) The figure below shows the residual graph Gf of a flow network G with respect to a maximum
s-t flow f . Recall that in the flow network G, we assume that there are no edges entering the
source s, or leaving the sink t.

5 a
2 5
3 3

6 3
s b c t
3

3 3
5 5

d 5

Figure 2: Residual graph Gf of a flow network

({s, a, b}, {c, d, t}) is the unique minimum s-t cut in G, and has capacity 13. (3 marks)

Solution: True.
Let A = {s, a, b} and B = {c, d, t}. Since A has only incoming edges in Gf , it follows that
v(f ) = c(A, B), and f is a maximum s-t flow and (A, B) is a minimum s-t cut. We can obtain
v(f ) (and hence c(A, B)) by noting that all edges entering s in Gf must be backward edges (since
G has no edges entering s), and so the total residual capacity of these edges, which is 13 equals
v(f ).

12
Finally, to argue that (A, B) is the unique minimum s-t cut, by the max-flow min-cut theorem,
we note that if (A0 , B 0 ) is a minimum s-t cut, we must have c(A0 , B 0 ) = v(f ). This can happen
if and only if all edges leaving A0 in G are saturated, and all edges entering A0 in G have 0 flow
on them; this in turn can happen if and only if A0 has only incoming edges in Gf . (Note that we
have effectively proved (c) =⇒ (b) =⇒ (a) in Problem 9.) For the graph Gf given above, we
can see by inspection that there is no A0 6= A having this property; this means that (A, B) is the
unique min s-t cut in G.

13

You might also like