qplex.algorithms.mixers package¶
Submodules¶
qplex.algorithms.mixers.cardinality_mixer module¶
- class qplex.algorithms.mixers.cardinality_mixer.CardinalityMixer[source]¶
Bases:
QuantumMixerXY-mixer implementation for problems with cardinality constraints.
Implements an XY-mixing Hamiltonian that preserves the Hamming weight of the quantum state, suitable for problems with fixed-sum or cardinality constraints.
- generate_circuit(n_qubits: int, theta: str) List[str][source]¶
Generate circuit for XY-mixing operation.
Creates a series of controlled operations between qubit pairs to implement the XY-mixer while preserving total number of 1s in the state.
- Parameters:
n_qubits (int) – Number of qubits
theta (str) – Mixing angle parameter
- Returns:
OpenQASM3 instructions for XY-mixer
- Return type:
List[str]
qplex.algorithms.mixers.composite_mixer module¶
- class qplex.algorithms.mixers.composite_mixer.CompositeMixer(mixers: List[QuantumMixer])[source]¶
Bases:
QuantumMixerMixer combining multiple constraint-preserving mixers.
Allows composition of multiple mixer types to handle problems with multiple types of constraints simultaneously.
- generate_circuit(n_qubits: int, theta: str) List[str][source]¶
Generate composite mixing circuit.
Concatenates the circuits from all component mixers in sequence.
- Parameters:
n_qubits (int) – Number of qubits
theta (str) – Mixing angle parameter
- Returns:
Combined OpenQASM3 instructions from all mixers
- Return type:
List[str]
qplex.algorithms.mixers.inequality_mixer module¶
- class qplex.algorithms.mixers.inequality_mixer.InequalityMixer[source]¶
Bases:
QuantumMixerMixer implementation for inequality-constrained problems.
Implements controlled rotations based on cumulative weights to preserve inequality constraints while mixing quantum states.
- generate_circuit(n_qubits: int, theta: str) List[str][source]¶
Generate circuit for inequality-preserving mixing.
Creates a sequence of controlled operations that respect inequality constraints during state mixing.
- Parameters:
n_qubits (int) – Number of qubits
theta (str) – Mixing angle parameter
- Returns:
OpenQASM3 instructions for inequality mixer
- Return type:
List[str]
qplex.algorithms.mixers.mixer_factory module¶
- class qplex.algorithms.mixers.mixer_factory.ConstraintType(value)[source]¶
Bases:
EnumAn enumeration.
- CARDINALITY = 'cardinality'¶
- INEQUALITY = 'inequality'¶
- MULTIPLE = 'multiple'¶
- PARTITION = 'partition'¶
- UNCONSTRAINED = 'unconstrained'¶
- class qplex.algorithms.mixers.mixer_factory.MixerFactory[source]¶
Bases:
objectFactory class for creating appropriate quantum mixers.
Creates mixer instances based on problem constraints, supporting single constraint types and composite mixers for multiple constraints.
- classmethod get_mixer(constraint_info: ConstraintInfo) QuantumMixer[source]¶
Create appropriate mixer based on constraint information.
- Parameters:
constraint_info (ConstraintInfo) – Problem constraint metadata
- Returns:
Appropriate mixer instance for given constraints
- Return type:
qplex.algorithms.mixers.partition_mixer module¶
- class qplex.algorithms.mixers.partition_mixer.PartitionMixer[source]¶
Bases:
QuantumMixerMixer implementation for partition/grouping problems.
Implements SWAP-based mixing operations suitable for problems requiring partition of items into groups while preserving group sizes.
- generate_circuit(n_qubits: int, theta: str) List[str][source]¶
Generate circuit for partition-preserving mixing.
Creates SWAP operations between adjacent qubits followed by rotations to mix states while maintaining partition structure.
- Parameters:
n_qubits (int) – Number of qubits
theta (str) – Mixing angle parameter
- Returns:
OpenQASM3 instructions for partition mixer
- Return type:
List[str]
qplex.algorithms.mixers.quantum_mixer module¶
- class qplex.algorithms.mixers.quantum_mixer.QuantumMixer[source]¶
Bases:
ABCAbstract base class defining the interface for quantum mixers.
Provides a template for implementing various mixing operators that preserve problem constraints while exploring the solution space.
- abstract generate_circuit(n_qubits: int, theta: str) List[str][source]¶
Generate OpenQASM3 circuit instructions for the mixing operation.
- Parameters:
n_qubits (int) – Number of qubits in the circuit
theta (str) – Mixing angle parameter name/value
- Returns:
OpenQASM3 instructions implementing the mixer
- Return type:
List[str]
qplex.algorithms.mixers.standard_mixer module¶
- class qplex.algorithms.mixers.standard_mixer.StandardMixer[source]¶
Bases:
QuantumMixerStandard X-mixer implementation for QAOA.