graph state simulator and dense tableaux simulator
Opened this issue · 5 comments
Hi, @AthenaCaesura ! You mentioned that there is a graph state simulator that can be "extracted" from this codebase. The dense tableau simulator I mentioned is https://github.com/QuantumSavory/QuantumClifford.jl
Awesome! Looks like some interesting stuff. I had a think about how to do this integration and I have a few ideas. The graph simulator I mentioned is here in the graph_sim_mini
and graph_sim_data
files. There are a few things to do:
- Make
graph_sim_mini
take inQuantumClifford.jl
circuits. This shouldn't be too bad since it only supports 8 operations. (6 single qubit Cliffords (modulo Paulis) and the CZ/CX gates). - Part of the "mini" in
graph_sim_mini
is that I don't provide any tools for measurement (we just care about generating the graph). The easiest way to include this functionality is just to convert the graph to a tableau and use the sampling operations you already have available. But converting to a tableau is O(# qubits) and for sparse cases wheregraph_sim_mini
would be applied, the number of qubits will most likely be large. - Using your Pauli frame tracker to multiply the final state by the required Paulis (since
graph_sim_mini
ignores Paulis) - Since
benchq
is provided under Apache andQuantumClifford.jl
is under GNU just takinggraph_sim_mini
andgraph_sim_data
and plopping them intoQuantumClifford.jl
might cause some issues with Zapata's IP unless we include a copy of Apache in the files along with a notice that it's been modified. (tbh I don't care about this at all, I just don't want our lawyers to get mad at me... so I'll have to talk with someone who knows more)
I think that does it! Probably not too much work. But will take a few hours at least.
Tagging @ScottPJones here since he expressed interest in this project as well.
Hello @Krastanov! Can we meet sometime soon to discuss how this integration would happen? I've got some questions about how QuatnumClifford.jl
works. Tbh it's probably just stemming from my lack of Julia knowledge. But it would still be helpful to know what data structures I should be using.
@AthenaCaesura , apologies, I missed the notification about this post. I am relatively available next week, is there a day you would prefer to have a call on? It is probably more reliable to message me at stefan@krastanov.org
Hello! Sorry I missed your message now! (why don't we just email from now on since this has failed us twice 😆 ). I figured out that my point 3 above is going to be much harder than I anticipated. But I am in the process of working it out right now.