もはや怪談、「量子コンピュータ」は分からなくて構わない:踊るバズワード 〜Behind the Buzzword(1)量子コンピュータ(1)(8/9 ページ)
「業界のトレンド」といわれる技術の名称は、“バズワード”になることが少なくありません。世間はそうしたバズワードに踊らされ、予算がバラまかれ、私たちエンジニアを翻弄し続けています。今回から始まる新連載では、こうしたバズワードに踊らされる世間を一刀両断し、“分かったフリ”を冷酷に問い詰めます。最初のテーマは、そう、今をときめく「量子コンピュータ」です。
量子ビットを、ドタバタさせたまま計算する
さて、量子ビットの話に戻ります。量子ビットとは、クルクル回り続ける"0"ビット(0猫)と、同じ角速度だけど、振幅(ベクトルの長さ)と位相が違う(回転が先行または後攻している)"1"ビット(1猫)を足し合わせた状態に「する(×なる)」ビットと考えてください。
"0猫"と"1猫"は、1つの量子ビットの中に同時に存在しており、基本的にどんな状態になっているのかは分かりません。量子は観測すると状態が確定してしまう(ドタバタ状態が消え失せる)からです。
次回以降に説明しますが、量子ビットを使った量子ゲートの計算は、量子ビットの状態を調べないまま(観測しないまま)で、計算を続けなければなりません。
なぜなら、計算途中で量子ビットを観測してしまうと、ドタバタしている量子状態が壊れて"0"か"1"の状態で確定してしまい、そこで量子計算ができなくなってしまうからです。
つまるところ、量子コンピュータとは、「2つの状態"0猫"と"1猫"を同時に持ちながらドタバタしつづけている量子ビットを、そのドタバタを止めさせないようにしながら計算するもの」という理解で、おおむね間違っていません。
その計算とは、論理ゲートを使うのですが、古典コンピュータで使われているNOT, AND, OR, XOR,とは少し違います。例えるのであれば「量子のドタバタの暴れ方を変える」という感じになります(次回以降に説明します)。
なお、量子ビット用の論理ゲート(量子ゲート)を使って計算しても、量子ビットは「ドタバタ」している状態のままです。
そこで、計算の完了した段階で量子ビットを「観測」します。「観測」することで、「ドタバタ」が一瞬で消え去り、"0"か"1"かが、確定することになります。
ただし、"0"になるか"1"になるかは、確率的に決定するとも言えますし、タイミングで決定するとも言えます。
確率的な決定という言い方であれば、もし"0猫"の振幅の二乗が0.9、"1猫"の振幅の二乗が0.1の量子ビットであれば、収束後、90%の確率で"0"になり、10%の確率で"1"になる、ということです。
タイミングでの決定という言い方であれば、"0猫"の振幅が"1猫"よりも大きい時点で観測すれば、"0猫"で確定する、ということです。逆の場合は、"1猫"が観測されることになります。
量子コンピュータと古典コンピュータの決定的に違う点は、完全に同じアルゴリズムの計算を行っても、確率の値または観測のタイミングによって、計算結果が変わってしまう、という点にあります。
私たちは、こういう量子的振る舞いをする計算の経験がありません。ですから、量子コンピュータは、「気持ち悪い」コンピュータとも言えるのです。
では、最後に、次回以降に頻出させる予定の「ブロッホ球」について簡単に説明します。
私、ブロッホ球を「量子ビットの3次元モデル」と勘違いをして、量子コンピュータの勉強が思いっきり遅延しました。皆さんに、この轍を踏んで欲しくはありませんので、この場で、恥をさらしてお話をします。
ブロッホ球とは、量子ビットの"0猫"と"1猫"が併存している状態を足し算して一つの式としたものを、3次元の半径1の球面として表現したものにすぎません。
3次元の半径1の球面を表現する式は、3次元f(x,y,z) = x2 + y2 + z2 = 1 で表現可能ですが、もう一つの方法としては、長さ1のベクトルと2軸の角度で表現することができます(棒をブンブン振り回す子どもをイメージしてください)。
以下に、その計算式の概要を記載しておきます(スキップして頂いて結構です)。
では、今回の内容をまとめます。
【1】新連載「踊るバズワード 〜Behind the Buzzword」の最初のテーマとして「量子コンピュータ」を始めました。このコラムの目的は、いろいろありますが、「量子コンピュータを理解していないライターを「せせら嗤う」ための、皆さんと私の勉強」と位置付けました。
【2】量子論を扱うアニメーションを紹介して、そこで使われている量子論の解説を行っていました。その結果、かなり量子に関する誤解はあるものの、イメージとしては伝わっていることを示しました。
【3】最初に、私(江端)の量子コンピュータに対して間違った理解をしていた項目を全部書き出しました。ほぼ間違いなく、これから量子コンピュータを学ぶ方も同じ轍を踏むと確信したからです。
【4】量子力学における量子の振る舞いの「気持ち悪さ」について、徹底的に説明をしました。量子が「波」か「粒」のどちらであるかははっきりとは言い切れず、さらに、「人間の主体的な関与(観測)によって状態が変化する」し、原子よりずっと大きなが分子でも、同じ現象が発生していることを示し、「量子は、その辺の怪談よりずっと怖い」ことを説明しました。
【5】この気持ちの悪い量子を説明する為の2つの解釈について、かの有名な「シュレーディンガーの猫」等の話を含めて説明しました。
【6】量子コンピュータの最小単位である量子ビットについて説明しました。特に量子ビットが、自然界の量子をそのまま使用するものではなく、人工的に作り出すものであること、かなり面倒くさい制約があること、そして"1"と"0"のビットが併存しながら、状態をバタバタと変化させ続けさせることや、最終的に、量子ビットを観測することで計算結果が確定する、などの説明を行いました。
以上です。
この世界に対する私たちの理解は、まだまだ足りない
今回、「オイラーの公式を使うだけで、波動計算が簡単にできてしまうが、(少なくとも私には)その理由が明確に説明できない」というお話をしました。
似たような話に「ラプラス変換」という関数解析手法の話があります。この解析は、ある種の微分・積分は積などの代数的な演算に置き換えることができるため、複雑な制御や電気回路の計算を、足し算やかけ算レベルで片付けることができるようになります(大学でたたき込まれました)。
で、面白いことに、どうやらラプラス(ピエール=シモン・ラプラス)さん本人が、「なぜ、そのやり方で問題が解けるのか」を知らなかったらしいです(今は数学的に論理付けされていますが)。
しかし、ラプラス変換は、ラプラスさん本人だけでなく、多くの技術者が、200年以上も前から、「便利な道具」として使い倒してきました。「なぜその道具が役に立つのか」は、ずっと後回しにされてきました。
量子コンピュータにしても同じです。量子コンピュータが、どういう原理で動こうが、私たちのほとんどは、古典コンピュータ(今の普通のパソコン等)と同様に、その計算機を「便利な道具」として使うだけでしょう。
前半に記載した、今回の連載のタイトル案、
「量子コンピュータは、分からなくても構わない」
「『量子コンピュータを理解している』といっている奴は、嘘をついている」
「なぜ、量子コンピュータの勉強は失敗するのか」
「量子コンピュータが理解できないのは、私たちの責任ではない」
「量子コンピュータを理解するのは諦めましょう」
というのは、正直な私の感想です。別に、量子コンピュータの原理を知らなくたって、私を含むほとんどの人には、本当にどーでも良いことなのでしょう。
それでも ―― 私は、今回の量子論の勉強で、私たちの世界は「怪奇現象」で溢れているということを知りました。
これは、ひっくり返せば、「私たちの、この世界に対する理解が、まだ全然足りない」ということです。
量子論の研究は、これからもいろいろな人たちによって進められていき、私に新しい世界を見せてくれると思います。
「量子コンピュータは、分からなくても構わない」のですが、それでも、「一部だけでも理解できると、結構ワクワクすることもありますよ」ということは、私でも言えると思うのです。
Copyright © ITmedia, Inc. All Rights Reserved.