Source code for qplex.algorithms.mixers.composite_mixer
from typing import List
from qplex.algorithms.mixers.quantum_mixer import QuantumMixer
[docs]
class CompositeMixer(QuantumMixer):
"""Mixer combining multiple constraint-preserving mixers.
Allows composition of multiple mixer types to handle problems with
multiple types of constraints simultaneously.
"""
def __init__(self, mixers: List[QuantumMixer]):
"""Initialize with list of component mixers.
Parameters
----------
mixers : List[QuantumMixer]
List of mixer instances to combine
"""
self.mixers = mixers
[docs]
def generate_circuit(self, n_qubits: int, theta: str) -> List[str]:
"""Generate composite mixing circuit.
Concatenates the circuits from all component mixers in sequence.
Args
----
n_qubits : int
Number of qubits
theta : str
Mixing angle parameter
Returns
-------
List[str]
Combined OpenQASM3 instructions from all mixers
"""
lines = []
for mixer in self.mixers:
lines.extend(mixer.generate_circuit(n_qubits, theta))
return lines