Skip to content

Add ILP reduction paths for CircuitSAT, MaxCut, QUBO, SpinGlass #83

@GiggleLiu

Description

@GiggleLiu

Problem

The CLI pred solve command defaults to the ILP solver and auto-reduces problems to ILP. However, 4 problem types currently have no reduction path to ILP:

Problem Status
CircuitSAT No path to ILP
MaxCut No path to ILP
QUBO No path to ILP
SpinGlass No path to ILP

Running pred solve on these problems produces: Error: No reduction path from <Problem> to ILP

The user must currently use --solver brute-force as a workaround.

Expected Behavior

All problem types should be solvable via pred solve with the default ILP solver.

Possible Reductions

  • QUBO → ILP: QUBO can be reformulated as a binary quadratic program, which can be linearized into ILP
  • SpinGlass → ILP: Similar to QUBO (SpinGlass is equivalent to QUBO on a graph)
  • MaxCut → ILP: Standard ILP formulation exists with edge indicator variables
  • CircuitSAT → ILP: Via CircuitSAT → Satisfiability → ILP (SAT → ILP path already exists), or direct circuit-to-ILP encoding

Workaround

pred solve problem.json --solver brute-force

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions