Skip to content

Commit

Permalink
fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
heyredhat committed Jan 21, 2021
1 parent 014ef49 commit a1b8789
Show file tree
Hide file tree
Showing 12 changed files with 23 additions and 23 deletions.
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ toolbox for higher spin and symmetrization

3. The "Schwinger oscillator" representation of a spin-j state as the total energy 2j subspace of two quantum harmonic oscillators. Indeed, the full space of the two oscillators furnishes a representation of spin with a variable j value: a superposition of j values. This construction can be interpreted as the "second quantization" of qubit, and is appropriate for implementation of photonic quantum computers.

In addition, we provide many useful tools for dealing with oscillators and spin more generally: coherent state polynomials for oscillators, quantum polyhedra, a little spinorial special relativity, and much more. Everything is accompanied by 3D visualizations thanks to `vpython`, and interfaces to popular quantum computing libraries from `qutip` to `StrawberryFields`.
Everything is accompanied by 3D visualizations thanks to `vpython` (and `matplotlib`) and interfaces to popular quantum computing libraries from `qutip` to `StrawberryFields`.

Finally, we provide tools for implementing a form of quantum error correction or "stablization" by harnessing the power of symmetrization. We provide automatic generation of circuits which perform a given quantum experiment multiple times in parallel while periodically projecting them all jointly into the symmetric subspace, which in principle increases the reliability of the computation under noisy conditions.

