Hamiltonians

The divi.hamiltonians module provides Hamiltonian construction, QUBO-to-Ising conversion, trotterization strategies, and encoding utilities.

Cost-function domain logic: PennyLane Hamiltonian ops, Trotterization, binary-polynomial normalization + evaluation, and QUBO/HUBO-to-Ising conversion.

Functions

bit_driver(n_qubits, b)

Bit-driver Hamiltonian (-1)^(b+1) * sum_i Z_i.

to_spo(op, *[, wires])

Convert a PennyLane operator, SparsePauliOp, or Pauli-string dict to SparsePauliOp, validating Hermiticity in every case.

bit_flip_mixer(graph, b)

Bit-flip mixer over graph (per Hadfield et al. 2019).

compile_problem(problem)

Pre-extract polynomial terms into Numba-friendly CSR-style arrays.

edge_driver(graph, reward, *[, n_qubits])

Edge-driver Hamiltonian rewarding edges whose endpoints match reward.

hubo_to_binary_polynomial(hubo)

Convert HUBO input to a dimod BinaryPolynomial with BINARY vartype.

normalize_binary_polynomial_problem(problem, *)

Normalize QUBO/HUBO input into canonical binary-polynomial representation.

qubo_to_binary_polynomial(qubo)

Convert supported QUBO inputs to a binary polynomial.

qubo_to_ising(qubo, *[, ...])

Convert a QUBO/HUBO to a cleaned Ising Hamiltonian.

qubo_to_matrix(qubo)

Convert supported QUBO inputs to a square matrix.

qubo_to_spo(qubo, *[, hamiltonian_builder, ...])

Convert a QUBO/HUBO directly to its cost-Hamiltonian SparsePauliOp.

x_mixer(n_qubits)

Return the standard QAOA X mixer sum_i X_i.

xy_mixer(graph, *[, n_qubits])

Return the XY mixer 0.5 * sum_(i,j) (X_i X_j + Y_i Y_j).

Classes

BinaryPolynomialProblem(polynomial, ...)

Canonical internal representation for binary polynomial optimization problems.

BinaryToIsingConverter(*args, **kwargs)

Protocol for pluggable binary-to-Ising converters.

ExactTrotterization([keep_fraction, ...])

Exact Trotterization strategy.

IsingEncoding(operator, constant, decode_fn)

Result of converting a binary polynomial problem to an Ising Hamiltonian.

IsingResult(cost_hamiltonian, loss_constant, ...)

Result of converting a QUBO/HUBO to a cleaned Ising Hamiltonian.

NativeIsingConverter([zero_tol])

Convert binary polynomials to Ising operators by exact substitution x=(1-Z)/2.

QDrift([keep_fraction, keep_top_n, ...])

QDrift Trotterization strategy.

QuadratizedIsingConverter([strength, ...])

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

TrotterizationStrategy(*args, **kwargs)

Trotterization strategy protocol.

Variables

CompiledBinaryPolynomial

Built-in immutable sequence.

HUBOProblemTypes

Represent a PEP 604 union type

HUBOTerm

Built-in immutable sequence.

QUBOProblemTypes

Represent a PEP 604 union type