Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
bencbartlett committed Jul 12, 2018
2 parents 556bedf + 1d4064e commit b7b98db
Showing 1 changed file with 17 additions and 10 deletions.
27 changes: 17 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
# Simulator for quantum networks and channels

<img align="right" src="/docs/source/img/superdenseAEB.png" width=400>
<!-- images are hard-linked so they will show up on pypi page -->

<img align="right" src="https://github.com/att-innovate/squanch/blob/master/docs/source/img/superdenseAEB.png" width=400>

SQUANCH (Simulator for QUAntum Networks and CHannels) is an open-source Python framework for creating performant and
parallelized simulations of distributed quantum information processing. Although it can be used as a general-purpose
quantum computing simulation library, SQUANCH is designed specifically for simulating quantum *networks*, acting as a
sort of "quantum playground" to test ideas in quantum transmission and networking protocols. The package includes
flexible modules that allow you to intuitively design and simulate a multi-party quantum network, extensible quantum
and classical error models which introduce realism and the need for error correction in your simulations, and a
multi-threaded framework for manipulating quantum information in a performant manner.
sort of "quantum playground" to test ideas for quantum networking protocols. The package includes flexible modules that
allow you to easily design and simulate complex multi-party quantum networks, extensible classes for implementing quantum
and classical error models for testing error correction protocols, and a multi-threaded framework for manipulating quantum
information in a performant manner.

SQUANCH is developed as part of the Intelligent Quantum Networks and Technologies ([INQNET](http://inqnet.caltech.edu))
program, a collaboration between AT&T and the California Institute of Technology.
program, a [collaboration](http://about.att.com/story/beyond_quantum_computing.html) between AT&T and the California Institute of Technology.

## Documentation

Documentation for this package is available at the [documentation website](https://att-innovate.github.io/squanch/) or
as a pdf manual [here](/docs/SQUANCH.pdf).
as a [pdf manual](/docs/SQUANCH.pdf). You can also view the presentation given at the 2017 INQNET Symposium [here](https://indico.hep.caltech.edu/indico/getFile.py/access?sessionId=1&resId=1&materialId=0&confId=131).

## Installation

Expand All @@ -30,15 +32,20 @@ If you don't have pip, you can get it using `easy_install pip`.

## Demonstrations

Demonstrations of the framework's capabilities can be found in the [demos](/demos) folder and in the [documentation](https://att-innovate.github.io/squanch/demos.html).
Demonstrations of various quantum protocols can be found in the [demos](/demos) folder and in the [documentation](https://att-innovate.github.io/squanch/demos.html):

- [Quantum teleportation](https://att-innovate.github.io/squanch/demos/quantum-teleportation.html)
- [Superdense coding](https://att-innovate.github.io/squanch/demos/superdense-coding.html)
- [Man-in-the-middle attack](https://att-innovate.github.io/squanch/demos/man-in-the-middle.html)
- [Quantum error correction](https://att-innovate.github.io/squanch/demos/quantum-error-correction.html)

As a simple example to put in this readme, let's consider a simulation of
a transmission of classical data via [quantum superdense coding](https://en.wikipedia.org/wiki/Superdense_coding). In this
scenario, we have three agents, Alice, Bob, and Charlie. Charlie will distribute Bell pairs between Alice and Bob, then Alice will
send data to Bob by encoding two bits in the Pauli-X and -Z operations for each of her photons. Bob receives Alice's photons and
disentangles them to reconstruct her information, as shown in the following diagram.

![](docs/source/img/superdenseABC.png)
![](https://github.com/att-innovate/squanch/blob/master/docs/source/img/superdenseABC.png)

Simulating complex scenarios with multiple agents like this one is what SQUANCH is designed to do. The quantum states of large
numbers of particles can be efficiently dealt with using `QStream` objects, and the behavior of each agent can be defined by
Expand Down Expand Up @@ -110,4 +117,4 @@ received_img = np.reshape(np.packbits(out["Bob"]), img.shape)
plt.imshow(received_img)
```

![Alice transmitting an image to Bob over 1km simulated fiber optic cable.](docs/source/img/transmissionDemo.png)
![Alice transmitting an image to Bob over 1km simulated fiber optic cable.](https://github.com/att-innovate/squanch/blob/master/docs/source/img/transmissionDemo.png)

0 comments on commit b7b98db

Please sign in to comment.