派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

【イベントレポート】絵と解説でわかる量子コンピュータの仕組み

この記事では、2020年1月10日に開催したイベント「絵と解説でわかる量子コンピュータの仕組み」をレポートします。

今回のイベントでは、コンピュータの処理能力を飛躍的に向上させるとして、最近何かと話題の量子コンピュータについて、書籍『絵で見てわかる量子コンピュータの仕組み』の著者である宇津木健さんを講師にお迎えし、どこがすごいのか、何に使えるのかなど、初心者が知りたい基礎の基礎を、分かりやすく教えていただきました。

■今回のイベントのポイント
・量子コンピュータは、これまで解けなかった問題を高速に計算できる可能性を持っている
・私たちが現在使っている古典コンピュータは、電気的な状態で0か1かという情報を表す古典ビットを利用
・量子コンピュータでは、0と1が重ね合わさった状態も表すことができる量子ビットを利用

【講師プロフィール】
宇津木 健さん
CodeZine「ITエンジニアのための量子コンピュータ入門」を連載。翔泳社『絵で見てわかる量子コンピュータの仕組み』の著者。東京工業大学大学院物理情報システム専攻卒業後、メーカーの研究所にて光学関係の研究開発を行う。また、早稲田大学社会人博士課程にて量子コンピュータに関する研究に携わる。

量子コンピュータって何?

量子コンピュータは、これまで解けなかった問題を高速に解ける可能性を持つとのこと。それは、一体、どのようなものなのでしょうか。ワクワクして待っていると、宇津木さんから「実は量子コンピュータの一般的な定義は未だない」という、なんとも拍子抜けするような答えが返ってきました。

簡単に言うと、従来型のコンピュータ(古典コンピュータと呼ぶそうです)が使う電気的なビット(古典ビット)に対して、量子ビットを使うのが量子コンピュータであるということですが、宇津木さんの書籍における定義では、より誤解がないように「量子力学特有の物理状態を積極的に用いて高速計算を実現するコンピュータ」としているとのこと。

さらに「まだ完成されていないので、量子コンピュータが、現在のコンピュータで解けない問題を本当に解けるかどうかは、実のところ分からない」というオマケもついてきました。なんだか急に頼りない感じがしてきました。しかし、その可能性はとても興味深いものだそうです。

量子コンピュータという考え方自体は、実はかなり前からあったそうですが、近年、IBMやGoogleといった、いわゆるテックジャイアントの積極投資と大々的な宣伝活動により注目度が高まっています。大手ばかりでなく、ベンチャー企業も取り組んでいて、日本でもいくつかのベンチャー企業がこの分野で活躍を始めているそうです。

f:id:itstaffing:20200323103218j:plain
▲さまざまな企業が量子コンピュータの実現に向け積極投資を行っている

なぜ今、量子コンピュータなのでしょうか。コンピュータで解決したい問題の難易度も時代が進むにつれ高くなっており、すでに量子コンピュータにしか解けないであろう問題が存在していることも知られていて、他に代替技術がないという点も、開発のための大きなモチベーションになっているそうです。

なお、現在開発されている量子コンピュータには大きく分け、量子ゲート方式(2000年頃までは唯一だった)と量子アニーリング方式(組み合わせ最適化問題に特化)の2種類があります。

量子アニーリング方式は、多数の粒子のふるまいを統計的に扱い、ミクロのふるまいからマクロ的な性質を導き出すというもので、組み合わせ最適化問題など、特定分野に効果を発揮するものと期待されていますが、あくまでも主流は万能量子コンピュータを目指す量子ゲート方式とのことです。この辺は、なんだかスーパーコンピュータのアプローチにクラスター型とベクトル型があるのと似た感じがします。

量子ゲート方式の量子コンピュータが万能になるためには課題もあります。現状では量子ビットを操作したときなどに数パーセント程度のエラー(ノイズ)が発生してしまうため、量子コンピュータに期待されるあらゆる計算ができるわけではありません。現状では非万能量子コンピュータという位置づけになります。これらの量子コンピュータはNISQ(ノイズのある中規模量子コンピュータ)と呼ばれているそうです。エラー訂正や、量子ビット数の多ビット化が、今後の「万能量子コンピュータ」実現への道を切り開くのだそうです。

古典コンピュータから量子コンピュータへの変遷をまとめると次のようになります。

f:id:itstaffing:20200323103158j:plain
▲現在は、非古典コンピュータ(量子アニーラー)と非万能量子コンピュータ(NISQ)のあたり。エラー訂正が行えるようにならないと万能量子コンピュータ実現には至らない

また、量子コンピュータが完成すれば、すべての古典コンピュータが完全に置き換わるというわけではなく、おそらく量子コンピュータの性能を引き出すために古典コンピュータが不可欠とも考えられているそうです。

量子コンピュータの基礎:量子力学と量子ビット

では、量子コンピュータはどのように計算処理を行うのでしょうか。

私たちが知る「量子」の性質を持つ物質に、電子や光(光子)があります。電子は当初、粒だと思われていましたが、波の性質も持つことが分かりました。いっぽうで光は当初、波だと思われていましたが、粒子の性質も持つことが分かりました。この量子の不思議な特性を情報処理に利用しようというのが量子コンピュータのアプローチです。

