量子コンピュータについて

# そもそも「量子」とはなにか
量子計算では「量子」をその計算の基本単位に用いる．
エネルギー単位の「光子」，「電子」などの，一番小さくなった単位量のことを「量子」と呼ぶ． 
量子は「粒子」と「波」の性質をあわせ持つ．
「光子」，「電子」の他に，例えば，「素粒子」，「水素原子」も「量子」．

# 量子ビット(qubit)
量子ビット(qubit)は $0$ と $1$ の「重ね合わせ状態」をとることができる．
この状態は，単に $0$ または $1$ を確率的にとっている状態ではなく，その間にある確定した位相関係があるという不思議な状態．
2つの状態を同時にとっている状態とも言える．    

量子コンピュータのアルゴリズム(量子アルゴリズム)では，重ね合わせ状態にある膨大な計算結果から **「特徴をうまく抽出する」** 処理により，目的の計算結果を高速に得ている．
これが量子コンピュータによる高速計算の秘密．

量子ビットの状態を知るには、

- $[0]$ である確率や $[1]$ である確率に関する情報
* 「位相」の情報  

が必要．

量子ビット $\lvert  a \rangle$ が状態 $\lvert  0 \rangle$ にある場合，
$$\lvert  a \rangle = \lvert  0 \rangle$$

量子ビット $\lvert  a \rangle$ が状態 $\lvert  1 \rangle$ にある場合，  
$$\lvert  a \rangle = \lvert  1 \rangle$$

$\lvert  \rangle$ は「ケット」とよばれ，量子力学的な状態であることを表す記号．  

