量子コンピューターディスコの例を数式とQniで追う🪩
· #量子コンピューターディスコ
- 量子計算とDJ操作のメタファー対応確認
- 公式動画の例を実際に行列で計算
- Webシミュレーター「Qni」による再現
序論
先日、本サイトでもご紹介した日本科学未来館の展示「量子コンピューターディスコ」。 実はまだ実際に体験はできていないのですが、現地に行く前にその仕組みを予習しておきたいと思い、この記事を書きました。
「量子コンピューターディスコ」の設計
まずは、展示のコンセプトを確認します。
未来館の公式ページでは、DJ 体験を通して量子コンピュータのプログラミングを理解できる展示として紹介されています。[1]
この記事[2]では、以下のように説明されています。
ユニークなのは、各性質をDJ卓での作業になぞらえた点だ。「重ね合わせ」は2つ以上の楽曲をミックス(同時に流す)した状態、「位相」はヘッドホンから流れてくる音のサラウンド感、「もつれ」はスクリーン上で隣り合わせになっていない楽曲同士をミックスする行為、そして「測定」はゲートの組み合わせを踏まえて計算された確率をもとに最終的にダンスフロアに流すことができた楽曲で表現される。音を操るうちに、4つの量子の性質が流したい楽曲を流せる確率(=量子計算の確率)にどんな影響をもたらすのか、イメージできるようになるのだ。
つまり、量子計算の性質と DJ 操作のメタファーは次のように対応しています。
| 量子計算の性質 | DJ 操作での表現 |
|---|---|
| 重ね合わせ | 複数曲を同時にミックスして流している状態 |
| 位相 | ヘッドホンでのサラウンド感の変化 |
| もつれ | 画面上で隣り合っていない曲同士をミックスする行為 |
| 測定 | ゲートの組み合わせで計算された確率をもとに、最終的にフロアに流れる曲が 1 曲に確定する |
公式動画の例

公式の説明動画の例では、上記のような回路を用いて説明されています。[3]
行列で実際に計算
動画の例では、上2本のレーンだけにゲートが置かれていて、3本目のレーンには何も置かれていません。 したがって、この回路は実質的には上2量子ビットの回路として計算できます。
なお、以下では
- 上から順に並ぶ量子ビットを $(q_0,q_1,q_2)$
- 基底順を $\lvert q_0q_1q_2\rangle = \lvert 000\rangle,\lvert 001\rangle,\dots,\lvert 111\rangle$
とします。
動画の例を、上2量子ビットに対する回路として読むと、
\[X,\;X,\;H,\;P(\pi/2),\;H,\;\mathrm{CNOT}_{0\to1},\;X\]がこの順に作用しているとみなせます。したがって出力状態は
\[|\psi_{\mathrm{out}}\rangle = (X\otimes I)\, \mathrm{CNOT}_{0\to1}\, (H\otimes I)\, (P(\pi/2)\otimes I)\, (H\otimes I)\, (X\otimes I)\, (X\otimes I)\, |00\rangle\]です。
最初の $X$ が2回続いているので、
\[(X\otimes I)(X\otimes I)=I\otimes I\]より、
\[|\psi_{\mathrm{out}}\rangle = (X\otimes I)\, \mathrm{CNOT}_{0\to1}\, \bigl(HP(\pi/2)H \otimes I\bigr)\, |00\rangle\]となります。
[1] 1量子ビット部分 $HP(\pi/2)H$ を計算
まず各行列は
\[H=\frac{1}{\sqrt 2} \begin{pmatrix} 1 & 1\\ 1 & -1 \end{pmatrix}, \qquad P(\pi/2)= \begin{pmatrix} 1 & 0\\ 0 & i \end{pmatrix}\]です。
したがって
\[HP(\pi/2)H = \frac12 \begin{pmatrix} 1 & 1\\ 1 & -1 \end{pmatrix} \begin{pmatrix} 1 & 0\\ 0 & i \end{pmatrix} \begin{pmatrix} 1 & 1\\ 1 & -1 \end{pmatrix}\]を計算すると、
\[HP(\pi/2)H = \frac12 \begin{pmatrix} 1+i & 1-i\\ 1-i & 1+i \end{pmatrix}\]です。
[2] 上 2 量子ビットでの行列にする
\[HP(\pi/2)H \otimes I = \frac12 \begin{pmatrix} 1+i & 0 & 1-i & 0\\ 0 & 1+i & 0 & 1-i\\ 1-i & 0 & 1+i & 0\\ 0 & 1-i & 0 & 1+i \end{pmatrix}\]また、
\[\mathrm{CNOT}_{0\to1} = \begin{pmatrix} 1&0&0&0\\ 0&1&0&0\\ 0&0&0&1\\ 0&0&1&0 \end{pmatrix}, \qquad X\otimes I = \begin{pmatrix} 0&0&1&0\\ 0&0&0&1\\ 1&0&0&0\\ 0&1&0&0 \end{pmatrix}\]です。
初期状態は
\[|00\rangle= \begin{pmatrix} 1\\ 0\\ 0\\ 0 \end{pmatrix}\]です。
[3] 実際に順に掛ける
(a) $HP(\pi/2)H \otimes I$ を作用
\[\frac12 \begin{pmatrix} 1+i & 0 & 1-i & 0\\ 0 & 1+i & 0 & 1-i\\ 1-i & 0 & 1+i & 0\\ 0 & 1-i & 0 & 1+i \end{pmatrix} \begin{pmatrix} 1\\ 0\\ 0\\ 0 \end{pmatrix} = \frac12 \begin{pmatrix} 1+i\\ 0\\ 1-i\\ 0 \end{pmatrix}\]つまり
\[\frac12\bigl((1+i)|00\rangle + (1-i)|10\rangle\bigr)\]です。
(b) つぎに CNOT
\[\begin{pmatrix} 1&0&0&0\\ 0&1&0&0\\ 0&0&0&1\\ 0&0&1&0 \end{pmatrix} \frac12 \begin{pmatrix} 1+i\\ 0\\ 1-i\\ 0 \end{pmatrix} = \frac12 \begin{pmatrix} 1+i\\ 0\\ 0\\ 1-i \end{pmatrix}\]つまり
\[\frac12\bigl((1+i)|00\rangle + (1-i)|11\rangle\bigr)\]です。
(c) 最後に $X\otimes I$
\[\begin{pmatrix} 0&0&1&0\\ 0&0&0&1\\ 1&0&0&0\\ 0&1&0&0 \end{pmatrix} \frac12 \begin{pmatrix} 1+i\\ 0\\ 0\\ 1-i \end{pmatrix} = \frac12 \begin{pmatrix} 0\\ 1-i\\ 1+i\\ 0 \end{pmatrix}\]したがって
\[|\psi_{\mathrm{out}}\rangle = \frac12\bigl((1-i)|01\rangle + (1+i)|10\rangle\bigr)\]です。
[4] 3量子ビットに戻す
3 本目の量子ビット $q_2$ はずっと $\lvert 0\rangle$ のままなので、
\[|\psi_{\mathrm{out}}^{(3)}\rangle = \frac12\bigl((1-i)|010\rangle + (1+i)|100\rangle\bigr)\]です。
[5] 8次元ベクトルで書くと
基底順
\[|000\rangle,|001\rangle,|010\rangle,|011\rangle,|100\rangle,|101\rangle,|110\rangle,|111\rangle\]に従えば、
\[|000\rangle = \begin{pmatrix} 1\\ 0\\ 0\\ 0\\ 0\\ 0\\ 0\\ 0 \end{pmatrix} \quad\longmapsto\quad \begin{pmatrix} 0\\ 0\\ (1-i)/2\\ 0\\ (1+i)/2\\ 0\\ 0\\ 0 \end{pmatrix}\]です。
このベクトルは
- $\lvert 010\rangle$ の振幅が $(1-i)/2$
- $\lvert 100\rangle$ の振幅が $(1+i)/2$
で、それ以外は 0 です。
したがって測定確率は
\[P(010)=\frac12,\qquad P(100)=\frac12\]となります。
Qniでシミュレーション
こちらの記事[4]を拝見して、量子コンピューターディスコの背景には、ブラウザ上で量子回路のシミュレーションができるWebサービス「Qni」の存在があると知りました。[7][8]
そこで、先ほどの回路の例を Qni でシミュレーションしてみました。

