5.3 Minimum-Weight Perfect Matchings
ο± IP formulation of the minimum-weight perfect matching problem.
Minimize (πππ₯π: π β πΈ)
(5.5)
subject to π₯(ο€(π£)) = 1, for all π£ β π
(5.6)
π₯π β {0, 1}, for all π β πΈ.
(5.7)
ο± LP relaxation of the problem (gives lower bound on the min value)
Minimize (πππ₯π: π β πΈ)
(5.8)
subject to π₯(ο€(π£)) = 1, for all π£ β π
π₯π β₯ 0,
for all π β πΈ.
Generally, the lower bound from (5.8) is not equal to the desired optimum.
But it gives the true optimal value for the case of bipartite graphs. (Same
statement as the Birkhoffβs Theorem) It also implies that the extreme points
of the polyhedron defined by (5.8) are integral vectors.
Combinatorial Optimization 2016
1
Minimum Weight Perfect Matching in Bipartite Graphs
ο± Thm 5.12 (Birkhoff): Let πΊ be a bipartite graph, and let π β π
πΈ .
Then πΊ has a perfect matching β (5.8) has a feasible solution.
Moreover, if πΊ has a perfect matching, then the minimum weight of a perfect
matching is equal to the optimal value of (5.8).
Consider primal-dual pair:
(P) Minimize (πππ₯π: π β πΈ)
subject to π₯(ο€(π£)) = 1,
π₯π β₯ 0,
(D)
Maximize
subject to
(π¦π£ : π£ β π)
π¦π’ + π¦π£ β€ ππ ,
(5.8)
for all π£ β π
for all π β πΈ.
(5.9)
for all π = π’π£ β πΈ.
ο± Devise a primal-dual algorithm to find a solution that satisfies CS conditions
and show that the optimal solution is integer.
Combinatorial Optimization 2016
2
ο± Given π¦ β π
π , and π = π’π£, denote by ππ = ππ (π¦) as ππ β (π¦π’ + π¦π£ ).
Hence π¦ is feasible to dual iff ππ β₯ 0 for all π β πΈ.
Let πΈ= (or πΈ= (π¦)) β‘ π β πΈ: ππ = 0
CS conditions β π₯π > 0 implies ππ = 0, for all π β πΈ.
If we can find a perfect matching on πΈ= , it is optimal to (5.8).
If procedure stuck, have π-alternating tree using edges in πΈ= such that
nodes of π΅(π) are joined by equality edges only to nodes in π΄(π)
Change π¦ to increase πΈ= ,
let π¦π£ β π¦π£ + ο₯ for π£ οπ΅(π)
π¦π£ β ο₯ for π£ β π΄(π) while maintaining the feasibility of π¦.
Added edge will be joining π£ to a node not in π(π) since πΊ is bipartite.
β "Hungarian Algorithm" (Kuhn[1955], Munkres[1957])
Combinatorial Optimization 2016
3
1
2
3
π
2
6
π
π
π
4
π
4
3
3
6
π
π 2
5
1
β
2
4
1
5
Let ο₯ = 1 (for edge ππ)
0
2
3
π
3
6
π
π
π
4
π
2
Combinatorial Optimization 2016
4
3
6
π
2
β
2
4
2
5
5
π 2
4
Minimum-Weight Perfect Matching Algorithm for Bipartite Graphs
Let π¦ be a feasible solution to (5.9), π a matching of πΊ= ;
Set π = ({π}, β
), where π is an π-exposed node of πΊ;
Loop: While there exists π£π€ β πΈ= with π£ β π΅(π), π€ β π(π)
If π€ is π-exposed
Use π£π€ to augment π ;
If there is no π-exposed node in πΊ
Return the perfect matching π and stop ;
Else
Replace π by ({π}, β
), where π is π-exposed;
Else
Use π£π€ to extend π;
If every π£π€ β πΈ with π£ β π΅(π) has π€ β π΄(π)
Stop, πΊ has no perfect matching ;
Else
Let ο₯ = min { ππ£π€ βΆ π£ β π΅(π), π€ β π(π)}
Replace π¦π£ by π¦π£ + ο₯ for π£ β π΅(π), π¦π£ β ο₯ for π£ β π΄(π) ;
Combinatorial Optimization 2016
5
ο± May need dual change at each tree extension step
β π(π2) total dual changes
Straightforward implementation needs examining of all edges β π(π2π)
Idea used in Prim's algorithm for minimum spanning trees
β π(π3)
ο± Question: Do the previous results provide a proof of Birkhoffβs theorem?
Combinatorial Optimization 2016
6
Minimum Weight Perfect Matching in General
ο± (5.8) not enough to obtain an integer optimal solution.
9
3
6
8
1
2
5
4
7
ο± π₯π = 1/2 for edges of two triangles is optimal solution to LP relaxation with
value 10.5. But value of a minimum weight perfect matching is 14.
ο± We call a cut π· of πΊ odd if it is of the form πΏ(π) where π is an odd-cardinality
set of nodes.
β π₯(π·) β₯ 1 for all odd cut π· of πΊ. (blossom (odd set) inequality)
Combinatorial Optimization 2016
7
ο± Let π be the set of odd cuts of πΊ that are not of the form πΏ(π£) for some π£.
ο±
Minimize
subject to
(πππ₯π: π β πΈ)
π₯(πΏ(π£)) = 1, for all π£ β π
π₯(π·) β₯ 1, for all π· β π
π₯π β₯ 0,
for all π β πΈ.
(5.13)
(5.14)
(5.15)
(5.16)
ο± Thm 5.13: Let πΊ be a graph, and let π β π
πΈ .
Then πΊ has a perfect matching β (5.13) has a feasible solution
Moreover, if πΊ has a perfect matching, then the minimum weight of a perfect
matching is equal to the optimal value of (5.13).
Combinatorial Optimization 2016
8
ο± Also, devise an algorithm to find a primal, dual feasible solution that satisfies
CS conditions and show that the optimal solution is integer.
ο± (P)
(D)
Minimize (πππ₯π: π β πΈ)
subject to π₯(πΏ(π£)) = 1, for all π£ β π
π₯(π·) β₯ 1, for all π· β π
π₯π β₯ 0,
for all π β πΈ.
Maximize
subject to
π¦π’ + π¦π£ +
π¦π£ : π£ β π +
(5.13)
(5.14)
(5.15)
(5.16)
ππ· : π· β π
ππ· : π β π· β π β€ ππ , for all π = π£π€ β πΈ.
ππ· β₯ 0,
for all π· β π
(π¦π£ free, for all π£ β π)
ο± Let ππ = ππ π¦, π be ππ β (π¦π’ + π¦π£ + ο(ππ· : π β π· β π))
CS conditions β
π₯π > 0 implies ππ = 0, for all π β πΈ
ππ· > 0 implies π₯(π·) = 1, for all π· β π
Combinatorial Optimization 2016
(5.17)
(5.18)
(5.19)
(5.20)
(5.21)
9
ο± In terms of matching, the conditions are
π β π implies ππ = 0, for all π β πΈ
ππ· > 0 implies |π β© π·| = 1, for all π· β π
(5.22)
(5.23)
ο± To handle ππ·, work on the derived graph πΊβ² of πΊ.
Note that every odd cut of πΊβ² is an odd cut of πΊ.
Particularly, every cut of the form πΏπΊ β² (π£) for a pseudonode π£ of πΊβ² is an odd
cut of πΊ.
We let only odd cuts for each pseudonode in πΊβ² may take on positive value
for ππ· (Each node π€ β π(π£) for pseudonode π£ also has its respective π¦π€
value).
So replace ππ· by π¦π£ β₯ 0 in the derived graph (may be recursively)
ο± Algorithm tries to find a perfect matching in πΊ= using tree extension and
augmentation steps.
When stuck, we change π¦. (Existence of edges joining two nodes in π΅(π)
should be considered when we determine ο₯)
Combinatorial Optimization 2016
10
ο± If there appears an equality edge joining two nodes in π΅(π), we shrink the odd
circuit.
To reflect the π¦ values of the nodes in the shrunk pseudonode, we replace ππ£π€
by ππ£π€ β π¦π£ for each edge π£π€ with π£ β π(πΆ) and π€ β π(πΆ).
We also set π¦πΆ = 0 for the new pseudonode.
The reduced costs ππ are the same for edges of πΊ × πΆ as they were for those
edges in πΊ.
Updated weights denoted by πβ². Get derived pair (πΊβ², πβ²)
9
1
1
3
2
1
6
8
0
2
0
1
5
0
4
6
6
0
7
4
7
8
5
4
4
(Shrinking and updating weights)
Combinatorial Optimization 2016
11
ο± If we have solved the problem on a derived graph, then we have solved the
problem on the original graph.
ο± Prop 5.14:
Let πΊβ², πβ² be obtained from πΊ, π by shrinking the odd circuit πΆ of equality
edges with respect to the dual-feasible solution π¦.
Let πβ² be a perfect matching of πΊβ² and, w.r.t. πΊβ², πβ², let (π¦β², πβ²) be a feasible
solution to (5.17) such that πβ², (π¦β², πβ²) satisfy conditions (5.22), (5.23) and
such that π¦πΆβ² β₯ 0.
Let π be a perfect matching of πΊ obtained by extending πβ² with edges from
πΈ(πΆ). Let (π¦, π) be defined as follows.
For π£ β π\V(πΆ), π¦π£ = π¦π£β² (For π£ β π(πΆ), π¦π£ is already defined)
For π· β π, we put ππ· = ππ·β² if ππ·β² > 0; we put ππ· = π¦πΆβ² if π· = πΏβ²(πΆ);
otherwise, we put ππ· = 0.
Then w.r.t. πΊ, π, (π¦, π) is a feasible solution to (5.17) and π, (π¦, π) satisfy
the conditions (5.22), (5.23).
Combinatorial Optimization 2016
12
ο± Dual variable changes:
Need to consider edges π = π’π£ with π’, π£ β π΅(π) when choosing ο₯,
β ο₯ β€ ππ /2 for such edges.
Need π¦π£ remains nonnegative if π£ is a pseudonode,
β ο₯ β€ π¦π£ for such nodes ( only need to consider pseudonodes
in π΄(π) since they only decrease in value)
1
2
2
3
π
6
π
4
π
1
4
π
3
4
π
5
3
2
4
6
π
1
β
5
π 2
(Take ο₯ = 1/2 because of edge ππ )
Then ππ becomes equality edge and
we can shrink the odd circuit.
Combinatorial Optimization 2016
13
Change π
Input: A derived pair (πΊβ², πβ²), a feasible solution π¦ of (5.17) for this pair, a
matching πβ² of πΊβ² consisting of equality edges, and an πβ²-alternating tree π
consisting of equality edges in πΊβ².
Action:
Let ο₯1 = min ( ππ : π joins in πΊβ² a node in π΅(π) to a node not in π(π)) ;
ο₯2 = min ( ππ /2 : π joins in πΊβ² two nodes in π΅(π)) ;
ο₯3 = min ( π¦π£ : π£ β π΄(π), π£ is a pseudonode of πΊβ²).
ο₯ = min (ο₯1, ο₯2, ο₯3 ).
Replace π¦π£ by
π¦π£ + ο₯, if π£ β π΅(π) ;
π¦π£ β ο₯, if π£ β π΄(π) ;
π¦π£ , otherwise.
Combinatorial Optimization 2016
14
ο± Expansion of pseudonodes:
Recall that we expanded all pseudonodes after an augmentation occur in the
cardinality matching algorithm.
However, for weighted problem, this can't be done arbitrarily since expanding a
pseudonode with π¦π£ > 0 will result in having ππ· > 0 in the expanded graph.
We cannot carry such information about ππ· in subsequent iterations using node
potentials. So we need to maintain some pseudonodes unexpanded in subsequent
iterations. Therefore, only pseudonodes with π¦π£ = 0 may be expanded.
(Q: Does pseudonodes expansion after augmentation really needed in cardinality
problem?)
ο± As we grow π-alternating tree again after an augmentation (without pseudonode
expansion), we may encounter the situation that a pseudonode is in π΄(π). Its
node potential will eventually drop to 0 if none of augmentation, extension, or
shrinking occurs. Then we need to expand the pseudonode since otherwise we
may miss some augmenting paths.
(If it is in π΅(π), we don't need to expand it.)
Combinatorial Optimization 2016
15
π
π£
π
πΆ
Note that, after augmentation, the odd circuit is not tight.
Combinatorial Optimization 2016
16
π
π’
π
π€
π
πΆ
Tree update after pseudonode expansion
Combinatorial Optimization 2016
17
Expand odd pseudonode π and update π΄β², π», and πβ²
Input: A matching πβ² consisting of equality edges of a derived graph πΊβ², an
πβ²-alternating tree π consisting of equality edges, and an odd pseudonode π£ of
πΊβ² such that π¦π£ = 0
Action: Let π, π be the edges of π incident with π£, let πΆ be the circuit that was
shrunk to form π£, let π’, π€ be the ends of π, π in π(πΆ), and let π be the evenlength path in πΆ joining π’ to π€.
Replace πΊβ² by the graph obtained by expanding πΆ. Replace πβ² by the matching
obtained by extending πβ² to a matching of πΊβ².
Replace π by the tree having edge-set πΈ(π) βͺ πΈ(π).
β²
β²
For each edge π π‘ with π β π(πΆ) and π‘ β π(πΆ), replace ππ π‘
by ππ π‘
+ π¦π .
ο± Prop 5.15: After the application of the expand subroutine, πβ² is a matching
contained in πΈ= , and π is an πβ²-alternating tree whose edges are all contained
in πΈ= .
Combinatorial Optimization 2016
18
Blossom Algorithm for Minimum-Weight Perfect Matching
Let π¦ be a feasible solution to (5.9), πβ² a matching of πΊ= , πΊβ² = πΊ ;
Set π = ({π}, β
), where π is an πβ²-exposed node of πΊβ² ;
Loop
Case: There exists π β πΈ= whose ends in πΊβ² are π£ β π΅(π)
and an πβ²-exposed node π€ β π(π)
Use π£π€ to augment πβ² ;
If there is no πβ²-exposed node in πΊβ²
Extend πβ² to perfect matching π of πΊ and stop ;
Else
Replace π by ({π}, β
), where π is πβ²-exposed ;
Case: There exists π β πΈ= whose ends in πΊβ² are π£ β π΅(π)
and an πβ²-covered node π€ β π(π)
Use π£π€ to extend π ;
Combinatorial Optimization 2016
19
(Continued)
Case: There exists π β πΈ= whose ends in πΊβ² are π£, π€ β π΅(π)
Use π£π€ to shrink and update πβ², π, and πβ² ;
Case: There is a pseudonode π£ β π΄(π) with π¦π£ = 0
Expand π£ and update πβ², π, and πβ² ;
Case: None of the above
If every π β πΈ incident in πΊβ² with π£ β π΅(π) has its other end
in π΄(π) and π΄(π) contains no pseudonode
Stop, πΊ has no perfect matching ;
Else
Change π¦.
Combinatorial Optimization 2016
20
ο± The algorithm provides a proof of Thm 5.13 except that
πΊ has a perfect matching ο (5.13) has a feasible solution. (HW)
ο± Thm 5.16: The blossom algorithm terminates after performing π(π)
augmentation steps, and π(π2) tree-extension, shrinking, expanding, and dual
change steps. Moreover, it returns a minimum-weight perfect matching, or
determines correctly that πΊ has no perfect matching.
(Pf) see text.
Combinatorial Optimization 2016
21
Optimal Dual Solutions of Matching Problems
ο± By algorithm, if consider the family β of sets π such that ππΏ(π) > 0, can choose
each such π to be π(π£) for a pseudonode π£ of a derived graph πΊβ² of πΊ, moreover,
the final derived graph πΊβ²β² is a derived graph of πΊβ².
ο± Thm 5.17: If the dual linear programming problem (5.17) has an optimal
solution, then it has one that is nested ( π with ππΏ(π) > 0 are disjoint or one is
contained in the other).
(Pf) By algorithm.
Q: Does dual problem (5.17) have integral optimal solution?
Motivation : Chapter 6. Integrality of Polyhedra
Consider strong duality equation for primal-dual LP
max {π€ππ₯ βΆ π΄π₯ β€ π} = min {π¦ππ βΆ π¦ππ΄ = π€π, π¦ β₯ 0}
A rational linear system π΄π₯ β€ π is called totally dual integral if the minimum of
dual LP can be achieved by an integral vector π¦ for each integral π€ for which
the optima exist.
ο± Thm 6.29: Let π΄π₯ β€ π be a totally dual integral system such that π = {π₯: π΄π₯ β€
π} is a rational polytope and π is integral. Then P is an integral polytope.
Combinatorial Optimization 2016
22
ο± Thm 6.29: Let π΄π₯ β€ π be a totally dual integral system such that π = {π₯: π΄π₯ β€
π} is a rational polytope and π is integral. Then P is an integral polytope.
(Pf) Since π is integral, the duality equation implies that max {π€ππ₯ βΆ π₯ β π} is
an integer for all integral vectors π€. By Thm 6.22, π is integral.
οΏ
ο± Thm 5.18: If π β ππΈ , π(πΈ(πΆ)) is an even integer for every circuit πΆ of πΊ, and
(5.17) has an optimal solution, then it has an optimal solution that is nested and
integral.
(Pf) see text.
ο± Cor 5.19: If π β ππΈ and (5.17) has an optimal solution, then it has an optimal
solution that is nested and half-integral.
(Pf) 2π has the property that its sum on every circuit is an even integer. By
Thm 5.18, (5.17) has an integral nested optimal solution (π¦, π) when π is
1
replaced by 2π. Now (π¦, π) is the required solution.
2
ο± Cor 5.19 says that (5.17) is not TDI. However, if we use the inequalities
π₯(ο§(π)) β€ (|π| β 1)/2,
for all π β π, |π| β₯ 3, |π| odd
instead of (5.15), it becomes TDI. (The inequalities are used in the maximum
matching formulation (5.24))
Combinatorial Optimization 2016
23
The Triangle Inequality
ο± If πΊ = (π, πΈ) is a complete graph and π β π
πΈ , we say that π satisfies the
triangle inequality, if ππ’π£ + ππ£π€ β₯ ππ’π€ for all π’, π£, π€ β π.
ο± Thm 5.20: Let πΊ = (π, πΈ) be a complete graph having an even number of
nodes and let π β π
πΈ such that π β₯ 0 and π satisfies the triangle inequality.
If the perfect matching algorithm is started with (π¦, π) = 0, then the optimal
dual solution at termination of the algorithm will satisfy π¦ β₯ 0.
Combinatorial Optimization 2016
24
Implementation of the Weighted Matching Algorithm
ο± Thm 5.21: The blossom algorithm for finding a minimum-weight perfect
matching can be implemented to run in time π(π2π).
Combinatorial Optimization 2016
25
Price and repair
ο± Practical technique to improve the performance of the weighted matching
algorithm. (for dense graph)
Start with sparse subgraph πΊ β of πΊ. Find an optimal perfect matching in πΊ β .
Then we compute reduced costs of edges in πΊ and not in πΊ β .
Add a negative edge to πΊ β and reoptimize.
Continue until no more negative edges exist in πΊ.
With more refinements, could solve problems up to 5 million nodes.
Combinatorial Optimization 2016
26
Maximum Weight Matchings
Maximum-Weight Matching Problem
Given: A graph πΊ = (π, πΈ) and π β π
πΈ .
Objective: To find a matching π of πΊ such that π(π) is maximum.
ο± Aspects to consider:
1. max-weight matching prob. ο΅ max(or min)-weight perfect matching prob.
2. modification of weighted perfect matching algorithm to solve max-weight
matching problem directly.
3. linear programming description of solution set.
Combinatorial Optimization 2016
27
ο± (1) reduction to max-weight perfect matching problem.
(Let π be the value of a maximum weight matching of πΊ, and π be the value
of a maximum weight perfect matching of πΊ. Then π β₯ 2π, π β€ 2π)
π
0
2
2
2
1
1
3
3
1
3
0
1
0
1
0
1
0
0
0
πΊ
Combinatorial Optimization 2016
πΊ
28
ο± (2), (3) LP formulation and algorithm
(π) Maximize (πππ₯π: π β πΈ)
subject to π₯(πΏ(π£)) β€ 1,
π₯(πΎ(π)) β€ (|π| β 1)/2,
π₯π β₯ 0,
(5.24)
for all π£ β π
for all π β π, |π| β₯ 3, |π| odd
for all π β πΈ.
ο± Thm 5.22: The maximum weight of a matching of πΊ is equal to the optimal
value of (5.24).
ο± See Integer and Combinatorial Optimization, Nemhauser and Wolsey, 1988 for
somewhat different presentation. We try to modify the min-weight perfect
matching algorithm as much as possible (maintain node labels).
ο± Let πͺ = {π β π βΆ |π| odd and at least 3}.
(π·) Minimize
subject to
π¦π’ + π¦π£ +
1
2
π¦π£ : π£ β π + (
π β 1 π§π : π β πͺ)
(5.25)
π§π : π β πΎ π , π β πͺ β₯ ππ , for all π β πΈ.
π¦π£ β₯ 0 for all π£ β π
π§π β₯ 0 for all π β πͺ.
Combinatorial Optimization 2016
29
ο± CS optimality conditions:
π β πΈ=
(5.26)
1
for all π β πͺ, π§π > 0 implies |π β© ο§(π)| = (|π| β 1) (5.27)
2
for all π£ β π, π¦π£ > 0 implies π£ is π-covered.
(5.28)
ο± Needed modifications:
Define ππ = ππ (π¦, π§) as ππ β (π¦π’ + π¦π£ + π§π : π β πΎ π , π β πͺ
Dual feasibility is ππ β€ 0
For dual changes, make sure that π¦π£ , π§π β₯ 0
Also π¦π£ β π¦π£ β ο₯ if π£ β π΅(π), π¦π£ β π¦π£ + ο₯ if π£ β π΄(π)
Combinatorial Optimization 2016
30
ο± (5.28) implies that we don't need to care about any exposed original node
with π¦π£ = 0
For an exposed pseudonode, if it includes an original node having π¦π£ = 0, it
can be expanded so that the node with π¦π£ = 0 is exposed. Hence we don't
need to worry about such exposed pseudonode.
ο± A node in πΊβ² is called bad if either it is an πβ²-exposed original node with
π¦π£ > 0 or it is an πβ²-exposed pseudonode π such that π¦π£ > 0 for every π£ β
π.
Hence we choose a bad node π as the root and grow the πβ²-alternating tree
to achieve augmentation. If there are no bad node in πΊβ², the current solution
is optimal and we extend πβ² to a matching in πΊ.
Combinatorial Optimization 2016
31
ο± Note that CS conditions (5.27) dictates that if π§π > 0, the odd-set constraint
must be tight. Hence we cannot expand pseudonode with π§π > 0 since if it is
expanded, the odd set may not be tight after some augmentations.
ο± Note that the expression of the reduced cost for edge π β πΈ is different between
the weighted perfect matching and the weighted maximum matching problem.
For perfect matching problem, for pseudonode π, the node label π¦π in πΊβ² is the
current dual value for the odd-cut represented by πΏ(π). The reduced cost of the
edges in πΏ(π) can be found in the form ππ β (π¦π’ + π¦π£ ) in πΊβ².
Combinatorial Optimization 2016
32
However, for the weighted maximum matching problem, the node label of a
pseudonode in πΊβ² does not actually give dual value for the odd-set constraint.
Suppose we have a pseudonode π β π΅(π) and the dual variable π§π
corresponding to ο§(π) are changed from 0 to 2ο₯. Then we need to maintain the
equality edges in ο§(π) and other edges in ο§(π) should remain dual feasible.
This can be achieved by subtracting ο₯ from π¦π£ (π¦π£ β ο₯) for all original nodes in
π. Now the reduced cost of edges π in πΏ(π) changes to ππ + ο₯.
Above operations can be achieved by making the node label of pseudonode
π β π΅(π) in πΊβ² as π¦π β π¦π β ο₯.
Combinatorial Optimization 2016
33
ο± Similarly, for pseudonode π β π΄(π), π¦π β π¦π + ο₯ in πΊβ² means that we
make dual value π§π β π§π β 2ο₯ and π¦π£ β π¦π£ + ο₯ for π£ β π.
In summary, we have
For pseudonode π β π΅(π), π¦π β π¦π β ο₯ in πΊβ² means π§π β π§π + 2ο₯ and
π¦π£ β π¦π£ β ο₯ for π£ β π.
For pseudonode π β π΄(π), π¦π β π¦π + ο₯ in πΊβ² means π§π β π§π β 2ο₯ and
π¦π£ β π¦π£ + ο₯ for π£ β π.
We need to maintain nonnegativity of dual variables, hence the node labels
for pseudonodes should be β€ 0.
We also need to keep information of the π¦π£ values for π£ β π to check π¦π£ β₯
0.
Combinatorial Optimization 2016
34
ο± Now determining ο₯ becomes:
Let ο₯1 = min ( ππ : π joins in πΊβ² a node in π΅(π) to a node not in π(π)) ;
ο₯2 = min ( ππ /2 : π joins in πΊβ² two nodes in π΅(π)) ;
ο₯3 = min ( |π¦π£ | (or π§π£ /2) : π£ β π΄(π), π£ is a pseudonode of πΊβ²).
ο₯4 = min ( π¦π£ : π£ β π΅(π), π£ is an original node of πΊβ² or
π£ β π(π€) for a pseudonode π€ β π΅(π) ).
ο₯ = min (ο₯1, ο₯2, ο₯3, ο₯4 )
Replace π¦π£ by
π¦π£ β ο₯, if π£ β π΅(π) ;
π¦π£ + ο₯, if π£ β π΄(π) ;
π¦π£ , otherwise.
Combinatorial Optimization 2016
35
ο± last change in the algorithm:
If there is a node π£ β π΅(π) that is not bad, we use the even-length πβ²alternating path from π£ to π to change πβ². This does not increase the
cardinality of πβ², but it decreases the number of bad nodes.
Note that, if we are stuck when expending πβ²-alternating tree, at least one of
the node labels for original node π£ β π΅(π) will drop to 0. Then we can use
the above procedure to decrease the number of bad nodes. For pseudonode
π€ β π΅(π), the dual value of at least one node π£ β π(π€) will drop to 0,
which makes the pseudonode as not bad, hence we can use the above
procedure.
Note that our purpose is not to find a perfect matching in πΊ= , but to find a
matching covering all nodes with π¦π£ > 0 and satisfying CS conditions for
odd-set constraints in πΊ= .
Combinatorial Optimization 2016
36
ο± The matching LP may be solved using simplex method.
We first solve (5.24) without the odd-set constraints. Let π₯0 be the current
optimal solution. Then we try to find an odd-set constraint that is violated by π₯0
(separation problem). If such a constraint is identified, it is added to the current
formulation and the LP is reoptimized using dual simplex method.
This procedure is repeated until there exists no violated odd-set constraints, in
which moment we have found an optimal solution. Since simplex method finds
an extreme point optimal solution if one exists, we can obtain an optimal
matching.
Identifying a violated odd-set constraint can be done in polynomial time (using a
slight variation of Gomory-Hu procedure, see Padberg and Rao, 1982, Odd
Minimum Cut-Sets and b-Matchings, Mathematics of Operations Research 7, 6780).
More robust approach to deal with matching problems with some variations.
ο± Edmond's matching algorithm was the starting point to investigate the polyhedral
structure of many combinatorial optimization problems (polyhedral
combinatorics).
Combinatorial Optimization 2016
37
© Copyright 2026 Paperzz