Home What's QC Tutorial Shor Grover Samples Specifications Download Order Links Contact
ここでは簡単な量 子回路を作成してみます。作成する量子回路として現在のコンピュータに使われている様な基本的な論理回路を取り上げてみます。

論理回路で最も知られたものとしてAND回路とOR回路というものがあります。これは、次のような働きをする回路です。

AND 回路:
  0 1
0 0 0
1 0 1
OR 回路:
  0 1
0 0 1
1 1 1

このAND回路とOR回路の働きをする量 子回路を作ってみましょう。
まずAND回路ですが、次の様になっています。



アプリケーションを起動させます。上の回路図からも分かるように、必要なのは3量 子ビットなので量子ビット数を3に減らします。


1ゲート目の位置にNOT行列をおいてみます。


このNOTが基本になってAND回路が作られます。次に、このNOT行列を下図の位 置に移動します。


そして、制御点を2つ設定します。


これで形は出来上がりました。この回路の入出力は次の様になっています。


1量子ビット目と2量 子ビット目のそれぞれの値を変更することで、3量子ビット目に結果 が表示されます。ここで、入出力位置を変更したい場合は、スワップゲートを用います。下図はスワップゲートを用いた回路の例です。例えば、入力で1量 子ビット目と2量子ビット目を、出力で1量子ビット目と3量子ビット目を入れ替えると次の様になります。


AND回路はそのままにしておいて、次にOR回路の作成にとりかかります。OR回路は次の様になっています。AND回路によく似ています。


ここでは、論理演算におけるNOT記号の意味を表しています。
複数の量子回路作成を同時に作業することができますので新しい量 子回路を開いてOR回路を作ります。

Fileメニュー内のNewコマンドを選択して下さい。すると、新しい量 子回路が開きます。次にAND回路とOR回路を見ると、下図に示す同一部分があるのに気がつきます。


この部分をそのまま流用します。このゲートを選択し、コントロールキーを押しながら、作成済のAND回路のドラッグ&ドロップをしてOR回路にコピーします。


次に、2つのNOT行列を挿入して下さい。


最後に3量子ビット目の入力の値を1に設定します。


これで形は出来上がりました。この回路の入出力は次の様になっています。


ここで、作成したANDとORの回路は、様々な回路に用いることができるのでコンポジットにして用いると便利です。



シミュレーションは、通 常の実行と、ゲート毎の実行、カーソル位置までの実行の3種類があります。まず初めに、通 常のシミュレーションを実行してみます。


3-16項で作成したAnd.qcファイルを開きます。次に、入力値を決定します。




準備ができたら、Simulatorメニュー内のRunコマンドを実行してみましょう。


結果は、下図の様に001〉が確率1と出てきました。



入力ビットから、xとyのANDは0と予想されるので、3量 子ビット目が0で正解となります。では、


の場合はどうでしょうか。出力は3量 子ビット目が1となると予想できます。実際に実行してみましょう。


確かに、上図の様に3量 子ビット目が1となりました。シミュレーション実行後の結果は、下図に示すFileメニューのSave Resultコマンドを使って、テキストファイルとして保存することができます。


この時、結果はNumericウィンドウで指定したソート方法や表記方法に基づき出力され、保存されます。

次に、ゲート毎のシミュレーションとカーソル位 置までのシミュレーションを行ってみましょう。

先ほど作成したOr.qcを開いて下さい。ゲート毎のシミュレーションを実行します。下図に示す様に、SimulatorメニューのStepコマンドからGateコマンドを選択してシミュレーション実行します。


シミュレーションは、Gateコマンド実行毎に、ゲート一つ分だけ実行され、停止します。もう一度、Gateコマンドを実行すると、下図の様に次のゲートのシミュレーションが実行されます。




カーソルまでのシミュレーションの実行はゲート毎の実行と同様にカーソルの位 置でサスペンドします。


ゲート毎のシミュレーションやカーソル位 置までのシミュレーションは、シミュレーションの途中結果も保存することができます。

なぜ量 子コンピュータか?
量 子コンピュータとは何か?