Skip to content

Presolve: run the emphasis/abort-fraction A/B campaign and land tuned defaults #554

Description

@rasros

What

Run the presolve emphasis and abort-fraction A/B campaign and land tuned defaults. The emphasis levels (off/conservative/default/aggressive), the effectiveness-abort fraction (PRESOLVE_ABORT_FRACTION = 0.001), the round cap, and the per-emphasis SAC probe budgets (#460) are all hand-set. Supersedes #461, split to separate the mechanical measurement from the product decision.

Measurement (needs a dedicated, uncontended bench window of 300s-per-instance runs):

  • For each of --presolve conservative|default|aggressive, run bench solve suite=mzn-bench engine=cp timeout=300000 and diff dirs with output/compare.sh (verdict counts plus time-to-best).
  • A/B the abort fraction across a few values the same way.
  • A/B aggressive end-to-end (it enables the SAC probes); confirm when probing pays and that the Presolve: per-pass work budgets (cap EXHAUSTIVE-tier effort) #460 probe budgets keep its cost bounded.

Decision and land (needs sign-off, since the shipped default affects every user):

  • Pick the default emphasis and abort fraction from the numbers and update the constants.
  • Decide per-scenario emphasis for the portfolio, weighing the shared-presolve choice against the whole worker pool (the LS arm already drops solution-set-altering passes via forLocalSearch()).

Why

The presolve knobs are guesses, and the campaign needs uncontended compute (part A) plus a human call on a default change (part B), so it is not autonomously completable. Track it as a deliberate campaign rather than a code task. Refs #461, #341, #345, #460.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions