Hacker News Comments on
Solving Algorithms for Discrete Optimization
Coursera
·
The University of Melbourne
·
3
HN comments
- Ranked #27 this year (2023) · view
Hacker News Stories and Comments
All the comments and stories posted to Hacker News that reference this url.SICP contains a chapter on non-deterministic programming that’s similar to how Prolog executes: https://mitp-content-server.mit.edu/books/content/sectbyfn/b...There’s also a chapter on logic programming but it doesn’t quite work the same way as Prolog: https://mitp-content-server.mit.edu/books/content/sectbyfn/b...
Peter Norvig has a couple of chapters (11,12) on how to implement Prolog in his book PAIP. He also has a chapter (17) on constraint satisfaction but IIRC it’s not integrated into his Prolog system: https://github.com/norvig/paip-lisp
Many real Prolog implementations are based on the WAM. For an excellent introduction to the WAM look at: http://wambook.sourceforge.net/
I don’t have books or papers on implementing constraints and how to integrate them with Prolog. But here are two great classes on Coursera that explain how constraints and constraint propagation work. You can audit them for free:
Discrete Optimization by Hentenryck https://www.coursera.org/learn/discrete-optimization
Solving Algorithms for Discrete Optimization by Lee and Stuckey https://www.coursera.org/learn/solving-algorithms-discrete-o...
I believe constraints are typically integrated into Prolog through attributed variables: https://www.metalevel.at/prolog/attributedvariables
But I don’t really know how that works. Markus Triska has a few papers on constraint solvers for SWI Prolog on his webpage. He can probably give you more and better pointers: https://www.metalevel.at/
⬐ LunaSeaMany thanks for this very complete response!It seems to be a niche topic so I didn't expect to find a resource that exactly matched.
⬐ i_don_t_knowI found a paper on compiling constraints for clp(fd) in the context of GNU Prolog: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.30...⬐ i_don_t_knowI found a paper on compiling constraints for clp(fd) in the context of GNU Prolog: https://pdf.sciencedirectassets.com/271869/1-s2.0-S074310660...
I have enjoyed these courses on Coursera. You can audit them for free.Discrete Optimization https://www.coursera.org/learn/discrete-optimization
Solving Algorithms for Discrete Optimization https://www.coursera.org/learn/solving-algorithms-discrete-o...
The second course is the last part of a three part series. The first two parts are on modeling of problems with MiniZinc. They are also quite enjoyable.
Interesting. I don't think that would be my first choices of study.If you want to know more about how constraint programming works under the hood, I can recommend the coursera course Solving algorithms for Discrete Optimization, in particular weeks 1 and 2 for constraint programming. https://www.coursera.org/learn/solving-algorithms-discrete-o...