SamplerV2
menos.qiskit.MENOSSampler implements Qiskit's BaseSamplerV2. Given measured circuits it returns samples, one BitArray per classical register, in the layout of Qiskit's StatevectorSampler.
text
MENOSSampler(*, default_shots: int = 1024, noise_model: NoiseModel | None = None,
seed: int | None = None, readout_mitigation: bool = False)
MENOSSampler.run(pubs, *, shots=None) -> PrimitiveJobpython
from qiskit import QuantumCircuit
from menos.qiskit import MENOSSampler
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
result = MENOSSampler(seed=7).run([qc], shots=1000).result()[0]
counts = result.data.c.get_counts()
print(counts)
assert set(counts) == {"00", "11"} and sum(counts.values()) == 1000
assert result.metadata["seed"] == 7Behavior
- Seeds.
seed=Nonedraws a fresh seed for eachrun()call. The seed used is recorded in every result'smetadata["seed"], so any run can be reproduced. Pubjruns under thej-th seed derived from it, the rulerun_batchuses. - Shot order. MENOS produces counts, not a per-shot memory, so a
BitArraylists its shots in ascending outcome order, not in sampling order. Counts, bitstrings as a multiset and expectation values are unaffected. - Noise.
noise_modelis aqiskit_aer.noise.NoiseModel, applied as byMENOSBackend, including readout errors. - Parameters. Parameterized pubs are refused; bind parameters first.
- Mitigation.
readout_mitigation=Trueadds a mitigated distribution to each result's metadata. The samples themselves are never changed. See Readout Mitigation.
