第 14 回 量子コンピュータ

本日の内容


量子 bit

量子コンピュータで行う計算も情報処理に違いありませんので、情報の単位 は bit になります。 量子状態でbitを保持できるとします。 量子状態は人間による観測によって確定して、情報を取り出すことができま す。 但し、量子状態は通常は確率的な値になります。つまり 1 bit を表す量子 状態を観測すると、確率 a で 0 が取り 出せ、確率 b で 1 が取り出せる ということになります。 この量子bit(q bit)の実現方法も色々議論されてい ますが、ここでは実現法ではな く、数学モデルについて説明します。

量子状態には、重ね合わせという概念があります。 これは複数の状態が同時に重ね合わさっていて、人間が観測することにより、 一つの状態に収束しそれが観測されるという概念です。 これをコペンハーゲン解釈といいます。

量子力学の問題点を指摘するための、「シュレーディンガーの猫」という思考 実験があります。これは、箱の中に猫を綴じ込め、α線の発生源、 観測器、毒ガス発生器を仕組み、α線が観測されたら毒ガスが発生し、猫が 死ぬように作られた装置を考えます。 一時間以内にα線が観測される確率が 50% であるとします。すると、コペンハーゲ ン解釈によると、箱の中の猫は、生きている猫と死んでいる猫が量子状態で 重ね合わさっていると考えることができます。 この生きている猫と死んでいる猫の重ね合わせの状態というのは、人間の思 考として俄に受け入れがたいものですが、コペンハーゲン解釈ではそう考え るもので、しかも、実際に見ようとすると一つの状態に収束してしまうので、 決して重ね合わせ状態を観測することはできません。

ここで、Dirac の記号を導入します。 行ベクトルを φ | と書き、ブラベクトルと呼びます。 一方、 列ベクトルを | ψ と書き、ケットベクトルと呼びます。 すると、内積は φ | ψ と書けます。

さて、量子ビット(q bit) に関しての数学モデルを考えます。0 の状態と 1 の状態をそれぞれ線形代数の位置ベクトルとし、正規直交基底であるとしま す。 0状態の基底を | 0 で表し、 1状態の基底を | 1 で表すと、これは二次元の正規直交基底なので次が成り立ちます。

| 0 = ( 1 0 ) , | 1 = ( 0 1 )

これの重ね合わせは a | 0 + b | 1 と書けます(a,bは複素数)。 状態ベクトルが常に大きさが1であるとすると、 | a | 2 + | b | 2 = 1 という制約が必要です。 この時、 0, 1 がそれぞれ観測される確率は、 | a | 2 | b | 2 になります。

多 q bit

さて、複数の量子ビットの取扱いをどうするかですが、基本的には同じ考え 方をします。 2 bit の場合、取りうる状態は 00, 01, 10, 11 です。 この 4 状態はそれぞれ別の状態なので、正規直交基底になります。 4次元の正規直交基底なので次のようになります。

| 00 = ( 1 0 0 0 ) | 01 = ( 0 1 0 0 ) | 10 = ( 0 0 1 0 ) | 11 = ( 0 0 0 1 ) )

これらの状態の重ね合わせを次のように書きます。

| φ = α 00 | 00 + α 01 | 01 + α 10 | 10 + α 11 | 11

つまり、これは4次元単位球の表面の位置ベクトルを意味します。 | φ を観測して、 00, 01, 10, 11 が観測される確率は、それぞれ | α 00 | 2 , | α 01 | 2 , | α 10 | 2 , | α 11 | 2 になります。

このように単純にビット数が増えると、次元が増えます。 これを演算として扱う、テンソル積を導入します。 これは、内積空間 V, W に対して、それぞれの基底が { | ξ 1 , ... , | ξ n } , { | η 1 , ... , | η m } である時、 | φ | ψ = | φ φ の意味は前述した通り、次元を拡張するだけです。

n個の q bit はこの様に2n次元の基底の重ね合わせで表現されます。

量子計算

