dcfl is a parallelized constraint solving library for Haskell.

dcfl uses the Communication Free Learning algorithm presented by KR Duffy, et al. in Decentralized Constraint Satisfaction . The primary benefit of the algorithm over previous approaches is its distributed nature, making it a prime candidate for parallelization.

Using dcfl: Router Example

KR Duffy, et al. provide a simple example problem of constraint satisfaction which we can solve with dcfl. Suppose we have five routers within an area and each of them has to be on a different channel within a spectrum and we assume that we have been given five different channels. This is essentially a graph coloring problem on a complete graph. To solve it using dcfl, we can use the following code: