量子コンピュータと従来のコンピュータの違い
量子コンピュータの仕組みはどのようになっているのでしょうか?
量子コンピュータの仕組みについて説明する前に、私たちが現在使っているコンピュータについて説明します。
通常のコンピューターの仕組み
スイッチがONならば電気を通し(導通)、OFFならば電気を通さないという一般的な回路をイメージしてください。
「コンピュータの世界は0と1からなる二進数の世界である」ということは有名ですが、この0と1はビットと呼ばれ、スイッチのON/OFFで表現されています。コンピュータは、このスイッチのON/OFFを切り替えることで計算しているのです。
このスイッチはトランジスタと呼ばれるもので、電気信号を入れるとON、入れないとOFFになっており、トランジスタをつなげるとドミノ倒しのようにトランジスタのON、OFFが変化します。このようにトランジスタをつなげることで、NOTやANDなどの基本論理演算を行っています(NOTとはビットを反転させ、ANDは2つの入力がいずれも1のときのみ1を出力し、それ以外のときは0を出力する論理ゲートです)。この基本論理演算を組み合わせることで、加減乗除を行い、さらに加減乗除を組み合わせて、微分・積分、三角関数、対数関数などの複雑な計算を行っているのです。コンピュータでは、このようにトランジスタが連携することによって、複雑かつ高度な計算を全自動で行うことができます。
現代のコンピュータの脳みそである、CPU(中央演算処理装置)の部分は大量のトランジスタの集合体です。驚くべきことに、1辺数センチほどの小さいチップにトランジスタが約10億個ほど入っており、ON/OFFを1秒間に10億回ほど切り替えています。
これらのことから、CPU内のトランジスタの数はコンピュータの性能に直結しています。これまで、コンピュータは「同一面積あたりのトランジスタの数は1年半ごとに2倍になる」というムーアの法則(この法則を提唱したゴードンムーアは、米インテルの創業者の一人)によって予言されていた通りに発展してきました。黎明期と比べ、コンピュータの性能が年を追うごとに飛躍的に向上していることは実感されている方も多いと思います。しかし、近年ムーアの法則の限界が近づいていると言われています。なぜなら、トランジスタのサイズが原子1個のサイズに迫っているため、物理的にこれ以上小さいトランジスタを作ることは不可能であるという限界が見えてきたためです。そこで生まれたのが量子コンピュータなのです。
また、既存のコンピュータには消費エネルギーの問題もあります。現在のスーパーコンピュータは消費エネルギーが膨大であり、例えば、スーパーコンピュータ「京」では約3万世帯分に相当する電気量、年間約20億円もの電気代がかかっていました。量子コンピュータは一般的なコンピュータに比べると消費エネルギーが少ないと言われています。
量子コンピュータの仕組み
量子コンピュータは量子ビットという特別なビットを使って計算をします。量子ビットとは「0と1の重ねあわせ」の情報を表しており、例えば一般的なコンピュータでの「00」「01」「10」「11」の4つの状態は、量子ビットを2ビット使うことで同時に表現することができます。量子コンピュータの「量子」は英語で"Quantum"と言います。なので量子ビットのことを”Quantum Bits”、略して"Qubits"と言われます。
右側は今までの古典的コンピュータ、左側は量子コンピュータのそれぞれの一定の状態数を表すのに必要なビット数の比較です。量子ビットは見ての通り、古典的コンピュータに比べて指数関数的に性能が良くなるという事がわかります。
また、一般的な論理ゲートは使わず、量子版の論理ゲートによって、おおざっぱに言えば量子ビットの波の重ねあわせ具合を変えています。二重スリットの実験で壁にぶつかった瞬間に重ねあわせが壊れてどれか1つの可能性に決まったように、量子コンピュータの最後の測定では1つの答えしか読みだすことができません。そこで、量子の波の性質を使い、複数のパターンを並列に計算し、波と波をうまく干渉させて正しいパターンにだけ絞り込んでいく、ということを行っています。
現在、IBM Quantum Experience(通称IQX)によって、誰でもクラウド経由で量子コンピューターにアクセスして量子計算を実行することができます。(IQXのログインはGoogleアカウント、SNSなどから簡単に行えます)
これまでのコンピューターでは「0」と「1」のみで計算していましたが、量子コンピュータは複数のパターンででを並列で計算することで、今までよりも圧倒的に早く計算し処理することが可能になったのです。
IBM Quantum Experience. "Get started with IBM Quantum Experience". https://quantum-computing.ibm.com/docs/ (IQXログインページ)
IBM developer. "IBM Quantum Experienceで体験するはじめての量子計算". https://developer.ibm.com/jp/articles/iqx-getstart/ (IQXの日本語チュートリアル)
ここでは、IQXの実行結果を示し、量子版の論理ゲートの役割を視覚的に表します。
量子ビットは|0〉, |1〉というようにベクトルとして表されています。初期状態は|00〉なので、以下のように2つの量子ビットのうち最初の量子ビットq[0]にX反転ゲートを適用して測定すると、
上のような結果を得ることができます。これは、右端のビットを 0 から 1 へ反転する操作、すなわち一般的なコンピュータの論理ゲートでのNOTです。
また、量子の重ね合わせは以下のようにアダマール(H)ゲートによって実現されます。Hゲートは、X反転ゲートのように一般の論理ゲートと同じような働きをするものではなく、量子コンピュータのための特別な論理ゲートです。
初期状態が|00〉だった2つの量子ビットのうち、最初の量子ビットq[0]にアダマール(H)ゲートを適用して測定すると、ほぼ半々の割合で|00〉と|01〉の量子状態が現れており、重ね合わせが実現されていることがわかります。
また、量子の重ね合わせだけでなく、量子もつれも実現することができます。
量子もつれとは、1つの粒子の重ね合わせが2つペアになった状態の特別な場合に起こることです。たとえば、ペアになった粒子Aと粒子Bのそれぞれのスピン(正確な表現ではないのですが、ある方向を向いた小さな矢印のようなものです)の向きが「Aが上向き・Bが下向き」と「Aが下向き・Bが上向き」との重ね合わせ状態を形成している場合を考えます。
このとき、一方の粒子を観測してその状態が分かれば、もう一方の粒子の状態は観測するまでもなく、"瞬時に"決まってしまうのです。たとえば、Aが下向きだと観測されれば、その瞬間Bは上向き状態に決まります。重ね合わせ同様、このことも私たちの常識からは考えられないことですが、量子コンピュータで実現することができます。
量子ビットでは一度に様々な情報が内包されていますが、受け取る時は一意に定められます。
以下のように、先ほどのHゲートを置いたあとに、入力値(小さな●)が1の時だけターゲットの量子ビット(大きな●)を反転させるCNOTゲートを適用します。
すると、上の棒グラフが示すように結果は|00〉または|11〉となります。つまり、一方の量子ビットを測定した瞬間、100%の確率でもう片方が一方の量子ビットと同じ量子状態をとることを意味しています。
これらのゲートの働きなどを応用することで、量子アルゴリズムを組むことができます。量子アルゴリズムで有名なものには、グローバーのアルゴリズム、ショアのアルゴリズムが挙げられます。
グローバーのアルゴリズムとは、探索アルゴリズムの一種です。たくさんの引き出しのある棚の中に探したいものがある状況を想像してください。
どの引き出しに探しているものがあるのか調べるのはとても手間がかかることがわかると思います。グローバーのアルゴリズムはこのように手間のかかる”探索”を効率的に行うアルゴリズムです。
また、ショアのアルゴリズムとは、素因数分解を行うアルゴリズムです。
ショアが示したのは、量子コンピュータによって 15=3×5 に素因数分解できた、という中学生にもできるような簡単なことですが、今後、量子コンピュータの性能が上がっていくことによって、もっと大きな桁数の素因数分解を行うことが期待できます。
それぞれのアルゴリズムが具体的にどのように動いているのか理解するためには、前提として数学の知識が必要となるため、ここでは説明しませんが、もっと詳しく知りたい方は、こちらのリンクが参考になるかもしれません。
Quantum Native Dojo. "Welcome to Quantum Native Dojo!". https://dojo.qulacs.org/ja/latest/index.html
また、現在、このように量子ビット、量子版の論理ゲートを実現するためのハードウェア開発が、超伝導、半導体、イオントラップ、冷却原子、光など様々な方式からのアプローチによって行われています。近年の「量子コンピュータブーム」はGoogle, IBMなどの巨大企業がこのハードウェア開発に参入したことから始まったとも言われています。どの大学、企業が、どのような方式からのアプローチを行っているのか詳しく知りたい方は、よろしければ下記のリンクを参考にしてください。
Qmedia. "量子コンピュータを実現するハードウェア(後編)". https://www.qmedia.jp/making-quantum-hardware-2/