検索
連載

量子ビットを初期化する 〜さあ、0猫と1猫を動かそう踊るバズワード 〜Behind the Buzzword(3)量子コンピュータ(3)(6/8 ページ)

今回のテーマはとにかく難しく、調査と勉強に明け暮れ、不眠に悩み、ついにはブロッホ球が夢に出てくるというありさまです。ですが、とにかく、量子コンピュータの計算を理解するための1歩を踏み出してみましょう。まずは、どんな計算をするにも避けて通れない、「量子ビットの初期化」を見ていきましょう。

Share
Tweet
LINE
Hatena

「量子ビットの初期化」だけでも、こんなに大変なのです……

 量子ビットの話に戻りましょう。量子ビットは、「大きさ」と「動き方のタイミング」の異なる”0猫”と”1猫”の重ね合わせからなる”1匹の猫”として、以下、私のコラムでは以下のような図で表記します。

 次回以降、量子ビットを使った量子ゲートの計算方法の説明を致しますが、そのためには、まず、計算前の量子ビットを初期化しなければなりません。これは、プログラム開始時に、初期変数に値を入力するようなものです。int a=2; とか、double b = 1.234; のようなものです。

 基本的には、量子ビットのブロッホ球の球面上の任意の場所の値を設定できなければなりません。”0猫”だけ、あるいは、”1猫”だけ(ブロッホ球の最下部、最上部)を出現させるというのなら、そんなに難しくないかもしれませんが、なによりもまず、”0猫”と”1猫”を同時に、かつ一定の確率で出現させる、という量子ビットの初期化処理が必要となります。

 そんなことが本当にできるのか ―― 実は、量子井戸の両端に加圧(電圧を加える)して、電気パルスを発生させて、その発生時間を変化させることで、"0猫"と"1猫"をコントロールすることができるようです。イメージとしては以下の図のような感じになります。

 この仕組みで、猫の大きさを制御できる理由は、よく分かりません。しかし、各種の論文の著者が「制御できる」といっているので、これ以上はツッコまないことにします(私、もう疲れているんです)。

 まず、この電気パルスの時間を変化させることで、"0猫"と"1猫"の出現確率を変えることができます。これはパルス時間に対して振動的に変化するので”ラビ振動”と呼ばれています。

 原理はともあれ、これで、”0猫”と”1猫”の大きさを変えることができることが分かりました。しかし、このパルス時間の単位はナノ秒であり、これは、光がたった30cm進む時間です。

 私、この単位を使ったのは、屋内設置型のGPS衛星を作っていた時以来ですが、ナノ秒レベルのパルスを制御するのがどれほど難しいかは、他の人より理解できていると思います。

 そして、パルスで使う電流量は、ピコアンペアです。これはフォトダイオードの暗電流(漏れ電流)の単位です。これ普通は素子の不良で発生する、超ウルトラ級の微量電流です。こんな電流を制御するというのは、(私の古い電気の知識では)スコープ外です。

 量子ビットの初期化(まだ計算が開始すらされていない)ですら、これだけの超厳密制御が必要ということに、めまいを感じます。

 しかし、まあ、なんとか、このパルス時間と電流の制御ができて、"0猫"と"1猫"の大きさを変えることができたとしても、"0猫"と"1猫"の動き方(タイミング)まではコントロールできるとは思えません。なぜなら、ここでのパラメータはパルス時間という1次元のパラメータですが、量子ビットの初期化は、「大きさ」と「タイミング(位相)」の両方、つまり2次元パラメータを制御しなければならないからです。

 つまり、このパルス時間の1パラメータだけでは、ブロッホ球上の任意の場所の量子ビットは作れないはずなのです。

 ここから、私の1週間に及ぶ、論文や資料との格闘の日々が始まりました。しかし、ラビ振動による出現確率の調整の話は登場するものの、位相調整方式についての言及が見つけられませんでした。

 もう訳が分からなくてヘトヘトになって、夢の中にまでブロッホ球が登場してくるようになって、ついに、私は「量オタのTさん」に泣き付くに至りました。Tさんは、私の質問の意図を理解されて、「なるほど、もっともな疑問です」とご納得頂き、その後、いろいろ調べていただくことになりました。

 結果として、Tさんは、電気パルスの周期の位相をずらすことで、ブロッホ球のもう一つの軸まわりの回転ができることを、突き止めてくれました。

 つまり、パルス時間とパルス周期の位相を変化させることで、少なくとも量子ドットビットの初期化は原理的には可能である、ということです。これが分かった後、私はようやく安眠することができるようになりました。

 今回の調査で分かったこと、それは、最終的に「観測」することで、量子ビットはデジタル的に”0”か”1”に確定するものの、量子ビットの初期化処理はつまるところ「アナログ処理」だということです。

 デジタルは、”0”と”1”以外の状態以外許さない、ということで、雑音を排除し、高精度かつ超正確な計算を実現しています。一方、今回のラビ振動を使った量子ビットの初期化は、アナログの時間とアナログの位相を使うことで、ブロッホ球上の全ての点の量子ビットを作り出します。

 しかし、前述した用に、ナノ秒単位のピコアンペアのパルス信号(しかも位相変動も含む)の制御が、そうそう簡単にできるとは思えません。

 私は、量子コンピュータのノイズ問題について、まだきちんと勉強していませんが、今回の量子ビットの初期化処理だけを見ても、これが相当に面倒な問題なんだろうなーということは、直感的に分かります。

[Tさんツッコミ!]最初の初期化は、”0猫”状態だけにするので、それほど難しくないと思います。しかし、後の量子計算(単一量子ビットゲート)で量子ビットの状態を制御する必要性が出てきます。

 いずれにしても ―― 量子ビットの初期化まで(まだ量子ゲートにすら届いていない状態)で、この調査と勉強と不眠の日々。

 ……なぜ私は、こんな目に遭っているのだろうか?

*)それは編集部が原稿を依頼したからです(担当M)

 ともあれ、「今度、連載の依頼を受けるときは、もっと詳細な事前調査を徹底的にしよう」とあらためて誓った、この1カ月でした。

*)おっしゃる通りです(担当M)

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る