The.Algorithm.Design.Manual.Springer-Verlag.1998
The.Algorithm.Design.Manual.Springer-Verlag.1998 The.Algorithm.Design.Manual.Springer-Verlag.1998
Edge Coloring Next: Graph Isomorphism Up: Graph Problems: Hard Problems Previous: Vertex Coloring Edge Coloring Input description: A graph G=(V,E). Problem description: What is the smallest set of colors needed to color the edges of E such that no two same-color edges share a vertex in common? Discussion: The edge coloring of graphs arises in a variety of scheduling applications, typically associated with minimizing the number of noninterfering rounds needed to complete a given set of tasks. For example, consider a situation where we need to schedule a given set of two-person interviews, where each interview takes one hour. All meetings could be scheduled to occur at distinct times to avoid conflicts, but it is less wasteful to schedule nonconflicting events simultaneously. We can construct a graph whose vertices are the people and whose edges represent the pairs of people who want to meet. An edge coloring of this graph defines the schedule. The color classes represent the different time periods in the schedule, with all meetings of the same color happening simultaneously. The National Football League solves such an edge coloring problem each season to make up its schedule. Each team's opponents are determined by the records of the previous season. Assigning the opponents to weeks of the season is the edge-coloring problem, presumably complicated by the constraints of spacing out rematches and making sure that there is a good game every Monday night. file:///E|/BOOK/BOOK4/NODE179.HTM (1 of 3) [19/1/2003 1:31:27]
Edge Coloring The minimum number of colors needed to edge color a graph is called by some its edge-chromatic number and others its chromatic index. To gain insight into edge coloring, note that a graph consisting of an even-length cycle can be edge-colored with 2 colors, while odd-length cycles have an edgechromatic number of 3. Edge coloring has a better (if less famous) theorem associated with it than does vertex coloring. Vizing's theorem states that any graph with a maximum vertex degree of can be edge colored using at most colors. To put this in perspective, note that any edge coloring must have at least colors, since each of the edges incident on any vertex must be distinct colors. Further, the proof of Vizing's theorem is constructive and can be turned into an algorithm to find an edge-coloring with colors, which gives us an edge coloring using at most one extra color. Since it is NP-complete to decide whether we can save this one color, it hardly seems worth the effort to worry about it. An implementation of Vizing's theorem is described below. Any edge coloring problem on G can be converted to the problem of finding a vertex coloring on the line graph L(G), which has a vertex of L(G) for each edge of G and an edge of L(G) if and only if the two edges of G share a common vertex. Line graphs can be constructed in time linear to their size, and any vertex coloring code from Section can be employed to color them. Although any edge coloring problem can be so formulated as a vertex coloring problem, this is usually a bad idea, since the edge coloring problem is easier to solve. Vizing's theorem is our reward for the extra thought needed to see that we have an edge coloring problem. Implementations: Yan Dong produced an implementation of Vizing's theorem in C++ as a course project for my algorithms course while a student at Stony Brook. It can be found on the algorithm repository WWW site http://www.cs.sunysb.edu/ algorith, as can an alternative program by Mark Goldberg and Amir Sehic. Combinatorica [Ski90] provides Mathematica implementations of edge coloring, via the line graph transformation and vertex coloring routines. See Section for further information on Combinatorica. Notes: Graph-theoretic results on edge coloring are surveyed in [FW77]. Vizing [Viz64] and Gupta [Gup66] both proved that any graph can be edge colored using at most colors. Despite these tight bounds, Holyer [Hol81] proved that computing the edge-chromatic number is NP-complete. Whitney, in introducing line graphs [Whi32], showed that with the exception of and , any two connected graphs with isomorphic line graphs are isomorphic. It is an interesting exercise to show that the line graph of an Eulerian graph is both Eulerian and Hamiltonian, while the line graph of a Hamiltonian graph is always Hamiltonian. file:///E|/BOOK/BOOK4/NODE179.HTM (2 of 3) [19/1/2003 1:31:27]
- Page 487 and 488: Matching augmenting paths and stopp
- Page 489 and 490: Matching Combinatorica [Ski90] prov
- Page 491 and 492: Eulerian Cycle / Chinese Postman ar
- Page 493 and 494: Eulerian Cycle / Chinese Postman Ne
- Page 495 and 496: Edge and Vertex Connectivity Severa
- Page 497 and 498: Edge and Vertex Connectivity Next:
- Page 499 and 500: Network Flow programming model for
- Page 501 and 502: Network Flow Combinatorica [Ski90]
- Page 503 and 504: Drawing Graphs Nicely vertices are
- Page 505 and 506: Drawing Graphs Nicely labs.com/orgs
- Page 507 and 508: Drawing Trees such as the map of th
- Page 509 and 510: Planarity Detection and Embedding N
- Page 511 and 512: Planarity Detection and Embedding p
- Page 513 and 514: Graph Problems: Hard Problems ● C
- Page 515 and 516: Clique approximate even to within a
- Page 517 and 518: Independent Set Next: Vertex Cover
- Page 519 and 520: Independent Set Related Problems: C
- Page 521 and 522: Vertex Cover Vertex cover and indep
- Page 523 and 524: Traveling Salesman Problem Next: Ha
- Page 525 and 526: Traveling Salesman Problem practice
- Page 527 and 528: Traveling Salesman Problem Size is
- Page 529 and 530: Hamiltonian Cycle Eulerian cycle, p
- Page 531 and 532: Graph Partition Next: Vertex Colori
- Page 533 and 534: Graph Partition annealing, is almos
- Page 535 and 536: Vertex Coloring Several special cas
- Page 537: Vertex Coloring Notes: An excellent
- Page 541 and 542: Graph Isomorphism Next: Steiner Tre
- Page 543 and 544: Graph Isomorphism vertices into equ
- Page 545 and 546: Steiner Tree Next: Feedback Edge/Ve
- Page 547 and 548: Steiner Tree The worst case for a m
- Page 549 and 550: Feedback Edge/Vertex Set Next: Comp
- Page 551 and 552: Feedback Edge/Vertex Set An interes
- Page 553 and 554: Computational Geometry complete bib
- Page 555 and 556: Robust Geometric Primitives Next: C
- Page 557 and 558: Robust Geometric Primitives ● Are
- Page 559 and 560: Robust Geometric Primitives Related
- Page 561 and 562: Convex Hull ● How many dimensions
- Page 563 and 564: Convex Hull http://www.cs.att.com/n
- Page 565 and 566: Triangulation Next: Voronoi Diagram
- Page 567 and 568: Triangulation GEOMPACK is a suite o
- Page 569 and 570: Voronoi Diagrams Next: Nearest Neig
- Page 571 and 572: Voronoi Diagrams McDonald's, the ti
- Page 573 and 574: Nearest Neighbor Search Next: Range
- Page 575 and 576: Nearest Neighbor Search Implementat
- Page 577 and 578: Range Search Next: Point Location U
- Page 579 and 580: Range Search subdivisions in C++. I
- Page 581 and 582: Point Location the n edges for inte
- Page 583 and 584: Point Location More recently, there
- Page 585 and 586: Intersection Detection ● Do you w
- Page 587 and 588: Intersection Detection Implementati
Edge Coloring<br />
Next: Graph Isomorphism Up: Graph Problems: Hard Problems Previous: Vertex Coloring<br />
Edge Coloring<br />
Input description: A graph G=(V,E).<br />
Problem description: What is the smallest set of colors needed to color the edges of E such that no two<br />
same-color edges share a vertex in common?<br />
Discussion: <strong>The</strong> edge coloring of graphs arises in a variety of scheduling applications, typically<br />
associated with minimizing the number of noninterfering rounds needed to complete a given set of tasks.<br />
For example, consider a situation where we need to schedule a given set of two-person interviews,<br />
where each interview takes one hour. All meetings could be scheduled to occur at distinct times to avoid<br />
conflicts, but it is less wasteful to schedule nonconflicting events simultaneously. We can construct a<br />
graph whose vertices are the people and whose edges represent the pairs of people who want to meet. An<br />
edge coloring of this graph defines the schedule. <strong>The</strong> color classes represent the different time periods in<br />
the schedule, with all meetings of the same color happening simultaneously.<br />
<strong>The</strong> National Football League solves such an edge coloring problem each season to make up its schedule.<br />
Each team's opponents are determined by the records of the previous season. Assigning the opponents<br />
to weeks of the season is the edge-coloring problem, presumably complicated by the constraints of<br />
spacing out rematches and making sure that there is a good game every Monday night.<br />
file:///E|/BOOK/BOOK4/NODE179.HTM (1 of 3) [19/1/2003 1:31:27]