今回のイベントでは、コンピュータの処理能力を飛躍的に向上させるとして、最近何かと話題の量子コンピュータについて、書籍『絵で見てわかる量子コンピュータの仕組み』の著者である宇津木健さんを講師にお迎えし、どこがすごいのか、何に使えるのかなど、初心者が知りたい基礎の基礎を、分かりやすく教えていただきました。
・量子コンピュータは、これまで解けなかった問題を高速に計算できる可能性を持っている
・私たちが現在使っている古典コンピュータは、電気的な状態で0か1かという情報を表す古典ビットを利用
・量子コンピュータでは、0と1が重ね合わさった状態も表すことができる量子ビットを利用
量子コンピュータって何?
量子コンピュータは、これまで解けなかった問題を高速に解ける可能性を持つとのこと。それは、一体、どのようなものなのでしょうか。ワクワクして待っていると、宇津木さんから「実は量子コンピュータの一般的な定義は未だない」という、なんとも拍子抜けするような答えが返ってきました。
簡単に言うと、従来型のコンピュータ(古典コンピュータと呼ぶそうです)が使う電気的なビット(古典ビット)に対して、量子ビットを使うのが量子コンピュータであるということですが、宇津木さんの書籍における定義では、より誤解がないように「量子力学特有の物理状態を積極的に用いて高速計算を実現するコンピュータ」としているとのこと。
さらに「まだ完成されていないので、量子コンピュータが、現在のコンピュータで解けない問題を本当に解けるかどうかは、実のところ分からない」というオマケもついてきました。なんだか急に頼りない感じがしてきました。しかし、その可能性はとても興味深いものだそうです。
量子コンピュータという考え方自体は、実はかなり前からあったそうですが、近年、IBMやGoogleといった、いわゆるテックジャイアントの積極投資と大々的な宣伝活動により注目度が高まっています。大手ばかりでなく、ベンチャー企業も取り組んでいて、日本でもいくつかのベンチャー企業がこの分野で活躍を始めているそうです。
なぜ今、量子コンピュータなのでしょうか。コンピュータで解決したい問題の難易度も時代が進むにつれ高くなっており、すでに量子コンピュータにしか解けないであろう問題が存在していることも知られていて、他に代替技術がないという点も、開発のための大きなモチベーションになっているそうです。
なお、現在開発されている量子コンピュータには大きく分け、量子ゲート方式(2000年頃までは唯一だった)と量子アニーリング方式(組み合わせ最適化問題に特化)の2種類があります。
量子アニーリング方式は、多数の粒子のふるまいを統計的に扱い、ミクロのふるまいからマクロ的な性質を導き出すというもので、組み合わせ最適化問題など、特定分野に効果を発揮するものと期待されていますが、あくまでも主流は万能量子コンピュータを目指す量子ゲート方式とのことです。この辺は、なんだかスーパーコンピュータのアプローチにクラスター型とベクトル型があるのと似た感じがします。
量子ゲート方式の量子コンピュータが万能になるためには課題もあります。現状では量子ビットを操作したときなどに数パーセント程度のエラー(ノイズ)が発生してしまうため、量子コンピュータに期待されるあらゆる計算ができるわけではありません。現状では非万能量子コンピュータという位置づけになります。これらの量子コンピュータはNISQ(ノイズのある中規模量子コンピュータ)と呼ばれているそうです。エラー訂正や、量子ビット数の多ビット化が、今後の「万能量子コンピュータ」実現への道を切り開くのだそうです。
古典コンピュータから量子コンピュータへの変遷をまとめると次のようになります。
また、量子コンピュータが完成すれば、すべての古典コンピュータが完全に置き換わるというわけではなく、おそらく量子コンピュータの性能を引き出すために古典コンピュータが不可欠とも考えられているそうです。
量子コンピュータの基礎:量子力学と量子ビット
では、量子コンピュータはどのように計算処理を行うのでしょうか。
私たちが知る「量子」の性質を持つ物質に、電子や光(光子)があります。電子は当初、粒だと思われていましたが、波の性質も持つことが分かりました。いっぽうで光は当初、波だと思われていましたが、粒子の性質も持つことが分かりました。この量子の不思議な特性を情報処理に利用しようというのが量子コンピュータのアプローチです。
私たちが現在使っている古典コンピュータは、電気的な状態で0か1かという情報を表す古典ビットを利用していますが、量子コンピュータでは0と1が重ね合わさった状態も表すことができる量子ビットを利用しているそうです。
量子ビットは計算中、0と1の状態を、それぞれ確率振幅と位相として持つ波のような性質を持っており、測定するとその瞬間、0か1に収束されます。
測定時に0に近ければ0、1に近ければ1に収束する確率が高いという、とても悩ましいものですが、この確率を制御して計算処理を行います。でも、確率をどうコントロールするのでしょうか。
古典コンピュータが(電気的な)古典ビットで演算する際に、ANDやOR、NANDといった電気的なビットを制御するための各種ゲートを使うのと同様に、量子コンピュータでは、ビットを入れ替えるXゲート(ビットフリップゲート)、位相を入れ替えるZゲート(位相フリップゲート)、量子的な重ね合わせ状態を作り出すHゲート(アダマールゲート)など、量子ビットを制御するさまざまな量子ゲートを使います。
量子計算の仕組み
最後に、宇津木さんが、量子計算のアルゴリズムをいくつか紹介してくださいました。
量子コンピュータで高速な計算を行うためには、アルゴリズムにも工夫が必要で、そこで重要なのが、前述した波の干渉という性質を利用することだそうです。これをうまく使えている例が、量子フーリエ変換です。こちらは波の干渉を使って結果を一意に決めるゲートを作り出すことができ、例えばこれにより、隠れた周期性を高速に発見することができるそうです。
現状の量子コンピュータはエラーが多いために、量子コンピュータの代表的なアルゴリズムである位相推定アルゴリズムをそのまま利用するにはハードルがあります。そこで、量子と古典のハイブリッド計算で使えるVQE(Variational Quantum Eigensolver)と呼ばれるアルゴリズムが考案されました。
VQEは、量子コンピュータと古典コンピュータを両方使って行列の固有値の最小値というものを計算する手法で、膨大な計算を必要とする量子化学計算の問題などへの応用が期待されているそうです。
イベントに参加いただいた方からは、「量子コンピュータがどのように計算をしているのかを理解するのは難しいと感じましたが、量子コンピュータの現在の位置づけ、解決すべき課題、将来の可能性などの概略を知ることができました」という声や、「難しい内容だが、テンポが良く、ある程度理解の手がかりとなった。勉強したいと思った」などの声をいただきました。
株式会社リクルートスタッフィングが運営するITSTAFFINGでは、弊社に派遣登録いただいている皆さまのスキル向上を支援するこのようなイベントを、定期的に開催しています。皆さまのご参加をお待ちしております。
(2022年追記)
エンジニアスタイルで量子コンピュータの新連載が始まりました!随時更新していますので、こちらもぜひご覧ください。
▼これまでの「初心者でもわかる量子コンピュータの計算の仕組み」
【第1話】数式なしで量子コンピュータの現状を理解しよう
【第2話】量子コンピュータで使用する計算の土台を学ぼう
【第3話】量子コンピュータの基本のルールを学ぼう
【第4話】基本の量子ゲートと量子回路をおさえよう
【第5話】量子プログラミングをやってみよう
【最終話】現在の量子コンピュータの限界とこれから
▼エンジニアスタイルでご紹介した量子コンピュータに関する記事のまとめ
特別編集 量子コンピュータ、そういえば知らなかったなという方へ