Distributed Constraint Optimization Problems and Applications: A Survey