Skip to content

chore(pumpkin-solver): Streamline the solver --help output and MiniZinc flag description - #627

Open
ImkoMarijnissen wants to merge 9 commits into
mainfrom
refactor/help-descriptions
Open

ImkoMarijnissen wants to merge 9 commits into
mainfrom
refactor/help-descriptions

Conversation

@ImkoMarijnissen

@ImkoMarijnissen ImkoMarijnissen commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

This PR streamlines the outputs of --help when using cargo, and the output of the options used by minizinc --help pumpkin (using a style similar to Chuffed):

  1. Move the clap struct arguments into their own categories.
  2. Add a value_name to the clap struct arguments so that it is clear what type they use.
  3. Update the .msc flag descriptions to only use a single line and to include the defaults/types.
  4. Add requirements in the parsing of the flags, so that it is clear which flags are dependent on one another.

MiniZinc Output Difference

Previous:

Extra solver flags (use with --fzn-flags)
  --proof-path
    The output path for the proof file.

When solving a DIMACS instance, a DRAT proof is logged. In case of a FlatZinc model, a DRCP
proof is logged.

In case of a DRCP proof, if the file extension ends with `.gz`, a gzipped proof will be
produced.
  --proof-type
    What type of proof to log.

If the `proof_path` option is not provided, this is ignored.
  --learning-max-num-high-lbd-nogoods
    The number of high-lbd learned nogoods that are kept in the database.

Learned nogoods are kept based on the tiered system introduced in "Improving
SAT Solvers by Exploiting Empirical Characteristics of CDCL - Chanseok Oh (2016)".

Possible values: usize
  --learning-max-num-mid-lbd-nogoods
    The number of mid-lbd learned nogoods that are kept in the database.

This is based on the variation of the three-tiered system proposed in
"Improving Implementation of SAT Competitions 2017–2019 Winners".

Possible values: usize
  --learning-max-num-low-lbd-nogoods
    The number of low-lbd learned nogoods that are kept in the database.

This is based on the variation of the three-tiered system proposed in
"Improving Implementation of SAT Competitions 2017–2019 Winners".

Possible values: usize

Newly adjusted:

Extra solver flags (use with --fzn-flags)
  --proof-path
    The output path for the proof file. [possible values: string]
  --proof-type
    What type of proof to log. [default: scaffold] [possible values: scaffold, full]
  --learning-max-num-high-lbd-nogoods
    The number of high-lbd learned nogoods that are kept in the database. [default: 20000] [possible values: int]
  --learning-max-num-mid-lbd-nogoods
    The number of mid-lbd learned nogoods that are kept in the database. [default: 7000] [possible values: int]
  --learning-max-num-low-lbd-nogoods
    The number of low-lbd learned nogoods that are kept in the database. [default: 100000] [possible values: int]
  --learning-low-lbd-threshold
    The treshold determining whether a learned nogood is "low" LBD. [default: 3] [possible values: int]

@ImkoMarijnissen ImkoMarijnissen changed the title chore(pumpkin-solver): Streamline the solver argument descriptions chore(pumpkin-solver): Streamline the solver --help output and MiniZinc flag description Oct 22, 2026

This branch has not been deployed

No deployments
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

Successfully merging this pull request may close these issues.

1 participant