科学と技術を雑学的に気まぐれに語るブログ 

科学と技術に関係したエッセイのようなもの

東京大学の光量子コンピューター

先日(2019年10月18日)、東京大学大学院工学系研究科が光量子コンピューターについての発表を行いましたので、その内容について簡単な解説を行いたいと思います。もちろん、学術的にはほんのさわり程度しか理解できていませんので、あれこれと不十分な点はあると思いますが、ご了承ください。ただ、正直言って、「こんなやり方があったのか」と驚いています。

 

www.itmedia.co.jp

 

この記事に限りませんが、一般的なIT系メディアが量子コンピューターについて記事を書いても、記者が量子コンピューターをなかなか理解できず(無理もないことですが)、プレスリリースから適当に抜粋したみたいな記事になり、結局よくわからないことが多いので、元のプレスリリースを当たってみました。

 

下記リンクが元のプレスリリースですが、WebページではなくPDFになってます。

 

大規模・汎用量子計算を実行できる量子もつれの生成に成功 ―新しいアプローチで量子コンピューター実現に突破口―

 

この中の「2.発表のポイント」に3つのポイントが書いてありますが、学術的価値観とは若干ずれるとしても、一般の興味としては3番目のポイント、

 

現在主流のゲート方式の量子コンピューターの限界を克服できる新しいアプローチであり、量子コンピューターの実現への新たな可能性を拓いた

 

が最も重要かと思います。

 

これまでこのブログで量子コンピューターについて紹介してきた際に、量子コンピューターには「量子ゲート型」と「量子アニーリング型」があると言って来ました。IBMGoogleが開発しているのは「量子ゲート型」で、D-WAVEが製品化しているのが「量子アニーリング型」です。

 

そして、今回の東京大学大学院工学系研究科の発表は、その二つのどちらでもない方式(「一方向量子計算方式」と呼んでいます)を実現するための基礎技術に大きな進展が見られた、というものです。

 

つまり、「量子ゲート型」と「量子アニーリング型」とは別の「一方向量子計算方式」という方式の実現可能性が高まった、そして「一方向量子計算方式」には、「量子ゲート型」の実現を阻む主な困難が原理的に存在しないという利点がある、ということです。

 

量子アニーリング型」は「計算」というよりは「選択」に近い感じの特殊なアーキテクチャなので、ここではちょっと脇に置いといて、「量子ゲート型」と今回発表の「一方向量子計算方式」を比較して考えてみます。

 

「量子ゲート型」の考え方は、古典コンピューターの演算に近いものがあります。ビット同士のANDとかORとかEORの演算を組み合わせて様々な計算を行うのが、我々が普段使っている古典コンピューターのCPUですが、「量子ゲート型」もそれに似ていて、CNOT(制御NOT)などの(量子の重ね合わせを保持する)論理演算を組み合わせて各種の演算を実現しています。

 

例えば古典コンピューターのANDを実現する回路を作ろうとしたら、32bitとか64bitとかのレジスター(演算のための小容量の一時記憶場所)を3つ用意して(a, b, cとしましょう)、aとbのAND演算の結果をcに書き込むように作ればOKです(aに書いても悪くないんですけどね)。そして、メモリとレジスターの間でデータのやり取りができれば、どんなデータのANDも行うことが可能です。

 

一方、量子コンピューターの場合、「量子メモリ」というものが存在していません(研究は進められていますが、量子状態の重ね合わせを保持することと読み書きすることが相反するので、なかなか難しいのです)ので、例えば100量子ビットの「量子ゲート型」コンピューターは100量子ビット全部がレジスターで、レジスターの一部の量子ビットに対して演算を行わなければなりません。

 

下図は前述のプレスリリースからの引用です(以下、図は全てプレスリリースからの引用です)。量子ビット数が増えるに従って、必要となるオレンジ色のゲート(ある演算機能を持った回路)数が劇的に増えることがわかると思います。

 

f:id:nose-akira:20191022154324p:plain

量子回路モデルのイメージ図

 

つまり、メモリとレジスターでやり取りが出来る古典コンピューターと違い、全量子ビットの全ての組み合わせを演算出来るように、演算回路を作る必要があります。実用に足る量子ビット数はメガ単位以上になると思いますので、それらの全量子ビットを結ぶ回路を作るのは大きな困難になります。

 

以上が、「量子ゲート型」の構造的な困難です。

 

一方で、 「一方向量子計算方式」には原理的にその困難が存在しません。その理由の前に、「一方向」という言葉の意味を説明しましょう。プレスリリースには「一方向」の解説はなかったので、以下の説明は私の推測ですが、多分外してないと思います。

 

