第7回情報系の物理学レポート

中村 好一

演習7 

整数を2つの整数の積に分解する高速アルゴリズムを実現する、量子コンピュータの計算方法を説明せよ。

解答  

大きな数を小さな数の積に分けるにはいろいろなやり方があるが本質的に「全ての数で割ってみる」というやり方 (例えば、8を1、2、3、4、5、6、7で割ってみて、4と2で割り切れるから8=4×2だ、と解るというやり方) よりも効率の良いやり方は無い、と信じられている。大きな数、例えば、20桁とか40桁の数になると、こういう単純な 計算をするのにもあまりにも計算量が膨大すぎて計算しきれなくなる。 これを量子計算機でやるには次の様にする(といっても、あくまでも比喩的な説明にすぎない。実際にこういうことをする わけではないが)。まず、分解したい大きな数より小さい全ての数の「中間状態」をつくる。(例えば、1547を分解した ければ、1、2、3、.......1546の全ての状態を重ねあわせた中間状態を作る。)そして、1547をこの「中間状態」 で割り算して「余り」を求める。すると、たった一回の割り算で1547を1547未満の全ての数で割った「余り」の重ね あわせの「中間状態」を得ることが出来る。つまり、分解したい数が20桁だろうが40桁だろうが、たった一回の割り算で 全ての「余り」を求めることが出来るという魔法の計算機が量子計算機というわけだ。この「余り」が「ゼロ」になっている 数だけを集めてくれば一回で分解が完了する。 だが、問題が一個だけある。「どの数のあまりがゼロになっているか」をどうやって調べるのか?一個一個の数について調べて いたら結局、大きな数の大きさ回だけ(1547なら1547回)演算をしなくてはいけなくなるので結局、ちっとも速くなら ない。答えが求まっていても「読みだし操作」に時間がかかってしまう。これでは何の意味もない。 これを回避するには、余りがゼロになった数だけを切り出す方法が必要だが、量子力学の原理で動いている量子計算機ではこれを うまくやることが出来る。この方法を用いて求めた答えは、50%の確率で正しい。50%の確率でも10回も繰り返せば、 10回全て外れる確率は0.5の10乗で大体1000分の一くらいになる。1000分の一でも駄目な確率があるのか、と思うかも しれないが、20乗でも100乗でも何回でも繰り返せば、いつか「回路のハード的なエラー率」より小さくなる。量子計算機と いえども、ある「装置」の上の「プログラム」に過ぎない。ハードの正確さ以上に正確なプログラムは必要ないというわけだ。 量子力学の原理を用いることにより、データの読みだしをせずに余りが「ゼロ」になっている数だけをある確率精度で導き出すこと に成功したことが、量子計算機の成功の秘密だったと考えられる。

演習 7’

量子コンピュータによる適当な具体例を一つあげて、それをもとに説明せよ。    

解答

(a)  

キュービット(qubit)とは、量子ビット(quantumbit) をもじったものである。これは、原子に正しい光を 当てて「0」から「1」へと反転させるときに、それに必要な時間のちょうど半分だけの時間光を照射すると、原子は「0」と 「1」に対応する波の重ね合わせの状態になる。これはちょうど「0」と「1」の真ん中のエネルギー状態、半分だけ反転した 状態ということができる。現在のコンピュータの古典的ビットは常に「0」または「1」でなければならないので、もしも この半分だけ反転という状態になってしまうと、これはもうただのエラーであるとしか言いようがない。したがって、このキュ ービットという状態は、量子コンピュータにとって、今までの古典コンピュータには見られなかった新しい状態で、これが何か をもたらしてくれるのではないかという期待が持てる。 たとえば、このキュービットの状態にある原子を読み出してみると、「0」である確率と、「1」である確率は1/2であり、 これはランダムビットであると考えられる。これは古典的コンピュータには無い物で、古典的コンピュータでは、不規則な関数 を使って擬似的に乱数を作ったが、量子システムでのコンピュータでは簡単に乱数を作り出すことができる。

(b)

簡単な量子論理ゲート ここでは、簡単な論理ゲートについて書いてみる。論理ゲートは、コンピュータを構成するのには欠かせないもので、大変重要 なものである。この論理ゲートの組み合わせにより、あらゆる計算や処理を行うのである。しかもそれは、NOT、COPY、 ANDの3つのゲートを用いるだけですべての 計算が可能なのである。 NOTはビットの反転である。Aが「0」のとき「1」に、B「1」のとき「0」にする。これは(a)で述べたことそのままで ある。ただし、通常のNOTゲートではできないが、量子NOTゲートでは、ビットを途中まで反転することができる。半分だけ 反転したものがキュービットである。 COPYゲートは、量子の世界では、2つの異なる原子の相互作用に基づいている。図のように、Bの原子は基底状態にあるとし て、Aが基底状態にあるのか励起状態にあるのかによりBの変化が決まる。Aが「0」のときBのエネルギーとの差がある値で ありBは変化しない。Aが「1」のときはBは光子を吸収し「1」となる。 ANDも原子の相互作用に依存している。3つのげんしA、B、Aが並んでいるとする。Bの基底状態と励起状態のエネルギー量 の差は、2つのAのエネルギー状態の関数である。Bは基底状態で、両隣のAの状態によりBが、変化しないか励起状態になるか が決まる。両方のAが励起状態(「1」)であるときのみ、Bの2状態のエネルギー差であるレーザー光を照射してBを励起状態 にする。それ以外ならば、Bは変化しない。

(c)

