Combinatorial problems based on graph partitioning enable us to mathematically represent and model many practical applications. Mission planning and the routing problems occurring in logistics perfectly illustrate two such examples. Nevertheless, these problems are not based on the same partitioning pattern: generally, patterns like cycles, paths, or trees are distinguished. Moreover, the practical applications are often not limited to theoretical problems like the Hamiltonian path problem, or K-node disjoint path problems. Indeed, they usually combine the graph partitioning problem with several restrictions related to the topology of nodes and arcs. The diversity of implied constraints in real-life applications is a practical limit to the resolution of such problems by approaches considering the partitioning problem independently from each additional restriction. This book focuses on constraint satisfaction problems related to tree partitioning problems enriched by several additional constraints that restrict the possible partitions topology. On the one hand, this title focuses on the structural properties of tree partitioning constraints.
On the other hand, it is dedicated to the interactions between the tree partitioning problem and classical restrictions (such as precedence relations or incomparability relations between nodes) involved in practical applications. Precisely, Tree-based Graph Partitioning Constraint shows how to globally take into account several restrictions within one single tree partitioning constraint. Another interesting aspect of this book is related to the implementation of such a constraint. In the context of graph-based global constraints, the book illustrates how a fully dynamic management of data structures makes the runtime of filtering algorithms independent of the graph density.
Xavier Lorca is Associate Professor of Computer Science at the cole des Mines de Nantes in France.
PART 1. CONSTRAINT PROGRAMMING AND FOUNDATIONS OF GRAPH THEORY 1 Introduction to Part 1 3 Chapter 1. Introduction to Constraint Programming 5 1.1. What is a variable? 7 1.2. What is a constraint? 8 1.3. What is a global constraint? 10 1.4. What is a propagation algorithm? 11 1.5. What is a consistency level? 14 1.6. What is a constraint solver? 15 1.7. Constraint solvers at work 17 1.8. Organization structure 21 Chapter 2. Graph Theory and Constraint Programming 23 2.1. Modeling graphs with constraint programming 24 2.2. Graph theory at work in constraint programming 34 2.3. Constraint programming at work in graph theory 37 Chapter 3. Tree Graph Partitioning 39 3.1. In undirected graphs 39 3.2. In directed graphs 42 PART 2. CHARACTERIZATION OF TREE-BASED GRAPH PARTITIONING CONSTRAINTS 47 Chapter 4. Tree Constraints in Undirected Graphs 49 4.1. Decomposition 49 4.2. Definition of constraints 51 4.3. A filtering algorithm for the proper-forest constraint 56 4.4. Filtering algorithm for the resource-forest constraint 70 4.5. Summary of undirected tree constraints 80 Chapter 5. Tree Constraints in Directed Graphs 83 5.1. Decomposition 83 5.2. Definition of constraints 86 5.3. Filtering algorithm for the tree constraint 89 5.4. Filtering algorithm for the proper-tree constraint 96 5.5. Summary of tree constraints in directed and undirected graphs 113 Chapter 6. Additional Constraints Linked to Graph Partitioning 117 6.1. Definition of restrictions 118 6.2. Complexity zoo 123 6.3. Interaction between the number of trees and the number of proper trees 129 6.4. Relation of precedence between the vertices of the graph 130 6.5. Relation of conditional precedence 137 6.6. Relation of incomparability between graph vertices 140 6.7. Interactions between precedence and incomparability constraints 143 6.8. Constraining the interior half-degree of each vertex 148 6.9. Summary 151 Chapter 7. The Case of Disjoint Paths 153 7.1. Minimum number of paths in acyclic directed graphs 156 7.2. Minimum number of paths in any directed graph 161 7.3. A path partitioning constraint 169 7.4. Summary 173 Chapter 8. Implementation of a Tree Constraint 175 8.1. Original implementation 176 8.2. Toward a portable implementation 181 8.3. Conclusion 191 PART 3. IMPLEMENTATION: TASK PLANNING 193 Introduction to Part 3 195 Chapter 9. First Model in Constraint Programming 199 9.1. Model for the coherence of displacements in space 199 9.2. Modeling resource consumption 200 9.3. Modeling time windows 201 9.4. Modeling coordination constraints between units 202 9.5. Limitations of the proposed model 203 Chapter 10. Advanced Model in Constraint Programming 205 10.1. Modeling the coherence of displacements in space 206 10.2. Modeling resource consumption 208 10.3. Integration of temporal aspects 208 10.4. Propagating time windows 213 PART 4. CONCLUSION AND FUTURE WORK 225 Chapter 11. Conclusion 227 Chapter 12. Perspectives and Criticisms 231 Bibliography 233 Index 239