Teams of agents often have to coordinate their decisions in a distributed manner to achieve both individual and shared goals. Examples include service-oriented computing, sensor network problems, and smart devices coordination homes problems. The resulting Distributed Constraint Optimization Problem (DCOP) is NP-hard to solve, and the multi-agent coordination process non-trivial.
In this tutorial we will provide an overview of DCOPs, focusing on its algorithms and its applications. We will present an accessible and structure overview of the available optimal and suboptimal approaches to solve DCOPs. We will discuss recent extensions to the DCOP framework to capture agents acting in a dynamic environment and/or using continuous domains and objective functions. Finally, we will discuss what are the suitable applications that can be modeled and solved as a DCOP, and conclude with the most recurrent challenges and open questions.