論理ゲートの接続 論理ゲートがあるだけでは何もできない。今度はその接続について考えてみたい。まず当たり前のことだが、普通の古典的コンピュ ータに使う「ワイヤ」は使うことができない。量子論理ゲートを接続するには、「量子ワイヤ」が必要となる。これを構成する のはとても困難なことである。古典的コンピュータでは、ある論理ゲートからの電圧情報を伝えるだけなので細い金属のワイヤ でことが足りた。しかし、量子論理ゲートの情報は、原子そのものが持っており、これを運ぶには陽子と電子に分けて移動させそ れをまた組み立てなければならない。また、陽子、電子はスピンを持っているので、それらを崩さずに移動させるのは困難なのである。 最近では、比較的簡単な方法も発見された。それは、光ファイバーや空気中を移動する1つの光子は、あるゲートからあるゲート へ何ビットもの情報を運ぶことができるということに注目したものだ。カリフォルニア工科大学のキンブルのグループは、光子 を1つの原子とともに微少な体積の中に集中させ、通常は小さな光子間の非線型相互作用を増強する非常に有望な技術を開発した。 これを用いて量子論理ゲートが得られる。1つの光子ビットは、もう1つの光子が「1」を表しているときに、途中まで反転する ことができる。この量子光ゲートのみで構成された量子コンピュータは、計算速度が速くしかもコヒーレンスを破壊するような 環境からの影響を比較的受けにくいのだ。しかし、この方法でも量子コンピュータを構成することは困難なのである。すべてのシ ステム内の光路の長さが、使用する光の波長に小さな比率をかけた長さ以内の精度でなくてはならないからである。 量子論理ゲートの接続法で、ほかの方法もある。スペインのカスティーリャ・ラ・マンチャ大学のシラク(J.IgnacioCirac)と、インスブルック大学のゾラー(PeterZoller) は、イオン・トラップ装置内で、キュービットを孤立させ、外界の望ましくないいかなる影響からも、キュービットを有効に隔離 するための着想を提案した。各ビットは、処理前に共通レジスターか「バス」に転送される。それが含む情報は、トラップ内の すべてのイオンを含む振動によって表される。NISTのワインランドのグループは、イオンと振動で符号化したビットの上 での線形および非線型演算するような、量子コンピュータを実現するための第一歩を踏み出した。数十、数百ビットを持つ イオン・トラップ・コンピュータの見通しはよく、すでに2ビット演算は達成している。コンピュータのビット数は、単に、 より多くのイオンをトラップ内に加えればよいのである。

(d)

量子計算 電気回路は、ビット列を異なった方法で操作する、線形素子(ワイヤ、レジスタ、キャパシタ)と非線型素子 (ダイオード、トランジスタ)からできている。線形素子は、入力信号を個々に変換する。非線型素子はというと、 通過する入力信号を相互作用させる。 回路は、少数の単純な線形および非線型作業を高速で行うことにより計算する。この作業の一つがNOTであり、 COPYである。NOTは、ビットの反転をし、COPYは、第2ビットの値を第1ビットと同じにする。これらは、 1つの入力が出力に反映しているので、どちらも線形演算である。もう1つ重要な作業は、2つのANDをとることである。 これは、もし2つの入力ビットがともに「1」ならば、第3ビットに「1」を出力し、そうでなければ第3ビットを 「0」にする。ここでは、出力が入力に相互作用しているので、ANDは非線型演算ということになる。 これら演算する素子が、論理ゲートである。もしデジタルコンピュータが、NOTゲート、COPYゲートの 線形論理ゲートと、ANDゲートの非線型論理ゲートを持てば、それは任意の論理的および算術的作業をする ことができる。それは量子コンピュータに対しても当てはまる。オックスフォード大学でドイッチュや バレンコ(AdriannoBarenco) と共同研究しているエカート(ArturEkert)と ロイドは独立に、量子ビット間のほとんどすべての相互作用が役に立つことを示した。実際に、量子コンピュータが、 ビットの反転ができれば、それは、任意の非線型量子相互作用を用いて、すべての計算が可能である。 それゆえ、種々の物理現象が、量子コンピュータに利用できるかもしれない。 実際には、汎用量子論理ゲートはすでに存在しており、トランジスタと同じ位の歴史がある。1950年代後半には、 量子のスピンを用いた単純な2ビット量子論理演算が実現した。スピンは単にある次回に関する粒子の回転の方向 であるが、エネルギー・レベルと同様に量子化されている。研究者たちは、水素原子内における電子のスピンと 陽子のスピンの相互作用を利用して、電子のスピンが「1」のときのみ、陽子のスピンを反転するようなシステム を組み立てた。これらの研究者たちは、量子論理については考えていなかったので、この効果を「二重共鳴」 とよんだ。そしてこの二重共鳴を、線形なNOT演算や、COPY演算を実行するのに用いた。 それ以来、バチンコ、IBMのディビンチェンゾ(DavidDiVincenzo)、ニューヨーク大学のスリーター (TychoSleator)、インスブルック大学のワインファーター(HaraldWeinfuter)らが、 陽子と電子のスピンを途中まで反転することにより、二重共鳴が、どのようにANDゲートを作るのに利用できるかを示した。 このように、量子論理ゲートは、いろいろできてはいるが、先ほども述べたように、適当な接続法がないので今の ところは、現在のデジタルコンピュータをしのぐ性能の量子コンピュータは存在しない。  

感想  

今回の課題は、とても難しく自分ひとりの力ではどうにもならず、友達相談してやりました。 また、量子コンピュータのホームページを手当たり次第探して、参考にした。