Hacker News new | past | comments | ask | show | jobs | submit login
DCFL – A parallelized constraint solving library for Haskell (poincare.github.io)
47 points by dhaivatpandya on Aug 22, 2015 | hide | past | favorite | 9 comments



What does communication-free mean? No usage of network? There's a global state that is updated by the workers?


Communication Free Learning is actually a recently proposed algorithm to resolve constraints. The research paper it originated from is here: http://arxiv.org/pdf/1103.3240.pdf

The "Communication Free" part of it means that we can update variables' values in parallel without having to communicate the updated variable values between the processes updating the variables.


Abstract [non pdf]

Decentralized Constraint Satisfaction by K. R. Duffy, C. Bordenave, D. J. Leith

http://arxiv.org/abs/1103.3240


Kind of a bizarre side question, would constraint solving be the right tool to use to "solve" things like the kittens/catnip game (a civclicker variant)? Like, at any given moment, given a goal and available resources, tell you the "best" way to allocate your resources.


This is an interesting question. Although I am not deeply familiar with either of the games you mention, it seems that they are inherently time-based. There are also some random elements to CivClicker (e.g. traders that come through). Given these rules, I don't think a simple constraint solver would be sufficient to "solve" the game, but it might be a part of a more complicated solution.

However, there are lots of games that essentially only involve solving constraints. A simple example is Sudoku.


FYI this page looks really bad on firefox with a narrow window. It gets jumbled around and the dark blue background on the left takes over the whole page.


Given that type inference can be expressed in the form of constraints, could this be used to speed up type inference on huge programs?


It could be, but the primary issue with the Communication Free Learning algorithm is the fact that it is very hard to tell when a given constraint set has no feasible solution by directly trying to solve it. That's because Communication Free Learning is a probabilistic algorithm that is meant to converge to a solution over time. But, if after say 10k iterations we still haven't found a solution, that could mean that there isn't one or that we just haven't stumbled on it yet.

However, it is possible to apply the algorithm in situations where we know that there is a solution, at least with a pretty high degree of confidence.


Could be used for a package dependency solver like Cabal's, possibly.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: