SLIDE 1 Computing Crossing Numbers by Integer Programming
Christoph Buchheim1 Markus Chimani2 Dietmar Ebner3 Carsten Gutwenger2 Michael J¨ unger1 Gunnar W. Klau4 Petra Mutzel2 Ren´ e Weiskircher5
1 Department of Computer Science, University of Cologne, Germany 2 Department of Computer Science, University of Dortmund, Germany 3 Institute of Computer Languages, Vienna University of Technology, Austria 4 Department of Mathematics and Computer Science, Free University Berlin
and DFG Research Center MATHEON, Germany
5 CSIRO Mathematical and Information Sciences, Melbourne, Australia
10th Combinatorial Optimization Workshop – Aussois 2006
SLIDE 2
Problem Definition and Motivation
Given a graph G = (V, E), draw it in two dimensions such that the number of crossings between its edges is minimal. 51 crossings 12 crossings 4 crossings The crossing number cr(G) is the minimum number of such crossings for all two-dimensional drawings.
SLIDE 3
Problem Definition and Motivation
Given a graph G = (V, E), draw it in two dimensions such that the number of crossings between its edges is minimal. 51 crossings 12 crossings 4 crossings The crossing number cr(G) is the minimum number of such crossings for all two-dimensional drawings.
SLIDE 4
Problem Definition and Motivation
Given a graph G = (V, E), draw it in two dimensions such that the number of crossings between its edges is minimal. 51 crossings 12 crossings 4 crossings The crossing number cr(G) is the minimum number of such crossings for all two-dimensional drawings.
SLIDE 5
Problem Definition and Motivation
Given a graph G = (V, E), draw it in two dimensions such that the number of crossings between its edges is minimal. 51 crossings 12 crossings 4 crossings The crossing number cr(G) is the minimum number of such crossings for all two-dimensional drawings.
SLIDE 6
Problem Definition and Motivation
Given a graph G = (V, E), draw it in two dimensions such that the number of crossings between its edges is minimal. 51 crossings 12 crossings 4 crossings The crossing number cr(G) is the minimum number of such crossings for all two-dimensional drawings.
SLIDE 7 Problem Definition and Motivation
The crossing number problem was introduced by Tur´ an in 1944 (for Kn,m) was shown to be NP-hard by Garey & Johnson [1983] is addressed heuristically in practice (planarization)
- r restricted to special drawings (bilayer, linear, circular)
is unsolved even for very regular graph classes...
SLIDE 8 Problem Definition and Motivation
The crossing number problem was introduced by Tur´ an in 1944 (for Kn,m) was shown to be NP-hard by Garey & Johnson [1983] is addressed heuristically in practice (planarization)
- r restricted to special drawings (bilayer, linear, circular)
is unsolved even for very regular graph classes...
SLIDE 9 Problem Definition and Motivation
The crossing number problem was introduced by Tur´ an in 1944 (for Kn,m) was shown to be NP-hard by Garey & Johnson [1983] is addressed heuristically in practice (planarization)
- r restricted to special drawings (bilayer, linear, circular)
is unsolved even for very regular graph classes...
SLIDE 10 Problem Definition and Motivation
The crossing number problem was introduced by Tur´ an in 1944 (for Kn,m) was shown to be NP-hard by Garey & Johnson [1983] is addressed heuristically in practice (planarization)
- r restricted to special drawings (bilayer, linear, circular)
is unsolved even for very regular graph classes...
SLIDE 11 Problem Definition and Motivation
The crossing number problem was introduced by Tur´ an in 1944 (for Kn,m) was shown to be NP-hard by Garey & Johnson [1983] is addressed heuristically in practice (planarization)
- r restricted to special drawings (bilayer, linear, circular)
is unsolved even for very regular graph classes...
SLIDE 12 Crossing Number of Complete Graphs
the crossing number of Kn is unknown in general the drawing rule of Zarankiewicz [1953] yields Z(n) = 1 4 n 2 n − 1 2 n − 2 2 n − 3 2
- crossings, hence cr(Kn) ≤ Z(n)
it is conjectured that cr(Kn) = Z(n) verified up to n = 10 by Guy [1972] recently, de Klerk et al. showed lim
n→∞
cr(Kn) Z(n) ≥ 0.83 similar situation for Kn,m
SLIDE 13 Crossing Number of Complete Graphs
the crossing number of Kn is unknown in general the drawing rule of Zarankiewicz [1953] yields Z(n) = 1 4 n 2 n − 1 2 n − 2 2 n − 3 2
- crossings, hence cr(Kn) ≤ Z(n)
it is conjectured that cr(Kn) = Z(n) verified up to n = 10 by Guy [1972] recently, de Klerk et al. showed lim
n→∞
cr(Kn) Z(n) ≥ 0.83 similar situation for Kn,m
SLIDE 14 Crossing Number of Complete Graphs
the crossing number of Kn is unknown in general the drawing rule of Zarankiewicz [1953] yields Z(n) = 1 4 n 2 n − 1 2 n − 2 2 n − 3 2
- crossings, hence cr(Kn) ≤ Z(n)
it is conjectured that cr(Kn) = Z(n) verified up to n = 10 by Guy [1972] recently, de Klerk et al. showed lim
n→∞
cr(Kn) Z(n) ≥ 0.83 similar situation for Kn,m
SLIDE 15 Crossing Number of Complete Graphs
the crossing number of Kn is unknown in general the drawing rule of Zarankiewicz [1953] yields Z(n) = 1 4 n 2 n − 1 2 n − 2 2 n − 3 2
- crossings, hence cr(Kn) ≤ Z(n)
it is conjectured that cr(Kn) = Z(n) verified up to n = 10 by Guy [1972] recently, de Klerk et al. showed lim
n→∞
cr(Kn) Z(n) ≥ 0.83 similar situation for Kn,m
SLIDE 16 Crossing Number of Complete Graphs
the crossing number of Kn is unknown in general the drawing rule of Zarankiewicz [1953] yields Z(n) = 1 4 n 2 n − 1 2 n − 2 2 n − 3 2
- crossings, hence cr(Kn) ≤ Z(n)
it is conjectured that cr(Kn) = Z(n) verified up to n = 10 by Guy [1972] recently, de Klerk et al. showed lim
n→∞
cr(Kn) Z(n) ≥ 0.83 similar situation for Kn,m
SLIDE 17 Crossing Number of Complete Graphs
the crossing number of Kn is unknown in general the drawing rule of Zarankiewicz [1953] yields Z(n) = 1 4 n 2 n − 1 2 n − 2 2 n − 3 2
- crossings, hence cr(Kn) ≤ Z(n)
it is conjectured that cr(Kn) = Z(n) verified up to n = 10 by Guy [1972] recently, de Klerk et al. showed lim
n→∞
cr(Kn) Z(n) ≥ 0.83 similar situation for Kn,m
SLIDE 18
Applications
Applications for crossing minimization: design of a brick transport system on rails [crossings increase risk of accidents] VLSI design [crossings are expensive to realize] automatic graph drawing [crossings make the drawing less readable] 51 crossings 12 crossings 4 crossings
SLIDE 19
Applications
Applications for crossing minimization: design of a brick transport system on rails [crossings increase risk of accidents] VLSI design [crossings are expensive to realize] automatic graph drawing [crossings make the drawing less readable] 51 crossings 12 crossings 4 crossings
SLIDE 20
Applications
Applications for crossing minimization: design of a brick transport system on rails [crossings increase risk of accidents] VLSI design [crossings are expensive to realize] automatic graph drawing [crossings make the drawing less readable] 51 crossings 12 crossings 4 crossings
SLIDE 21
Applications
Applications for crossing minimization: design of a brick transport system on rails [crossings increase risk of accidents] VLSI design [crossings are expensive to realize] automatic graph drawing [crossings make the drawing less readable] 51 crossings 12 crossings 4 crossings
SLIDE 22
Applications
Applications for crossing minimization: design of a brick transport system on rails [crossings increase risk of accidents] VLSI design [crossings are expensive to realize] automatic graph drawing [crossings make the drawing less readable] 51 crossings 12 crossings 4 crossings
SLIDE 23
ILP Approach (First Try)
Our aim is to model the crossing number problem as an ILP . Straightforward approach: introduce binary variable xef for each {e, f} with e, f ∈ E interpret xef = 1 as “edge e crosses edge f” minimize xef Problem: checking feasibility is NP-complete!
SLIDE 24
ILP Approach (First Try)
Our aim is to model the crossing number problem as an ILP . Straightforward approach: introduce binary variable xef for each {e, f} with e, f ∈ E interpret xef = 1 as “edge e crosses edge f” minimize xef Problem: checking feasibility is NP-complete!
SLIDE 25
ILP Approach (First Try)
Our aim is to model the crossing number problem as an ILP . Straightforward approach: introduce binary variable xef for each {e, f} with e, f ∈ E interpret xef = 1 as “edge e crosses edge f” minimize xef Problem: checking feasibility is NP-complete!
SLIDE 26
ILP Approach (First Try)
Our aim is to model the crossing number problem as an ILP . Straightforward approach: introduce binary variable xef for each {e, f} with e, f ∈ E interpret xef = 1 as “edge e crosses edge f” minimize xef Problem: checking feasibility is NP-complete!
SLIDE 27
ILP Approach (First Try)
Our aim is to model the crossing number problem as an ILP . Straightforward approach: introduce binary variable xef for each {e, f} with e, f ∈ E interpret xef = 1 as “edge e crosses edge f” minimize xef Problem: checking feasibility is NP-complete!
SLIDE 28
ILP Approach (First Try)
Our aim is to model the crossing number problem as an ILP . Straightforward approach: introduce binary variable xef for each {e, f} with e, f ∈ E interpret xef = 1 as “edge e crosses edge f” minimize xef Problem: checking feasibility is NP-complete!
SLIDE 29
Realizability
Problem: Given D ⊆ E × E, decide whether D is realizable, i.e., whether a drawing of G exists with e crossing f iff (e, f) ∈ D. NP-complete by Kratochv´ ıl [1991] No hope for a useful ILP model with this choice of variables!
SLIDE 30
Realizability
Problem: Given D ⊆ E × E, decide whether D is realizable, i.e., whether a drawing of G exists with e crossing f iff (e, f) ∈ D. NP-complete by Kratochv´ ıl [1991] No hope for a useful ILP model with this choice of variables!
SLIDE 31
Realizability
Problem: Given D ⊆ E × E, decide whether D is realizable, i.e., whether a drawing of G exists with e crossing f iff (e, f) ∈ D. NP-complete by Kratochv´ ıl [1991] No hope for a useful ILP model with this choice of variables!
SLIDE 32
Realizability
Realizability depends on the order of crossings on an edge: Number of potential orders is exponential... It’s not enough to determine the crossing edge pairs.
SLIDE 33
Realizability
Realizability depends on the order of crossings on an edge: Number of potential orders is exponential... It’s not enough to determine the crossing edge pairs.
SLIDE 34
Realizability
Realizability depends on the order of crossings on an edge: Number of potential orders is exponential... It’s not enough to determine the crossing edge pairs.
SLIDE 35
Realizability
Realizability depends on the order of crossings on an edge: Number of potential orders is exponential... It’s not enough to determine the crossing edge pairs.
SLIDE 36
Realizability
Realizability depends on the order of crossings on an edge: Number of potential orders is exponential... It’s not enough to determine the crossing edge pairs.
SLIDE 37 Crossing Restricted Drawings
To avoid this problem, consider crossing restricted drawings: allow at most one crossing per edge However...
- ptimal CR-drawings can have more than cr(G) crossings
for dense graphs, CR-drawings don’t even exist Solution: replace every edge of G by a path of length |E| Then a crossing-minimal CR-drawing of the resulting graph exists and has cr(G) crossings can be easily transformed into a drawing of G with the same number of edge crossings
SLIDE 38 Crossing Restricted Drawings
To avoid this problem, consider crossing restricted drawings: allow at most one crossing per edge However...
- ptimal CR-drawings can have more than cr(G) crossings
for dense graphs, CR-drawings don’t even exist Solution: replace every edge of G by a path of length |E| Then a crossing-minimal CR-drawing of the resulting graph exists and has cr(G) crossings can be easily transformed into a drawing of G with the same number of edge crossings
SLIDE 39 Crossing Restricted Drawings
To avoid this problem, consider crossing restricted drawings: allow at most one crossing per edge However...
- ptimal CR-drawings can have more than cr(G) crossings
for dense graphs, CR-drawings don’t even exist Solution: replace every edge of G by a path of length |E| Then a crossing-minimal CR-drawing of the resulting graph exists and has cr(G) crossings can be easily transformed into a drawing of G with the same number of edge crossings
SLIDE 40 Crossing Restricted Drawings
To avoid this problem, consider crossing restricted drawings: allow at most one crossing per edge However...
- ptimal CR-drawings can have more than cr(G) crossings
for dense graphs, CR-drawings don’t even exist Solution: replace every edge of G by a path of length |E| Then a crossing-minimal CR-drawing of the resulting graph exists and has cr(G) crossings can be easily transformed into a drawing of G with the same number of edge crossings
SLIDE 41 Crossing Restricted Drawings
To avoid this problem, consider crossing restricted drawings: allow at most one crossing per edge However...
- ptimal CR-drawings can have more than cr(G) crossings
for dense graphs, CR-drawings don’t even exist Solution: replace every edge of G by a path of length |E| Then a crossing-minimal CR-drawing of the resulting graph exists and has cr(G) crossings can be easily transformed into a drawing of G with the same number of edge crossings
SLIDE 42 Crossing Restricted Drawings
To avoid this problem, consider crossing restricted drawings: allow at most one crossing per edge However...
- ptimal CR-drawings can have more than cr(G) crossings
for dense graphs, CR-drawings don’t even exist Solution: replace every edge of G by a path of length |E| Then a crossing-minimal CR-drawing of the resulting graph exists and has cr(G) crossings can be easily transformed into a drawing of G with the same number of edge crossings
SLIDE 43 Crossing Restricted Drawings
To avoid this problem, consider crossing restricted drawings: allow at most one crossing per edge However...
- ptimal CR-drawings can have more than cr(G) crossings
for dense graphs, CR-drawings don’t even exist Solution: replace every edge of G by a path of length |E| Then a crossing-minimal CR-drawing of the resulting graph exists and has cr(G) crossings can be easily transformed into a drawing of G with the same number of edge crossings
SLIDE 44 Crossing Restricted Drawings
To avoid this problem, consider crossing restricted drawings: allow at most one crossing per edge However...
- ptimal CR-drawings can have more than cr(G) crossings
for dense graphs, CR-drawings don’t even exist Solution: replace every edge of G by a path of length |E| Then a crossing-minimal CR-drawing of the resulting graph exists and has cr(G) crossings can be easily transformed into a drawing of G with the same number of edge crossings
SLIDE 45
ILP Approach (Second Try)
Search for a crossing-minimal CR-drawing of G: introduce binary variable xef for each {e, f} with e, f ∈ E interpret xef = 1 as “edge e crosses edge f” minimize xef introduce CR-constraints
f∈E xef ≤ 1
Realizability?!
SLIDE 46
ILP Approach (Second Try)
Search for a crossing-minimal CR-drawing of G: introduce binary variable xef for each {e, f} with e, f ∈ E interpret xef = 1 as “edge e crosses edge f” minimize xef introduce CR-constraints
f∈E xef ≤ 1
Realizability?!
SLIDE 47
ILP Approach (Second Try)
Search for a crossing-minimal CR-drawing of G: introduce binary variable xef for each {e, f} with e, f ∈ E interpret xef = 1 as “edge e crosses edge f” minimize xef introduce CR-constraints
f∈E xef ≤ 1
Realizability?!
SLIDE 48
ILP Approach (Second Try)
Search for a crossing-minimal CR-drawing of G: introduce binary variable xef for each {e, f} with e, f ∈ E interpret xef = 1 as “edge e crosses edge f” minimize xef introduce CR-constraints
f∈E xef ≤ 1
Realizability?!
SLIDE 49
Realizability
Call a set D ⊆ E × E crossing restricted if for all e ∈ E there is at most one f ∈ E with (e, f) ∈ D. Problem: Given a crossing restricted set D ⊆ E × E, decide whether D is realizable. Can be done in linear time...
SLIDE 50
Realizability
Call a set D ⊆ E × E crossing restricted if for all e ∈ E there is at most one f ∈ E with (e, f) ∈ D. Problem: Given a crossing restricted set D ⊆ E × E, decide whether D is realizable. Can be done in linear time...
SLIDE 51
Realizability
Call a set D ⊆ E × E crossing restricted if for all e ∈ E there is at most one f ∈ E with (e, f) ∈ D. Problem: Given a crossing restricted set D ⊆ E × E, decide whether D is realizable. Can be done in linear time...
SLIDE 52
Realizability
Define GD as the result of adding dummy nodes to G on every edge pair (e, f) ∈ D:
e f e f
G = (V, E), D = {(e, f)} GD Construction is well-defined as D is crossing restricted!
SLIDE 53
Realizability
Define GD as the result of adding dummy nodes to G on every edge pair (e, f) ∈ D:
e f e f
G = (V, E), D = {(e, f)} GD Construction is well-defined as D is crossing restricted!
SLIDE 54
Realizability
Define GD as the result of adding dummy nodes to G on every edge pair (e, f) ∈ D:
e f e f
G = (V, E), D = {(e, f)} GD Construction is well-defined as D is crossing restricted!
SLIDE 55
Realizability
Lemma: Let D ⊆ E × E be crossing restricted. Then D is realizable iff GD is planar. can be tested in O(|V| + |D|) time can be used to model realizability by linear constraints...
SLIDE 56
Realizability
Lemma: Let D ⊆ E × E be crossing restricted. Then D is realizable iff GD is planar. can be tested in O(|V| + |D|) time can be used to model realizability by linear constraints...
SLIDE 57
Realizability
Lemma: Let D ⊆ E × E be crossing restricted. Then D is realizable iff GD is planar. can be tested in O(|V| + |D|) time can be used to model realizability by linear constraints...
SLIDE 58 Kuratowski Constraints
Let... D ⊆ E × E be crossing restricted H be any subdivision of K5 or K3,3 in GD ˆ H be the corresponding subgraph of G. Then every realizable crossing restricted set satisfies CD,H :
H2\D
xef ≥ 1 −
H2∩D
(1 − xef) . Proof: Let the crossing-restricted set D′ ⊆ E × E violate CD,H ⇒ lhs is 0, rhs is 1 ⇒ D and D′ agree on ˆ H ⇒ GD′ contains H ⇒ GD′ is not planar ⇒ D′ is not realizable.
SLIDE 59 Kuratowski Constraints
Let... D ⊆ E × E be crossing restricted H be any subdivision of K5 or K3,3 in GD ˆ H be the corresponding subgraph of G. Then every realizable crossing restricted set satisfies CD,H :
H2\D
xef ≥ 1 −
H2∩D
(1 − xef) . Proof: Let the crossing-restricted set D′ ⊆ E × E violate CD,H ⇒ lhs is 0, rhs is 1 ⇒ D and D′ agree on ˆ H ⇒ GD′ contains H ⇒ GD′ is not planar ⇒ D′ is not realizable.
SLIDE 60 Kuratowski Constraints
Let... D ⊆ E × E be crossing restricted H be any subdivision of K5 or K3,3 in GD ˆ H be the corresponding subgraph of G. Then every realizable crossing restricted set satisfies CD,H :
H2\D
xef ≥ 1 −
H2∩D
(1 − xef) . Proof: Let the crossing-restricted set D′ ⊆ E × E violate CD,H ⇒ lhs is 0, rhs is 1 ⇒ D and D′ agree on ˆ H ⇒ GD′ contains H ⇒ GD′ is not planar ⇒ D′ is not realizable.
SLIDE 61 Kuratowski Constraints
Let... D ⊆ E × E be crossing restricted H be any subdivision of K5 or K3,3 in GD ˆ H be the corresponding subgraph of G. Then every realizable crossing restricted set satisfies CD,H :
H2\D
xef ≥ 1 −
H2∩D
(1 − xef) . Proof: Let the crossing-restricted set D′ ⊆ E × E violate CD,H ⇒ lhs is 0, rhs is 1 ⇒ D and D′ agree on ˆ H ⇒ GD′ contains H ⇒ GD′ is not planar ⇒ D′ is not realizable.
SLIDE 62 Kuratowski Constraints
Let... D ⊆ E × E be crossing restricted H be any subdivision of K5 or K3,3 in GD ˆ H be the corresponding subgraph of G. Then every realizable crossing restricted set satisfies CD,H :
H2\D
xef ≥ 1 −
H2∩D
(1 − xef) . Proof: Let the crossing-restricted set D′ ⊆ E × E violate CD,H ⇒ lhs is 0, rhs is 1 ⇒ D and D′ agree on ˆ H ⇒ GD′ contains H ⇒ GD′ is not planar ⇒ D′ is not realizable.
SLIDE 63 Kuratowski Constraints
Let... D ⊆ E × E be crossing restricted H be any subdivision of K5 or K3,3 in GD ˆ H be the corresponding subgraph of G. Then every realizable crossing restricted set satisfies CD,H :
H2\D
xef ≥ 1 −
H2∩D
(1 − xef) . Proof: Let the crossing-restricted set D′ ⊆ E × E violate CD,H ⇒ lhs is 0, rhs is 1 ⇒ D and D′ agree on ˆ H ⇒ GD′ contains H ⇒ GD′ is not planar ⇒ D′ is not realizable.
SLIDE 64 Kuratowski Constraints
Let... D ⊆ E × E be crossing restricted H be any subdivision of K5 or K3,3 in GD ˆ H be the corresponding subgraph of G. Then every realizable crossing restricted set satisfies CD,H :
H2\D
xef ≥ 1 −
H2∩D
(1 − xef) . Proof: Let the crossing-restricted set D′ ⊆ E × E violate CD,H ⇒ lhs is 0, rhs is 1 ⇒ D and D′ agree on ˆ H ⇒ GD′ contains H ⇒ GD′ is not planar ⇒ D′ is not realizable.
SLIDE 65
Kuratowski Constraints
Theorem: The constraints CD,H suffice to model realizability of crossing restricted sets. Separation is done heuristically: round all fractional LP-values yields a crossing restricted set D ⊆ E × E search for Kuratowski subgraph H in GD (linear time by de Fraysseix & de Mendez [2003]) add CD,H if violated
SLIDE 66
Kuratowski Constraints
Theorem: The constraints CD,H suffice to model realizability of crossing restricted sets. Separation is done heuristically: round all fractional LP-values yields a crossing restricted set D ⊆ E × E search for Kuratowski subgraph H in GD (linear time by de Fraysseix & de Mendez [2003]) add CD,H if violated
SLIDE 67
Kuratowski Constraints
Theorem: The constraints CD,H suffice to model realizability of crossing restricted sets. Separation is done heuristically: round all fractional LP-values yields a crossing restricted set D ⊆ E × E search for Kuratowski subgraph H in GD (linear time by de Fraysseix & de Mendez [2003]) add CD,H if violated
SLIDE 68
Kuratowski Constraints
Theorem: The constraints CD,H suffice to model realizability of crossing restricted sets. Separation is done heuristically: round all fractional LP-values yields a crossing restricted set D ⊆ E × E search for Kuratowski subgraph H in GD (linear time by de Fraysseix & de Mendez [2003]) add CD,H if violated
SLIDE 69
Kuratowski Constraints
Theorem: The constraints CD,H suffice to model realizability of crossing restricted sets. Separation is done heuristically: round all fractional LP-values yields a crossing restricted set D ⊆ E × E search for Kuratowski subgraph H in GD (linear time by de Fraysseix & de Mendez [2003]) add CD,H if violated
SLIDE 70
Kuratowski Constraints
Theorem: The constraints CD,H suffice to model realizability of crossing restricted sets. Separation is done heuristically: round all fractional LP-values yields a crossing restricted set D ⊆ E × E search for Kuratowski subgraph H in GD (linear time by de Fraysseix & de Mendez [2003]) add CD,H if violated
SLIDE 71
Our Algorithm
1 Consider biconnected components separately 2 Apply core reduction by Gutwenger & Chimani [2005] 3 Replace every edge by a path of length |E| 4 Find a crossing-minimal CR-drawing by branch-and-cut
Experiments show that this approach + works + can solve benchmark instances up to |V| = 40 − can’t solve dense instances − produces a huge number of variables − produces a lot of symmetry
SLIDE 72
Our Algorithm
1 Consider biconnected components separately 2 Apply core reduction by Gutwenger & Chimani [2005] 3 Replace every edge by a path of length |E| 4 Find a crossing-minimal CR-drawing by branch-and-cut
Experiments show that this approach + works + can solve benchmark instances up to |V| = 40 − can’t solve dense instances − produces a huge number of variables − produces a lot of symmetry
SLIDE 73
Our Algorithm
1 Consider biconnected components separately 2 Apply core reduction by Gutwenger & Chimani [2005] 3 Replace every edge by a path of length |E| 4 Find a crossing-minimal CR-drawing by branch-and-cut
Experiments show that this approach + works + can solve benchmark instances up to |V| = 40 − can’t solve dense instances − produces a huge number of variables − produces a lot of symmetry
SLIDE 74
Our Algorithm
1 Consider biconnected components separately 2 Apply core reduction by Gutwenger & Chimani [2005] 3 Replace every edge by a path of length |E| 4 Find a crossing-minimal CR-drawing by branch-and-cut
Experiments show that this approach + works + can solve benchmark instances up to |V| = 40 − can’t solve dense instances − produces a huge number of variables − produces a lot of symmetry
SLIDE 75
Our Algorithm
1 Consider biconnected components separately 2 Apply core reduction by Gutwenger & Chimani [2005] 3 Replace every edge by a path of length |E| 4 Find a crossing-minimal CR-drawing by branch-and-cut
Experiments show that this approach + works + can solve benchmark instances up to |V| = 40 − can’t solve dense instances − produces a huge number of variables − produces a lot of symmetry
SLIDE 76
Our Algorithm
1 Consider biconnected components separately 2 Apply core reduction by Gutwenger & Chimani [2005] 3 Replace every edge by a path of length |E| 4 Find a crossing-minimal CR-drawing by branch-and-cut
Experiments show that this approach + works + can solve benchmark instances up to |V| = 40 − can’t solve dense instances − produces a huge number of variables − produces a lot of symmetry
SLIDE 77
Our Algorithm
1 Consider biconnected components separately 2 Apply core reduction by Gutwenger & Chimani [2005] 3 Replace every edge by a path of length |E| 4 Find a crossing-minimal CR-drawing by branch-and-cut
Experiments show that this approach + works + can solve benchmark instances up to |V| = 40 − can’t solve dense instances − produces a huge number of variables − produces a lot of symmetry
SLIDE 78
Our Algorithm
1 Consider biconnected components separately 2 Apply core reduction by Gutwenger & Chimani [2005] 3 Replace every edge by a path of length |E| 4 Find a crossing-minimal CR-drawing by branch-and-cut
Experiments show that this approach + works + can solve benchmark instances up to |V| = 40 − can’t solve dense instances − produces a huge number of variables − produces a lot of symmetry
SLIDE 79
Our Algorithm
1 Consider biconnected components separately 2 Apply core reduction by Gutwenger & Chimani [2005] 3 Replace every edge by a path of length |E| 4 Find a crossing-minimal CR-drawing by branch-and-cut
Experiments show that this approach + works + can solve benchmark instances up to |V| = 40 − can’t solve dense instances − produces a huge number of variables − produces a lot of symmetry
SLIDE 80
Our Algorithm
1 Consider biconnected components separately 2 Apply core reduction by Gutwenger & Chimani [2005] 3 Replace every edge by a path of length |E| 4 Find a crossing-minimal CR-drawing by branch-and-cut
Experiments show that this approach + works + can solve benchmark instances up to |V| = 40 − can’t solve dense instances − produces a huge number of variables − produces a lot of symmetry
SLIDE 81
Drawbacks of the Model
Replacing edges by paths... yields up to Θ(|E|4) variables in total [only cr(G) of them are 1 in an optimal solution] leads to many equivalent solutions:
SLIDE 82
Drawbacks of the Model
Replacing edges by paths... yields up to Θ(|E|4) variables in total [only cr(G) of them are 1 in an optimal solution] leads to many equivalent solutions:
SLIDE 83
Drawbacks of the Model
Replacing edges by paths... yields up to Θ(|E|4) variables in total [only cr(G) of them are 1 in an optimal solution] leads to many equivalent solutions:
SLIDE 84
Drawbacks of the Model
Replacing edges by paths... yields up to Θ(|E|4) variables in total [only cr(G) of them are 1 in an optimal solution] leads to many equivalent solutions:
SLIDE 85
Drawbacks of the Model
Replacing edges by paths... yields up to Θ(|E|4) variables in total [only cr(G) of them are 1 in an optimal solution] leads to many equivalent solutions:
SLIDE 86
Drawbacks of the Model
Replacing edges by paths... yields up to Θ(|E|4) variables in total [only cr(G) of them are 1 in an optimal solution] leads to many equivalent solutions:
SLIDE 87
Drawbacks of the Model
Replacing edges by paths... yields up to Θ(|E|4) variables in total [only cr(G) of them are 1 in an optimal solution] leads to many equivalent solutions:
SLIDE 88
Drawbacks of the Model
Replacing edges by paths... yields up to Θ(|E|4) variables in total [only cr(G) of them are 1 in an optimal solution] leads to many equivalent solutions:
SLIDE 89
Column Generation
Solution to both problems is column generation! General idea: start with one edge segment e per original edge do not restrict the number of crossings on e [do not add CR-constraint
f xef ≤ 1]
if more than one crossing on e, add a new segment e′ [if CR-constraint
f xef ≤ 1 is violated, ...]
allow to shift crossings from e to e′ [if xef > 0, add variable xe′f] restrict the number of crossings on e′ [add CR-constraint
f xe′f ≤ 1]
favor crossings with e′ [decrease coefficient of xe′f by ǫ]
SLIDE 90
Column Generation
Solution to both problems is column generation! General idea: start with one edge segment e per original edge do not restrict the number of crossings on e [do not add CR-constraint
f xef ≤ 1]
if more than one crossing on e, add a new segment e′ [if CR-constraint
f xef ≤ 1 is violated, ...]
allow to shift crossings from e to e′ [if xef > 0, add variable xe′f] restrict the number of crossings on e′ [add CR-constraint
f xe′f ≤ 1]
favor crossings with e′ [decrease coefficient of xe′f by ǫ]
SLIDE 91
Column Generation
Solution to both problems is column generation! General idea: start with one edge segment e per original edge do not restrict the number of crossings on e [do not add CR-constraint
f xef ≤ 1]
if more than one crossing on e, add a new segment e′ [if CR-constraint
f xef ≤ 1 is violated, ...]
allow to shift crossings from e to e′ [if xef > 0, add variable xe′f] restrict the number of crossings on e′ [add CR-constraint
f xe′f ≤ 1]
favor crossings with e′ [decrease coefficient of xe′f by ǫ]
SLIDE 92
Column Generation
Solution to both problems is column generation! General idea: start with one edge segment e per original edge do not restrict the number of crossings on e [do not add CR-constraint
f xef ≤ 1]
if more than one crossing on e, add a new segment e′ [if CR-constraint
f xef ≤ 1 is violated, ...]
allow to shift crossings from e to e′ [if xef > 0, add variable xe′f] restrict the number of crossings on e′ [add CR-constraint
f xe′f ≤ 1]
favor crossings with e′ [decrease coefficient of xe′f by ǫ]
SLIDE 93
Column Generation
Solution to both problems is column generation! General idea: start with one edge segment e per original edge do not restrict the number of crossings on e [do not add CR-constraint
f xef ≤ 1]
if more than one crossing on e, add a new segment e′ [if CR-constraint
f xef ≤ 1 is violated, ...]
allow to shift crossings from e to e′ [if xef > 0, add variable xe′f] restrict the number of crossings on e′ [add CR-constraint
f xe′f ≤ 1]
favor crossings with e′ [decrease coefficient of xe′f by ǫ]
SLIDE 94
Column Generation
Solution to both problems is column generation! General idea: start with one edge segment e per original edge do not restrict the number of crossings on e [do not add CR-constraint
f xef ≤ 1]
if more than one crossing on e, add a new segment e′ [if CR-constraint
f xef ≤ 1 is violated, ...]
allow to shift crossings from e to e′ [if xef > 0, add variable xe′f] restrict the number of crossings on e′ [add CR-constraint
f xe′f ≤ 1]
favor crossings with e′ [decrease coefficient of xe′f by ǫ]
SLIDE 95
Column Generation
Solution to both problems is column generation! General idea: start with one edge segment e per original edge do not restrict the number of crossings on e [do not add CR-constraint
f xef ≤ 1]
if more than one crossing on e, add a new segment e′ [if CR-constraint
f xef ≤ 1 is violated, ...]
allow to shift crossings from e to e′ [if xef > 0, add variable xe′f] restrict the number of crossings on e′ [add CR-constraint
f xe′f ≤ 1]
favor crossings with e′ [decrease coefficient of xe′f by ǫ]
SLIDE 96
Column Generation
Solution to both problems is column generation! General idea: start with one edge segment e per original edge do not restrict the number of crossings on e [do not add CR-constraint
f xef ≤ 1]
if more than one crossing on e, add a new segment e′ [if CR-constraint
f xef ≤ 1 is violated, ...]
allow to shift crossings from e to e′ [if xef > 0, add variable xe′f] restrict the number of crossings on e′ [add CR-constraint
f xe′f ≤ 1]
favor crossings with e′ [decrease coefficient of xe′f by ǫ]
SLIDE 97
Column Generation
SLIDE 98
Column Generation
SLIDE 99
Column Generation
SLIDE 100
Column Generation
cheaper...
SLIDE 101
Column Generation
cheaper... but CR!
SLIDE 102
Column Generation
SLIDE 103
Column Generation
Correctness: no restriction on the number of crossings of first segment ⇒ all realizable sets D ⊆ E × E are feasible at every point ⇒ algorithm yields correct solution Termination: coefficients for new segments decreased by ǫ ⇒ all edges prefer to cross new segments ⇒ after at most |E| extensions, all CR-constraints hold “Extend the straightforward model just as much as necessary to allow testing feasibility (and to formulate an ILP)”
SLIDE 104
Column Generation
Correctness: no restriction on the number of crossings of first segment ⇒ all realizable sets D ⊆ E × E are feasible at every point ⇒ algorithm yields correct solution Termination: coefficients for new segments decreased by ǫ ⇒ all edges prefer to cross new segments ⇒ after at most |E| extensions, all CR-constraints hold “Extend the straightforward model just as much as necessary to allow testing feasibility (and to formulate an ILP)”
SLIDE 105
Column Generation
Correctness: no restriction on the number of crossings of first segment ⇒ all realizable sets D ⊆ E × E are feasible at every point ⇒ algorithm yields correct solution Termination: coefficients for new segments decreased by ǫ ⇒ all edges prefer to cross new segments ⇒ after at most |E| extensions, all CR-constraints hold “Extend the straightforward model just as much as necessary to allow testing feasibility (and to formulate an ILP)”
SLIDE 106
Column Generation
Correctness: no restriction on the number of crossings of first segment ⇒ all realizable sets D ⊆ E × E are feasible at every point ⇒ algorithm yields correct solution Termination: coefficients for new segments decreased by ǫ ⇒ all edges prefer to cross new segments ⇒ after at most |E| extensions, all CR-constraints hold “Extend the straightforward model just as much as necessary to allow testing feasibility (and to formulate an ILP)”
SLIDE 107
Column Generation
Correctness: no restriction on the number of crossings of first segment ⇒ all realizable sets D ⊆ E × E are feasible at every point ⇒ algorithm yields correct solution Termination: coefficients for new segments decreased by ǫ ⇒ all edges prefer to cross new segments ⇒ after at most |E| extensions, all CR-constraints hold “Extend the straightforward model just as much as necessary to allow testing feasibility (and to formulate an ILP)”
SLIDE 108
Column Generation
Correctness: no restriction on the number of crossings of first segment ⇒ all realizable sets D ⊆ E × E are feasible at every point ⇒ algorithm yields correct solution Termination: coefficients for new segments decreased by ǫ ⇒ all edges prefer to cross new segments ⇒ after at most |E| extensions, all CR-constraints hold “Extend the straightforward model just as much as necessary to allow testing feasibility (and to formulate an ILP)”
SLIDE 109
Column Generation
Correctness: no restriction on the number of crossings of first segment ⇒ all realizable sets D ⊆ E × E are feasible at every point ⇒ algorithm yields correct solution Termination: coefficients for new segments decreased by ǫ ⇒ all edges prefer to cross new segments ⇒ after at most |E| extensions, all CR-constraints hold “Extend the straightforward model just as much as necessary to allow testing feasibility (and to formulate an ILP)”
SLIDE 110
Column Generation
Correctness: no restriction on the number of crossings of first segment ⇒ all realizable sets D ⊆ E × E are feasible at every point ⇒ algorithm yields correct solution Termination: coefficients for new segments decreased by ǫ ⇒ all edges prefer to cross new segments ⇒ after at most |E| extensions, all CR-constraints hold “Extend the straightforward model just as much as necessary to allow testing feasibility (and to formulate an ILP)”
SLIDE 111
Column Generation
Correctness: no restriction on the number of crossings of first segment ⇒ all realizable sets D ⊆ E × E are feasible at every point ⇒ algorithm yields correct solution Termination: coefficients for new segments decreased by ǫ ⇒ all edges prefer to cross new segments ⇒ after at most |E| extensions, all CR-constraints hold “Extend the straightforward model just as much as necessary to allow testing feasibility (and to formulate an ILP)”
SLIDE 112
Computational Results
Test instances: Rome library of undirected graphs standard benchmark set in automatic graph drawing derived from graphs arising in practical applications contains graphs on 10 to 100 nodes graphs are sparse Time limit: 30 cpu minutes on an AMD Opteron with 2.4 GHz, 32 GB
SLIDE 113
Computational Results
Test instances: Rome library of undirected graphs standard benchmark set in automatic graph drawing derived from graphs arising in practical applications contains graphs on 10 to 100 nodes graphs are sparse Time limit: 30 cpu minutes on an AMD Opteron with 2.4 GHz, 32 GB
SLIDE 114
Computational Results
Test instances: Rome library of undirected graphs standard benchmark set in automatic graph drawing derived from graphs arising in practical applications contains graphs on 10 to 100 nodes graphs are sparse Time limit: 30 cpu minutes on an AMD Opteron with 2.4 GHz, 32 GB
SLIDE 115
Computational Results
Test instances: Rome library of undirected graphs standard benchmark set in automatic graph drawing derived from graphs arising in practical applications contains graphs on 10 to 100 nodes graphs are sparse Time limit: 30 cpu minutes on an AMD Opteron with 2.4 GHz, 32 GB
SLIDE 116
Computational Results
Test instances: Rome library of undirected graphs standard benchmark set in automatic graph drawing derived from graphs arising in practical applications contains graphs on 10 to 100 nodes graphs are sparse Time limit: 30 cpu minutes on an AMD Opteron with 2.4 GHz, 32 GB
SLIDE 117
Computational Results
Test instances: Rome library of undirected graphs standard benchmark set in automatic graph drawing derived from graphs arising in practical applications contains graphs on 10 to 100 nodes graphs are sparse Time limit: 30 cpu minutes on an AMD Opteron with 2.4 GHz, 32 GB
SLIDE 118 Percentage of Solved Instances
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% 10 20 30 40 50 60 70
# nodes % solved No Column Generation, 30 min Column Generation, 5 min Column Generation, 30 min
SLIDE 119 Runtimes by Crossing Number
300 600 900 1200 1500 1800 1 2 3 4 5 6 7 8 9 10 11 12
# crossings seconds minimum maximum average
SLIDE 120
Complete Graphs
Using our general approach, we can solve K8 (though its crossing number is 18) Special approach for complete graphs: use knowledge of cr(Kn) when computing cr(Kn+1) Using this specialized approach, we can solve K?...
SLIDE 121
Complete Graphs
Using our general approach, we can solve K8 (though its crossing number is 18) Special approach for complete graphs: use knowledge of cr(Kn) when computing cr(Kn+1) Using this specialized approach, we can solve K?...
SLIDE 122
Complete Graphs
Using our general approach, we can solve K8 (though its crossing number is 18) Special approach for complete graphs: use knowledge of cr(Kn) when computing cr(Kn+1) Using this specialized approach, we can solve K?...
SLIDE 123
Complete Graphs
Using our general approach, we can solve K8 (though its crossing number is 18) Special approach for complete graphs: use knowledge of cr(Kn) when computing cr(Kn+1) Using this specialized approach, we can solve K?...