1
$\begingroup$

I have a stim circuit and when I call shortest graphlike error I find that it has distance 3:

assert len(shortsurfacecode.circ.shortest_graphlike_error()) == 3

When I draw the match-graph-3d it consists of a single node and I don't understand why:

shortsurfacecode.circ.detector_error_model().diagram(type="match-graph-3d")

enter image description here

Here is the stim circuit:

QUBIT_COORDS(0, 2) 0
QUBIT_COORDS(1, 1) 1
QUBIT_COORDS(2, 0) 2
QUBIT_COORDS(1, 3) 3
QUBIT_COORDS(2, 2) 4
QUBIT_COORDS(3, 1) 5
QUBIT_COORDS(2, 4) 6
QUBIT_COORDS(3, 3) 7
QUBIT_COORDS(4, 2) 8
R 0 1 2 3 4 5 6 7 8
QUBIT_COORDS(2, 3) 9
R 9
QUBIT_COORDS(1, 2) 10
R 10
QUBIT_COORDS(0, 1) 11
R 11
QUBIT_COORDS(3, 0) 12
R 12
X_ERROR(0.01) 0 1 2 3 4 5 6 7 8 9 10 11 12
H 9 11
TICK
DEPOLARIZE1(0.01) 9 11 0 1 2 3 4 5 6 7 8 10 12
CX 9 7 11 1 4 10
TICK
DEPOLARIZE1(0.01)
DEPOLARIZE2(0.01) 9 7 11 1 4 10
DEPOLARIZE1(0.01) 0 2 3 5 6 8 12
CX 9 6 1 10 11 0
TICK
DEPOLARIZE1(0.01)
DEPOLARIZE2(0.01) 9 6 1 10 11 0
DEPOLARIZE1(0.01) 2 3 4 5 7 8 12
CX 9 4 3 10 5 12
TICK
DEPOLARIZE1(0.01)
DEPOLARIZE2(0.01) 9 4 3 10 5 12
DEPOLARIZE1(0.01) 0 1 2 6 7 8 11
CX 9 3 0 10 2 12
TICK
DEPOLARIZE1(0.01)
DEPOLARIZE2(0.01) 9 3 0 10 2 12
DEPOLARIZE1(0.01) 1 4 5 6 7 8 11
H 9 11
TICK
DEPOLARIZE1(0.01) 9 11 0 1 2 3 4 5 6 7 8 10 12
X_ERROR(0.01) 9 11
M 9 11
X_ERROR(0.01) 10 12
M 10 12
DETECTOR rec[-1]
DETECTOR rec[-2]
DEPOLARIZE1(0.01) 0 1 2 3 4 5 6 7 8
QUBIT_COORDS(2, 1) 13
R 13
QUBIT_COORDS(3, 2) 14
R 14
QUBIT_COORDS(4, 3) 15
R 15
QUBIT_COORDS(1, 4) 16
R 16
X_ERROR(0.01) 13 14 15 16
DEPOLARIZE1(0.01) 0 1 2 3 4 5 6 7 8
H 13 15
TICK
DEPOLARIZE1(0.01) 13 15 0 1 2 3 4 5 6 7 8 14 16
CX 13 5 8 14 6 16
TICK
DEPOLARIZE1(0.01)
DEPOLARIZE2(0.01) 13 5 8 14 6 16
DEPOLARIZE1(0.01) 0 1 2 3 4 7 15
CX 13 4 5 14 3 16
TICK
DEPOLARIZE1(0.01)
DEPOLARIZE2(0.01) 13 4 5 14 3 16
DEPOLARIZE1(0.01) 0 1 2 6 7 8 15
CX 13 2 7 14 15 8
TICK
DEPOLARIZE1(0.01)
DEPOLARIZE2(0.01) 13 2 7 14 15 8
DEPOLARIZE1(0.01) 0 1 3 4 5 6 16
CX 13 1 4 14 15 7
TICK
DEPOLARIZE1(0.01)
DEPOLARIZE2(0.01) 13 1 4 14 15 7
DEPOLARIZE1(0.01) 0 2 3 5 6 8 16
H 13 15
TICK
DEPOLARIZE1(0.01) 13 15 0 1 2 3 4 5 6 7 8 14 16
X_ERROR(0.01) 13 15
M 13 15
X_ERROR(0.01) 14 16
M 14 16
DETECTOR rec[-1]
DETECTOR rec[-2]
DEPOLARIZE1(0.01) 0 1 2 3 4 5 6 7 8
TICK
R 9 10 11 12
X_ERROR(0.01) 9 10 11 12
DEPOLARIZE1(0.01) 0 1 2 3 4 5 6 7 8
TICK
H 9 11
TICK
DEPOLARIZE1(0.01) 9 11 0 1 2 3 4 5 6 7 8 10 12
CX 9 7 11 1 4 10
TICK
DEPOLARIZE1(0.01)
DEPOLARIZE2(0.01) 9 7 11 1 4 10
DEPOLARIZE1(0.01) 0 2 3 5 6 8 12
CX 9 6 1 10 11 0
TICK
DEPOLARIZE1(0.01)
DEPOLARIZE2(0.01) 9 6 1 10 11 0
DEPOLARIZE1(0.01) 2 3 4 5 7 8 12
CX 9 4 3 10 5 12
TICK
DEPOLARIZE1(0.01)
DEPOLARIZE2(0.01) 9 4 3 10 5 12
DEPOLARIZE1(0.01) 0 1 2 6 7 8 11
CX 9 3 0 10 2 12
TICK
DEPOLARIZE1(0.01)
DEPOLARIZE2(0.01) 9 3 0 10 2 12
DEPOLARIZE1(0.01) 1 4 5 6 7 8 11
H 9 11
TICK
DEPOLARIZE1(0.01) 9 11 0 1 2 3 4 5 6 7 8 10 12
X_ERROR(0.01) 11
M 11
DETECTOR rec[-1] rec[-8]
X_ERROR(0.01) 12
M 12
DETECTOR rec[-1] rec[-7]
X_ERROR(0.01) 10
M 10
DETECTOR rec[-1] rec[-9]
X_ERROR(0.01) 9
M 9
DETECTOR rec[-1] rec[-12]
X_ERROR(0.01) 0 1 2 3 4 5 6 7 8
M 0 1 2 3 4 5 6 7 8
DETECTOR rec[-11] rec[-9] rec[-6] rec[-8] rec[-5]
DETECTOR rec[-15] rec[-5] rec[-2] rec[-4] rec[-1]
DETECTOR rec[-12] rec[-7] rec[-4]
DETECTOR rec[-14] rec[-3] rec[-6]
OBSERVABLE_INCLUDE(0) rec[-9] rec[-8] rec[-7]