Expand Down
Binary file modified docs/_build/doctrees/environment.pickle
Binary file not shown.
Binary file modified docs/_build/doctrees/index.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/_build/html/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@ <h2>spheres<a class="headerlink" href="#spheres" title="Permalink to this headli
<li><p>The “symmetrized spinors” representation of a spin-j state as 2j symmetrized spin-1/2 states (aka qubits). Indeed, the basis states of 2j symmetrized qubits are in 1-to-1 relation to the <code class="docutils literal notranslate"><span class="pre">|j,</span> <span class="pre">m&gt;</span></code> basis states of a spin-j. Such a representation is naturally useful for simulating spin-j states on a qubit based quantum computer, and we provide circuits for preparing such states.</p></li>
<li><p>The “Schwinger oscillator” representation of a spin-j state as the total energy 2j subspace of two quantum harmonic oscillators. Indeed, the full space of the two oscillators furnishes a representation of spin with a variable j value: a superposition of j values. This construction can be interpreted as the “second quantization” of qubit, and is appropriate for implementation of photonic quantum computers.</p></li>
</ol>
<p>In addition, we provide many useful tools for dealing with oscillators and spin more generally: coherent state polynomials for oscillators, quantum polyhedra, a little spinorial special relativity, and much more. Everything is accompanied by 3D visualizations thanks to <cite>vpython</cite>, and interfaces to popular quantum computing libraries from <cite>qutip</cite> to <cite>StrawberryFields</cite>.</p>
<p>Everything is accompanied by 3D visualizations thanks to <cite>vpython</cite> (and <cite>matplotlib</cite>) and interfaces to popular quantum computing libraries from <cite>qutip</cite> to <cite>StrawberryFields</cite>.</p>
<p>Finally, we provide tools for implementing a form of quantum error correction or “stablization” by harnessing the power of symmetrization. We provide automatic generation of circuits which perform a given quantum experiment multiple times in parallel while periodically projecting them all jointly into the symmetric subspace, which in principle increases the reliability of the computation under noisy conditions.</p>
<p><cite>spheres</cite> is a work in progress! Beware!</p>
<p>Get started:</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -691,7 +691,7 @@ <h1>Stablization via Symmetrization<a class="headerlink" href="#Stablization-via
</script></div>
</div>
<p>The resulting circuit will look something like this (the image below was pregenerated, since <code class="docutils literal notranslate"><span class="pre">pytket</span></code> won’t display its latex output to jupyter notebooks):</p>
<p><img alt="294a2ad7d9374454bf96dccf1a56970a" src="../_images/circ_tex.png" /></p>
<p><img alt="6147092b688440ec9ed43c6e9380b35a" src="../_images/circ_tex.png" /></p>
<p>Each layer consists of some single qubit gates and a CNOT.</p>
<div class="nbinput nblast docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[2]:
Expand All @@ -707,7 +707,7 @@ <h1>Stablization via Symmetrization<a class="headerlink" href="#Stablization-via
</div>
</div>
<p>The symmetrized circuit might look something like this:</p>
<p><img alt="50c5b67a46b6477498346fc85f77efc1" src="../_images/sym_circ_tex.png" /></p>
<p><img alt="9b0e896987a740ac83f46d20918d34b4" src="../_images/sym_circ_tex.png" /></p>
<p>We have two copies of the circuit running in parallel, and we do symmetrization after each of the two layers.</p>
<p>First, let’s evaluate the original circuit analytically to see what the answers should be.</p>
<div class="nbinput docutils container">
Expand Down Expand Up @@ -1007,7 +1007,7 @@ <h1>Stablization via Symmetrization<a class="headerlink" href="#Stablization-via
<img alt="result2" src="../_images/sym_circ_result2.png" />
<img alt="result3" src="../_images/sym_circ_result3.png" />
<img alt="result4" src="../_images/sym_circ_result4.png" />
<p><img alt="6026f4fb513740249480ba1801a3ba6c" class="no-scaled-link" src="../_images/sym_circ_result5.png" style="width: 450px;" /></p>
<p><img alt="c0eda03f7fa0440a9925f9cdce36c1ca" class="no-scaled-link" src="../_images/sym_circ_result5.png" style="width: 450px;" /></p>
<hr><p>Clearly, it’s not a given that this method of “stablization” will deliver results at least at the moment. It would be interesting to find some set of conditions that would make this algorithm relevant. The difficulties are, of course, errors in the symmetrization procedure itself, and also the scaling of the auxilliary qubits. Unless intermediate measurements are possible, allowing one to reuse auxilliary qubits, the cost of applying the algorithm quickly becomes prohibitive–and there aren’t
enough gains at the small scale, it seems, to make it worth using. In the future, however, one could imagine having thousands of qubits, as well as reliable CSWAP gates, so that one could reliably symmetrize over hundreds copies of the circuit, etc. See the attached papers for some discussion of the types of errors that this method is best at dealing with.</p>
<hr><div class="section" id="Bibliography">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -653,7 +653,7 @@ <h1>An Introduction to Majorana’s “Stellar” Representation of Spin<a class
<div class="section" id="A-“star”">
<h2>A “star”<a class="headerlink" href="#A-“star”" title="Permalink to this headline">¶</a></h2>
<p>We’re all familiar with the qubit.</p>
<p><img alt="6aa64a7112274c349be521cf53cc1f58" class="no-scaled-link" src="../_images/qubit.png" style="width: 300px;" /></p>
<p><img alt="5809efb8231945de92f9c76e9a6b4b23" class="no-scaled-link" src="../_images/qubit.png" style="width: 300px;" /></p>
<p>It’s just about the simplest quantum system that there is.</p>
<p>To get started, let’s choose some basis states. If we quantize along the <span class="math notranslate nohighlight">\(Z\)</span> axis, we can write the state of a qubit as a complex linear superposition of basis states <span class="math notranslate nohighlight">\(\mid \uparrow \rangle = \begin{pmatrix} 1 \\ 0 \end{pmatrix}\)</span> and <span class="math notranslate nohighlight">\(\mid \downarrow \rangle = \begin{pmatrix} 0 \\ 1 \end{pmatrix}\)</span>:</p>
<p><span class="math notranslate nohighlight">\(\mid \psi \rangle = \alpha\mid \uparrow \rangle + \beta \mid \downarrow \rangle = \begin{pmatrix} \alpha \\ \beta \end{pmatrix}\)</span></p>
Expand Down Expand Up @@ -1665,7 +1665,7 @@ <h2>A “star”<a class="headerlink" href="#A-“star”" title="Permalink to t
we can think of <span class="math notranslate nohighlight">\(z = \frac{\beta}{\alpha}\)</span> as being a point on the extended complex plane (the plane plus an extra point at infinity), which is just the sphere. This map is known as the stereographic projection.</p>
<p>Explicitly, if <span class="math notranslate nohighlight">\(c = x + iy\)</span>, then we have <span class="math notranslate nohighlight">\((\frac{2x}{1+x^2+y^2}, \frac{2y}{1+x^2+y^2}, \frac{1-x^2-y^2}{1+x^2+y^2})\)</span> or <span class="math notranslate nohighlight">\((0,0,-1)\)</span> if <span class="math notranslate nohighlight">\(z=\infty\)</span>.</p>
<p>Below, the map is depicted (where the pole of projection is the North Pole):</p>
<p><img alt="9d8ffc1aa9c142c794df08f021fe062a" class="no-scaled-link" src="../_images/stereographic_projection.jpg" style="width: 300px;" /></p>
<p><img alt="d1635acfb6d14f3696f74cd4c6ae2374" class="no-scaled-link" src="../_images/stereographic_projection.jpg" style="width: 300px;" /></p>
<p>Moreover, we can go in reverse: <span class="math notranslate nohighlight">\(c = \frac{x}{1+z} + i\frac{y}{1+z}\)</span> or <span class="math notranslate nohighlight">\(\infty\)</span> if <span class="math notranslate nohighlight">\(z=-1\)</span>.</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[19]:
Expand Down Expand Up @@ -1718,7 +1718,7 @@ <h2>A “star”<a class="headerlink" href="#A-“star”" title="Permalink to t
</div>
</div>
<hr><p>In any case, by means of the stereographic projection, we obtain the “Riemann sphere” (here depicted with the North Pole being the pole of projection:</p>
<p><img alt="e0625c309c874132bd550fa18d7506e8" class="no-scaled-link" src="../_images/riemann_sphere_plain.png" style="width: 300px;" /></p>
<p><img alt="cc5d9501c73a49df82f4ae4c66e385db" class="no-scaled-link" src="../_images/riemann_sphere_plain.png" style="width: 300px;" /></p>
<p>We’ve just seen how each these cardinal directions can be associated with qubit states: in fact, the eigenstates of the Pauli matrices. And thus we observe the interesting fact that <em>antipodal</em> points on the sphere become <em>orthogonal</em> vectors in Hilbert space.</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[20]:
Expand Down Expand Up @@ -1782,14 +1782,14 @@ <h2>A “constellation”<a class="headerlink" href="#A-“constellation”" tit
<p>And so on.</p>
<p>One might wonder if our simple geometrical representation for a qubit generalizes for higher spin. And the answer is yes! In fact, it was first proposed way back in 1932 by Ettore Majorana. The answer is both simple and elegant: a spin-<span class="math notranslate nohighlight">\(j\)</span> state can be represented by a <em>constellation</em> of <span class="math notranslate nohighlight">\(2j\)</span> points on the sphere (up to phase). These points are often poetically termed “stars” in the literature.</p>
<p>So just as a spin-<span class="math notranslate nohighlight">\(\frac{1}{2}\)</span> can be specified by a point on a sphere, a spin-<span class="math notranslate nohighlight">\(1\)</span> state can be specified by two points on the sphere, a spin-<span class="math notranslate nohighlight">\(\frac{3}{2}\)</span> state by three points on the sphere, and so on (again, up to phase).</p>
<p><img alt="79fd57c6b0244f29862c5df48a0c7bb2" class="no-scaled-link" src="../_images/three_star.png" style="width: 300px;" /></p>
<p><img alt="1aa8f1c2919e40408084ca5da55df9de" class="no-scaled-link" src="../_images/three_star.png" style="width: 300px;" /></p>
<hr><p>The basic construction is this.</p>
<p>Given a spin-<span class="math notranslate nohighlight">\(j\)</span> state in the <span class="math notranslate nohighlight">\(\mid j, m \rangle\)</span> representation, <span class="math notranslate nohighlight">\(\mid \psi \rangle = \begin{pmatrix}a_{0} \\ a_{1} \\ a_{2} \\a_{3} \\ \vdots\end{pmatrix}\)</span>, form a complex polynomial in an unknown <span class="math notranslate nohighlight">\(z\)</span>:</p>
<div class="math notranslate nohighlight">
\[p(z) = \sum_{m=-j}^{m=j} (-1)^{j+m} \sqrt{\binom{2j}{j-m}} a_{j+m} z^{j-m}\]</div>
<p>The roots of this polynomial, called the Majorana polynomial, when stereographically projected from the complex plane to the sphere, yield the constellation. If you lose a degree, (i.e. if the coefficients for the highest powers of <span class="math notranslate nohighlight">\(z\)</span> are <span class="math notranslate nohighlight">\(0\)</span>) then you add a root “at infinity” for each one, and so the spin-<span class="math notranslate nohighlight">\(j\)</span> state can always be specified by <span class="math notranslate nohighlight">\(2j\)</span> point on the sphere.</p>
<p>In other words, by the fundamental theorem of algebra, no less, a spin-<span class="math notranslate nohighlight">\(j\)</span> state factorizes into <span class="math notranslate nohighlight">\(2j\)</span> pieces.</p>
<p><img alt="493d8e3c8d6047e6823db37fb3906cc2" src="../_images/majorana_doodle.png" /></p>
<p><img alt="6211838ae3dc4cd3b48d7bbf6e28b284" src="../_images/majorana_doodle.png" /></p>
<p>As the above image indicates, the <span class="math notranslate nohighlight">\(\mid j, m\rangle\)</span> basis states (assuming we’ve quantized along the <span class="math notranslate nohighlight">\(Z\)</span> direction) consist of (in the case of spin-<span class="math notranslate nohighlight">\(\frac{3}{2}\)</span>) three stars at the North Pole, none at the South Pole; two stars at the North Pole, one at the South Pole; one at the North Pole, two at the South Pole; none at the North Pole, three at the South Pole. Any spin state can be expressed as a complex linear superposition of these basis states/constellations.</p>
<p>At the same time, thanks to Majorana, we can also interpret the spin state as a polynomial and find its roots. Each corresponds to a little monomial whose product (as opposed to sum) determines the same state. Each root is associated with a direction in 3D, and under rotations, the stars transform rigidly as a whole constellation.</p>
<div class="nbinput docutils container">
Expand Down
Loading

0 comments on commit a1b8789

Please sign in to comment.