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...

Full description

Saved in:
Bibliographic Details
Main Author Lewis, R. M. R.
Format eBook Book
LanguageEnglish
Published Cham Springer 2016
Springer International Publishing AG
Springer International Publishing
Edition1
Subjects
Online AccessGet full text
ISBN3319257285
9783319257280
DOI10.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