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.
Table des matières
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
A propos de l’auteur
Xavier Lorca is Associate Professor of Computer Science at the école des Mines de Nantes in France.