実際、このページを繰り返しリロードすると、その確率に応じて最後の測定の値が変わることが確認できます。 (また、Qniでは、量子ビットの状態をブロッホ球の形で可視化できます! 凄い! )
今後の展望
こちらのレポート記事 [5] には、
ゲートは12種類合計60個あります。
と書かれており、
また、こちらの記事 [6] の写真からは、MS(Mølmer-Sørensen)ゲートらしき存在も確認できます。 (3量子ビットにまたがるORAは何を表しているのでしょうか…?)
つまり、基本的な量子論理ゲートだけではなく、他にもいろいろな種類のゲートがあるようです。
今度現地に行った際に種類を確認して、またブログで紹介しようと思います。
参考文献
-
日本科学未来館「量子コンピュータ・ディスコ」
https://www.miraikan.jst.go.jp/exhibitions/future/qcdisco/ ↩ -
WIRED「テーマは『宇宙』と『量子コンピューター』:日本科学未来館でスタートした2つの新展示」
https://wired.jp/article/quantum-computer-disco-the-universe-unread-messages/ ↩ -
量子コンピュータがわかるショートムービー PART4「量子コンピュータでどうやって計算するの?」
https://www.youtube.com/watch?v=6dMWkMNlawM ↩ -
TIS INTEC Group MAGAZINE「『次世代につながる、量子コンピュータとの出会い』を叶える。」
https://www.tis.co.jp/group_magazine/interview/07/ ↩ -
Kids Event Report「日本科学未来館で『量子コンピュータ』『宇宙研究の最前線』を体験!」
https://www.kids-event.jp/report/12617/ ↩ -
Impress Watch「お台場の未来館で『量子コンピュータ』を体験した 宇宙観測の最前線も」
https://www.watch.impress.co.jp/docs/news/2009478.html ↩ -
Qni Tutorial
https://qniapp.github.io/qni/ ↩ -
Qni 初期回路URL(空の回路)
https://qniapp.net/%7B%22cols%22%3A%5B%5D%7D ↩
Comments