The crossing number of a graph is the minimum number of edge crossings in any drawing of the graph in the plane. Extensive research has produced bounds on the crossing number and exact formulae for special graph classes, yet the crossing numbers of graphs such as K11 or K9,11 are still unknown. Finding the crossing number is NP-hard for general graphs and no practical algorithm for its computation has been published so far. We present an integer linear programming formulation that is based on a reduction of the general problem to a restricted version of the crossing number problem in which each edge may be crossed at most once. We also present cutting plane generation heuristics and a column generation scheme. As we demonstrate in a computational study, a branch-and-cut algorithm based on these techniques as well as recently published preprocessing algorithms can be used to successfully compute the crossing number for small- to medium-sized general graphs for the first time.
, ,
, ,
,
Elsevier
Discrete Optimization
Evolutionary Intelligence

Buchheim, C., Chimani, M., Ebner, D., Gutwenger, C., Juenger, M., Klau, G., … Weiskircher, R. (2008). A Branch-and-Cut Approach to the Crossing Number Problem. Discrete Optimization, 5(2), 373–388.