DistinguishablePhotonMitigation
DistinguishablePhotonMitigation reduces errors associated with partial photon distinguishability and unwanted
multi-photon emission. It runs related experiments with fewer input photons and combines their results using the noise
characterization of the computer.
The order controls how far the correction is expanded:
>>> import perceval as pcvl
>>>
>>> computer.mitigations = [pcvl.DistinguishablePhotonMitigation(order=1)]
A larger order can correct higher-order contributions but requires more sub-computations (scaling as \(\sum_{k=0}^{order} C_k^n\)). It should be increased only when the execution budget and the input photon count justify the extra work.
For workflows containing several input photon counts, pass a dictionary to select a different order for each count:
>>> mitigation = pcvl.DistinguishablePhotonMitigation({2: 1, 4: 2, 6: 3})
Practical considerations
The experiment input must be a
FockState.The technique uses the computer’s noise model, especially
indistinguishabilityandg2.It has no effect when the photons are perfectly indistinguishable and
g2is zero.Requested samples and shots are divided among the generated sub-computations. Very small budgets may therefore be incompatible with a high order.
Output states containing more photons than the original input are removed as part of the correction, meaning all
g2related output states are lost in the process.
The overhead() method reports how many sub-computations a given input state would require and can help choose an
appropriate order before launching an execution:
>>> mitigation = pcvl.DistinguishablePhotonMitigation(order=2)
>>> mitigation.overhead(pcvl.FockState("|1,1,1>"))
7
- class perceval.runtime.error_mitigation.distinguishable_photon_mitigation.DistinguishablePhotonMitigation(order)
Partial distinguishability and g2 mitigation. Only FockState inputs are supported. All output states having more than the input number of photons are filtered out.
Mitigates errors associated with noise photons errors (distinguishability and g2) by preparing computations with fewer photons and recombining them through corrections based on the partial distinguishability ‘orthogonal bad bits’ model.
- Parameters:
order (
int|dict[int,int]) – Extent of photon error mitigation. If an integer is given, the correction is fixed up toorderor the input photon number. If a dict is given, it the input photon number as key and the corresponding order as value.
- extend_computation(computation, imperfections)
Add computations for every possible sub-n photon number up to a given specified order of correction.
- Return type:
list[Computation]