Distributed Constraint Handling and Optimization