Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for MiniZinc models #27

Open
ptal opened this issue May 23, 2018 · 4 comments
Open

Support for MiniZinc models #27

ptal opened this issue May 23, 2018 · 4 comments

Comments

@ptal
Copy link
Owner

ptal commented May 23, 2018

MiniZinc is one of the most used modeling language for constraint programming.
The interesting point with MiniZinc is that it compiles the model to an intermediate format, called flat minizinc, which can be read by external constraint solver.
This is why mainstream constraint solvers such as GeCode and Choco all provide support for MiniZinc.
Therefore, we need to add support for MiniZinc in PCP as well, in order to ease the development of constraints model.

@waywardmonkeys
Copy link
Contributor

I know it has been 5 years, but any thoughts on this or how hard it might be? There is at least one crate for parsing flatzinc and there's also the work happening in https://github.com/shackle-rs/shackle ...

@sthiele
Copy link

sthiele commented Nov 17, 2023

Hi, I'm the author of the flatzinc crate. My motivation for it was to create a frontend to compile Minizinc to ASP. Which is done by this tool https://github.com/potassco/flatzingo ... maybe worth checking out.

@ptal
Copy link
Owner Author

ptal commented Nov 21, 2023

Hi! What's hard is not especially to parse flatzinc into a corresponding AST, it's to support all the constraints provided by flatzinc. This solver is very limited and has only a few constraints, so most of the work would be to implement the rest of the propagator functions for the flatzinc constraints.

I must ask @waywardmonkeys, do you intend to use this library for something?

Honestly, my focus has entirely shifted to Turbo, a C++/CUDA constraint solver. It supports the flatzinc language, but it was quite some work to implement these constraints. At the beginning, I considered using Rust for this project, but the CUDA support wasn't good enough. For my purposes, I don't think it's good enough yet, and it's too much work to reimplement it in Rust alone.

@waywardmonkeys
Copy link
Contributor

@ptal I work with an organization that is looking at constraint solvers ... might make sense to have a chat about it in a week or two.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants