QuadratizedIsingConverter

class QuadratizedIsingConverter(strength=None, strength_multiplier=2.0)[source]

Bases: BinaryToIsingConverter

Convert binary polynomials to Ising operators via quadratization to QUBO/BQM.

The penalty term enforcing p == u·v for each aux-var substitution must dominate the objective for the QUBO’s global minimum to coincide with the original HUBO’s. When strength is None the converter picks strength_multiplier * max(|hubo coefficient|) (with a floor of strength_multiplier).

Warning

The adaptive default is sized to outweigh a single worst-case term, not the sum of many simultaneously violated terms. For dense HUBOs where the cumulative objective contribution scales with the number of variables (e.g. fully-connected QUBOs with O(n²) active terms), the default may under-penalise constraint violations and rank infeasible solutions above feasible ones. Override strength or raise strength_multiplier for such instances.

Attributes Summary

strength

Explicit penalty strength.

strength_multiplier

Multiplier applied to max(|hubo coefficient|) when strength is None.

Methods Summary

convert(problem)

Convert a canonical binary-polynomial problem to an Ising Hamiltonian.

Attributes Documentation

strength: float | None = None

Explicit penalty strength. None triggers adaptive sizing from the input HUBO’s coefficient magnitudes.

strength_multiplier: float = 2.0

Multiplier applied to max(|hubo coefficient|) when strength is None. Values ≥ 2 keep the penalty strictly larger than the worst single objective term — but not necessarily larger than the sum of many simultaneously violated terms (see class docstring).

Methods Documentation

convert(problem)[source]

Convert a canonical binary-polynomial problem to an Ising Hamiltonian.

Return type:

IsingEncoding