量子コンピュータとは何か - 初学者向けまとめ -
量子コンピュータについて学んでみたいけど、何から始めていいのかわからないという方向けに情報をまとめてみました。 全体的に広く浅く、という感じで書いてるのであしからず。
量子コンピュータとは
量子力学の性質を利用して作られたコンピュータのこと。 普通の古典コンピュータでは0と1の二つの値をとる古典ビットによって情報伝達と演算を行うが、 量子コンピュータでは量子ビットを使うことで、これら二つの状態の重ね合わせを表現することができる(量子ビットについては後述)。 これによって並列計算が得意なコンピュータを構成でき、場合によっては古典コンピュータよりも早く問題を解くことができると期待されている。
量子コンピュータ開発の意義
- 社会、経済的な意義
- 科学技術的な意義
現在のIT技術は半導体技術によって支えられている。 パソコンのCPUに使われている半導体の進歩は ムーアの法則(半導体における部品の集積率がおよそ2年間で2倍になるという経験則のこと。半導体の集積率はその性能に直結するので、性能も2倍になってきたと読み替えられることが多い) に従って急速に発展してきたが、近年ではその限界が見え始めている。
これは半導体チップに含まれる部品の高集積化・微細化の限界が原因である。 半導体は高集積化すればするほど性能が上がってきたが、部品自体はもちろん原子でできているのでそれ以上小さくすることはできないからである。 また、それほどまでにミクロな領域に入ってくると、電気抵抗によって発生する熱揺らぎによるノイズや、量子効果が無視できなくなってくる。 よって、今までのような性能アップが難しいとされている。
しかしながら一方で、ビッグデータを用いたデータサイエンスやAIを用いた問題解決が期待されており、 それらを実現するには今までよりもさらに高性能なコンピュータの開発が望まれているのが現状である。 このようなニーズにこたえるために、CPUを補う形で高速な並列演算を行うGPUの開発などが盛んにおこなわれている。
量子コンピュータもこのような新しい技術的な可能性の一つである。 量子状態を正確に扱う技術が成熟すれば、先述したCPUの技術的な問題をクリアでき、さらなる技術発展が見込まれる。 それによって、これまで未解決であった社会問題を解決できる可能性が出てくる。 例えば、創薬への応用、量子機械学習の開発、暗号技術の発展、といったことが期待される。
科学的な意義としては、組み合わせ最適化問題への適用による新物質の発見や計算技術向上による理論シミュレーションの発展などが見込まれる。
また、量子コンピュータ上で量子情報を制御できるということは、それ自体が興味深いものでもあり、量子情報理論の発展に大きな影響を与える。 これらの効果から波及して、科学技術全体に大きな効果があると期待されている。
量子コンピュータの原理
量子ビット
量子状態を使って情報の1ビットを表したもの。 古典ビットの時のように0または1で表現されることが多く、ある量子系の2つの状態をそれぞれのビット状態に対応させて表現される。 超伝導方式などが有名であるが、そのほかにも様々な実現方式が研究されている。
実現方式
- 超伝導
- シリコン(半導体)
- 光
- イオントラップ
- 冷却原子系
超伝導状態にある電極同士をジョセフソン接合し、その電極内の電子状態を量子ビットとして扱う。
半導体中の電子を量子ビットとして扱う。
光子1つを1つの量子ビットとして扱う。
磁気光学トラップによって補足された1つのイオンを一つの量子ビットとして扱う。 少数量子ビットの扱いに向いている。イオンの制御性が良いので結果的に量子ビットを高い精度で制御できる。 しかし一度に多くのイオンをトラップすることが難しいので、ビット数を増やすことが難しい。
レーザー冷却された原子1個を光ピンセットと呼ばれる光学技術で捕捉し一つの量子ビットとして扱う。
量子コンピュータの性質・特徴
- 量子ビットの重ね合わせ状態
- 量子状態の観測
- 量子エンタングルメント(量子もつれ)
- 量子テレポーテーション
重ね合わせ状態とは複数の状態が足しあわされた状態のこと。 量子力学で扱う電子や原子は単なる粒子の性質だけでなく波の性質も持つことが知られていて、重ね合わせはその効果の一つである。 量子ビットは量子状態で表現されるので、重ね合わせ状態を作ることができる。 例えば、0状態と1状態の重ね合わせを考えることができる。 これにより、古典コンピュータでは実現できない並列計算が可能となる。
重ね合わせ状態になっている量子状態を観測した場合、重ね合わさっている状態のうちどれかが確率的に実現される。 量子ビットを用いて演算を行う場合、演算の途中では重ね合わせ状態になっているが、 最終的に情報を取り出すときには観測して状態を一つに決める必要がある。
2つの量子系からなる複合系の状態で、部分系の量子状態の直積で表せないものを量子エンタングルメント状態という。 この状態は各量子系が互いに独立ではなく、何らかの相関を持っていることを表している。
ある量子ビットの状態を別の量子ビットに移す操作のこと。 量子もつれ状態にある2つの量子ビットの間で情報を送信することができる。
量子コンピュータのアルゴリズム
- 量子ゲート方式
- 量子アニーリング方式
従来の古典コンピュータを単純に量子版に拡張したもの。 古典コンピュータがビットに対してANDやOR、NOTなどの演算ゲートを用いて情報を処理していたように、量子ビットに対してアダマールゲートなどの演算ゲートを用意して情報処理をさせる方式のこと。
一般的なコンピュータのように様々な問題に対応できる可能性があるので、この方式を採用した量子コンピュータを汎用量子コンピュータと呼ぶこともある。 ただし、従来のコンピュータに対して優位性を示すには現状の量子ビットの数では不十分であることが多く、扱える量子ビットの数を増やす必要がある。 量子ビットの数を増やすには量子ビットの実現方式や制御方法に工夫が必要であるが、まだまだ研究段階で実用化には程遠いということが知られている。
組み合わせ最適化問題という特定の問題をうまく解くように設計されたアルゴリズムを実装する方式。 組み合わせ最適化問題とは、複数の離散変数を持つ一価関数を最大化または最小化する問題である。 単純な物理系の例を挙げると、磁性スピンの多体系を扱うIsingモデルのエネルギー最小化問題が有名である。
この場合、変数はあるスピンのアップまたダウン状態に対応する。 このような最適化問題では変数同士が相互作用しており、システム全体を操作することになるので、量子ビットを一つずつ扱う量子ゲート方式と比べると揺らぎの扱いが異なる。
それによって揺らぎの影響を受けにくくなるので、量子ゲート方式と比べると動作の安定性が保証されているという利点がある。 これによって量子ビットを増やしやすく、より実用化に近いと考えられている。実機も開発されて販売も行われている。
実際には、低温でそれぞれのスピンについてアップ状態とダウン状態の重ね合わせ状態を用意し、温度を上げて量子状態を熱揺らぎによって壊しながら、同時に外部磁場をかけてスピン方向にバイアスを作り、全体系の基底状態を実現させる。 また、量子アニーリング方式にある種の拡張を行うと、量子ゲート方式と同様の計算をさせることができることも知られている。
量子コンピュータの抱える問題
近年の発展が目覚ましい量子コンピュータだが、以下にあげるような問題がある。
- 拡張可能性
- 初期化能力
- コヒーレント時間(安定性)
- 計算万能性
- 量子ビットの測定能力
計算能力を向上させていくために、量子ビットの数を好きなように増やせる必要がある。
計算をできるだけシンプルにするために、量子ビットを初期化できる必要がある。
量子ビットに情報を保持できる必要がある。 少なくとも演算を行っている間は情報を維持できなければ、意味のある処理ができない。 これは量子ビットの誤り耐性という問題と関係が深いらしい。
古典コンピュータのようにどんな問題にも対応できるコンピュータが必要である。 量子ゲート方式がこの候補である。
量子ビットを観測することによって、正確に情報を得ることができる必要がある。 古典コンピュータと違って、量子コンピュータの場合では演算を行った量子ビットに対して最後に観測を行って情報を取り出すので ここでも情報が壊れずに観測者に届かないといけない。
これらはDi Vincenzoによる量子コンピュータが最低限満たすべき要請である。 特に量子ビットの拡張性や誤り耐性については、まだまだ発展途上らしいので今後の研究開発に期待したい。
量子コンピュータの適用例
量子コンピュータ自体が発展途上なので、これからどんどん増えていくと思う。 ひとまず箇条書きにしてみた。 詳細は別の機会にそれぞれまとめてみたい。
- 量子暗号
- 量子インターネット
- 量子検索
- 最適化問題
- 量子機械学習
量子もつれを使った暗号技術
量子状態を保持する通信技術
量子アルゴリズムを使った高速DB検索技術
複数の選択肢がある場合の並列計算問題への適用
通常の機械学習アルゴリズムに量子状態を使ったもの
量子コンピュータを気軽に体験する方法
ここまで読んでいただいた方にはわかるかと思うが、本物の量子コンピュータを操作することは難しい。 そもそも量子ビットを作ることが難しいからだ。
だが、量子コンピュータ用のアルゴリズムを使って、量子ビットの振る舞いを古典コンピュータ上でシミュレートすることはできる。 参考文献にも挙げたツールやライブラリで結構簡単に実装できるので試してみると面白いかもしれない。 また、IBMが開発した量子コンピュータをクラウド上で公開しており、アカウント登録をすれば使うことができる。 実機を使うことができる珍しい機会なので、さらに興味のある方はやってみてもいいだろう。
参考文献
書籍
- Michael A. Nielsen, Isaac L. Chuang 著、木村達也 訳、量子コンピュータと量子通信
- 嶋田義皓 著、「量子コンピューティング 基本アルゴリズムから量子機械学習まで」
- 西森秀稔、大関真之 著、「量子アニーリングの基礎」
- 西野友年 著、「こんどこそわかる量子コンピューター」
- 武田俊太郎 著、「量子コンピュータが本当にわかる!」
Webサイトや記事など
- 戦略プロポーザル みんなの量子コンピュータ
- Physics Lab. 量子論とベルの不等式の破れ
- Physics Lab. 局所実在論とベルの不等式
- 量子コンピュータ入門
- qiskit 公式
- sympy ドキュメント
- qulacs ドキュメント
- IBM 量子コンピューティング
- NECの量子コンピュータへの取り組み
論文
ページTOPに戻る