pyDCOP is a library implementing many Distributed Constraints OPtimization (DCOP) algorithms. Its goal is to foster academic research on DCOP by providing an easy to use library to help researcher studying and benchmarking DCOP algorithms and building new ones.
pyDCOP is use-case agnostic : it can be embedded in other application to implement distributed coordination in other projects. The library runs on python 3.5 or newer. It has already been used for several scientific papers.
pyDCOP’s strong points:
- It provides implementations of many classic DCOP algorithms (DSA, MGM, MaxSum, DPOP, etc.).
- It allows you to implement our own DCOP algorithm easily, by providing all the required infrastructure: agents, messaging system, metrics collection, etc.
- Agents can run on the same computer or on different machines, making real distributed experiments easy.
- Multi-platform: pyDCOP can run on windows, Mac and Linux.
- It is especially suited for IoT use-case and can run agents on single-board computers like the Raspberry Pi.
- In addition to classical DCOP algorithm, pyDCOP also provide new approaches for using DCOP in IoT systems: several strategies are available to distribute DCOP computations on agents and achieve resiliency.
pyDCOP’s team welcomes contribution, especially the implementation of DCOP algorithms (new or well-known). See Orange-OpenSource GitHub space to learn more about the project and join the team. The code is available under the BSD-3-clause license.