2008-10-17掲載
「量子コンピュータ編」も
残り少なくなってまいりました。
ところで、量子ではなく
古典的なコンピュータの場合は、
ビットを初期化して、データ入力し、
0と1の情報を担うビット上の演算を行い、
ビットを読み出して答えを得る、
というのが大まかな流れですね。
これに対して、
量子コンピュータの場合は、
高次元なヒルベルト空間を
量子状態が解へ向かって移動していく
ということを見てきました。
量子系ならではの
この巨大な空間に着眼した計算方法が
量子コンピュータ。
というわけですねえ。
しかし、この巨大なユニタリー変換を
どのように実現したらいいのか、というと
どうもそこいらへんで、
わたしの想像力が、
ぶちん、と途切れてしまいます。
そこで今回のタイトルは
「量子だってゲートを組みます。」
そうなんです。
量子もゲートで演算できるんですって。
ゲートって、
「門」って意味ですよね?
ええと、
情報処理でゲートという時は、
ロジックゲート、つまり
論理素子のことを指すのがふつうですね。
ゲートを使って、
回路を作って、
計算するんですね?
はい。
古典的な情報処理では、
少数の簡単なゲートを用いて、
それを組み合わせることによって、
複雑な処理を行っています。
中でもよく用いられるものに
AND、NOT、ORという
3つのゲートセットがあります。
この3つを使って、ビット上のすべての演算を
組み立てることができます。
ちなみにこのように
比較的少ない種類のゲートを用いて
すべての演算をあまねく構成できるゲートセットを、
古典的な情報処理ではコンプリートと言います。
ふむふむ。
ということは……
AND、NOT、ORで、ひとつの
コンプリートなゲートセット
というわけですね。
これさえあれば、その組み合わせで
どんなにややこしい演算でも組める
というわけだから、
なかなか便利ですよねえ。
はい。
そこで、もし量子情報処理の場合も、
あるゲートセットがあれば
どんなユニタリー変換でも
ゲートの組み合わせに分解できる、
ということがわかれば、
古典の場合と同じように
うまく演算ができそうに思われます。
え? あのユニタリー変換という
ぐちゃぐちゃのプロセスが、
なんとシンプルなゲートの組み合わせに?
ええ。
で、それは、その……
できそうなんですか?
ええ。
そうかあ……。
あの底知れない「ユニタリー変換」に
なんだかだいぶ把っ手がつく気がします。
で、それはどんなゲートなんですか?
1量子ビット操作を行うゲートと、
2量子ビット操作を行うゲートの組み合わせで
すべてのユニタリー変換が実現できる
ということがわかっています。
ふむむ。
1量子ビットといえば「重ね合わせ」
2量子ビットといえば
「エンタングルメント」でした。
(
第16週
、
第20週
を参照)
量子計算のゲートとして
よく知られているもののひとつに
「CNOTゲート」
というのが
あります。
「CNOTゲート」
は、
エンタングルを生成する
2量子ビット操作ゲートです。
ふむむ!
ところで、少数のゲートで
すべてのユニタリー変換を構成できる
ゲートセットを
「ユニバーサルゲートセット」いいます。
さきほどの
「CNOTゲート」
と
1量子ビット操作との組み合わせで、
「ユニバーサルゲートセット」を
構成できるのです。
そうなんだ……。
また、量子計算の
「ユニバーサルゲートセット」は、
これだけではなくて、
ほかにも何種類かがすでに見つかっています。
また同じユニバーサルゲートセットを使っても
ゲートの組み方はいろいろ考えられます。
ということは……
ちょっとまとめますよ。
量子コンピュータの場合、
1
量子ビットを0の状態にして初期化
2
ユニタリー変換(ゲートに分解して演算)
3
量子ビットを測定して、解を出力
ということですね?
はい。
やったー!
じゃあもう、できあがりじゃん。
そうですね。
で、何を計算しましょうか?
へっ?
これでまあ、計算機のほうは準備できた、
と考えるとしましょう。
しかし、ではどんな問題を、
どう解かせるのか?
まだ話題に上っていませんよ。
どんな問題ねえ。
解く前に、その問題を考えるのが、
難しいですねえ。
ではそろそろ、来週としましょうか。
ええっ!
(つづく)
量子計算にもゲートがあって
回路が組めるんだ!
と思うと、
なんとなく量子コンピュータも
身近に感じられたりします。
量子計算ならではの
「ユニタリー変換」があって
それがゲートに分解できて、
というところまで、
とうとう、やってきましたね。
そこで来週は、
どんな計算を、どのように解くのか
という問題を、
取り扱いたいと思います。
ずばり、「アルゴリズム」です。
どうぞお楽しみに。