古典コンピューターのAND演算などは基本的に「一方向」です。a AND b --> cの演算結果のcだけを見て、aとbを生成することは出来ません。aとbの値をどこかに保存しておけば、それを参照することは可能ですが、AND演算の出力から、入力データを特定することは出来ないのです。まあ、当たり前のことです。

 

ところが、「量子ゲート型」の演算は全て可逆過程なのです。説明は省きますが(波動関数の時間対称性とか、まあそういうことですが)、それが「量子ゲート型」の量子コンピューターだと思って下さい。可逆過程、すなわち双方向です。(ちなみに「量子アニーリング型」は不可逆です)

 

そして今回の 「一方向量子計算方式」ですが、原理的に「一方向」であることはもちろん、ネーミングとしては、アーキテクチャの特徴である「2次元クラスター」には触れず、あえて双方向である「量子ゲート型」のアンチテーゼ的である点が興味深いです。 (「2次元クラスター」の特徴の一つは一方向なのですが)

 

 何がどう「一方向」なのかと言うと、まずは「2次元クラスター」のイメージ図を見て下さい。

  

f:id:nose-akira:20191022074108p:plain

一方向量子計算のイメージ図
 
グレーの◯が量子ビットで、それを縦横の2次元に並べています。量子ビットの間の実線はその二つの量子ビットに「量子もつれ」があることを示しています。えーと、「量子もつれ」とは何ぞや、という真面目な説明は割愛します。量子物理学の専門家以外はWikipediaを見てもわからんとは思いますが(私もよくわからんです)、一応リンクしておきます。

 

ja.wikipedia.org

 

ここでは(あくまでも「ここでは」)、「量子もつれ」あるいは「量子エンタングルメント」とは、二つの量子ビットが特殊な関係にあり、片方の量子ビットの「測定」が他方の量子ビットに影響を与える、そういう関係であると理解しておいて下さい。

 

例えば、量子もつれ状態にある量子ビットXとYがあって、XもYも0と1の重ね合わせ状態だとします。そうすると、仮にXを観測して0という結果が得られたらYの重ね合わせ状態が壊れて1に確定する、というようなことです。この性質を上手く使うと、ビットの演算っぽいことが出来そうな気がしませんか?

 

何だかよくわからん話ですが、アインシュタインも「わからん」と言っていたので、安心して下さい。

 

で、上図に戻りますが、「量子もつれ」状態にある量子ビットが2次元に並んでいて、それぞれの量子ビットの右下に黄色いカマボコ形の測定器があります。「測定器」と言ってもマクロな機器ではなく、「光量子と相互作用するちょっとしたミクロな仕組み」程度に考えて下さい。

 

これらの測定器のうち特定の測定器を動かして測定してやると、その部分の「量子もつれ」状態が壊れていきますが、それを上手く使って演算してやろう、というのが「2次元クラスター」のアイディアです。

 

その演算の様子は下図になります。

 

f:id:nose-akira:20191022161409p:plain

クラスター状態の構造のイメージ図

 

2次元の意味は、入力データを表現するのに1次元、計算を行うのに1次元(最も基本的な演算に1列使い、それを複数組み合わせると、どんな計算でも行えます)、合計2次元です。そして、 黒丸は量子ビットで重ね合わせ状態にありますから、この2次元クラスターは、入力から計算経過および出力までの全ての状態を表していることになります。

 

この図からは入力のビット数や演算のステップ数をを増やしても、回路の複雑さに大きな影響がないことが分かります。単に、縦のサイズと横のサイズが増えるだけなので、それぞれが1次関数的な増え方をするだけです。

 

そして、量子ビットの実態としては、光を用いて(つまり光量子を用いて)「時間領域多重」という方法で量子ビットを実現するため(これも画期的な技術)、2次元クラスターを縦横に拡大して行くことに大きな困難はありません(下図)。

 

f:id:nose-akira:20191022161327p:plain

時間領域多重のイメージ図

 

さて、十分に大きな「2次元クラスター」が得られ、それで解くべき問題の入力データとその計算が表現出来たとして、そこから特定の測定器を動作させることで出力データを確定することが出来ます。つまり、解が得られるということです。

 

ただし、どの測定器をどういう順番で動作させるかは、自明なことではありません。解くべき問題と個々の測定機の動作を繋げるロジックが必要になります。一般的には量子アルゴリズムと呼べると思いますが、この「2次元クラスター」に対して最適化された量子アルゴリズムについては、私は寡聞にして知りません。おそらく、実用性の高い量子アルゴリズムの開発は今後の課題の一つではないかと思います。

 

 今回の発表は「『2次元クラスター』状態を生成できたこと」であって、 「一方向量子計算方式」の量子コンピューターの実用化にはまだまだ先が長いのですが、アーキテクチャの新規性やIBMGoogleとは別のアプローチであること、日本発の技術であることなど、その将来を大いに期待したいと思います。