Adapter packages and input contracts#

An Adapter connects an OMMX Instance to a solver or sampler and returns an evaluated Solution or SampleSet. The return type does not determine the search method or its optimality guarantees. See SolverAdapter and SamplerAdapter for the common contract.

The Adapter comparison example constructs one model, solves it with HiGHS and SCIP, and compares the returned values in tables and a plot.

Inspect the concrete Adapter’s INPUT_CLASS for the exact input it accepts. The recommended preparation policy is an editable starting point; constructing it neither changes an Instance nor guarantees that a particular problem can be prepared. The easy solve and sample paths prepare an isolated copy. Constructors and *_without_preparation paths require an already applicable input. The OMMXPySCIPOptAdapter Reference has a complete example of selecting a policy, preparing a model, and solving it without further preparation.

Packages developed in this repository#

Until the 3.0.0 stable release, this Reference and the Book both describe main. Follow the installation guide to choose the latest published prerelease or install the SDK and adapters from the same main checkout. Use main for features not yet released.

A backend name is not an input class. For example, OMMXOpenJijSAAdapter accepts unconstrained binary polynomial minimization of arbitrary polynomial degree; it is not restricted to QUBO. Use its declared INPUT_CLASS and recommended policy rather than assuming that every OpenJij model must first become quadratic.

Settings such as penalty weights, tolerances, and time or sample limits remain application choices. Diagnostic and initial-state support also differ by Adapter; consult the concrete package Reference.

Collecting diagnostics#

class ommx.adapter.DiagnosticCollector#

A collector implementing ommx.adapter.DiagnosticsSink. Pass it as an Adapter’s diagnostics argument to retain reports in emission order. The diagnostics property returns the collected reports.

Integrations maintained in separate repositories#

The following projects maintain their own SDK compatibility, execution environment, authentication or license requirements, and result contracts. Consult the selected project’s release documentation for those conditions.