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

Missing option '-f/--free-search' in flags of command line help #824

Open
raphaelboudreault opened this issue Jul 22, 2024 · 1 comment
Open

Comments

@raphaelboudreault
Copy link

OS: Linux Ubuntu 22.04
MZN version: 2.8.5

Using minizinc --help <solver> from the command line (for example with Chuffed), option -f/``--free-search" is not described in the output. Shouldn't it be part of the "MZN-FZN plugin options"?

@CervEdin
Copy link

CervEdin commented Oct 4, 2024

I think the solvers are responsible for providing the solver help text.

What --free-search does is not set in stone and I think that all it means is what is described here:
https://docs.minizinc.dev/en/stable/command_line.html#cmdoption-f

Instructs the solver to conduct a “free search”, i.e., ignore any search annotations. The solver is not required to ignore the annotations, but it is allowed to do so.

In OR-Tools

My understanding is that in OR-Tools you can use -f to use it's portfolio solving when only using 1 thread.
AFAIK this is not thoroughly described anywhere but it can be deduced by diving into the source code here:
https://github.com/google/or-tools/blob/ed94162b910fa58896db99191378d3b71a5313af/ortools/flatzinc/cp_model_fz_solver.cc#L1399C1-L1400C72

My understanding of OR-Tools does here is that it will use search annotations for one worker (CP-SAT) but still use other workers like the LNS and local-search workers which will not care about search annotations.

It should be noted that for this solver, my understand is that you are better off using parallel workers, either using --parallel or the num_workers SAT parameter instead of --free-search.

Also note that -f will not be used if you specify workers >1 or if solving for satisfiability.

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

2 participants