| List of Figures | p. xiii |
| List of Tables | p. xvii |
| Preface | p. xix |
| Contributing Authors | p. xxiii |
| Foreword | p. xxvii |
| Constraint and Integer Programming | p. 1 |
| Introduction | p. 1 |
| CP(FD) Basic Concepts | p. 4 |
| Modeling | p. 5 |
| Structure of a CP program | p. 6 |
| Solving | p. 8 |
| An example: the car sequencing problem | p. 13 |
| Integer Linear Programming Basic Concepts | p. 15 |
| Modeling | p. 16 |
| Solving | p. 20 |
| An example: the car sequencing problem revisited | p. 26 |
| Incomplete search strategies | p. 27 |
| Conclusion | p. 28 |
| References | p. 29 |
| Two Generic Schemes for Efficient and Robust Cooperative Algorithms | p. 33 |
| Introduction | p. 34 |
| Operations Research Algorithms and Constraint Programming | p. 37 |
| Operations Research Algorithms and Mixed Integer Programming | p. 39 |
| Constraint Programming and Mixed Integer Programming | p. 40 |
| Operations Research Algorithms and Local Search | p. 44 |
| Mixed Integer Programming and Local Search | p. 45 |
| Constraint Programming and Local Search | p. 48 |
| References | p. 53 |
| Branch-and-Infer: A Framework for Combining CP and IP | p. 59 |
| Introduction | p. 59 |
| Modeling in CP and IP | p. 60 |
| An illustrating example: discrete tomography | p. 63 |
| Integer programming models | p. 63 |
| Constraint programming models | p. 64 |
| Branch and Infer | p. 67 |
| Primitive and non-primitive constraints | p. 67 |
| Inferring primitive from non-primitive constraints | p. 68 |
| Search | p. 71 |
| Pruning the search tree | p. 73 |
| Symbolic constraints in IP | p. 74 |
| Symbolic constraint abstractions | p. 74 |
| Extending expressiveness | p. 75 |
| Improving efficiency | p. 76 |
| Compositionality | p. 77 |
| Example: Symbolic constraints for supply chain planning | p. 77 |
| Stock-resource constraint | p. 79 |
| Finite capacity resource | p. 80 |
| State resource | p. 81 |
| Combined example | p. 82 |
| Summary | p. 84 |
| References | p. 85 |
| Global Constraints and Filtering Algorithms | p. 89 |
| Introduction | p. 89 |
| Global Constraints | p. 94 |
| Preliminaries | p. 94 |
| Definition and Advantages | p. 95 |
| Examples | p. 96 |
| Filtering Algorithms | p. 104 |
| Algorithms Based on Constraints Addition | p. 105 |
| General Arc Consistency Filtering Algorithm | p. 106 |
| Dedicated Filtering Algorithms | p. 111 |
| Two Successful Filtering Algorithms | p. 112 |
| Preliminaries | p. 113 |
| The Alldifferent Constraint | p. 114 |
| The Global Cardinality Constraint | p. 117 |
| Global Constraints and Over-constrained Problems | p. 120 |
| Satisfiability Sum Constraint | p. 121 |
| Global Soft Constraints | p. 122 |
| Quality of Filtering Algorithms | p. 125 |
| Discussion | p. 126 |
| Incomplete Algorithms and Fixed-Point Property | p. 126 |
| Closure | p. 127 |
| Power of a Filtering Algorithm | p. 128 |
| Conclusion | p. 129 |
| References | p. 131 |
| Exploiting relaxations in CP | p. 137 |
| Introduction and Motivation | p. 138 |
| Integer Linear Programming and Relaxations | p. 139 |
| Continuous Linear Relaxation | p. 141 |
| Structured Relaxations | p. 142 |
| Integrating Relaxations in CP | p. 144 |
| Which relaxation to use | p. 145 |
| Which part of the problem | p. 145 |
| Relax to propagate | p. 150 |
| Mapping | p. 150 |
| The Cost-Based Propagation | p. 151 |
| Triggering Events | p. 152 |
| Relax to guide the search | p. 153 |
| Synchronous update of the oracle | p. 153 |
| Asynchronous update of the oracle | p. 154 |
| A case study: global optimization constraints for a Path constraint | p. 156 |
| Global constraint architecture | p. 156 |
| The Path constraint case | p. 157 |
| References | p. 165 |
| Hybrid Problem Solving in ECLiPSe | p. 169 |
| Introduction | p. 170 |
| Modelling Formalisms for Constraints and Mathematical Programming | p. 170 |
| Requirements on Hybrid Modelling Formalisms | p. 170 |
| ECLiPSe and Piecewise Linear Probing | p. 171 |
| Integration of Constraints and Operations Research | p. 172 |
| Constraint Programming | p. 172 |
| Operations Research | p. 173 |
| Hybridization context | p. 173 |
| Language Ingredients for Hybrid Solvers | p. 174 |
| Conceptual Models and Design Models | p. 174 |
| Context | p. 175 |
| Creating a Design Model - Introduction and Example | p. 175 |
| Information Passed between Solvers | p. 177 |
| Combining Solvers and Search Engine | p. 178 |
| Requirements on the Language used for Design Models | p. 179 |
| Infeasibility Detection | p. 180 |
| ECLiPSe as a Platform for Building Hybrid Algorithms | p. 181 |
| Modelling in ECLiPSe | p. 182 |
| The Domain Solver: ic | p. 183 |
| The linear solver interface: eplex | p. 184 |
| The repair solver | p. 185 |
| Attributed Variables and Demons in ECLiPSe | p. 185 |
| Programming a Hybrid Search in ECLiPSe | p. 186 |
| An Illustrative Example | p. 187 |
| Problem Modelling | p. 189 |
| Hybrid Probe-based Algorithm | p. 189 |
| Probing Strategies | p. 193 |
| Mixed Integer Programming based Probing | p. 194 |
| Linear Relaxation based Probing | p. 196 |
| Evaluation and Performance Analysis | p. 197 |
| Conclusion | p. 200 |
| References | p. 203 |
| CP Based Branch-and-Price | p. 207 |
| Introduction | p. 207 |
| Three Illustrative Examples | p. 210 |
| The Generalized Assignment Problem | p. 210 |
| The Traveling Tournament Problem | p. 212 |
| The Social Golfers Problem | p. 216 |
| Other Applications | p. 218 |
| Implementation Issues | p. 219 |
| Set Partitioning Versus Set Covering | p. 219 |
| Initial Solution | p. 220 |
| Column Management | p. 221 |
| LP Relaxation | p. 222 |
| Branching | p. 223 |
| CP as a Subproblem Solver | p. 224 |
| Column Generation Heuristics | p. 224 |
| Combining Column and Row Generation | p. 225 |
| Parallel Implementation Issues | p. 226 |
| Future Directions for CP Based Branch-and-Price | p. 226 |
| References | p. 229 |
| Randomized Backtrack Search | p. 233 |
| Introduction | p. 234 |
| Randomization of Backtrack Search Methods | p. 237 |
| Formal Models of Heavy-Tailed Behavior | p. 241 |
| Random Walk | p. 241 |
| Tree Search Model | p. 242 |
| Heavy and Fat-Tailed Distributions | p. 245 |
| Heavy-Tailed Distributions | p. 248 |
| Fat vs. Heavy-Tailed Distributions | p. 252 |
| Heavy and Fat-Tailed Distributions in Backtrack Search | p. 255 |
| CSP Formulations | p. 255 |
| Mixed Integer Programming Formulations | p. 257 |
| Boolean Satisfiability Formulations | p. 260 |
| Graph Coloring Formulations | p. 262 |
| Discussion | p. 263 |
| Restart Strategies | p. 269 |
| Elimination of Heavy-Tails | p. 269 |
| Cutoff Value for Restart Strategy | p. 271 |
| Formal Results on Restarts | p. 273 |
| Restart Results on a Range of Problem Instances | p. 274 |
| Learning Dynamic Restart Strategies | p. 276 |
| Variants of Restart Strategies | p. 277 |
| Portfolio Strategies | p. 278 |
| Portfolio Design | p. 279 |
| Portfolio Results | p. 279 |
| Variants of Portfolios | p. 282 |
| Conclusions | p. 283 |
| References | p. 285 |
| Local Search and Constraint Programming: LS and CP illustrated on a transportation Problem | p. 293 |
| Introduction | p. 294 |
| A didactic transportation problem | p. 297 |
| A CP approach for dTP | p. 298 |
| A CP model for dTP | p. 298 |
| Propagation | p. 301 |
| A redundant routing model | p. 303 |
| Constructive Algorithms | p. 306 |
| Insertion algorithms | p. 306 |
| Greedy insertion | p. 307 |
| Restricted Candidate Lists and GRASP | p. 309 |
| Discrepancy-based search | p. 310 |
| LS as Post-Optimization | p. 312 |
| LS + constraint checks | p. 312 |
| Constraint checks within the neighborhood iteration | p. 314 |
| Freezing Fragments | p. 316 |
| CP models for the Neighborhoods | p. 318 |
| Metaheuristics | p. 320 |
| Control strategies from metaheuristics | p. 320 |
| Managing several neighborhoods | p. 322 |
| LS during construction | p. 323 |
| Single Route Optimization | p. 323 |
| Ejection Chains | p. 324 |
| Conclusions | p. 325 |
| References | p. 327 |
| Open Perspectives | p. 331 |
| Motivations, Challenges and Applications | p. 331 |
| Overview | p. 331 |
| Challenges | p. 332 |
| Focus on Hard to Solve Problems | p. 333 |
| Problem Analysis vs. Resolution | p. 335 |
| Supporting the Problem Solving Process | p. 337 |
| Software Engineering Issues | p. 339 |
| Transforming Models to Algorithms | p. 341 |
| Conceptual and Design Models | p. 341 |
| Decompositions | p. 342 |
| Transformations | p. 344 |
| Search | p. 347 |
| Inference | p. 349 |
| Symmetries | p. 350 |
| New Techniques | p. 351 |
| Stochastic Optimisation | p. 351 |
| Overconstrained problems and robustness | p. 353 |
| User Support | p. 354 |
| Packaging | p. 357 |
| New Application Areas | p. 359 |
| Computer-Aided decision analysis based on simulation | p. 359 |
| Cooperative Problem Solving | p. 360 |
| Interleaved Planning and Execution | p. 360 |
| References | p. 363 |
| Index | p. 367 |
| Table of Contents provided by Ingram. All Rights Reserved. |