量子コンピュータの計算ってどうやってるの…量子ゲートを組み合わせるらしい

コンピュータの計算ってどのように行われているのでしょうか?

従来のコンピュータでは論理回路といって入力に対して特定のルールに従って出力をする素子が組み合わされて計算が行われています。

論理回路

論理回路は基本的に3つの回路(AND、OR、NOT)が存在します。例えばANDは2つの入力A,Bの両方が1である場合にのみ1を出力してそのほかの場合は0を出力するといったルールが決められています。

AND回路

量子コンピュータも同様に計算を行うためには量子ゲートを組み合わせて量子回路を作ります。

量子ゲートは従来コンピュータの論理ゲートと異なり物理的な素子が存在するわけではなく、量子ビットへの操作を表しています。

従来コンピュータはCPU内に予め回路が設計されていてプログラムによって回路が切り替わりますが、量子コンピュータではプログラムされた量子回路に応じて量子ビットに操作が加えられるという違いがあります。

この記事では具体的に量子ビットを操作するゲートにどんな種類があるのかを見ていきましょう。

パウリゲート:180度反転

パウリゲートとは状態ベクトルを軸に対して180度反転する操作です。X、Y、Zの3つの軸の種類が存在します。

パウリゲート

例えばXゲートを見ると、入力に|0>状態であった量子状態はXゲートを経ると状態ベクトルがx軸周りに180度反転するため|1>状態が出力されます。

つまりXゲートは量子ビットの状態の反転に用いることができます。

アダマールゲート:重ね合わせを生み出す

アダマールゲートはブロッホ球を斜めに切る直線周りに180度反転する操作です。

アダマールゲート

先ほどと同様に|0>状態の量子ビットにアダマールゲートを作用させると状態ベクトルはx軸方向を向いた状態となります。この状態は0と1の状態が確率50%で観測される重ね合わせの状態です。

つまりアダマールゲートは量子ビットに重ね合わせの状態を作る操作といえます。

さらにアダマールゲートを作用させると重ね合わせ状態は解除されて再び|0>状態へと戻ります。

CNOTゲート:2つの量子ビットのもつれを起こす

次は2量子ビットに作用させる量子ゲートです。

CNOTゲートコントロールビットターゲットビットという2つのゲートから構成されていて、コントロールビットが1の時にだけターゲットビットを反転させるという操作を行います。

CNOTゲート

CNOTゲートはアダマールゲートと組み合わせて量子もつれを生成するのに用いられます。

量子もつれ

アダマールゲートを通すと0と1が50%の確率で観測される重ね合わせ状態が生成されます。よって観測結果が|0>の場合はコントロールビットが0となるためターゲットビットは0となります。一方で|1>の場合はCNOTゲートによりターゲットビットは1に反転します。

つまり計算結果は|00>か|11>のどちらかにしかなり得ない(|10>や|01>にならない)量子もつれの状態を得ることができます。

量子もつれ状態を作ることによって計算の結果を絞り込むことが可能となり、測定の際の試行回数を減らすことができるのです。

量子回路を作って足し算をする

それでは実際に量子ゲートを組み合わせて足し算を行いましょう。

足し算に使用する量子ゲートはCNOTゲートトフォリゲート(CNOTゲートの3量子ビット版)です。

足し算の回路を作る際に注意する点は2つの入力が共に1である場合桁上がりが生じることです。この点に注意して回路を設計する必要があります。結果は下のような回路となります。cは桁上がりの位、sは最下位の位です。

足し算の回路

下のように入力に対して桁上がりを含め足し算が出来ていることが確認できます。

計算の詳細

このように従来コンピュータのような論理ゲートを用いた回路の構成とは大きく異なりますが、量子コンピュータにおいても量子ゲートを用いて演算を行うことが可能なのです。

コメント

タイトルとURLをコピーしました