A guide to graph colouring : algorithms and applications
This book treats graph colouring as an algorithmic problem, with a strong emphasis on practical applications. The author describes and analyses some of the best-known algorithms for colouring arbitrary graphs, focusing on whether these heuristics can provide optimal solutions in some cases; how they...
Saved in:
| Main Author | |
|---|---|
| Format | eBook Book |
| Language | English |
| Published |
Cham
Springer
2016
Springer International Publishing AG Springer International Publishing |
| Edition | 1 |
| Subjects | |
| Online Access | Get full text |
| ISBN | 3319257285 9783319257280 |
| DOI | 10.1007/978-3-319-25730-3 |
Cover
Table of Contents:
- 4.1.3 The Hybrid Evolutionary Algorithm (HEA) -- 4.1.4 The ANTCOL Algorithm -- 4.1.5 The Hill-Climbing (HC) Algorithm -- 4.1.6 The Backtracking DSATUR Algorithm -- 4.2 Algorithm Comparison -- 4.2.1 Artificially Generated Graphs -- 4.2.1.1 Performance on Random Graphs -- 4.2.1.2 Performance on Flat Graphs -- 4.2.2 Exam Timetabling Problems -- 4.2.3 Social Networks -- 4.3 Conclusions -- 4.4 Further Improvements to the HEA -- 4.4.1 Maintaining Diversity -- 4.4.2 Recombination -- 4.4.3 Local Search -- 5 Applications and Extensions -- 5.1 Face Colouring -- 5.1.1 Dual Graphs, Colouring Maps, and the Four Colour Theorem -- 5.1.2 Four Colours Suffice -- 5.2 Edge Colouring -- 5.3 Precolouring -- 5.4 Latin Squares and Sudoku Puzzles -- 5.4.1 Solving Sudoku Puzzles -- 5.4.1.1 Solving Random Sudoku Puzzles -- 5.4.1.2 Logic Solvable Sudoku Puzzles -- 5.5 Short Circuit Testing -- 5.6 Graph Colouring with Incomplete Information -- 5.6.1 Decentralised Graph Colouring -- 5.6.2 Online Graph Colouring -- 5.6.3 Dynamic Graph Colouring -- 5.7 List Colouring -- 5.8 Equitable Graph Colouring -- 5.9 Weighted Graph Colouring -- 5.9.1 Weighted Vertices -- 5.9.2 Weighted Edges -- 5.9.3 Multicolouring -- 6 Designing Seating Plans -- 6.1 Problem Background -- 6.1.1 Relation to Graph Problems -- 6.1.2 Chapter Outline -- 6.2 Problem Definition -- 6.2.1 Objective Functions -- 6.2.2 Problem Intractability -- 6.3 Problem Interpretation and Tabu Search Algorithm -- 6.3.1 Stage 1 -- 6.3.2 Stage 2 -- 6.3.2.1 Evaluating All Neighbours -- 6.3.2.2 Cost Function -- 6.4 Algorithm Performance -- 6.5 Comparison to an IP Model -- 6.5.1 IP Formulation -- 6.5.2 Results -- 6.6 Chapter Summary and Discussion -- 7 Designing Sports Leagues -- 7.1 Problem Background -- 7.1.1 Further Round-Robin Constraints -- 7.1.2 Chapter Outline -- 7.2 Representing Round-Robins as Graph Colouring Problems
- 7.3 Generating Valid Round-Robin Schedules -- 7.4 Extending the Graph Colouring Model -- 7.5 Exploring the Space of Round-Robins -- 7.6 Case Study: Welsh Premiership Rugby -- 7.6.1 Solution Methods -- 7.6.1.1 The Multi-stage Approach -- 7.6.1.2 A Multiobjective Optimisation Approach -- 7.6.1.3 Experimental Analysis -- 7.7 Chapter Summary and Discussion -- 8 Designing University Timetables -- 8.1 Problem Background -- 8.1.1 Designing and Comparing Algorithms -- 8.1.2 Chapter Outline -- 8.2 Problem Definition and Preprocessing -- 8.2.1 Soft Constraints -- 8.2.2 Problem Complexity -- 8.2.3 Evaluation and Benchmarking -- 8.3 Previous Approaches to This Problem -- 8.4 Algorithm Description: Stage One -- 8.4.1 Results -- 8.5 Algorithm Description: Stage Two -- 8.5.1 SA Cooling Scheme -- 8.5.2 Neighbourhood Operators -- 8.5.3 Dummy Rooms -- 8.5.4 Estimating Solution Space Connectivity -- 8.6 Experimental Results -- 8.6.1 Effect of Neighbourhood Operators -- 8.6.2 Comparison to Published Results -- 8.6.3 Differing Time Limits -- 8.7 Chapter Summary and Discussion -- Appendix A Computing Resources -- A.1 Algorithm User Guide -- A.1.1 Compilation in Microsoft Visual Studio -- A.1.2 Compilation with g++ -- A.1.3 Usage -- A.1.4 Output -- A.2 Graph Colouring in Sage -- A.3 Graph Colouring with Commercial IP Software -- A.4 Useful Web Links -- References -- Index
- Intro -- Preface -- A Note on Pseudocode and Notation -- Additional Resources -- Contents -- 1 Introduction to Graph Colouring -- 1.1 Some Simple Practical Applications -- 1.1.1 A Team Building Exercise -- 1.1.2 Constructing Timetables -- 1.1.3 Scheduling Taxis -- 1.1.4 Compiler Register Allocation -- 1.2 Why "Colouring"? -- 1.3 Problem Description -- 1.4 Problem Complexity -- 1.4.1 Solution Space Growth Rates -- 1.4.2 Problem Intractability -- 1.5 Can We Solve the Graph Colouring Problem? -- 1.5.1 Complete Graphs -- 1.5.2 Bipartite Graphs -- 1.5.3 Cycle, Wheel and Planar Graphs -- 1.5.4 Grid Graphs -- 1.6 About This Book -- 1.6.1 Algorithm Implementations -- 1.6.1.1 Representing Graphs -- 1.6.1.2 Measuring Computational Effort -- 1.7 Chapter Summary -- 2 Bounds and Constructive Algorithms -- 2.1 The Greedy Algorithm -- 2.2 Bounds on the Chromatic Number -- 2.2.1 Lower Bounds -- 2.2.1.1 Bounds on Interval Graphs -- 2.2.2 Upper Bounds -- 2.3 The DSATUR Algorithm -- 2.4 The Recursive Largest First (RLF) Algorithm -- 2.5 Empirical Comparison -- 2.5.1 Experimental Considerations -- 2.5.2 Results and Analysis -- 2.6 Chapter Summary and Further Reading -- 3 Advanced Techniques for Graph Colouring -- 3.1 Exact Algorithms -- 3.1.1 Backtracking Approaches -- 3.1.2 Integer Programming -- 3.1.2.1 Independent Set Selection -- 3.2 Inexact Heuristics and Metaheuristics -- 3.2.1 Feasible-Only Solution Spaces -- 3.2.2 Spaces of Complete, Improper k-Colourings -- 3.2.3 Spaces of Partial, Proper k-Colourings -- 3.2.4 Combining Solution Spaces -- 3.2.5 Problems Related to Graph Colouring -- 3.3 Reducing Problem Size -- 3.3.1 Removing Vertices and Splitting Graphs -- 3.3.2 Extracting Independent Sets -- 4 Algorithm Case Studies -- 4.1 Algorithm Descriptions -- 4.1.1 The TABUCOL Algorithm -- 4.1.2 The PARTIALCOL Algorithm