TeamGraphix / graphix

measurement-based quantum computing (MBQC) compiler and simulator
https://graphix.readthedocs.io
Apache License 2.0
55 stars 20 forks source link

Equivalence detection of graph states #106

Open king-p3nguin opened 7 months ago

king-p3nguin commented 7 months ago

Van den Nest et al. (https://arxiv.org/abs/quant-ph/0405023) shows an efficient algorithm to detect local Clifford equivalence of two given graph states. It is known that all stabilizer states are equivalent under local Clifford operations to some graph state. On the other hand, Elliott et al. state in https://arxiv.org/abs/0806.2651 that all graph states that produce a certain stabilizer state can be found by successive application of the E1 and E2 equivalence rules. Equivalence checking by E1 and E2 rules are already implemented in graphix as equivalent_graph_E1() and equivalent_graph_E2(). Thus, if we can examine the process of transforming one graph state into another LC-equivalent graph state through Van den Nest et al.'s algorithm and find that it consists only of E1 and E2 rules, we know that the two graph states produce the same stabilizer state.

king-p3nguin commented 7 months ago

See https://github.com/TeamGraphix/graphix/pull/98#issuecomment-1844808760 for context. Please let me know if there is a better way to detect equivalence...

pafloxy commented 6 months ago

Hello, I never came accross any material that claims to be better than this one. But you certainly raised a nice question, I will try think about it. Btw could you please remind me in which modules can I find implementationof the graph equivalence checkers i.e the equivalent_graph_E1() ?

shinich1 commented 6 months ago

this paper explores the orbitals of LC-equivalent graph states, but with rather purely theoretical interest than applications https://quantum-journal.org/papers/q-2020-08-07-305/ graph-theoretic interpretation and visualization methods in the paper might become useful at some point.

@pafloxy equivalent_graph_E1() is a method of GraphState graph state simulator, which maps one graph to another equivalent graph (with appropriate change in LC) under local complementation. equivalent_graph_E2() is the version for pivoting.

pafloxy commented 6 months ago

Thanks for the clarification @shinich1 .

Yeah this paper could be insightful for your purpose, I went through it some time back. Though i dno't think it provides too much theoretic ground compared to the papers by Van Der Nest et al it could still lay foundation for a visualisation toolkit incase you want it in graphix, for eg. perhaps you might want to show upon input of a graph state other graph states which are not super far away from it under the action of "Local-Complementation" and other similar acations.