さて、この q bit を物理現象に基づいて計算させることを考えます。 これは量子力学に従います。 先ほども述べたように、大きさ 1 で正規化するので、実際にこの量子計算 は q bit に対するユニタリ行列の積になります。

さらに、研究により、複雑なユニタリ行列は以下のような基本的なユニタリ 行列を多次元に拡張(0を挿入)の積で表せることが分かっています。

Hadamard
1 2 ( 11 1-1 )
位相
( 10 0i )
制御NOT
( 10 00 01 00 00 01 00 10 )
π/8ゲート
( 10 0eiπ/4 )

従って、これらのユニタリ行列と対応した物理現象が起きるような装置を作 成すれば、量子コンピュータが実現できるようになります。 一つのq bit を実現するのに、2次元のベクトルが必要で、 上記のユニタリ行列が2または4次元なので、これは従来のコンピュータの概 念では論理ゲートにあたります。 つまり、ある q bit の列、 | φ に対して上記のユニタリ行列 U1, U2,...,Un があって、 U1 U2 ... Un | φ を計算するのに、実際は個々の特定の q bit に対して、上記の定めら れた演算を行う回路のようなものを考えれば良いことになります。

14-1. 量子コンピュータの基礎

二次元複素ベクトル空間

また、複素数 c = x + y i に対して、共役 c * = x - y i で表します。 また、大きさは | c | = a2 + b2 とします。

行列 A ^ = ( a i j ) に対して、転置行列 A ^ t = ( a j i ) で表します。 また、エルミート行列 A ^ * = ( a* j i ) で表します。 さらに、単位行列を I としたとき、ユニタリ行列 U は下記を満たす 正方行列です。

U U * = I

一様な磁場の中での陽子などの スピンを考えると、 特定の量子が重ね合わさっている状態で、観測すると 0 の情報か 1 の情報が 得られます。 このように、行列力学的な解釈として現象が二現象の重ね合わせになるような ものをデータの保存を行う単位として選びます。 この時、状態として、二つの現象を区別する単位ベクトルを | 0 = ( 1 0 ) | 1 = ( 0 1 ) とし、これの重ね合わせを計算の単位(1bit)とすることとします。 これを Qbit と呼びます。 φ=φ0 (1,0) + φ1 (0,1) ψ = ψ0 ( 1 0 ) + ψ1 ( 0 1 ) = ψ0 | 0 + ψ1 | 1 となっているような状態の時、 ( 1 0 ) に対応した現象が実際に観測される確率は、 ψ0 2 ψ0 2 + ψ1 2 |φ1^2/(φ1^2+φ2^2) となります。

さらにこの現象が複数存在し、直積的な関係のあるような状況を考える。 つまり、 | ψ 1 = ψ 1 0 ( 1 0 ) + ψ 1 1 ( 0 1 ) | ψ 2 = ψ 2 0 ( 1 0 ) + ψ 2 1 ( 0 1 ) の直積 | ψ 1 | ψ 2 = | ψ 1 , ψ 2 を考える。

最初の2現象と次の2現象に関して、起きうる現象は 最初が  で、次が 最初が で、次が など4通りの組み合わせがある。 これに対して、それぞれ単位ベクトルを用意し、 と単位ベクトル同士の直積を定義する。 | 0 | 1 = | 0 , 1 などと定義します。

これは、

  |φ1> = φ10(1,0)+φ11(0,1) 
|φ2> = φ20(1,0)+φ21(0,1) 
単位ベクトル (1,0,0,0), (0,1,0,0), (0,0,1,0), (0,0,0,1) ( 1 0 0 0 ) , ( 0 1 0 0 ) , ( 0 0 1 0 ) , ( 0 0 0 1 ) に対し て、

これを |φ1,φ2> と書くと

φ10φ20(1,0,0,0)+ φ11φ20(0,1,0,0)+ φ10φ21(0,0,1,0)+ φ11φ21(0,0,0,1)

を意味します。 同様の意味で 以下を |φ1,...,φn> のような表記をします。

