RVMX解釈の量子コンピータの原理について


1.まえがき

 量子コンピュータとは一言で言うと量子力学的原理を用いた新しいコンピュータの概念です。
 古典コンピュータではビットが0か1の組み合わせで実現していました。
 しかし、量子コンピュータでは0・1又はどっらでもない状態がある量子ビット(Quantum bit)を使って実現しています。
 また、ここでの量子とは中性子・陽子・電子・素粒子・原子・原子核・イオン・光子・分子等が量子力学でな振る舞いをするものを言います。
 「量子の性質は人間の理解を超える」とか「量子を理解している人は1人として存在しない」とか言われています。
 しかし、原理を完全に理解できなくても、実験により色々検証されてコンピータとして使えると判断して現在に至っています。

2.量子ビット(Quantum bit又はQubit・キュービット)について

   基本となる量子ビットも不思議な性質があります。
   量子ビットは ブラ-ケット記法 <Φ|ψ>といわれる記法が用いられ、量子の状態をそれぞれ |0>,|1>として表現し、量子ビットはこれらの状態が重,合わさっています。
   表現はα|0>+β|1>(状態の重ね合わせ)、αとβは0と1になる確率。また|α|二乗+|β|二乗は常に1となる。
   つまり、量子ビットは α=1,β=0の場合 |0> の状態となり、 α=0,β=1の場合 |1>の状態となります。
   -1.1でも0でもない状態
    量子は波のような状態で分布し、常に変動しています(1でも0でもない状態とはベクトル[半径1で位相あり]を持って回転しているような状態)
    この様に位相を属性として加えたものをブロッホ球(Bloch sphere)といいます。
    しかし、量子を測定しようとすると1か0に固定されます。
    「量子の状態は常に波の確率分布で、位置やエネルギーといった量は意味をなさない。ある量を測定して確定すると、波がつぶれて確定された状態に落ち着く(このとき他の量が不確定になります)」
   -2.量子は互いにもつれている
    量子が二つ以上あると互いにもつれた状態になります。
    もつれている、とはどういう状態かというと、からまりあって量子を別々に割くことができない状態です。数学的には、
    また、最大限にもつれたベル状態(Bell state)といいます。
   -3.量子ビットの情報量
    古典ビットでは2×ビット数であたのに比べて
    2のビット数の階乗となり、非常に大きな量のデータを同時に扱え、量子コンピータの特徴の一つになっています。
   -4.量子テレポーテーション
    量子が「もつれ」合っていて、一方に対する操作が、他方にも影響を与えます。(二つがどれだけ遠くに離れていても、瞬時に影響は伝達されるのです)
    かのアインシュタインが異議を唱えたのもこの現象に対してです。アインシュタインは光の速度以上で物質の移動は無いとことを根拠にしていました。
    しかし、実験により検証されているため、実在します。
    この現象を利用すると、高速で盗聴されない通信が可能ということによります。2018/1に中国は7600Kmの通信に成功した発表しました。また、水中での通信にも成功したといわれています。
    これにより宇宙との通信にも使えます。現在機各国が軍事利用での研究をしています。
    中国の衛星通信を利用した量子が「もつれ」状態作成は、速度は汎用通信速度に抑えられ、厳密には量子テレポーテーションとは言えないと思われる。但し、暗号化には役立つと思われる。

3.量子ゲート

   論理ゲートは、古典コンピュータでの計算で、0 と 1 を電気的に表現したものを利用して論理演算を行います。
   一方、量子ゲートとは、量子演算の演算子に対応する演算を行うもので、ユニタリ行列と呼ばれる U ? =U=UU ? =I(I:単位行列) の行列でなければなりません。
   量子ビットを操作して目的の動作(コンピータとして)をさせる為の機能です。
   量子ゲートは上述の通り、ユニタリ行列であり k個のキュービットを演算するのに 2 k ×2 k の行列になります。
   量子ゲートの作用は、量子状態を表すベクトルとのゲートを表す行列を乗算することによって実現されるので、演算を行うために量子ビットを以下のように表現します。
   α|0>+β|1>=[a]
         [b]
   つまり、それぞれの状態は以下の行列で表せられます
   |0>=[1],|1>=[0]
     [0]   [1]
   このようにベクトルに変換して量子ゲートの演算を行っていきます。

   -1.Zゲート(Pauli-Z ゲート)
           0はそのままで1の符号を反対にする
           ブロッホ球上の Z 軸の回転を表現します。
           量子ビットは |0>Z=|0>、|1>Z=|-1>と変換されます。
   -2.Xゲート(Pauli-X ゲート)
           0と1をひっくり返す
           ブロッホ球上の X 軸の回転を表現します。
   -3.Yゲート(Pauli-Y ゲート)
           ブロッホ球上の Y 軸の回転を表現します。
           量子ビットは |0>Y=i|1>、|1>Y=-i|0>と変換されます。
   -4.Hゲート(Hadamard ゲート)
           0を(0+1)に、1を(0-1)に変換する
           量子ビットの重ね合わせ状態を表現することができます。
           量子ビットは |0>H=(|0>+|1>)/Sqrt(2), |1>H=(|0>-|1>)/Sqrt(2)と変換されます。
   -5.Sゲート(Phase shift ゲート)
           量子ビットの状態間の位相をずらす事が可能です。
           量子ビットは |0>S=|0>、|1>S=i|1> と変換されます。
   -6.CNOTゲート(Controlled-Not ゲート)
           アウトプットの1つ目は、インプットの1つ目に同じ。アウトプットの2つ目は、インプットの1つ目が1である場合だけ、インプットの2つ目の量子をひっくり返します

4.ハード環境

   量子は非常に不安定で、安定的に動作させるには極低温など環境が必要と言われている。
   しかし、光子等を使ったときは常温でも可能では?
   何れにせよ、量子コンピュータのハードは簡単には準備できないと思われる。
   よって、一般ユーザーが利用するには、大手のIDCなどが提供するCloud経由等になるのではと思われる。

5.その他

   本解釈はRVMXでの解釈で、間違いが含まれているかもしれません。
   現在、編集中です。

6.関連リンク

   -1.量子コンピータへのRVMXの取り組みと展望について
   -2.Microsoft Q#について

(有)RVMX