Unit IV Daa Notes
Unit IV Daa Notes
HE SIMPLEX METHOD
T
Linear Programming
Linear programming problem (LPP) is to optimize a linear function of several variables subject to
linear constraints:
maximize (or minimize) c1 x1 + ...+ cn xn
subject to ai 1x1+ ...+ ain xn ≤ (or ≥ or =) bi , i = 1,...,m x1 ≥ 0, ... , xn ≥ 0
The function z = c1 x1 + ...+ cn xn is called the objective function;
constraints x1 ≥ 0, ... , xn ≥ 0 are called nonnegativity constraints
Example
maximize 3x + 5y
subject to x+y≤4
x + 3y ≤ 6
x ≥ 0, y ≥ 0
Feasible region is the set of points defined by the constraints
y
x+3
x+y=4
Geometric solution
y
( 0,
( 0,
Optimal solution: x = 3, y = 1
Extreme Point Theorem Any LP problem with a nonempty bounded feasible region has an
optimal solution; moreover, an optimal solution can always be found at an extreme point of the
problem's feasible region.
Example
maximize 3x + 5y maximize 3x + 5y + 0u + 0v
subject to x + y ≤ 4 subject to x + y + u =4
x + 3y ≤ 6 x + 3y +v=6
x≥0, y≥0 x≥0, y≥0, u≥0, v≥0
Variables u and v, transforming inequality constraints into equality constrains, are called slack
variables
Simplex Tableau
maximize z = 3x + 5y + 0u + 0v
subject to x+y+u =4
x + 3y +v=6
x≥0, y≥0, u≥0, v≥0
x y u v
objective row
basic variables = u,v
basic feasible solution = (0, 0, 4, 6)
value of z at (0, 0, 4, 6) =0
v 1 3 0 1 6
3 5 0 0 0
y 1 1
1 0 2
3 3
4 0 0 5 10
3 3
x y u v
x 1 0 3/2 1/3 3
y 0 1 1/2 1/2 1
0 0 2 1 14
basic feasible sol. (3, 1, 0, 0) z = 14
Example 1:
Use Simplex method to solve the formers problem given below.
A farmer has a 320 acre farm on which she plants two crops: corn and soybeans. For each
acre of corn planted, her expenses are $50 and for each acre of soybeans planted, her expenses are
$100. Each acre of corn requires 100 bushels of storage and yields a profit of $60; each acre of
soybeans requires 40 bushels of storage and yields a profit of $90. If the total amount of storage
space available is 19,200 bushels and the farmer has only $20,000 on hand, how many acres of
each crop should she plant in order to maximize her profit? What will her profit be if she follows
this strategy?
Solution
Linear Programming Problem Formulation
Basic z x y s1 s2 Solution
s1 0 50 100 1 0 20000
s2 0 100 40 0 1 19200
z 1 -60 -90 0 0 0
Select the most negative value in row z.
Pivot element : Intersection of pivot row and pivot column:
100 Basic variables : s1, s2, Z
Non Basic variables : x,
y Enter variable :y
Leave variable : s1
Initial solution at (x, y, s1, s2) = (0, 0, 20000, 19200)
Initial solution z = 0
Pivot row:
Replace the leaving variable in basic column with the entering variable.
New Pivot Row = Current Pivot Row / Pivot Element
All other rows including z:
New Row = Current Row – (Its Pivot column coefficient)* New Pivot Row
Row y New Pivot Row = Current Pivot Row / Pivot
Element
= (0, 50, 100, 1, 0, 20000) / 100
1
= (0, , 1, 1 , 0, 200)
2 100
Row s2
New Row = Current Row – (Its Pivot column coefficient)* New Pivot Row
1
= (0, 100, 40, 0, , 1, 1 , 0, 200)
2
1, 19200) - 100
(40)*( 0,
Row z = (0, 80, 0, −4
1
0
New Row = Current Row – (Its Pivot column coefficient)* New Pivot Row
1 1 , 0, 200)
= (1, 2 , 1, 100
1
-60, 1
-90,
0, 0,
0) -
(-90
)*(
0,
= (1, 2, 1, 100 , 0, 200)
-60,
-90,
0, 0,
0) +
(90)
*( 0,
= (1,
-15,
0, 9 ,
0,
180
00)
Iteration II
Basic z y s1 s2 Soluti
on
y 0 1 1/100 0 200
s2 0 0 -4/10 1 96
z 1 0 9/10 0 18000
Basic z x y s1 s2 Solution
y 0 1/2 1 1/100 0 200
s2 0 80 0 -4/10 1 11200
z 1 -15 0 9/10 0 18000
Select the most negative value in row z.
Pivot element : Intersection of pivot row and pivot column:
80 Basic variables : y, s2, Z
Non Basic variables : x, s1
Enter variable x
Leave variable : s2
Second solution at (x, y, s1, s2) = (0, 200, 0, 11200)
Second solution z = 18000 (Improved solution)
Row y
New Row = Current Row – (Its Pivot column coefficient)* New Pivot Row
−1
)*( 0, 1, 0, ,
1
, 140)
= (0, 2 80
200
1/2,
1,
1/10
0, 0,
200)
-(
= (0,
0, 1,
1
,
−1
,
130)
80 160
Row z
New Row = Current Row – (Its Pivot column coefficient)* New Pivot Row
= (1, -15, 0, 9 , 0, 18000) - (-15)*( 0, 1, 0, −1 , 1 , 140)
10 200 80
9 −1 1
= (1, -15, 0, , 0, 18000) + (15)*( 0, 1, 0, , , 140)
10 200 80
33 15
= (1, 0, 0, , , 20100)
40 80
Iteration III
Basic z x y s1 s2 Solution
y 0 0 1 1/80 -1/160 130
x 0 1 0 -1/200 1/80 140
z 1 0 0 33/40 15/80 20100
subject to:
𝑛
𝑛
𝑧 = ∑ 𝑐j𝑥j , ≤ 𝑏i (i = 1, 2, . . . , m),
j=1
𝑥j ≥ 0 (j = 1, 2, . . . , n).
Dual Minimize
𝑚
𝑧′ = ∑ 𝑏i𝑦i ,
i=1
subject to:
𝑚
∑ 𝑎ij𝑦i ≥ 𝑐j (j = 1, 2, . . . , n),
i=1
𝑦i ≥ 0 (i = 1, 2, . . . , m).
Example:
The Primal problem
Minimize 4x1 + 2x2 − x3
subject to x1 + x2 + 2x3 ≥ 3
2x1 − 2x2 + 4x3 ≤ 5
x1, x2, x3≥ 0.
The dual problem
Maximize 3y1 + 5y2
subject to y1 + 2y2 ≤ 4
y1 − 2y2 ≤ 2
2y1 + 4y2 ≤ −1
y1 ≥ 0, y2 ≥ 0
THE MAXIMUM-FLOW PROBLEM
Definition of a Flow
A flow is an assignment of real numbers xij to edges (i,j) of a given network that satisfy the
following:
● flow-conservation requirements
The total amount of material entering an intermediate vertex must be equal to the total
amount of the material leaving the vertex
● capacity constraints
0 ≤ xij ≤ uij for every edge (i,j) ∈ E
j: (j,i) ∈ E j: (i,j) ∈ E
Example 2
1→2→4→3
1→4←2→3 V=1
V=2
…
V=2U
Requires 2U iterations to reach maximum flow of value 2U
Shortest-Augmenting-Path Algorithm
Generate augmenting path with the least number of edges by BFS as follows.
Starting at the source, perform BFS traversal by marking new (unlabeled) vertices with two labels:
• first label – indicates the amount of additional flow that can be brought from the
source to the vertex being labeled
• second label – indicates the vertex from which the vertex being labeled was reached,
with “+” or “–” added to the second label to indicate whether the vertex was reached
via a forward or backward edge
Vertex labeling
● The source is always labeled with ∞,-
● All other vertices are labeled as follows:
o If unlabeled vertex j is connected to the front vertex i of the traversal queue by a
directed edge from i to j with positive unused capacity rij = uij –xij (forward edge),
vertex j is labeled with lj,i+, where lj = min{li, rij}
o If unlabeled vertex j is connected to the front vertex i of the traversal queue by a
directed edge from j to i with positive flow xji (backward edge), vertex j is labeled
lj,i-, where lj = min{li, xji}
● If the sink ends up being labeled, the current flow can be augmented by the amount
indicated by the sink’s first label.
● The augmentation of the current flow is performed along the augmenting path traced by
following the vertex second labels from sink to source; the current flow quantities are
increased on the forward edges and decreased on the backward edges of this path.
● If the sink remains unlabeled after the traversal queue becomes empty, the algorithm returns
the current flow as maximum and stops.
Queue: 1 2 4 3 5 6
↑↑↑↑
Augment the flow by 2 (the sink’s first label) along the path 1→2→3→6
Queue: 1 4 3 2 5 6
↑↑↑↑↑
Augment the flow by 1 (the sink’s first label) along the path 1→4→3←2→5→6
Queue: 1 4
↑↑
No augmenting path (the sink is unlabeled) the current flow is maximum
Definition of a Cut
Let X be a set of vertices in a network that includes its source but does not include its sink, and let
X, the complement of X, be the rest of the vertices including the sink. The cut induced by this
partition of the vertices is the set of all the edges with a tail in X and a head in X.
Capacity of a cut is defined as the sum of capacities of the edges that compose the cut.
● →e’ll denote a cut and its capacity by C(X,X) and c(X,X)
● Note that if all the edges of a cut were deleted from the network, there would be no
directed path from source to sink
● Minimum cut is a cut of the smallest capacity in a given network
ALGORITHM ShortestAugmentingPath(G)
//Implements the shortest-augmenting-path algorithm
//Input: A network with single source 1, single sink n, and positive integer capacities uij on
// its edges (i, j )
//Output: A maximum flow x
assign xij= 0 to every edge (i, j ) in the network
label the source with ∞, − and add the source to the empty queue Q
while not Empty(Q) do
i ←Front(Q); Dequeue(Q)
for every edge from i to j do //forward edges
if j is unlabeled
rij←uij− xij
if rij > 0
lj←min{li, rij}; label j with lj, i +
Enqueue(Q, j )
for every edge from j to i do //backward edges
if j is unlabeled
if xji > 0
lj←min{li, xji }; label j with lj, i−
Enqueue(Q, j )
if the sink has been labeled
//augment along the augmenting path found
j ←n //start at the sink and move backwards using second labels
while j ≠ 1 //the source hasn’t been reached
if the second label of vertex j is i+
xij←xij+ ln
else //the second label of vertex j is i−
xij←xij −ln
j ←i; i ←the vertex indicated by i’s second label
erase all vertex labels except the ones of the source
reinitialize Q with the source
return x //the current flow is maximum
Time Efficiency
• The number of augmenting paths needed by the shortest-augmenting-path algorithm
never exceeds nm/2, where n and m are the number of vertices and edges, respectively.
• Since the time required to find shortest augmenting path by breadth-first search is in
O(n+m)=O(m) for networks represented by their adjacency lists, the time efficiency of
the shortest-augmenting-path algorithm is in O(nm2) for this representation.
• More efficient algorithms have been found that can run in close to O(nm) time, but these
algorithms don’t fall into the iterative-improvement paradigm.
A graph is bipartite if and only if it does not have a cycle of an odd length.
A bipartite graph is 2-colorable: the vertices can be colored in two colors so that every edge has
its vertices colored differently
Matching in a Graph
A matching in a graph is a subset of its edges with the property that no two edges share a
vertex
Theorem: A matching M is maximum if and only if there exists no augmenting path with
respect to M.
Augmenting Path Method (template)
• Start with some initial matching . e.g., the empty set
• Find an augmenting path and augment the current matching along that path. e.g., using
breadth-first search like method
• When no augmenting path can be found, terminate and return the last matching, which is
maximum
ranking matrix
Ann Lea Sue
Bob 2,3 1,2 3,3
Jim 3,1 1,3 2,1
Tom 3,2 2,1 1,2
Data for an instance of the stable marriage problem. (a) Men’s preference lists; (b) women’s preference lists. (c) Ranking
matrix (with the boxed cells composing an unstable matching).
Example
Free men: Bob, Jim, Tom
Ann Lea Sue