こんにちは! OthloTechのオザキです。
OthloTechとは名古屋を中心に活動するIT系学生のコミュニティーです。
今回は量子コンピュータの入門みたいな話をします。数式もプログラムも出しません。
# この記事の対象者
- 量子コンピュータに興味があるけど知識0
- 数式が苦手
- プログラミングをやったことない人
# はじめに
量子コンピュータの勉強を始めて3週間の者が書きます。間違いや解釈が違う部分があるかもしれません。間違いや質問があればぜひとも教えて下さい!
現在のコンピュータを古典コンピュータ、量子力学を使うコンピュータを量子コンピュータとします。
# なぜ量子コンピュータが話題なのか
- ある分野においては、古典コンピュータと比べ物にならない早さの処理速度を実現できるからです。ビックデータと言われるように、刻一刻と情報量は増えていっています。それに対応するため、高速処理できるコンピュータを作ろうとしています。
- 集積回路に限界があるからです。ムーアの法則1によると、2020年頃に1bitの情報記憶素子は原子の大きさになると言われています。すると量子効果を無視できなくなります。
- 量子コンピュータは1980年代に活発に研究されていましたが、実現があと50年は難しいと一度熱が冷めていました。しかし、2011年にカナダのD-Wave社が、少し方向性の変えた(量子アニーリングという)商業用の量子コンピュータを公開しました。これをきっかけに、NASAとGoogleが共同で購入し、現在も量子コンピュータを使って人工知能を研究しています。このように、世界中で量子コンピュータの活気が復活したのではないかと思います。
# 量子コンピュータができること
1. 素因数分解を用いたRSA暗号が破られる?
これは、”理論的には”事実です。Shorのアルゴリズムという方法で古典コンピュータと比べ物にならない速度で素因数分解ができてしまいます。しかし、実際はShorのアルゴリズムを実行する環境がまだまだ実現できないだろうとされています。
2. 盗聴や盗み見ることができない完全な暗号通信ができる?
これは、”理論的には”事実です。ある物理現象(量子テレポーテーション)を利用して実現できます。
3. 組み合わせ最適化問題が早く解ける?
これは、すでに実現されています。巡回セールスマン問題などを古典コンピュータより早く解くことができます。
# キーワード
難しい単語がいくつか出てきます。本気で理解しようと思ったら、量子力学や統計力学、線形代数など物理の勉強が必要です。よって、分からなければ読み飛ばしても大丈夫です。知りたくなったら戻ってきたり、調べたりしましょう。
## 量子コンピュータとは
現在のコンピュータが進化した先が量子コンピュータではありません。
ざっくり言うと、量子コンピュータとは動作原理(ハード)的な部分で量子力学を使ったコンピュータと考えられます。(定義の問題は量子コンピュータ業界でも揺れている部分である。)
半導体もどちらかといえば量子力学的だが、動作原理の概念は古典コンピュータだから、現状では半導体が使われたコンピュータのことを量子コンピュータとは言わないです。
## 量子力学とは
原子や分子など、小さなものを扱う学問。
### 量子力学の特徴
少し直感とは異なる現象を示すため、理解しにくいです。しかし論理的に立てた量子力学の数式が実際の現象と異なったことはなく、自然がそうなっているんだと受け入れるしかないと思います。
#### 粒子と波動の二重性
物質は小さくなると、ある時は粒子のように振る舞い、ある時は波のように振る舞うという2つの性質を併せ持つ状態(量子)になります。オススメはヤングの2重スリット実験2が理解しやすいと思います。
#### 不確定性原理
位置と運動量を同時に知ることができないという原理です。
オススメはシュテルンゲルラッハ実験で3回装置を通す手法のものが、同時に知ることができないという現象を理解しやすいと思います。
#### 重ね合わせ
量子的な粒子は、様々な状態を確率的に持っている。
例えば古典では0と1のどちらか片方の状態しか持っていなかった(電流が流れているかいないか)が、量子的な粒子では観測するまで、0が50%と1が50%、というように2つの状態を重ね合わせるように持つことができる。
#### トンネル効果
量子的な粒子が壁などの隔たりを通り抜けることです。例えば、人間が量子効果が起きるサイズまで小さくなれたとします。小さい人間が壁に突撃していると、何回かに1回の確率で幽霊のように通り抜けることができるのです。日頃の直感では何度も壁に突撃しても通り抜けることはできないので、直感とは異なる量子特有の性質だと理解してください。
#### 量子もつれ
別名は、量子絡み合い、量子エンタングルメントといいます。2つの量子的な粒子があるとします。この2つの量子的な粒子を太陽と地球ぐらい離します。ここで片方の粒子にさまざまな測定をしても、もう片方の粒子には何の変化も起きず、相互に関係は生まれません。しかし、量子エンタングルメントした2つの量子的な粒子の場合、片方の粒子に行った観測が、もう片方の粒子に影響を与えるのです。しかも瞬間かつ、どれだけ離れていても影響します。この現象を上手に利用したのが量子テレポーテーションです。片方の影響が、どれだけ離れていても瞬間で伝わる。つまり、通信を一瞬で行うことができるのです。これを暗号通信に生かそうという分野もあります。
## 量子ビットとは
古典のbitに対応して、量子のbitを量子ビット(qubit)といいます。重ね合わせより、1qubitで2つの状態、2qubitで4つの状態、3qubitで8つの状態と、保有できる状態の数が指数関数的に増えていきます。これが計算処理を高速にできる理由です。同時に複数の状態を保有し処理できるので、古典コンピュータが8回計算しなければならないところを、量子コンピュータは3qubitの1回の処理で計算を終えることができるのです。
## シミュレーテッド・アニーリングとは
シミュレーテッド・アニーリングは、古典コンピュータでも使われる規模の大きい最適化問題への汎用の乱択アルゴリズムです。別名は、焼きなまし法、擬似アニーリング法です。語源は、金属材料を熱したあと徐々に冷やし、材料の内部の結晶構造を整えて製品にする作業のことです。シミュレーテッド・アニーリングも同様に、内部の1つ1つのデータをそれぞれ整え、規模の大きい全体として一つの解を導出します。
## 量子デコヒーレンスとは
量子的な粒子が外部環境と相互作用して、量子効果を失う現象のことです。量子的な粒子はとても小さく、また外部の熱や時間経過などによってqubitが変わったりしてしまいます。量子デコヒーレンスが原因で量子ゲート型が思うように進歩しないと考えられます。
デコヒーレントもよく使われますが、デコヒーレントは形容詞、デコヒーレンスは名詞で同じ意味です。コヒーレントという単語も存在しますが、コヒーレントは波の干渉しやすさを表します。
# 量子コンピュータの分類
## 量子ゲート型
理論的には汎用的な量子コンピュータです。素因数分解を高速処理できるタイプです。しかし、qubitを安定して制御するのが大変なため、試験的な規模のものしか開発されていません。演算を離散的に、1つずつ行うため、量子デコヒーレンスになってしまうのです。2000bit程度のRSA暗号を破るには誤り訂正符号などを含め1億qubit程度の量子コンピュータが必要とされており、実質的に実現不可能という論文が発表されています。記憶頼りですが、現在は50qubitぐらいで小さな分子のシミュレーションに利用しているそうです。
## イジングモデル
組み合わせ最適化問題を解くことに特化した量子コンピュータの集合です。イジングモデルとは、ある物質は近くの物質だけと相互作用して、結果的に全体を見ると最適解になっているという感じです。例えるなら、自分は隣の人としか手を繋げないけれど、隣の人がその隣の人と手を繋いで、連鎖して、結果的に自分は遠い人とも繋がっている、という感じだと思います。
組み合わせ最適化問題の例に巡回セールスマン問題というのがあります。顧客数が3なら道順は6パターン、顧客数が10なら道順は362万8800パターン、顧客数が30なら道順は兆より12桁も大きいパターンになります。顧客数が30なら日本のスーパーコンピュータ「京」を使っても8.4億年かかると言われています。しかし、量子コンピュータならそれほど時間がかからず解くことができます。
イジングモデルの量子コンピュータでは正解ではないが正解に近い最適解を導くことができるのです。有用な解を出力する、つまり有用な情報を見つけることができるため、医薬品や金融、化学の分野で、病気に効く最適な薬や金融で最適な運用法を見つけたりすることができます。
### 量子アニーリング型
D-Wave社が開発した量子コンピュータです。現在、一番開発が進んでいる量子コンピュータのタイプです。量子アニーリングは全体が最も安定な状態になるよう設計されているため、量子デコヒーレンスの影響を受けにくいです。そのため、量子ゲート型に比べて安定した動作を実現できます。量子アニーリングの基本原理を開発したのは東京工業大学の西森秀稔教授と大学院生の門脇正さんです。シミュレーテッド・アニーリングの量子バージョンです。シミュレーテッド・アニーリングでは熱を加えて一時的に山(エネルギーの壁)を越えていましたが、量子アニーリングではトンネル効果を使って山(エネルギーの壁)を通り抜けます。よって、古典コンピュータよりも早く最も谷(安定な状態)の最適解にたどり着けるのです。
### 量子ニューラルネットワーク型?
別名コヒーレントイジングマシンといいます。NTTが国産の"量子コンピュータ"を開発したと発表した型です。しかし、量子コンピュータ業界では、「これは量子コンピュータではない」という見解が一般的です。(その意味で名前にハテナを付けています。) 私が受けた印象は、量子ニューラルネットワーク型(QNN)は光を使っているのは事実ですが、光の量子的効果を使っているわけではなく、光の波としての性質を利用し、波の重ね合わせをしているだけのようでした。しかし、世界的に見ても組み合わせ問題を解く速度は非常に早く、インターネットから利用することができるため、積極的に活用していきたいです。
量子ゲート型 | 量子アニーリング型 | |
---|---|---|
メリット | 誤り訂正方式が確立 高速化が保証されているアルゴリズムある | 最適化問題やサンプリングを目的 実社会での応用範囲が広い ノイズに比較的強い |
デメリット | ハードがノイズに弱い 誤り訂正によりノイズの影響を除去できることが保証されている 実装にはきわめて多くの量子ビットを必要 理論的には汎用であっても実質的には専用機 | 高速化が理論的に保証されている実用的な問題が見つかってない 高速に解けるかどうかはやってみないとわからない 誤り訂正方式が未確立 |
現状 | 約20量子ビット(超伝導,イオン,フォトン,量子ドットなど) | 約2000量子ビット(超伝導) |
# さいごに
ここまで読んでいただきありがとうございました。読んだ後に何をしたらいいか、少し提案しようと思います。
**読んで量子コンピュータに興味を持った人!**まだはっきりと分からない単語を調べてはいかがでしょうか。自分は『今度こそわかる量子コンピュータ』をオススメします。適度な数式で分かりやすく解説してくれています。また、量子情報の可逆性など分野を覗いてみてはいかがでしょうか。
**理解を深めるために量子力学を勉強しようと思った人!**物理を勉強したい人にオススメなサイトはEMANの物理学です。物理の専門書を漁る前にネットで物理の世界観に目を通すだけでもいいと思います。物理で有名な本は猪木慶治・川合光の『量子力学1』です。少し難しいですが、ディラックの『量子力学』を読むより分かりやすいと思います。
**量子コンピュータを具体的にPythonでシミュレーションしてみようと思った人!**ぜひともシミュレーションしてみてください。参考文献に挙げた以外にもネットにたくさんの記事があります。
量子コンピュータはこれからどんどん発展していき、社会に必要とされる分野だと思います。私もまだまだ分からない部分が多いので、ぜひこれから一緒に勉強していきましょう!
# 参考文献
画像はすべて2017/03/25発行 Newton 2017年5月号:新型の量子コンピューターから引用しました。
閲覧日2017/12/19 Wikipedia 量子コンピュータ
閲覧日2017/12/19 Wikipedia 量子力学
2009/05/30 初版 量子計算と量子情報の原理
閲覧日2017/12/19 Wikipedia D-Wave社
閲覧日2017/12/19 Qiita 「量子コンピュータが人工知能を加速する」を読んで、数式を使わずにPythonでその概要を説明してみた
閲覧日2017/12/19 Qiita 【初心者向け】量子ゲート方式と量子イジングモデル方式の違い
2017/03/25発行 Newton 2017年5月号:新型の量子コンピューター
閲覧日2017/12/19 Wikipedia 粒子と波動の二重性
閲覧日2017/12/19 Wikipedia 量子テレポーテーション
閲覧日2017/12/19 Wikipedia シミュレーテッド・アニーリング
閲覧日2017/12/19 Wikipedia 量子デコヒーレンス
閲覧日2017/12/19 西森研究室 量子アニーリング by 西森 秀稔
閲覧日2017/12/19 Wikipedia イジング模型