Comments (3)
Currently MiniZinc Python is not designed for FindMUS usage.
FindMUS is a very different from a normal MiniZinc solver (and MiniZinc Python has really been designed for solving MiniZinc instances). When you call MiniZinc --solver finds ...
it doesn't actually call the MiniZinc compiler, instead everything passed on to the FindMUS (mzn) driver. Currently FindMUS does not support all the same flags as MiniZinc, including (--allow-multiple-assignments
).
Although we could probably work around those issues, the bigger problem is that the output of FindMUS does not correspond to the normal MiniZinc solving output format (or it at least is not yet part of any standard). This means that MiniZinc Python currently doesn't contain any functionality to parse the output of FindMUS.
Although this could potentially be improved in the future, it would heavily depend on the development of a standard in the reporting of MUS/IIS. I haven't heard of any usage of FindMUS from MiniZinc Python and would be interested to hear in what way you are trying to use it and what the expected output from the library would be.
from minizinc-python.
Thanks for the quick response @Dekker1 . I am using findMUS to obtain a list of conflicts (MUSes) and possible relaxations when we have an unfeasible schedule. I have created a parser of the output of findMUS and made some changes to MiniZinc Python to avoid errors with certain flags. I will clean the code and send a pull request so that others could continue with the development of findMUS.
from minizinc-python.
That sounds great! We'll have to have a discussion in the MiniZinc team how we want to handle these kinds of solvers and in particular the output of MUS/IIS (which might also happen when you solve with a normal solver like Gurobi). Although it sounds like the parsed output for findMUS could already be a big help, in the end I would prefer generalised standards over special case handling for certain solvers.
from minizinc-python.
Related Issues (20)
- Obtain a reference to a python instantiation of the underlying solver HOT 2
- Support for Python "infinity" value for MZNJSONEncoder HOT 4
- timeout not working for specific models
- timeout HOT 2
- Time format HOT 1
- How to use parallel sover from Python? HOT 7
- message: syntax error, unexpected ';' HOT 6
- JSONDecodeError in parsing solution (or-tools) HOT 3
- Example not working (AttributeError: partially initialized module 'minizinc' has no attribute 'Model') HOT 1
- free-search being passed on to incompatible solvers HOT 1
- 'flatTime' statistic returned as float instead of timedelta under MiniZinc >= 2.6.0 HOT 1
- ImportError: cannot import name 'Instance' from 'minizinc' HOT 3
- Example not working HOT 4
- keyboard interrupt HOT 1
- verbose parameter HOT 1
- Driver is None HOT 4
- Asyncronous environment calling, Anaconda. HOT 3
- Need information for output (json) HOT 4
- '--intermediate-solutions' command line argument HOT 1
- timeout parameter receives timedelta but still not working HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from minizinc-python.