Overview¶
MicroQuantum exposes a small set of public contracts that compose into a single execution model. The same interfaces serve local NumPy simulation today and CPU/GPU/NPU accelerators and quantum hardware in the future.
Canonical pipeline¶
Problem
│ SamplingProblem · OptimizationProblem · HamiltonianProblem ·
│ EigenvalueProblem · SearchProblem
▼
Algorithm
│ validate(problem) -> solve(problem, runtime)
▼
ExecutionPlan
│ declarative, JSON-safe: work + backend/target + shots + bindings + seed
▼
ExecutionRuntime
│ prepare -> compile -> submit -> collect
▼
Backend
│ capabilities -> validate(plan) -> supports(plan) -> execute(plan)
▼
BackendResult
│ statevector · density matrix · counts · probabilities ·
│ expectations · samples · eigenvalues
▼
Experiment / Analysis
ExecutionRecord · ParameterSweep · SamplingAnalysis ·
ExpectationAnalysis · StateAnalysis · ResultAggregator
Layering¶
Each layer only depends on the layers below it:
Experiments / Analysis
│
Runtime / Backends / Providers
│
Algorithms
│
Problems
│
Core engine (circuits · operators · states · IR)
│
NumPy
Public contracts¶
QuantumCircuit— the program: gates, measurements, bound and symbolic parameters.Device/Target— capability-oriented descriptors of where a job runs and which execution constraints it satisfies.ExecutionPlan— declarative, JSON-safe description of what to run, where and how (shots, bindings, seed, options, metadata). Plans never execute anything.ExecutionRuntime— the coordinator: prepare, optionally compile, submit, collect.Backend— the execution contract:capabilities,validate(plan),supports(plan),execute(plan).BackendResult— execution output with JSON-safe serialization.ExecutionRecord— portable record of one actual execution (raw result preserved).Problem— plain JSON-safe task description, never an execution.
Design principles¶
Independent implementation — all quantum operations are implemented from scratch with NumPy; no Qiskit/Cirq/OpenQASM dependency.
Layer separation — analytics never touch raw matrices; problems never execute; backends never re-implement simulation logic.
Big-endian qubit ordering — qubit 0 is the most-significant bit; tensor axis 0 = qubit 0 (the mathematical convention).
Standardized results — every successful run funnels into a typed result with
to_dict()/to_json().Reproducible by configuration — execution fingerprints hash the stable serialized configuration, never object addresses.
Test-driven — a full test suite ships with the SDK and runs in CI.