07:00現在のコンピュータよりはるかに強力な計算能力を持つ量子コンピュータ。実用化に向けて研究開発が進んでおり、興味を持ち始めている方もいるのではないでしょうか。今回はその種類や仕組み、将来どのように使われるのかを解説した『絵で見てわかる量子コンピューターの仕組み』より、量子コンピュータの基礎知識を紹介します。量子コンピュータ入門」を抜粋したものです。掲載にあたり、一部を編集しています。量子コンピュータって何?量子コンピュータは、これまでのコンピュータとは異なる新しい計算機です。最初に、量子コンピュータがどのような計算機なのかその位置付けを説明します。小学1年生の頃、算数を習い始めたときのことを思い出してください。1から9までの数字を習い、足したり引いたり掛けたり割ったりすることを学びました。これにより物を数えたり、時間を計算して予定を立てたり、お金を計算したりして日常生活を送ることができるようになりました。その後、さらに複雑な計算の方法を学んで、製品を製造したり、建物を設計したり、地球環境を測定したり、さまざまな仕事で計算が使われていることを学んできました。私たち人間は、大した計算能力をもっていないということを高校生くらいのときに理解し始めます。大きな数字の計算は、筆算で5桁くらい、図形の計算は単純な円や三角形が限界で、それ以上大きな数や複雑な図形などの場合、頭がこんがらがってしまい計算できません。そこで、計算機を使います。計算機と言ってもいろいろありますが、ここでは計算するための機械全般を計算機と呼ぶことにします。身近な計算機は電卓(電子卓上計算機)でしょう。昔は、電卓の代わりにそろばんを使っていました。これにより桁数の多い計算が高速にできるようになりました。複雑な計算になるとコンピュータを使います。XやYが出てくる方程式を習うと、数字を直接扱わずに計算式を立てられるようになり、これを使いプログラムを作ることで、手計算では困難な複雑な計算がコンピュータによってできるようになります。数千桁の計算も、3次元の複雑な図形の計算も、基本的な方程式さえ知っていれば計算して答えを出すことができます。電気の力を使った計算機であるコンピュータは1960年頃に実用化され、今では誰でも使うことができ生活の一部となりました。コンピュータにより人間の計算能力の限界を突破することができるようになったのです。図1.1に計算機の発展を表しています。コンピュータの限界この電気を使った計算機であるコンピュータでも、やはりどこかに限界があります。これまで60年くらい、コンピュータはどんどん進化してきて、高速に計算できるようになり、そして使いやすくなりました。人間の解きたい問題も同じくらいのスピードでどんどん進化(複雑化、煩雑化)してきました。複雑な3次元物体のシミュレーションや、量子力学的なふるまいをする物質のシミュレーションは、現在の最先端のコンピュータを使ってもなかなか計算できません。最近では、ブロックチェーンという技術が注目を集めており、これは現在のコンピュータでも計算するのが難しい問題が存在することを利用して作られたシステムです。機械学習という技術も注目を集めていますが、これも計算するのに多くの時間がかかる問題を解く必要があります。そのため、現在のコンピュータの限界を突破することはとても重要なことであり、これによりさらに世の中を良くすることができると信じられています(図1.2)。その答えの1つが、量子コンピュータだと期待されているのです。量子コンピュータとは何か?量子コンピュータは、次世代の高速計算機として研究・開発が進められています。現代のコンピュータでは困難な問題をすべて解決できるわけではないですが、そのうちいくつかでも解決できれば、社会に大きなインパクトを与えると期待されているのです。ここで、量子コンピュータとは何か、について簡単に説明します。量子コンピュータとは、「量子力学特有の物理状態を積極的に用いて高速計算を実現するコンピュータ」と本書では定義します。量子コンピュータの「量子」は量子力学の「量子」です。量子力学とは、大学レベルで学ぶ物理学の1つで、原子、電子などの非常に小さなものの動きを説明するために発展した理論です。この量子力学によると、原子や電子、光の粒である光子などの微小なものや、超伝導などの非常に低温に冷やした物質においては、私達が普段目にしない不思議な現象が起きるということが知られており、実際に実験的に確かめられています。後で説明する量子力学特有の物理状態である「重ね合わせ状態」や「量子もつれ状態」などが実現されています。この量子力学特有の物理状態を積極的に用いてコンピュータを作ろうというのが、量子コンピュータです。これにより、これまでの計算よりもパワフルな量子計算と呼ばれる計算ができるようになります。この量子計算は、従来の計算とは本質的に異なるポテンシャルを有していることが研究によって明らかになりつつあります。量子コンピュータの開発は、「量子」を高度に制御(コントロール)することで、従来のコンピュータの限界を突破するコンピュータを作るという物理学とエンジニアリングの挑戦なのです(図1.3)。量子コンピュータと古典コンピュータここで、量子コンピュータと通常のコンピュータの違いを整理しましょう。「計算」には大きく分けて2種類あると考えることができます。物理学の1つの分野である古典物理学に基づく古典計算と、量子物理学(量子力学とも呼ばれる)に基づく量子計算です。古典物理学とは中学校や高校の物理の授業で習う物の運動や力の作用、電磁気の性質などを扱う物理学です。量子力学は理系の大学レベルで習う「原子や電子の性質」などを扱う物理学です。この2つの物理学に対応して、2つの計算が存在すると考えることができます。古典計算と量子計算の違いは第3章以降で説明します。本書では、量子計算を行う装置を「量子コンピュータ(量子計算機)」と呼び、古典計算を行う装置を「古典コンピュータ(古典計算機)」と呼びます。そのため本書では、通常のコンピュータのことを「古典コンピュータ」と呼びます。量子計算は古典計算の上位互換であり、古典コンピュータで解ける問題はすべて量子コンピュータで解くことができます。これは、古典力学で扱える現象はすべて量子力学で(原理上は)扱える(つまり古典物理学は量子物理学の近似である)ことに対応しています。古典コンピュータでは解くことの難しい問題も、量子コンピュータなら高速に解くことができる場合があることがすでに知られています。これは、古典物理学では扱うことのできない現象まで量子力学では扱えることに対応しています(図1.4)。コンピュータの決まった定義があるわけではありません。そのため、本書では図1.3のように量子コンピュータを定義しました。ここで注意すべき点は、通常のコンピュータも量子力学的な現象を使った半導体デバイス(トランジスタやフラッシュメモリなど)によって動いていますが、できる「計算」は古典物理学に対応する「古典計算」であるという点です。実現のために使われている物理現象と、実際にできる計算は明確に区別する必要があり、量子力学で説明されるような現象を用いているからといって「量子計算」ができるわけではありません。量子計算を行うためには、量子力学で説明されるような現象を高度に制御し、「量子力学特有の物理状態」と呼べるような特殊な状態を実現することが不可欠となります。量子コンピュータと呼ばれているものの中にも複数の種類が存在します。本書では、量子コンピュータを以下の3つに区別して説明します(図1.5)。量子コンピュータの種類(1)万能量子コンピュータ万能な量子計算を行うことができる量子コンピュータです。詳しく説明すると「任意の量子状態から任意の量子状態への変換を十分な精度で実行できるコンピュータ」ということになります。任意の量子状態とは、ここでは任意の複数の量子ビットの状態のことで、これを所望の状態に(完全には困難なので)十分高い精度で変換することができるのが、万能量子コンピュータであると言えます。量子ビットの数が多くなり行いたい変換が複雑になってくると、ノイズの影響も大きくなってくるために、計算途中の誤り(エラー)を訂正する能力(エラー耐性)を持つことが必要となります。エラー耐性を持つ量子コンピュータを「エラー耐性量子コンピュータ」と呼びます。(2)非万能量子コンピュータ万能な量子計算はできないが、一部の量子計算を行うことができ、古典コンピュータに対する優位性が示されている量子コンピュータです。Quantum(NISQ)と呼ばれる量子コンピュータがここに分類されます。詳細は第1.2.6項で解説をします。(3)非古典コンピュータ量子力学特有の物理状態を用いて計算を行う、またはそれを目指すコンピュータで、古典コンピュータに対する優位性が示されていないコンピュータです。現在開発されている量子アニーラーがここに分類されます。表1.1にこれらの量子コンピュータの特徴をまとめています。本書では、上記3つのコンピュータを「広義の量子コンピュータ」と捉え、本書ではこれらについて詳しく扱います。「広義の量子コンピュータ」は、量子力学特有の物理状態を用いて計算を行う点が「古典コンピュータ」との違いであると言えます。この「広義の量子コンピュータ」の中で、「非万能量子コンピュータ」と「非古典コンピュータ」の違いは、計算性能において古典に対する量子の優位性があるかどうかです。「非万能量子コンピュータ」と「万能量子コンピュータ」の違いは、量子計算の万能性があるかどうかです。前節では、量子コンピュータのハードウェアとしての分類について説明しました。計算にも種類があり、本書では「万能型」と「特化型」の2つを量子計算モデルの種類として区別します。計算モデルとは、どのように計算を実行するのかを記述するモデルです。(1)万能型あらゆる量子計算を記述することができます。量子回路モデルがその代表です。トポロジカル量子計算等複数の計算量的に等価な(P.118コラム参照)モデルがあり研究されています。本書では、量子回路モデルについて詳しく説明します。・量子回路モデル古典コンピュータで使われる「回路」や「論理ゲート」の代わりに「量子回路」や「量子ゲート」を用いて計算を行うモデルです。量子コンピュータ研究の初期から用いられており、万能(ユニバーサル)な量子計算を記述できる最も標準的なモデルです。特定の計算を記述することができます。本書では、量子アニーリングと呼ばれる計算モデルについて説明します。量子アニーリングは、イジングモデルの基底状態(第7章で説明)を計算する目的に特化した計算モデルであり、このイジングモデルに問題をマッピングすることで問題を解くことができます。Systemsというカナダのベンチャー企業が商用化を行い、GoogleやNASAが研究に参加して一躍有名になりました。Farhi)のグループによって理論的に提案された量子アニーリング(門脇・西森、1998)や量子断熱計算(ファーヒ他、2001)と呼ばれる計算モデルがその基盤となっています。これらの計算モデルを基に、量子アニーリングに特化した専用マシンである「量子アニーラー(量子アニーリングマシン)」によって計算を行います。量子コンピュータとはどんなものなのか大まかなイメージができたところで、量子コンピュータの仕組みを見ていきましょう。本節では具体的な内部の動作ではなく、動作の流れと量子コンピュータを実際に使うイメージを説明します。量子コンピュータの動作の流れまずは、量子コンピュータの動作の基本的な流れを説明します。上記の量子回路モデルと量子アニーリングの両方に共通する量子コンピュータの動作の基本を図1.8に示しています。量子コンピュータでの計算の実行方法をここでは3ステップで説明しましょう。量子コンピュータには量子ビットと呼ばれる計算の最小単位が存在します。古典コンピュータでは単に「ビット」と呼ばれていたものの量子版です。量子コンピュータにはこの量子ビットが物理的に実装されており、これを用いて計算を行うのが基本となります。そのためまずは、この量子ビットを準備し初期化します(図1.9)。量子コンピュータの計算は、物理的に実装された量子ビットを操作することで実現します。量子ビットを操作する方法は、量子回路モデルでは「量子ゲート操作」、量子アニーリングでは「アニーリング操作」と呼ばれます。このように、量子コンピュータの計算は、量子ビットに対して、量子的な操作を施すことで実現されるのです(図1.10)。量子的な操作ステップ3:計算結果の読み出し計算結果を得るために、量子ビットの状態を測定して、計算結果の情報を読み出します(図1.11)。量子ビットの状態(量子状態)は壊れやすく、計算途中の量子的な操作を行っている段階で不要な測定をしてしまうと量子状態が壊れ、計算を失敗して(間違えて)しまいます。必要なタイミングで注意深く測定を行う必要があります。以上の3ステップで量子コンピュータによる計算が完了します。計算結果の読み出し量子コンピュータの開発ロードマップ量子コンピュータ実現に向けた開発のロードマップを図1.12に示します。大まかには、古典コンピュータの限界を突破して量子コンピュータを実現するという流れです。これをもう少し段階的に見ていくと、古典コンピュータと量子コンピュータの間に位置するようなデバイスが現在すでに開発されていたり、研究が進められていたりします。本節では、この流れを開発ロードマップという形で紹介します。各量子コンピュータがどのような位置づけにあるのかを理解するための参考にしてください。通常のコンピュータである「古典コンピュータ」の次に、量子性を活用した「非古典コンピュータ」と呼ぶべき装置が開発されています。ここには現在の量子アニーラーが含まれ、量子性を計算に導入する試みの初期段階です。その次に、古典計算よりも強力な計算が可能であることが実証された「非万能量子コンピュータ」の段階があります。古典コンピュータでは困難な計算を量子コンピュータでは効率よく計算できること(古典に対する優位性)を示すことを量子スプレマシー(量子超越性)と呼びます。現在開発されている量子デバイスによる量子スプレマシーの実証が現在注目されています。この段階の量子コンピュータは、エラー耐性が不完全な量子コンピュータであり、万能な量子計算を実行することができません。そのため、完全なエラー耐性を実現することによって、最終目標の万能量子コンピュータに至ります。この万能量子コンピュータの実現には20年かそれ以上かかると言われています。現在その前段階の開発が着実に進められており、量子アニーラーや後述するNISQ(ニスク)と呼ばれるデバイスが開発されてきています。以下ではこの流れを念頭に各段階について、説明していきます。ノイマン型から非ノイマン型コンピュータへ量子コンピュータへの開発段階を、図1.12に沿って順を追って説明しましょう。説明しなければならないのは、古典コンピュータ開発の最新動向です。従来のコンピュータの限界を突破すべく、古典コンピュータも更なる進化を続けており、非ノイマン型コンピュータと呼ばれる計算機が開発されています。これは、古典コンピュータであることには変わりないのですが、計算の仕組みが普通のコンピュータと異なります。非ノイマン型コンピュータは、「ある決まった問題を高速に解くマシン」であり、通常のコンピュータの多くがノイマン型コンピュータと呼ばれる「CPU+メモリ」という基本構成であるのに対して、それ以外の構成となっているものを非ノイマン型コンピュータと呼びます。多くの場合非ノイマン型コンピュータは、特定の問題に特化して設計されており、ノイマン型コンピュータに比べて高速かつ低消費電力な計算をめざし、「ある決まった問題を高速に解くマシン」として開発されています。膨大な行列計算に特化したチップや機械学習のある処理に特化したチップというものが開発されています。Array)を利用したシステムなどがすでに開発されています。一部はすでにスマートフォンなどに入っており知らないうちに我々は恩恵を受けています。量子コンピュータも当面は非ノイマン型コンピュータのうちの1つという位置づけができます。GPUやFPGA、TPU等が古典計算であるのに対して、量子性を使った量子計算であることが本質的に異なります。非古典コンピュータ量子計算を目指す開発段階のコンピュータを本書では「非古典コンピュータ」と呼びます。あるコンピュータが、量子計算が実際に行われているか、つまり古典計算と比較して優位な計算ができているのか、という疑問に答えるのはなかなか難しく、多くの実験データを集めたり理論構築を行ったりして改良を繰り返すといった研究開発が必要です。これにはある程度長期の開発期間が必要で、この段階にあるマシンを本書では非古典コンピュータという括りで扱います。非古典コンピュータは、量子性を利用したデバイスによって量子計算を目指しており、これには、現在の量子アニーラーや少数の量子ビットのプロトタイプが含まれます。これらのデバイスは、古典計算よりも優位な計算性能を実現できていることが示されていない開発段階のマシンです。古典計算よりも優位な計算を実証することを量子スプレマシーと呼びます。非万能量子コンピュータ量子スプレマシーを実証した後、スケーラビリティやエラー耐性が無く、まだ万能な量子計算に至らない開発段階があります。この段階のコンピュータを本書では「非万能量子コンピュータ」と呼びます。高精度な50~100量子ビットを有する量子コンピュータができたら、古典コンピュータの限界を一部突破できる(その計算を古典コンピュータで行うことが困難となり量子スプレマシーが実証される)可能性があり、非万能量子コンピュータが実現されます。そこで、非万能量子コンピュータを利用した社会に有用なアルゴリズムを見つけることが重要となります。このように社会に有用な計算によって量子コンピュータが古典コンピュータの性能を上回ることを「量子スピードアップ」や「量子アドバンテージ」と呼ぶことがあります。量子スプレマシーはどちらかというと学術的な意味での量子コンピュータの優位性であり、量子スピードアップや量子アドバンテージはもう少し実用的な意味での量子コンピュータの優位性を意味する言葉と言えます。NISQ(ニスク)非万能量子コンピュータとして、NISQと呼ばれる量子コンピュータが登場しつつあります。通常我々が使っている古典コンピュータはノイズによって計算を間違えるといったことはありません。CPUやメモリは、高い精度で製造されているだけでなく、処理の中にエラー訂正の機能を持っているため、ノイズに非常に強く、通常使用していてノイズに悩まされることはまずないと思います。現在実現されつつある非万能量子コンピュータはまだまだノイズが大きいのが現状です。現在開発が最も活発な超伝導回路による量子コンピュータでは、量子ゲート操作や量子ビットの測定などの量子的な操作を行うと0.1から数パーセント程度のエラーが発生します。このエラーを訂正することが現状ほとんどできません。量子コンピュータのエラー訂正は、活発に研究されていますが実装は容易ではないのです。そこでNISQが注目されています。beyond」というタイトルの講演にて導入した言葉です。(computer)”の頭文字を取った略語で、「ノイズのある中規模(50~100量子ビット)の量子コンピュータ」と訳すことができます。これは現在から以後数年にわたって開発される量子回路モデルの量子コンピュータを表す名称になると考えられています。NISQが量子スピードアップを達成できるかは未だわかっていません。現在NISQを用いた量子スピードアップを実現するアルゴリズムの研究がさかんに行われています。万能量子コンピュータ十分に量子ビットの数が増え、スケーラビリティやエラー耐性を獲得し、任意の量子アルゴリズムを実行できるようになった量子コンピュータを万能量子コンピュータと呼びます。万能量子コンピュータは、人類の科学技術における究極の目標の1つと言ってよいと筆者は考えています。量子物理学の近似である古典物理学ではなく、より普遍的な量子物理学そのもので計算を実行し、これまで非効率的であった計算が効率的になって、これによりこれまでの古典コンピュータの外側にあると考えられている新しい可能性が広がるからです。万能量子コンピュータは、上記のNISQなどの非万能量子コンピュータから、量子ビットの数と精度を飛躍的に高め、誤り訂正機能(エラー耐性)を実装することにより実現することができると考えられています(図1.17)。技術的難易度が非常に高く現在の技術水準では、未だエラー訂正機能の初期段階の実験に留まっています。後述するショアのアルゴリズムやグローバーのアルゴリズムといった量子アルゴリズムは、古典コンピュータよりも強力であることが知られています。ショアのアルゴリズムにより暗号解読が可能になり、またグローバーのアルゴリズムにより複雑な探索問題を高速に解くことができる可能性があります。これらだけでなく、万能量子コンピュータの応用分野はこれから大きく広がると期待されています。古典コンピュータは、スパコンのような大型のものからデスクトップPC、ノートPC、スマートフォン、ウェアラブルデバイスと小型のものまで多岐にわたります。これらのコンピュータは用途に応じて使い分けられています。量子コンピュータ開発の現状は、およそ上記の非古典コンピュータの段階であり、現在クラウドによるお試し利用等が行われています。いくつかの企業がこのお試し利用可能な非古典コンピュータの環境を構築しています。使える機能はかなり限定的で、何か実用的に役に立つ計算を古典コンピュータの限界を突破してできるレベルにはありません。Qでは、現状5量子ビットと16量子ビットの量子回路モデルによる計算を行うことができます(2019年5月時点)。5量子ビットや16量子ビットでできる計算は、通常の古典コンピュータのパソコンでも計算できてしまいます。5量子ビットの量子コンピュータは、上記の非古典コンピュータに分類することができ、実用上はほとんど意味がないということになります。そのため、現在さらに高性能な量子コンピュータを実現するための研究開発が加速しています。これが50量子ビット、100量子ビットになると話が変わってきます。現在の最高性能のスーパーコンピュータでも、精度の良い50量子ビット程度の量子コンピュータが行う計算をシミュレートするのは計算量が大きすぎて難しくなってくるのです(量子スプレマシー)。非万能量子コンピュータが実現され量子スピードアップが可能となった将来について考えてみましょう。量子コンピュータは、古典コンピュータが苦手な問題を肩代わりする役割を担います。量子コンピュータもシステムに組み込まれるでしょう。ここで注意すべきことは、システムの一部であるということです。量子コンピュータは、当面はあくまで専用マシンの位置づけだと考えられます。「ある決まった問題を高速に解くマシン」として用いられるのです。理論的には、量子回路モデルでは汎用的な量子計算を記述することができて、古典コンピュータができる計算はすべて量子コンピュータにより計算できるのですが、実際には、当面の間は古典コンピュータの一部をアシストするために使われると考えられています。そちらの方が、現状格段にコストが安いからです。そのため、量子コンピュータが一家に1台といったことや、スマホに搭載といったことは当面考えられません。超伝導回路による量子コンピュータの例を図1.19に示します。超伝導回路による量子コンピュータでは、希釈冷凍機という大型の冷却装置が必要で、さらに制御装置もたくさん必要となります。これをクラウド経由で使用するのが当面の使われ方になると考えられています。最後に、将来の計算環境を想像してみます。10年後のコンピュータの姿は、図1.20に示すような構成になっていると筆者は想像します。我々が持って操作するパソコンやスマートフォン、スマートウォッチやヘッドマウントディスプレイなどのウェアラブルデバイス、またはスマート家電等が、クラウド上の古典コンピュータに無線LANなどでつながっています。これらの機器はユーザーインターフェースと呼ばれます。何か計算をさせたいときはこれらのユーザーインターフェースを操作します。すると、単純な計算や処理速度の高速性が必要な計算は、その機器本体が計算してくれますが、少し複雑な計算やデータベースとのやり取りが必要な計算はクラウド上につながっている古典コンピュータで処理します。これは汎用マシンなので、中程度の計算はできますが、複雑な計算や大規模な計算は、その計算が得意な別のコンピュータに肩代わりしてもらいます。行列計算は行列計算専用マシン、画像処理は画像処理専用マシン、機械学習は機械学習専用マシン、などのようにです。この専用マシンの1つに、量子コンピュータも含まれます。量子コンピュータが得意な問題については、量子コンピュータが肩代わりするのです。上記はあくまで筆者のイメージですが、ここで伝えたかったのは、このように、量子コンピュータと古典コンピュータは、一緒に使われるということです。先、量子コンピュータが簡単に使用できるようになった将来がやって来たとしましょう。そこでは、古典コンピュータがすべて量子コンピュータに置き換わるのかというと、それもないでしょう。量子コンピュータを制御するのに、古典コンピュータが欠かせないからです。量子コンピュータを作るためには、量子性を壊さないような装置を作らないといけません。構成され制御を行います。これらの制御機器はすべて古典コンピュータを内蔵しているので、量子コンピュータを作るためには古典コンピュータが不可欠ということになります。どこまで行っても古典コンピュータがなくなることはないのです。古典量子のハイブリッドで高速化を目指していくのです。発売日:2019年7月10日(水)価格:2,786円(税込)本書について本書では、量子コンピュータが注目された経緯から説明し、量子コンピュータを理解する基礎となる量子ビット、量子ゲート、量子回路、量子アルゴリズムなどをイラストを使用しながらわかりやすく解説をしていきます。連載通知を行うには会員登録(無料)が必要です。会員の方はログインを行ってください。タクヤ)翔泳社マーケティング課。MarkeZine、CodeZine、EnterpriseZine、Biz/Zine、ほかにて翔泳社の本の紹介記事や著者インタビュー、たまにそれ以外も執筆しています。圧縮・解凍UNIX基本講座@CodeZine『CodeZine(コードジン)』の公式アカウントです。【NEW】デブスト2019デブサミ2019福岡・関西デブサミ2019夏デブスト関西デブサミ2019×ログインEメールパスワード※旧SEメンバーシップ会員の方は、同じ登録情報(Eメール&パスワード)でログインいただけます。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。