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