And it's detector error model

error(0.03185674550515311954) D0 D3
error(0.04975735925829932738) D0 D5
error(0.03809865556508435641) D0 L0
error(0.03059997378373536733) D1 D2
error(0.001338700097173320998) D1 D2 D4
error(0.01911873511075361937) D1 D3
error(0.004005357180252827609) D1 D4 D6
error(0.01126977837777042371) D1 D4 L0
error(0.03874469856294735642) D1 D6
error(0.04914933380809191621) D1 L0
error(0.04425734015754984041) D2
error(0.002673815958446297981) D2 D3
error(0.002673815958446297981) D2 D3 D7
error(0.001338700097173320998) D2 D4 D6
error(0.02293841413224595796) D2 D6
error(0.02165770036624231967) D2 D6 D7
error(0.02230280153587052214) D2 D7
error(0.002673815958446297981) D2 D7 D11
error(0.04733668245378268302) D2 D11
error(0.1110374976726973273) D3
error(0.04360252789818236385) D3 D5
error(0.001338700097173320998) D3 D5 D7
error(0.03557524547345392724) D3 D6
error(0.02676856776605827937) D3 D6 D7
error(0.03432845639209641808) D3 D7
error(0.002673815958446297981) D3 D7 D9
error(0.03997966359665833247) D3 D9
error(0.1662642703886834938) D4
error(0.08897217728373547907) D4 D6 L0
error(0.004005357180252827609) D5 D6
error(0.001338700097173320998) D5 D6 D7
error(0.05570001667892007791) D5 D9
error(0.04975735925829932738) D5 D10
error(0.09227216989561401461) D5 L0
error(0.004005357180252827609) D6 D7 D8
error(0.01584743398905801709) D6 D7 D9
error(0.02867209751539220169) D6 D7 D11
error(0.001338700097173320998) D6 D7 L0
error(0.03874469856294735642) D6 D8
error(0.01584743398905801709) D6 D9
error(0.02867209751539220169) D6 D11
error(0.09985261856122865098) D6 L0
error(0.2093485274052065692) D7
error(0.006000449842759884161) D7 D8 D9
error(0.005333333333333313206) D7 D8 D11
error(0.001338700097173320998) D7 D8 L0
error(0.02101172802650804611) D7 D9
error(0.002673815958446297981) D7 D9 D11
error(0.02867209751539220169) D7 D11
error(0.02870423005727528593) D8 D9
error(0.02169031111111104776) D8 D11
error(0.04854864330815450435) D8 L0
error(0.1298754953638350251) D9
error(0.02553048530927685272) D9 D10
error(0.002673815958446297981) D9 D11
error(0.01911873511075363324) D10 L0
error(0.05632945683604310971) D11
$\endgroup$

1 Answer 1

1
$\begingroup$

This is because all the nodes are on top of each other. You need to give each detector coordinates, like DETECTOR(1,2,3.5) ....

As of stim v1.11, Stim will handle this case slightly better. It will print a warning that coordinate data was missing, pick arbitrary coordinates for the detectors, and produce a result like this:

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.