Skip to content

Extract COP restart scheduling from BacktrackSolver and improve default policy #751

Description

@rasros

What

  • Extract restart scheduling from klause/src/commonMain/kotlin/com/eignex/klause/solver/backtrack/Search.kt into a dedicated solver/backtrack/schedule package with a pluggable policy API.
  • Keep Luby and Glucose adaptive as schedule implementations behind that API, selected through BacktrackParams.
  • Add a COP-oriented default schedule for LCG optimization so fixed/annotation search is robust without hand-tuning lubyRestartBase.

Why

  • On largescheduling/instance-0100-1 with -e fixed --lp off, adaptive restart found no feasible solution at 30s and 180s, while Luby-based runs found feasible solutions within 30s.
  • The current restart logic is interleaved with DFS control in Search.kt, which makes COP-specific schedule tuning hard to evolve and test independently.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    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