私たちが現在使っている古典コンピュータは、電気的な状態で0か1かという情報を表す古典ビットを利用していますが、量子コンピュータでは0と1が重ね合わさった状態も表すことができる量子ビットを利用しているそうです。

f:id:itstaffing:20200323103202j:plain
▲古典ビットでは0と1の間がなく離散的だが、粒子と波の性質を併せ持つ「量子」を使う量子ビットでは離散的と連続的という性質を併せて持っている

量子ビットは計算中、0と1の状態を、それぞれ確率振幅と位相として持つ波のような性質を持っており、測定するとその瞬間、0か1に収束されます。

f:id:itstaffing:20200323103204j:plain
▲波の性質を持つ量子ビットにさまざまな操作を行い計算し、測定時は粒子の性質を使って結果を読み出す

測定時に0に近ければ0、1に近ければ1に収束する確率が高いという、とても悩ましいものですが、この確率を制御して計算処理を行います。でも、確率をどうコントロールするのでしょうか。

f:id:itstaffing:20200323103207j:plain
▲量子ビットには確率振幅と位相があり、計算中にこの量子ビットを互いに作用させることで、両者が同位相ならば強め合い、逆位相なら弱め合うことになる。これを波の干渉という

古典コンピュータが(電気的な)古典ビットで演算する際に、ANDやOR、NANDといった電気的なビットを制御するための各種ゲートを使うのと同様に、量子コンピュータでは、ビットを入れ替えるXゲート(ビットフリップゲート)、位相を入れ替えるZゲート(位相フリップゲート)、量子的な重ね合わせ状態を作り出すHゲート(アダマールゲート)など、量子ビットを制御するさまざまな量子ゲートを使います。

f:id:itstaffing:20200323103210j:plain
▲量子ゲートのイメージ。矢印をぐるぐる回していく。矢印の位置は分からない。古典ビットのゲートと同様、量子ビットのゲートにもさまざまな種類のものがある

量子計算の仕組み

最後に、宇津木さんが、量子計算のアルゴリズムをいくつか紹介してくださいました。

量子コンピュータで高速な計算を行うためには、アルゴリズムにも工夫が必要で、そこで重要なのが、前述した波の干渉という性質を利用することだそうです。これをうまく使えている例が、量子フーリエ変換です。こちらは波の干渉を使って結果を一意に決めるゲートを作り出すことができ、例えばこれにより、隠れた周期性を高速に発見することができるそうです。

f:id:itstaffing:20200323103212j:plain
▲この計算処理により、素因数分解なども高速に解けるようになるため、たとえばRSA暗号を解くのにも応用できるとのこと。ちなみに|000>というのは、量子ビットの表記法で、古典ビットの000に相当。同様に|001>は001に相当する

現状の量子コンピュータはエラーが多いために、量子コンピュータの代表的なアルゴリズムである位相推定アルゴリズムをそのまま利用するにはハードルがあります。そこで、量子と古典のハイブリッド計算で使えるVQE(Variational Quantum Eigensolver)と呼ばれるアルゴリズムが考案されました。

VQEは、量子コンピュータと古典コンピュータを両方使って行列の固有値の最小値というものを計算する手法で、膨大な計算を必要とする量子化学計算の問題などへの応用が期待されているそうです。

f:id:itstaffing:20200323103215j:plain
▲複数の都市を1度ずつ巡って出発地に戻る経路が存在するかを探るハミルトン閉路問題の例。都市の数に対してパターンが指数関数的に増えることが知られている。量子コンピュータを使うことでN通りの順路について√N回の計算程度で求められるものと期待されているそう

イベントに参加いただいた方からは、「量子コンピュータがどのように計算をしているのかを理解するのは難しいと感じましたが、量子コンピュータの現在の位置づけ、解決すべき課題、将来の可能性などの概略を知ることができました」という声や、「難しい内容だが、テンポが良く、ある程度理解の手がかりとなった。勉強したいと思った」などの声をいただきました。

株式会社リクルートスタッフィングが運営するITSTAFFINGでは、弊社に派遣登録いただいている皆さまのスキル向上を支援するこのようなイベントを、定期的に開催しています。皆さまのご参加をお待ちしております。

(2022年追記)
エンジニアスタイルで量子コンピュータの新連載が始まりました!随時更新していますので、こちらもぜひご覧ください。

▼これまでの「初心者でもわかる量子コンピュータの計算の仕組み」
【第1話】数式なしで量子コンピュータの現状を理解しよう
【第2話】量子コンピュータで使用する計算の土台を学ぼう
【第3話】量子コンピュータの基本のルールを学ぼう
【第4話】基本の量子ゲートと量子回路をおさえよう
【第5話】量子プログラミングをやってみよう
【最終話】現在の量子コンピュータの限界とこれから

▼エンジニアスタイルでご紹介した量子コンピュータに関する記事のまとめ
特別編集 量子コンピュータ、そういえば知らなかったなという方へ

リクルートスタッフィング