API Reference¶
Complete API documentation for the Enhanced Quantum Backend Selector.
Quick Reference¶
from enhanced_quantum_backend_selector import (
BackendSelector,
BackendRecommendation,
CircuitScore,
)
BackendSelector¶
Main class for selecting quantum backends.
Constructor¶
Parameters:
backends: List of BackendV2 instancestranspilation_runs: Number of transpilation runs for averaging (default: 3)
Methods¶
select_backend¶
def select_backend(
self,
circuit: QuantumCircuit,
top_n: int | None = None,
require_compatible: bool = True,
min_score: float | None = None,
) -> BackendRecommendation
Select the best backend for a circuit.
Parameters:
circuit: The quantum circuit to executetop_n: Consider only top N backends (optional)require_compatible: Only consider compatible backends (default: True)min_score: Minimum acceptable score (optional)
Returns: BackendRecommendation
Raises: ValueError if no suitable backend found
rank_backends¶
def rank_backends(
self,
circuit: QuantumCircuit,
top_n: int | None = None,
) -> List[BackendRecommendation]
Get ranked list of all backends.
Parameters:
circuit: The quantum circuit to executetop_n: Return only top N backends (optional)
Returns: List of BackendRecommendation sorted by score
BackendRecommendation¶
Result object containing backend selection details.
@dataclass
class BackendRecommendation:
backend: BackendV2 # The recommended backend
score_data: CircuitScore # Scoring results
rank: int # Position in rankings (1=best)
CircuitScore¶
Scoring results for a backend.
@dataclass
class CircuitScore:
backend: str # Backend name
compatible: bool # Whether backend can run the circuit
reasons: list[str] # Human-readable explanations
score: float # Negative error sum (higher is better)
Score interpretation:
- Score = negative sum of all errors
- Higher scores are better (less negative = lower error)
- Example:
-0.01(1% error) is better than-0.05(5% error)
Type Hierarchy¶
BackendSelector
├── select_backend() → BackendRecommendation
└── rank_backends() → List[BackendRecommendation]
BackendRecommendation
├── backend: BackendV2
├── score_data: CircuitScore
└── rank: int
CircuitScore
├── backend: str
├── compatible: bool
├── reasons: List[str]
└── score: float
Module Structure¶
enhanced_quantum_backend_selector/
├── __init__.py # Public API exports
├── backend_selector.py # BackendSelector class
├── backend_analyzer.py # Internal: Backend analysis
├── circuit_scorer.py # Internal: Circuit scoring
└── models.py # Data models
Example¶
from qiskit import QuantumCircuit
from qiskit.providers.fake_provider import GenericBackendV2
from enhanced_quantum_backend_selector import BackendSelector
backends = [GenericBackendV2(num_qubits=5, seed=42)]
qc = QuantumCircuit(3)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
selector = BackendSelector(backends)
rec = selector.select_backend(qc)
print(f"Backend: {rec.backend.name}")
print(f"Score: {rec.score_data.score:.3f}")
print(f"Rank: #{rec.rank}")
See Also¶
- User Guide - Usage examples
- Architecture - System design
- Examples - Real-world scenarios