MIWdlB / Quantum-Multicast

UCLCDTDQT Group Project on multicast quantum communication.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Quantum-Multicast

Usage

The current functionality of our package is called from simulate.py, which creates networks with a range of numbers of remote nodes, and begins a simulation for each number at various edge lengths.

Data from simulations is output to data/ with filenames indicating the entanglement type, number of nodes and length range included.

Network creation

Given a graph a network object can be created using the create_network function in utils/create_network.py. This will create node objects foreach node and add a channel for each directed edge in the graph. Quantum sources are added to bipartite networks one per edge and in multipartite networks one per node. Nodes are also given QuantumProcessor objects with a number of memory slots equal to the number of directed edges to and from the node.

Connections & Channels

connections are a network subcomponent which contains a channel for information. These can be classical only, quantum only or allow both forms of communication. Each channel has associated ports at each end, inputs of which are forwarded to memory locations of the recieving node's QuantumProcessor.

Protocols

Protocols are sets of instructions run on a node. We define protocols an InputProtocol to be used in both bipartite and multipartite networks. This is assigned to the reciver nodes. The OutputProtocol is used as a base class to BipartiteOutputProtocol and MultipartiteOutputProtocol. These are assigned to the source node dependent on network type.

Source nodes will trigger a qsource associated with each connection to create Bell pairs. One of each of these pair will be stored in memory, the other will be send to the connected node.

Programs

Programs are run on QuantumProcessors and use Instructions to carry out quantum operations and measurements. We use the program CreateGHZ to turn n pairs of bipartite Bell states into an n+1 qubit GHZ state.

Note that we still need to communicate the results of measurements in this program to reciever nodes via a classical channel, to make corrections associated with the maesurement outcomes.

Resources

NetSquid

You'll need to make an account at https://netsquid.org/ to access the documentation. Take a look at the tutorials section and the API Reference for NetSquid. There is also a whitepaper

About

UCLCDTDQT Group Project on multicast quantum communication.

License:MIT License


Languages

Language:Python 100.0%