# 量子ビットの数式による表記方法
この節は[『量子コンピュータ―超並列計算のからくり』](http://amzn.to/2BWMWX3)pp.105-109 の内容です．
図を描いて説明することが出来なかったので，量子ビットの表記方法の雰囲気を掴む程度になってしまうが，ご了承頂きたい．

図4-17のような，重ね合わせ状態にある量子ビットは2つの状態を区別して表す必要がある．  
図4-17(a) の状態は，  
$$\lvert  a \rangle = \dfrac {1}{\sqrt {2}}\lvert  0\rangle + \dfrac {1}{\sqrt {2}}\lvert  1\rangle \tag{1}$$

係数 $\dfrac {1}{\sqrt {2}}$ が $\lvert  0\rangle$ と $\lvert  1\rangle$ の重みであり，
この係数を $2$ 乗したもの(この場合は $\left( \dfrac {1}{\sqrt {2}}\right)^{2}=\dfrac {1}{2}$)が，量子ビット $\lvert  a \rangle$ を観測した際に，$\lvert  0\rangle$ あるいは $\lvert  1\rangle$ の状態で検出される確率を表している．

では，量子ビットを3次元で図示した場合に経度として表されていた「位相」は，どのように表されるのか

図4-17(b) の状態は，  
$$\lvert  a \rangle = \dfrac {1}{\sqrt {2}}\lvert  0\rangle + (-1)\dfrac {1}{\sqrt {2}}\lvert  1\rangle \tag{2}$$


状態 $\lvert  1 \rangle$ の係数に，負の符号を持つ $-1$ がかかっている．  
先ほどの $(1)$ 式においても，状態 $\lvert  1 \rangle$ の係数に正の符号を持つ $+1$ がかかっていたのが，省略されていたと考えればよい．  

$$\lvert  a \rangle = \dfrac {1}{\sqrt {2}}\lvert  0\rangle + (+1)\dfrac {1}{\sqrt {2}}\lvert  1\rangle \tag{1'}$$

このように，位相の違いは $\lvert  1 \rangle$ にかかる正負の符号として取り込むことができる．

また，$(2)$ 式の状態は略して
$$\lvert  a \rangle = \dfrac {1}{\sqrt {2}}\lvert  0\rangle -\dfrac {1}{\sqrt {2}}\lvert  1\rangle \tag{3}$$
とも表される．


波長の1/4，3/4 だけ異なる場合は，$\lvert  1 \rangle$ に大きさが $1$ の複素数を係数にかけて表すことができる．
具体的には，虚数単位を $i$ として，  
波長の 1/4 だけ異なる場合には $i$ が，  
波長の 3/4 だけ異なる場合には $-i$ がかかる．

一般の位相差に対しては，$\alpha$ を位相差として，$\exp \left( i\alpha \right)$ を「符号」として係数にかけることで，どのような量子ビットの位相の状態も表すことができる．

また，ある2つの量子ビットを比べた時，それぞれの $\lvert  0 \rangle$ 状態と $\lvert  1 \rangle$ 状態にかかっている係数と，それらの状態の間の「位相差」が同じであれば，2つの量子ビットは「同じ状態」を表していると考える．

$$\lvert  a \rangle = - \dfrac {1}{\sqrt {2}}\lvert  0\rangle +\dfrac {1}{\sqrt {2}}\lvert  1\rangle \tag{4}$$

という状態は，

$$\lvert  a \rangle = - \left(\dfrac {1}{\sqrt {2}}\lvert  0\rangle -\dfrac {1}{\sqrt {2}}\lvert  1\rangle \tag{5}\right)$$

と書き直せる．この式は，(3) 式の状態全体にマイナスがかかっているだけ．つまり，状態 $\lvert  0 \rangle$ ，および $\lvert  1 \rangle$ にかかっている係数も，またそれらの位相差も(3)式とまったく同じなので，(5)式と(3)式は同じ状態を表している．

# 量子コンピュータの構成
量子コンピューターの場合，量子ビットによって構成された量子メモリ，量子レジスタが使われる．

# 量子ゲートと量子論理回路
量子論理回路では，量子ビットに対して量子ゲート[量子ビットを入出力に持つゲート]を作用させることで演算を行う．  

量子ゲートとして重要なものが2つある． 


1. 回転ゲート  
1. 制御ノットゲート  

この2つは，量子回路における万能ゲートの組になっている．

## 回転ゲート
1つの量子ビットに対してだけ作用するゲートで，3次元で表された量子ビットを，ある与えられた角度だけ回転させる働きをする．
回転ゲートは古典回路のノットゲートが量子ビット用に拡張されたような意味を持つ．
2度，90度回転ゲートを施すとノットゲートと同じような作用になる．
回転ゲートの一種に，**アダマールゲート** がある．
このゲートを状態 $\lvert  0 \rangle$ に作用させると，重ね合わせ状態に，再び作用させると元の状態 $\lvert  0 \rangle$ に戻る．

## 制御ノットゲート
制御ノットゲートは，重ね合わせ状態にある2つの量子ビットを，別の重ね合わせ状態にある量子ビットへと変換することができる．
「2つの量子ビットの状態を切り離して考えることはできない」という，量子もつれ合い状態を作るために必要な素子

# 量子コンピュータのアルゴリズム
1992年にドイチュ，ジョサ**「ドイチュ-ジョサのアルゴリズム」**により，量子コンピュータは通常のコンピュータより「高速に問題が解ける」ことが示されたが，有用性は明らかではなかった．
その有用性を明らかにしたのが，ショアによる**「因数分解アルゴリズム」**
もう一つ，重要なアルゴリズムとして，グローバー**「データベース検索量子アルゴリズム」** がある．

# 実現に向けた挑戦
量子コンピューターの動く理屈を要約すれば
**「0と1の重ねあわせ状態をとりうる『量子ビット』に対して、決められた手順(量子回路)にしたがって、回転ゲートや制御ノットゲートなどの量子ゲートを作用させる」** 
というもの
## 重ね合わせ状態をとることのできる量子ビットの候補

* 原子核，電子のスピン
* 光子の偏光
* 光子の経路
* 電荷量
* 磁束

など，多数考えられる．

ちなみに，(古典)ビットは

* 電圧
* 電波の位相
* 光パルス
* 磁気

などで実現されていますね．

## 量子コンピュータ実現の必要条件(ディベンチェンツォが提唱している基準を参考)

1. 量子ビットを初期化できること  
2. 量子ビットの状態を読み出せること  
3. 基本ゲート(例えば、回転系と特性がノットゲート)を構成できること
4. 動作回数が、量子ビットの数が増えた場合に急速に増大しないような物理システム(スケールなシステム)であること
5.  重ねあわせ状態が壊れるまでの時間(緩和時間)がひとつの動作をする必要な時間に比べて十分に長いこと。

***

* 参考文献   
竹内 繁樹　[『量子コンピュータ―超並列計算のからくり』](http://amzn.to/2BWMWX3)　講談社<新書>，2005年.

***
# 量子コンピュータの色々な方法
* 核磁気共鳴(NMR / Nuclear Magnetic Resonance)
強磁場の中で原子を磁石として共鳴させる方法

* イオン・トラップ
電磁波やレーザーで荷電粒子(イオン)を閉じ込める方法

* 光子
光学回路で論理演算する方法

* 量子ドット
電子を閉じ込める方法

* 超伝導
ジョセフソン素子を使った方法

# D-waveの特徴
量子として磁束(磁石のエネルギー量子とイメージすればいい)を使っている
砂鉄を並べるエネルギーの量子，それが磁束量子
磁束量子そのものを操作するというよりは，磁束量子を発生させるコイルを操作するイメージに近い
円形にした電線に電流を流し，円の中心で磁界が増幅される，これのとても小さいものを作り，そこに超伝導を加える．
ごく小さな超伝導物質の輪を作り，そこにいったん電流を流すと，輪の中心に，目に見えない磁束が，ずっと鎮座している．これを量子として利用する．

D-waveの中は，地磁気を5万分の1までシャットアウトしているそう．
従来型の量子コンピュータ研究でデバイスに使おうとしていた，分子や電子，光子は，大掛かりな装置を使った難しい制御が必要だが，磁束は回路の電流の向きで制御できる．
イジング・モデルを使って，分子内部の各原子の歪みや関係性などをパラメーターに表現した計算法のバリエーションが量子アニーリング法
2次元イジングモデルと全く同じ状況をD-waveでは再現
チップの上に格子状に超伝導の輪を並べ，各格子間の相互作用の強さを設定
つまり各格子に磁束量子が上向きか下向きで並んでいる
そこに，横から強い磁場をかけることで，量子を真横に寝かせる
これが量子の重ね合わせを表現することになる．
焼きなましで言うところの熱を加えた状態．
そこから少しずつ横向き磁場を減らしていくと，最も最適なエネルギーに向かって，各格子の磁束量子が上に向いたり下に向いたりする．
どっちに向くのかは，それぞれの相互作用の強さによって決まる．

D-Waveは，最適化問題を計算する事に特化した，究極のアナログコンピューターとも言える．
最小作用の法則に則った方式であれば，どんな物理現象も計算に応用可能でしかも早い

量子コンピュータの計算の速さの根原は，量子の重ね合わせであることは間違いない
しかし，最適化問題を解く量子アニーリング方式は特に多くのエネルギー量子が最適化することを利用したアナログコンピュータだから早いと言える．
自動操縦，経路探索にデータ検索，スケジュール管理といったソフト面から，機械や回路の設計などにも最適化問題の応用範囲は広い．
googleが狙っている顔認識のような機械学習や，人工知能研究にも応用は広がるはず．
***

* 参考文献  
竹内 薫　[『量子コンピューターが本当にすごい』](http://amzn.to/2DtywvQ)　PHP研究所<新書>，2015年.  

***

### 参考図書  
  
* ジョージ・ジョンソン　[『量子コンピュータとは何か』](http://amzn.to/2BjE2PX)　水谷 淳訳，早川書房<文庫>，2009年.
* 古澤 明　[『量子もつれとは何か』](http://amzn.to/2pcc6vI)　講談社<新書>， 2011年．
* 西野 哲朗　[『量子コンピュータ図解雑学』](http://amzn.to/2Bk0BnO)　ナツメ社，2007年.
* 西森 秀稔，‎ 大関 真之　[『量子コンピュータが人工知能を加速する』](http://amzn.to/2CV17c5)　日経BP社，2016年.
* [2018年2月号の日経サイエンス](http://amzn.to/2kCCLNG)に「日本版「量子」コンピューターの選択」という記事が掲載されるようです．  

### 昨年までに書いた数学 Advent Calendar の記事  

* [数学 Advent Calendar 2015 1日目: 数学ド素人が独学する際のノウハウ](http://hidenori-t.hatenablog.jp/entry/2015/12/01/174732)
* [数学 Advent Calendar 2016 24日目: 手書きで数式を書きつつストレス無くノートをデジタル化する方法](https://qiita.com/hidenori-t/items/d41179d9189f0b7fe967)