5.そもそも量子コンピュータって、何だっけ
その後、何冊か読んだが、今回は、
「スッキリ!がってん! 量子コンピュータの本(森 貴洋、ISBN978-4-485-60043-6)」
を読んで、知識を深めたことを中心に述べたいと思う。
この本では、「量子コンピュータの基礎」を、「今のコンピュータ」から説き起こしている。
そして、「量子ってなあに」との問いに答える形で、基礎の基礎を説いている。
そこでは、「量子」の「子」についての説明もある。
しかし、なぜ〝量〟子なのかの問いには答えていない。
筆者は、その説明が、以前に読んだ本にあったのを思い出し、その本
「りょうしりきがく for babies (作:クリス・フェリー/監訳者:村山 斉、ISBN978-4-7631-3766-1)」
を再度読みなおしてみた。
5.1 そもそも量子って、何だっけ
「りょうしりきがく for babies」は、一冊丸々が、量子(りょうし、quantum)って、何だっけの説明である。
要約すると、
● 物質は原子から構成される。
● 原子の中では中性子と陽子が核となり、その周りを電子が走りまわっている。
● 電子が走り回る複数の「レール」があって、電子はどれかのレール上にある。
● 核から遠いレールほど、電子のエネルギーが大きい
● 電子がエネルギーをもらうと、遠いレールに飛び上がる。
● 電子がエネルギーを失うと、近いレールに落っこちる。
● この、もらうエネルギー、失うエネルギーの量は、レール対が決まれば確定する。
● この、確定したエネルギー量のことを、「量子」と言う。
となる。
ここでは、「量子」の実体が何であるかは分からない。
また、原子とか電子とかが量子なのか否かも分からない。
この本(りょうしりきがく for babies)の解説とネット情報などによると、上記の内容(前期量子論)は、1905年頃までのことで、その後、「なぜ電子はレールを外れないか」などについての理論の発展があり、「量子力学」として結実した。
量子力学の特徴は、「量子は『波』である」ということである。
「波」と聞くと、名画「神奈川沖浪裏」みたいなダイナミックな波を想像したくなるかもしれないが、ちょっと(かなり?)違う。何も波のようには動いてはいないが、「周波数」、「波長」、「位相(phase:topologyとは無関係)」と言うべきものがそれぞれあり、「重ね合わせ」ということができる点などが波と同じなので、「波」という言葉を使っている。
「量子ってなあに」が一応分かったので、先に進む。
「量子コンピュータ関連書籍を読んで(その1、その2)」において、「量子を使っているから量子コンピュータと言う訳ではない」ということを述べたが、「スッキリ!がってん! 量子コンピュータの本」でも、そう述べている。
そして、「『量子』は今のコンピュータをつくるうえでも重要なのだが、『データ』には『量子』を使っていない。『データ』に『量子』を使ったコンピュータ、それが量子コンピュータだ。」と述べている。
では、「『データ』に『量子』を使う」とは、どういう意味だろうか。
5.2 量子コンピュータでのデータ
ここに書くことは、どこかの書物とかに書かれているものとは限らない。筆者が諸文献を読んで、理解した内容である。
5.2.1 「0」と「1」
まずは、コンピュータのデータの基本、「0」と「1」。
「りょうしりきがく for babies」において「レール上にある」と描かれていたことを拡張して、「状態」という言葉を使用することにする。重ね合わせがある状態は「重ね合わせ状態」、重ね合わせが無い状態は「純粋状態」と呼ぶ。
「りょうしりきがく for babies」においては、レールは3本あったので、「原子核と1電子の組」の純粋状態は3つ、「レール対に対応したエネルギー」の純粋状態も3つある。
このように、2つ以上の純粋状態があるとき、そのうちの1つをどれでもよいので決めて「|0>」と名づける。これは、今のコンピュータにおける「0」あるいは「false」に相当する。「スッキリ!がってん!」では「上向き矢印」とも言っている。
さらに、|0>以外の純粋状態の1つをどれでもよいので決めて「|1>」と名づける。これは「1」あるいは「true」に相当する。「スッキリ!がってん!」では「下向き矢印」。
「『どれでもよいので』って、そんないい加減なことで良いのか?。」と言われそうだが、筆者の理解では、良いのである。
今のコンピュータでも、何を「0」とし、何を「1」とするかは、かなりいい加減だと思う。
なお、「<…|」、「|…>」は、ブラ-ケット記法と呼ばれるもので、「<…|」をブラ、「|…>」をケットと読む。両方で「ブラケット」となる訳である。これらは、量子力学を記述するのに便利な記法として作られたが、量子コンピュータの理論においては、ケットのみを使用し、ブラは使用しない。
さて、「上向き矢印」と「下向き矢印」があるなら、「右向き矢印」とか「斜め上向き矢印」があっても良い。「スッキリ!がってん!」には、そう言う意味のことが書かれている。
実は、筆者は当初、「矢印」とあるのは「ベクトル」のことだろうと思って読んでいた。ベクトルとは、「大きさ」と「向き」を持つ量で、「平行四辺形の法則」によって、足し算(合成)と、足し算の逆演算である引き算が定義できるものであると認識している。
しかし、「スッキリ!がってん!」に書かれた内容は、平行四辺形の法則とは似ても似つかない。
「反対の向きを向いた矢印は、重なればなくなってしまう。」との記述があるが、これは明らかにウソである。
たとえば、上向き(|0>)と下向き(|1>)は、反対の向きを向いているが、重ねても無くならない。
その説明の中に「ブロッホ球」という言葉があったので、ネットを検索してみた。そして、「どうもこれは、私の知っている『ベクトル』ではないらしい。『矢印』という言葉はスッキリしない。」と考えるようになった。
さらに、「この『矢印』を『ブロッホ・ベクトル』と呼ぶ人もいるらしいが、合点できない。」と思う。
5.2.2 「0」、「1」以外のデータを球面上の点として追加
では、「矢印」、「ベクトル」でなく、なんという言葉を使ったらスッキリし、合点できるのだろうか。
筆者は、「時計の針」、「計器の針」の「針(hand)」が良いと思う(「針」という言葉は、誰も使ってないようだ)。
時計の針なら、|0>は「上向き」なので12時を指し、|1>は「下向き」なので6時を指す。「右向き」は3時、「左向き」は9時。
しかし、「前向き」とか、「後ろ向き」とかもあるので、時計の針が指せるところ(=円周上)だけでは足りない。
それで全体としては球になるので、「ブロッホ〝球〟」。「ブロッホ」は、これを考えた人の名前らしい。
球面になるので、地球における緯度、経度に相当するものを考えることもできる。
但し、緯度に相当するものは、赤道からの角度ではなく、北極(=|0>)からの角度を用いる。
だから、北極点は90度でなく0度、赤道上の点は0度でなく90度、南極点は90度でなく180度である。
北緯なのか、南緯なのかを考える必要は無いし、欧米人が不得手なマイナスの数を考える必要もない。
また、経度に相当するものは、東経のみを用い、西経は用いない。
日付変更線を越えても日付は変わらず、180度以上となり、さらに進んでいって、360度に達する。そこでやっと日付が変わる。
東経なのか、西経なのかを考える必要は無いし、欧米人が不得手なマイナスの数を考える必要もない。
経度は、位相を表すということになるようだ。
5.2.3 ブロッホ球面上の点に対する演算
こんなに素晴らしいデータ表現ができても、実際にこれを使って計算ができなければ、意味がない。
「『どれでもよいので』って、そんないい加減なことで良いのか?。」と上述したが、ブロッホ球面を作るにはそれでよいが、実際に計算に使用することができるためには、やはり、条件がある。
どうも、ブロッホ球面上からブロッホ球面上への移動は、ブロッホ球面の中心を通る直線を軸として回転するということになる必要があるらしい。
例えば、9時と3時を結ぶ直線を軸として回転すると、|0>と、|1>は、入れ替わる。これは、NOT演算に似ているが、前向きと後ろ向きが入れ替わるので、NOTとは、ちょっと違う。
「● 電子がエネルギーをもらうと、遠いレールに飛び上がる。」は、「|0>→|1>」だから、ブロッホ球面上での移動だけど、…
これは、「すべてを|1>にする」という演算になるように思えるが、「位相」を考えると、それはあり得ないらしい。
「『量子コンピュータ』超並列計算のからくり(竹内 繁樹、ISBN978-4-06-257469-3)」
を読んで、筆者の拙い頭で考えたのは、
遠いレールに飛び上がった電子は、すぐにエネルギーを放出して、元のレールに戻る。
元のレールには、はじめからあった電子と、戻ってきた電子とが「混在」する。
結果として、はじめからあった電子とは、異なった位相となる。
ということである。