Skip to content

Add reweighting strength option to allow regularized correlated matching - #188

Open
cesar-hernando wants to merge 1 commit into
oscarhiggott:masterfrom
cesar-hernando:regularized-reweighting
Open

cesar-hernando wants to merge 1 commit into
oscarhiggott:masterfrom
cesar-hernando:regularized-reweighting

Conversation

@cesar-hernando

Copy link
Copy Markdown

Adds an optional reweighting_strength argument to Matching.decode, Matching.decode_batch and Matching.decode_to_edges_array, used when enable_correlations=True.

After the first pass, correlated matching gives each edge correlated with a selected edge the probability min(P, 0.5), where P is its conditional probability given the selected edge. With this option it becomes min(reweighting_strength * P, 0.5). Values of reweighting_strength below 1.0 decrease the conditional probabilities and increase the posterior (implied/conditional) weights. The default (1.0) leaves behaviour unchanged: predictions and solution weights are bit-identical to v2.4.0.

The motivation is that, under circuit-level noise, selecting one edge in the first pass discounts several correlated edges at once. The second pass can then select several edges discounted by the same source edge, ignoring the cost of the additional independent faults that their joint occurrence requires. Deep below threshold, correlated matching fails on $(d-1)/2$ faults in a distance-$d$ surface code, losing a unit of effective distance and its advantage over uncorrelated matching. A reweighting_strength below 1.0, calibrated to the (characteristic) physical error rate, restores that advantage; see arXiv:2610.26785.

Example usage:

matching.decode(syndrome, enable_correlations=True, reweighting_strength=0.2)

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant