microquantum.adapters.base¶
Base classes for the domain adapter framework.
The adapter pattern sits between domain applications and the quantum SDK:
- Domain Application → DomainAdapter → MicroQuantum SDK → Execution Backend
↑
Domain-specific encoding/decoding Physics validation Result caching
Module Contents¶
- class microquantum.adapters.base.ProblemStatus(*args, **kwds)[source]¶
Bases:
enum.EnumStatus of a quantum problem.
- class microquantum.adapters.base.QuantumProblem[source]¶
A problem formulated for quantum execution.
Encapsulates the parameters, constraints, and metadata needed to encode a problem into a quantum circuit.
- Variables:
name – Problem identifier (e.g., “binary_optimization”).
domain – Problem domain (e.g., “optimization”).
parameters – Problem-specific parameters.
constraints – Constraints for validation.
num_qubits – Requested number of qubits (may be adjusted).
metadata – Additional problem metadata.
- status: ProblemStatus[source]¶
- class microquantum.adapters.base.QuantumResult[source]¶
Result from executing a quantum problem through an adapter.
Contains both the raw quantum execution output and the decoded interpretation.
- Variables:
problem – The original problem.
backend_result – Raw result from the quantum backend.
decoded – Decoded result dictionary.
fidelity – Solution fidelity (0-1).
execution_time – Time spent in quantum execution (seconds).
metadata – Additional result metadata.
- problem: QuantumProblem[source]¶
- backend_result: microquantum.backends.base.BackendResult | None = None[source]¶
- class microquantum.adapters.base.DomainAdapter[source]¶
Bases:
abc.ABCAbstract base class for domain-specific quantum adapters.
Each adapter bridges a physics domain to the quantum SDK by: 1. Validating that a problem has physically realizable parameters 2. Encoding the problem into a parameterized quantum circuit 3. Executing the circuit on a backend 4. Decoding the quantum measurement results back to domain language
Subclasses must implement all abstract methods.
- property domain_name: str[source]¶
- Abstractmethod:
- Return type:
Domain identifier (e.g., ‘optimization’, ‘signal_processing’).
- abstractmethod validate(problem)[source]¶
Validate a problem’s physics before encoding.
- Parameters:
problem (QuantumProblem) – The problem to validate.
- Returns:
List of validation error messages. Empty list = valid.
- Return type:
- abstractmethod encode(problem)[source]¶
Encode a validated problem into a quantum circuit.
- Parameters:
problem (QuantumProblem) – The validated problem.
- Returns:
Parameterized quantum circuit representing the problem.
- Return type:
microquantum.core.circuit.QuantumCircuit
- abstractmethod decode(problem, result)[source]¶
Decode quantum measurement results into domain results.
- Parameters:
problem (QuantumProblem) – The original problem.
result (microquantum.backends.base.BackendResult) – Raw backend execution result.
- Returns:
Dictionary of domain-specific decoded results.
- Return type:
- solve(problem, backend, shots=1024, seed=None)[source]¶
Full solve pipeline: validate → encode → execute → decode.
- Parameters:
problem (QuantumProblem) – The problem to solve.
backend (microquantum.backends.base.Backend) – Quantum backend to execute on.
shots (int) – Number of measurement shots.
seed (Optional[int]) – Optional RNG seed.
- Returns:
QuantumResult with decoded domain results.
- Raises:
ValueError – If problem fails validation.
- Return type:
- can_handle(problem)[source]¶
Check if this adapter can handle a given problem.
- Parameters:
problem (QuantumProblem)
- Return type: