量子コンピュータがすごいわけ…「0か1」の古典コンピュータにはとうてい無理な「中間の状態」をなぜ扱えるのか。ブロッホ球で考えてみると、驚くほどわかりやすい
AIの「次にくる時代」に備えよう!
急速に広がり、すでに生活のあらゆる場面に浸透しつつあるAI。一方で、その限界を指摘する声も聞こえてきます。そんななか、政府が技術イノベーション戦略として掲げ、超複雑な計算も瞬時にこなすその処理能力の高さから、産学各方面より注目を集めるのが「量子コンピュータ」です。
とはいえ、今までのコンピュータとどう違うのか、複雑な計算はできても単純計算に不向きとはどういうことか? データのコピーなどはできるのか、量子機器につきものの「量子エラー」って何? ……と、まだまだわからないことだらけと感じている人も少ないはず。
“すごそうだけど、まだよくわからない”量子コンピュータを、日米での量子コンピュータの関連特許を発明した著者が、懇切丁寧に解説する『量子コンピュータに何ができるか 知識ゼロから理解できる原理としくみ』が登場、すでに刊行前から大きな注目を集めています。
「産業革命以来のインパクトをもたらす」とまで言われる量子コンピュータの本質を、量子力学の基本から解説する本書から、必読の最新トピックをご紹介していきます。
今回は、「量子コンピュータ」と「古典コンピュータ」の違いを、「情報量」という観点から見ていきます。
*本記事は、『量子コンピュータに何ができるか 知識ゼロから理解できる原理としくみ』(ブルーバックス)を再構成・再編集したものです。
コンピュータが扱う情報単位「ビット」
私たちが現在用いているコンピュータは、量子コンピュータと対比する意味で「古典コンピュータ」とよばれます。
古典コンピュータの情報単位は「ビット」です。量子コンピュータの情報単位である「量子ビット」とはっきり区別するために、「古典ビット」とよばれる場合もあります。
1ビットは0または1のいずれかの値をとり、nビットはこれがn個並んだものになります。たとえば、2ビットでは0と1が2個並んだ「00」「01」「10」「11」の4通りの組み合わせが可能であり、3ビットでは0と1が3個並んだ「000」「001」「010」「011」「100」「101」「110」「111」の8通りの組み合わせが可能です。
一般にnビットでは、2ⁿ通りの組み合わせが可能となります。私たちは通常、十進数で数を数えます。コンピュータでは、十進数を二進数で表したものに対応させることがしばしばおこなわれます。
つまり、2ビットでは0を二進数の「00」、1を二進数の「01」、2を二進数の「10」、3を二進数の「11」に対応させるといった具合です。
「量子ビット」とは?
次に、量子コンピュータの情報単位を考えましょう。
前述のとおり、量子コンピュータの情報単位は「量子ビット」です。英語では「キュービット(qubit)」といいます。量子ビットの視点からは、古典ビットはその一部を使ったものであるとみなすことができます。
古典ビットは0か1のいずれかですが、量子ビットの観点からは「古典ビットは0か1のいずれかの状態をとることができる」と表現します。必ず0か1のいずれかの状態をとる古典ビットに対し、量子ビットは0と1の状態の他に、その“中間の状態”をとることができます。
「中間の状態」とはなんでしょうか。
「ブロッホ球」で考える中間の状態
図「量子ビットの状態を表す半径1の球」を見てください。半径1の球が描かれており、この球を「ブロッホ球」とよびます。量子力学の創始者の一人であるヴェルナー・ハイゼンベルクの弟子、フェリックス・ブロッホの名にちなんで名付けられたものです。
量子ビットの状態は、ブロッホ球の球面上にある矢印の先端の点に対応させることができます。
具体的な量子ビットの状態とは、原子や分子、またはそれらからなる「人工原子」の電子状態とよばれるものです(この点については、あらためて別の機会に説明しますが、『量子コンピュータに何ができるか』で詳述していますので、そちらをご覧さい)。
量子ビットの状態がもつ、量子コンピュータに必要な性質は、球面上の点とその点の移動を考えることで表現できます。球面上の点が量子ビットの状態を表し、その点を移動させることが量子ビットに対する演算となります。
図「量子ビットの状態を表す半径1の球」に、2つの角度θとϕが示してあります。これらを変化させることによって、矢印の先端の点はブロッホ球の全球面を移動します。これは、量子ビットの状態として、球面上のすべての点を連続的にとることが可能であることを意味しています。
他方、古典ビットでは、どうでしょうか。
非連続的な「飛び飛びの変化」をとる古典ビット
古典ビットでは、図「量子ビットの状態|0〉と|1〉」に示した2つの矢印の先端に対応する2点(1〉と|0 〉と書かれている点 )だけをとることができます。古典ビットでは、この2点を1と0に 対応させることで、スイッチのオン/オフの2状態と考えることができます。
そして古典ビットの状態の変化は、オンとオフのあいだの非連続的な飛び飛びの変化となります。 量子ビットは、ブロッホ球面上のすべての点を連続的に移動可能なので、0と1の状態に加え、その中間の状態をとることができます。
これは、古典ビットの情報が0と1のデジタル情報であったのに対し、量子ビットの情報はその間の値 を連続的にとることができるアナログなものであると考えることができます。量子ビットの中間状態は
a|0〉+b|1〉
と書きます。ここでaとbは複素数です。
量子力学では、いたるところで複素数が現れます。複素数は、実数x、yを使ってx+iyと表される数のことです。ここで登場したiは虚数単位とよばれ、2乗すると-1 になります。つまり、i²=-1です。
古典ビットと量子ビットの対応関係を示す式【古典ビット】 | 0〉、| 1〉 のどちらか ↓【量子ビット】 | 0〉 と| 1〉 が交じった a | 0〉 + b |1〉
複素数は、実数に比べるとややわかりにくい数ですが、量子力学には欠かすことができません。古典ビットと量子ビットの対応関係をあらためて示すと、式「古典ビットと量子ビットの対応関係を示す式」になります。
前ページの図「量子ビットの状態を表す半径1の球」に示したように、量子ビットは矢印で表すことができます。数学において矢印は「ベクトル」という量を示すので、量子状態はしばしば「状態ベクトル」ともよばれます。
*
【続きを読む】量子コンピュータ「衝撃のインパクト」…いまさら聞けない。「古典コンピュータを圧倒的に凌ぐ能力」の説明で、必ず出てくる「重ね合わせ」。いったい、どういう状態のことか