| ψ1 , ... , ψn = i1 , ... , in = 0 1 ψ 1 , i 1 ... ψ n , i n | i1 , ... , in

n 個の 2x2 の正方行列 A1 , ... , An について、下記の様に積を定義する。特に A1 ... An をテンソル積と言う。 (n Qbit に対して、 2n 個の計算があることに注意)

( A1 ... An ) | ψ1 , ... , ψn = i1 , ... , in = 0 1 ψ 1 , i 1 ... ψ n , i n ( A1 | i1 ... An | in )

量子チューリング機械

量子チューリング機械はテープとして、 Qbit が連続してあるようなものを考 えます。 また、状態遷移関数は δ ( p , a , b , q , d ) = c δ(p,a,b,q,d)=c という 状態が p, ヘッドが a を読んでいるとき(観測ではなく)、新たに b を書き込 み、状態を q に移し、ヘッドの方向を d に移動する事象の確率振幅を |c|2 と定義する。 このとき、行列 Mδ のc1 行 c2 列は、 c2 から c1 への 1 ステッ プの遷移と対応したδの値になる。 ただし、ここでも Mδ はユニタリ行列になる。

14-2. 量子コンピュータ

qubit とテンソル積

量子コンピュータでは、1bitの情報、つまり、0または1のどちらかを保持する 情報の単位をqubitと呼ぶ。 具体的には0 を表す現象と 1 を表す現象のどちらかを観測できるような物理 現象で情報を保持する。 そのため、qubit は以下のように表される (この 0と1は情報の表現であって、数学の0とは異なることに注意)。

| ψ = a | 0 + b | 1 | a | 2 + | b | 2 = 1

状態 0 を | 0 = ( 1 0 ) とし、 | 1 = ( 0 1 ) とし、 これをパウリの σzで観測すると、 0 を観測する確率が | a | 2 , 1 を観測する確率が | b | 2 となる。

複数の状態 ψ , φ に対して、テンソル積 | ψ | φ を考える。 これは、内積空間 V, W に対して、それぞれの正規直交基底が { | ξ 1 , ... , | ξ n } , { | η 1 , ... , | η m } である時、 | ψ = i = 1 n a i | ξ i , | φ = j = 1 m b j | η j の時、 | ψ | φ = i = 1 n j = 1 m a i b j | ξ i | η j なお、この場合、基底どうしのテンソル積は単なる直積として考える。 また、テンソル積を | ψ | φ や、 | ψ , φ や、 | ψ φ とも表す。

さらに、 | ψ ' φ ' = i = 1 n j = 1 m a i ' b j ' | ξ i η j | ψ φ の内積を考える。 ξ i η j | ξ k η l = ξ i | ξ k η j | η l と定義することにより、 ψ φ | ψ ' φ ' = i , j , k , l a i * b j * a k ' b l ' ξ i | ξ k η j | η l = i , j a i * b j * a i ' b j ' = ( i a i * a i ' ) ( j b j * b j ' ) = ψ | ψ ' φ | φ ' また、 ( A ^ B ^ ) ( | ψ | φ ) = ( A ^ | ψ ) ( B ^ | φ )

状態が複素ヒルベルト空間の元であれば、テンソル積で得られた複合状態は次 元が違うが複素ヒルベルト空間の元なので、量子力学の公理を満たすことが できる。

非クローン化定理

観測されていない任意の量子状態をコピーすることはできないことを示しま す。 これを示すには仮に二つの量子状態に対してコピーができたとき、必ず満たす べき状態が導かれるため、任意の状態のコピーにならないことを示します。 まず、状態 ψ と φ のコピーができるとします。これは初期の任意 状態 s があるユニタリ行列 U によって、 ψ や φ に遷移できるこ とを意味します。

U | ψ s = | ψ ψ , U | φ s = | φ φ

この二つの内積を取ります。

U ψ s | U φ s = ψ ψ | φ φ , ψ s | U U | φ s = ψ ψ | φ φ ψ | φ s | s = ψ | φ ψ | φ ψ | φ = ψ | φ 2 , ψ | φ = 0 , 1

