Skip to content

Commit ff5fa2c

Browse files
committed
extend README with installation + concepts
1 parent 70a7bcb commit ff5fa2c

File tree

1 file changed

+38
-4
lines changed

1 file changed

+38
-4
lines changed

README.md

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,53 @@
1-
# Analysis of isotropic errors in QC algorithms
1+
# isotropic
2+
3+
`isotropic` is a python library that contains tools for analysis of isotropic errors in QC algorithms. See [Executive summary of concepts](#executive-summary-of-concepts) for a quick run down on isotropic errors and how they are generated and added to the quantum state.
24

35
## Installation
46

5-
### Clone the repository
7+
### Install from pip
8+
```bash
9+
pip install isotropic[all]
10+
```
11+
12+
The `all` option installs the necessary libraries for using the qiskit simulator for algorithm analysis and running the example notebooks.
13+
14+
### Install from source
15+
16+
#### Clone the repository
617
```bash
718
git clone https://github.com/lazyoracle/isotropic-error-analysis
819
```
920

10-
### Install library and dependencies
21+
#### Install library and dependencies
1122
```bash
1223
cd isotropic-error-analysis
1324
pip install -e .\[all\]
1425
```
1526

16-
### Run notebooks
27+
### Run examples
1728
```bash
1829
jupyter notebook notebooks/
1930
```
31+
32+
## Executive summary of concepts
33+
34+
In quantum error models, isotropic errors are those that affect all states of the system equally, without a preferred direction in Hilbert space. For example, depolarizing noise is isotropic. A depolarizing channel replaces a qubit state with the maximally mixed state with some probability $p$. No basis or axis is privileged. The error distribution is thus uniform over possible error directions. On the other hand, independent errors are assumed to act locally and independently across different qubits or gates. For example, an independent bit-flip error model applies an $X$ operator to each qubit with probability $p$, independently of what happens to other qubits. In this case, errors are uncorrelated across subsystems.
35+
36+
In order to model the effect of an isotropic error on a quantum state $\Phi$, we follow the steps outlined below:
37+
38+
1. Construct an orthonormal basis of $\Pi$ with center at $\Phi$.
39+
2. Generate a vector $e_2$ in $S_{d−1}$ with uniform distribution.
40+
3. Generate an angle $\theta_0$ in $[0,\pi]$ with density function $f(\theta_0)$.
41+
4. Generate the final perturbed state $\Psi$ as a rotation of $e_1 = \Phi$ by angle $\theta_0$ in the subspace spanned by the orthonormal basis $[e_1,e_2]$ using the expression $\Psi = \Phi \cos(\theta_0) + e_2 \sin(\theta_0)$
42+
43+
Once we have a recipe for adding an isotropic error to a quantum state, we can study the effect of such an error on the complexity of algorithms such as Grover's or Shor's that involve repeated executions until success.
44+
45+
## FAQs
46+
47+
1. What system sizes can be analysed?
48+
49+
Currently this is tested for systems with up to 7 qubits. The error generation requires the calculation of a double factorial ratio, which becomes intractable at larger system sizes unless some nifty tricks are applied. There is an experimental implementation of double factorial ratio for larger numbers, but this is somewhat buggy and not yet thoroughly tested
50+
51+
2. What algorithms can be analysed?
52+
53+
As of now, only Grover's algorithm is implemented (using Qiskit) and analysed here. However, the library accepts an arbitrary quantum state and returns the perturbed quantum state, both as a standard complex array. Which means it can be integrated with any quantum programming library such as Pennylane or Qiskit or Cirq that has its own routines for statevector simulation of different quantum algorithms.

0 commit comments

Comments
 (0)