images by Clément Meignant
This repository has be made during the 2019 edition of the Pan-European Quantum Internet Hackathon — Paris Node, on November 5th and 6th, 2019.
It deals with Distributing Graph States Over Arbitrary Quantum Networks using Simulaqron.
The paper can be found at the following URL: https://arxiv.org/pdf/1811.05445.pdf
This project uses Simulaqron, an application level simulator for a quantum internet: https://www.simulaqron.org/
The package needs Simulaqron to work properly PYTHONPATH should be in the Simulaqron directory
git clone https://github.com/francois-marie/StarExpanders
cd StarExpanders
export PYTHONPATH=$(pwd):$PYTHONPATH
python network.py
python network2local.py
./start.sh
./run.sh
network.py
generates a json file descriptive of the directional network with specific id and a specific folder for the protocol execution
id_network.json
Creates the protocol for the execution of the nodes to go from the network to a GHZ of specified nodes
id_protocol.json
TODO: generate protocol automatically from the network and the list of target nodes
network2local.py
Generated two bash scripts
- To start the simulacron network
start.sh
- To execute the protocol on the nodes
run.sh
start.sh
run.sh
calls run_node.py
to generate the CQCConnection for each node and execute the protocol for star expansions.
{"alpha": { # Node number 1
"my_name": "alpha", # Node name
"target": ["beta"], # Node number 1 sends one qubit of EPR pair to Nodes in "target" list
"receivers": 2 # Node number 1 receives one qubit of EPR pair sent by 2 receivers. (port_A) identifies the sender
},
...
}
Create GHZ state
[
{
"place": "gamma", # Node at which GHZ state preparation takes place. Node isolated in the final GHZ state
"source": "delta", # Center node in the final GHZ state
"targets": ["gamma"] # Nodes connected in the GHZ state to the center node
},
...
]
locally using CZ gates at each node
and its connections: Measure Z
CZ+Y_Y
Implement local corrections for GHZ star expansion
Generate automatically the protocol to get GHZ from a graph given a list of targets
This example was created at the Pan-European Quantum Internet Hackathon — Paris Node, on November 5th and 6th, 2019.
The team members were:
- Frederic Grosshans
- Shraddha Singh
- Georg Harder
- Sivasothy Shanmugalingam
- Francois-Marie Le Régent
You can play a demo of the final run of the protocol using the following command:
sudo apt-get install ttyrec
sudo apt-get install imagemagick
sudo apt-get install python-opster
ttyplay ttyrecord
Make sure ttyrecord
is in your present working directory