つまり、どのようなユニタリ行列でもコピーができる状態は平行か直交かし かなく、任意の状態のコピーはできないということです。

量子コンピュータの基本構成

量子コンピュータの実現性を示すためには、基本的には論理回路の構成と同 様にします。 論理回路の構成を示すには、基本ゲートを定め、入力長を固定します。 そして、任意の入力長に対して、基本ゲートのみで回路の構成の仕方のアル ゴリズムを与えます。 (なお、回路の非存在を示すような場合、入力長毎のアルゴリズムを与えら れないような回路列も想定できるため、 uniformity, non-uniformity とい う区分を考えることがあります)。 通常の論理回路では、任意の2入力論理ゲートや、多入力 and, or, nand 回 路などを想定します。

Toffoli Gate

しかし量子コンピュータでは、and, or, nand ゲートなど、入力数と出力数 が異なったり、逆演算ができないようなゲートは実現できません。 そこで、入出力ゲート数が同じで、可逆計算可能で、あらゆる計算を実現で きる Toffoli Gate をユニタリ行列で実現できることを示します。

Toffoli Gate は controlled-Controlled-not (CCNOT)とも呼ばれ、次の論 理式で与えられます

CCNOT(x,y,z)=(x,y,(x,y)+z)

量子コンピュータは入力に対して、入力に対応した qubit を作り、さ らにその入力の長さに対応したユニタリ行列を構成し、qubit にユニタリ行 列を適用し、最終的に特定の qubit の観測を出力とします。 ユニタリ行列の積はユニタリ行列なので、原理的には一つのユニタリ行列で最 終状態にすることはできます。 しかし、そのユニタリ行列の複雑度を考える上で、ユニタリ行列を基本的な 操作の組み合わせに分解することを考えます。

さらに、基本的な操作の組み合わせで計算を定義する事自体が、 量子計算のプログラミングとなります。 以下は量子コンピュータの構成の流れになります:

  1. qubit を2つの角度で表す Bloch球表現
  2. qubit への任意のユニタリ行列演算が、3つの基本ユニタリ行列の積で表せ る
  3. 制御NOT
  4. Tofforiゲートのユニタリ行列による構成

2状態系のBloch 球表示

観測すると2つの状態のうちの一つが観測される状態 ψ は、2つの正規直交基底 | 0 | 1 により、次で表される。

| ψ = a | 0 + b | 1 | a | 2 + | b | 2 = 1

a を(広く使われている表記に合わせて) a = e α cos θ 2 と置き、同じく b b = e β sin θ 2 と置く。すると、状態の表記を次のように表示できる。

| ψ = e α cos θ 2 | 0 + e β sin θ 2 | 1 = e α ( cos θ 2 | 0 + e ( β - α ) sin θ 2 | 1 )

ここで、全体の係数 e α は、観測の確率と関係なく、また、 φ = β - α と置くことで、2状態系の状態を二つの角度を表す実数 ( θ φ ) で表すことができる。 これは、半径1の三次元球の表面の極座標になるので、この2状態系を2実数 の極座標で表すことを Bloch 球表現と呼ぶ。

単一qubitに対するZ-Y変換(定理4.1)

パウリ行列について次の関数を定義する

R x ( θ ) = e - θ σ x / 2

単一qubitに対するユニタリ行列 U に対して、次の実数の α, β, γ, δ が存在する。

U = e α R z ( β ) R y ( γ ) R z ( δ )

補題

以下のユニタリ行列もパウリ行列の積で表せる

Hadamard
H = 1 2 ( 1 1 1 -1 )
π/8 ゲート
T = ( 1 0 0 e π / 4 )
位相ゲート
S = ( 1 0 0 )

制御Not

CNOT = ( 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 )

Toffoli Gate の構成

Quantum gates for Toffoli Gate

坂本直志 <sakamoto@c.dendai.ac.jp>
東京電機大学工学部情報通信工学科