エンタングルメント変換における触媒効果

工学部 物理工学科 03380411
橋本麻美

2007 年 2 月

目次
3

序章
第 1 章 古典情報と量子情報
1.1 古典 bit と量子 bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 量子エンタングルメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 EPR pair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 量子エンタングルメントが役に立つ例 . . . . . . . . . . . . . . . . .

4
4
4
4
5

第 2 章 エンタングルメント変換
7
2.1 LOCC での変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 qubit の測定のみでの変換 . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2 補助 qubit を使った変換 . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 x ≺ y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 エンタングルメント変換と x ≺ y の関係 . . . . . . . . . . . . . . . . . . . . 11
2.4 まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
第3章
3.1
3.2
3.3
3.4

触媒作用
触媒 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
最も簡単な系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
触媒を使った変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15
15
16
18
20

第4章
4.1
4.2
4.3

自己触媒
最も簡単な系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
自己触媒を使った変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
自己触媒を増やしていったときの関係 . . . . . . . . . . . . . . . . . . . . . .
4.3.1 自己触媒 1 つと 2 つ . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2 自己触媒 2 つと 3 つ . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.3 自己触媒 1 つと 3 つ . . . . . . . . . . . . . . . . . . . . . . . . . . .
まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21
21
22
23
23
25
26
26

4.4

第 5 章 結論

27
28

参考文献

1

謝辞

29

付録 プログラムリスト

30

プログラム 130

プログラム 232

プログラム 335

プログラム 439

プログラム 543

プログラム 647

プログラム 751

プログラム 855

2

序章
現在、古典的な計算機では、情報はすべて 2 進数で表され、ビット (bit) で表される。量
子力学でこれに対応するのが、2 つの状態しか持たない系であり、qubit と呼ばれている。
qubit は量子力学の基本的性質である、「量子重ね合わせ」、「観測による射影」を用いることができる。よって、bit は 0 か 1 のどちらか一方の値しかとらないのに対し、qubit は 0 と1 の重ね合わせの状態もとることができるのである。また、「量子もつれ合い」の状態をとることもでき、量子エンタングルメントと呼ばれている。
近年、このように、原子や素粒子などの微小な世界の力学である量子力学の性質を持った
qubit を情報処理に利用しようとする研究が盛んである。
現在の電気や光などの「波」の性質を利用して情報を伝達する古典情報通信では不可能・
不得意な情報処理の実行を目指すもので、電子や光などの「粒子」の性質を利用して情報を処理・伝送しようというものである。例えば、超高速で計算できる量子計算機や絶対に盗聴されない量子暗号などがある。このような分野は量子情報と呼ばれており、物理学のなかで最も新しい分野の一つである [参考文献.1,2,3]。
本研究では、量子もつれ合いの状態をとることができる量子エンタングルメントを扱う。
この量子もつれ合いの状態を持つ量子の pair は、EPR pair[参考文献.4] と呼ばれ、Einstein,
Podolsky, Rosen の頭文字を取っている。
Einstein は、自然を確定的に記述できない量子力学というものに不快感を持って生涯抵抗
し、量子力学を攻撃する数々の思考実験を考えては、量子力学の創始者の一人である論敵のNiels Bohr を悩ませた。しかし Einstein ら 3 人が量子力学を攻撃するつもりで考えたその思考実験は、皮肉にも逆に量子力学の理解を深めるためのものになってしまった。この 3 人の実験で用いられた絡み合った量子系が EPR pair である。現在では存在することが確認されており、量子情報には欠かせないものとなっている。
また、将来の量子情報の基礎となると考えられているのが量子テレポーテーション [参考文献 5] である。情報伝達時に送り手が情報をいったん消去するのだが、受け手でいつのまにか復元される。空想科学 (SF) 映画や小説では、人間が姿を消して空間を瞬時に移動し、別の場所に現れるテレポーテーションという場面がよく登場する。話に広がりを持たせているが、実際にはありえないと考えられていた。ところが、情報の伝送なら実現できることが98 年、米カリフォルニア工科大学の研究グループの実験で実証され [参考文献.6]、今後、量子情報は大きく発展する可能性を秘めている。
この量子情報処理で有効的に使われ、重要な資源である、量子エンタングルメントを遠く離れている 2 人の観測者によって変換できるかどうかは重要な問題である。そのため本研究では、量子エンタングルメントの変換について、どのような場合に変換できるのか考える。
また、数学の概念 majorization について紹介し、量子エンタングルメントの変換との関係を明確にする。さらに、変換補助の役割である触媒を使って、触媒効果について考察し、自分自身を触媒として使っても変換できるのかについて検証する。

3

第1章
1.1

古典情報と量子情報

古典 bit と量子 bit

古典情報の基本概念はビット (bit) である。1 ビットは、0 と 1 で表され、例としては、コ
インの裏表があり、裏を 0 とすると、表が 1 のようになる。測定すると、0 か 1 のどちらかが測定される。
一方、量子情報でビットに対応するのが、2 つの状態しか持たない系であり、量子ビット(quantum bit) や略して qubit と呼ばれている。qubit と見なせるものとしては、電子のスピンがあり、上向きのスピンを | 0 i、下向きのスピンを | 1 i と表される。重ね合わせの原理によると、重ね合わせの状態もあるはずで、斜め向きのスピンがその例である。
重ね合わせの状態| φ i = α| 0 i + β| 1 i(1.1)

ここで α、β は複素数であるが、多くの場合、実数と考えてもよい。
この qubit を測定すると、|α|2 の確率で | 0 i、|β|2 の確率で | 1 i が測定される。よって、|α|2 + |β|2 = 1 である。

1.2

量子エンタングルメント

1.2.1

EPR pairqubit が 2 つある場合、1 つ目の qubit の状態が | 0 i、2 つ目の qubit の状態が | 1 i にある
とき、全系の状態は | 01 i で表される。従って、量子系は、| 00 i、| 01 i、| 10 i、| 11 i の 4 つの状態を持ち、また重ね合わせた状態もとることができる。
重ね合わせの状態| φ i = α00 | 00 i + α01 | 01 i + α10 | 10 i + α11 | 11 i

(1.2)

ここで α00 、α01 、α10 、α11 は複素数であり、その絶対値 2 乗はそれぞれの qubit の存在確率となっている。

4

Alice

Bob

qubit

qubit

|0i → |0i
|1i → |1i
図 1.1 量子エンタングルメント
また qubit が 2 つある場合、EPR pair (Einstein、Podolsky、Rosen 対)[参考文献.4] と呼ばれる重要な状態があり、次のように表される。

1| φ i = √ (| 00 i + | 11 i)
2

(1.3)

この式の具体的意味は、| 00 i と | 11 i という状態がともに 21 の確率で測定できることを意味する。つまり、この 2 つの qubit をアリスとボブ、2 人の観測者にそれぞれ持たせたとき、
1 つ目の qubit の測定結果が 0 ならば、2 つ目の qubit の測定結果は必ず 0 となる。ここで 2
つの qubit は離れていてもよい。
このように一方の qubit の状態がきまると、自動的にもう一方の qubit の状態も決まるといったもつれのことを量子エンタングルメントと呼ぶ。

1.2.2

量子エンタングルメントが役に立つ例

量子エンタングルメントが役に立つ例として、量子テレポーテーションがあげられる。量子テレポーテーションは、Bennett, Brassard, Crépeau, Jozsa,Peres, Wootters によって発見された [参考文献.5]。
アリスは状態 | φ i を持っていて、それを遠く離れているボブに送りたいとする。古典的な通信で | φ i の全情報を送ろうと思うと、無限ビットの情報を送る必要がある。しかし、この
量子テレポーテーションでは、アリスとボブは前もって一つの EPR pair を共有しており、その EPR pair を使って、2 ビットの古典情報を送るだけでボブは状態 | φ i を再生することができるのである。さらに、アリスは状態 | φ i を全く知らなくてもよいのである。

|

Alice

>

Bob

qubit

qubit
EPR pair

図 1.2

|

>

量子テレポーテーション

5また、Superdense coding もその例である。Superdense coding は Bennett,Wiesner により発明された [参考文献.7]。量子テレポーテーション同様、アリスとボブは前もって 1 つの EPR
pair を共有しているとする。アリスはボブに 2 ビットの古典情報を送りたいのだが、1 つのqubit しか送れない。しかし、EPR pair を使うと、qubit を 1 つ送るだけで、2 ビットの古典情報が送れるのである。
すなわち、量子エンタングルメントは重要な資源であるといえる。本研究では、資源変換、つまり量子エンタングルメントの変換がどのような場合になされるか考察する。

6

第2章

エンタングルメント変換

ここでは具体的な例をあげ、エンタングルメントの変換方法や条件について考察する。

2.1

LOCC での変換

2.1.1

qubit の測定のみでの変換

2 人の観測者、アリスとボブが EPR 状態 | ψ i を共有しているとして、| ψ i を別のエンタン
グル状態 | φ i に変換できるか考える。ここで 2 人は、自分たちの qubit に対して、測定などを含む、局所的演算 (Locol Operations) と、電話などの古典通信 (Classical Communication)
はできるものとする。この限られた演算を、それぞれの頭文字をとって LOCC と呼ぶ。

CC

Alice

(ex. telephone)

LO

Bob

LO

qubit

qubit

図 2.1

アリスとボブができる LOCC

いま、状態 | ψ i、| φ i は次のようにおく。

1| ψ i = √ (| 00 i + | 11 i)
2

(2.1)

| φ i = cos θ| 00 i + sin θ| 11 i

(2.2)

このとき、1 つ目の qubit をアリス、2 つ目の qubit をボブが持っているとする。アリスは測定に次の直交した qubit を用いる。

| α i = cos α| 0 i + sin α| 1 i
0| α i = − sin α| 0 i + cos α| 1 i
7

(2.3)
(2.4)

(2.3)、(2.4) 式から、
| 0 i = cos α| α i − sin α| α0 i

(2.5)

| 1 i = sin α| α i + cos α| α0 i

(2.6)(2.5)、(2.6) 式を (2.1) 式のアリスの qubit に代入すると、==

1√ {(cos α| α i − sin α| α0 i)| 0 i + (sin α| α i + cos α| α0 i)| 1 i}
2
1
√ {| α i(cos α| 0 i + sin α| 1 i) + | α0 i(− sin α| 0 i + cos α| 1 i)
2
1
√ (| α i| α i + | α0 i| α0 i)
2

(2.7)

となる。つまり、 12 の確率で | α i| α i と | α0 i| α0 i が測定される。
測定後、状態は壊れるので、測定後の状態は、それぞれ | α i| α i、| α0 i| α0 i となり、次のようになる。

| α i| α i = (cos α| 0 i + sin α| 1 i)(cos α| 0 i + sin α| 1 i)
= cos2 α| 0 i| 0 i + cos α sin α| 0 i| 1 i + sin α cos α| 1 i| 0 i + sin2 α| 1 i| 1 i(2.8)
いま、| 0 i| 0 i と | 1 i| 1 i のみ重ね合わせた状態にしたい。しかし、cos2 α と sin2 α を残し、
cos α sin α を 0 にすることは不可能である。よって、(2.3)、(2.4) の qubit では変換できないことが分かる。

では直交する qubit のみの測定では変換はできないのであろうか。上の例と同様にして、直交する qubit を一般的に表して考えてみる。

| A i = α| 0 i + β| 1 i(2.9)| B i = −β ∗ | 0 i + α∗ | 1 i(2.10)| 0 i = α∗ | A i − β| B i(2.11)| 1 i = β ∗ | A i + α| B i(2.12)

1√ {| A i(α∗ | 0 i + β ∗ | 1 i) + | B i(−β| 0 i + α| 1 i)}
2(2.13)(2.9)、(2.10) 式より、となり、(2.1) 式に代入すると、となる。測定後の状態は、| A i(α∗ | 0 i + β ∗ | 1 i)
= |α|2 | 0 i| 0 i + αβ ∗ | 0 i| 1 i + α∗ β| 1 i| 0 i + |β|2 | 1 i| 1 i(2.14)となり、先ほどと同様、| 0 i| 0 i と | 1 i| 1 i のみ重ね合わせた状態にすることは不可能である。
よって、直交する qubit のみの測定では LOCC で状態 | ψ i を | φ i に変換できない。

8

2.1.2

補助 qubit を使った変換

そこで、アリスが測定する際に自分の持っている qubit の他にもう 1 つの qubit(補助 qubit)を使って測定してみる。いま、補助 qubit を| ψ 0 i = cos θ| 0 i + sin θ| 1 i(2.15)とする。また、C-NOT gate という演算方法を使用する。C-NOT gate を簡単に説明すると、
2 qubit の場合、control bit と target bit が存在し、control bit が 0 ならば、target bit はそのままで、control bit が 1 ならば、target bit は反転する。

control bit
0011

target bit
0
1
0
1
図 2.2

→
→
→
→

00
01
11
10

C-NOT gate

補助 qubit を用いると、全系の状態は、

1√ (| 00 i + | 11 i)(cos θ| 0 i + sin θ| 1 i)
2

(2.16)であり、アリスの持っている EPR pair の片方を control bit、補助 qubit を target bit として、演算を行うと、=

1√ {| 00 i(cos θ| 0 i + sin θ| 1 i) + | 11 i(cos θ| 1 i + sin θ| 0 i)}
2
1√ {(cos θ| 00 i + sin θ| 11 i)| 0 i + (cos θ| 11 i + sin θ| 00 i)| 1 i}
2

(2.17)

である。補助 qubit の測定を行い、測定結果が | 0 i であれば、測定後の状態は cos θ| 00 i +sin θ| 11 i となり、測定結果が | 1 i であれば、測定後の状態は cos θ| 11 i+sin θ| 00 i となる。測定結果が | 1 i であったとき、アリスは自分の qubit を反転させる NOT gate を使用し、ボブもNOT gate を使用する。すると、アリスが得られる測定結果に関係なく、cos θ| 00 i+sin θ| 11 iを得ることができ、LOCC で状態 | ψ i を | φ i に変換できることになる。

2.2

x≺y

ここではエンタングルメント変換と深い関係がある数学の概念、majorization について説明する。majorization は d 次元ベクトルの順序づけである。
2 つの d 次元ベクトルを、

x = (x1 , . . . , xd )y = (y1 , . . . , yd )9とし、また、成分の大きい順から並び換えられているとする。今の場合、x1 、y1 が最大である。k = 1, . . . , d に対して、
k
X

xj ≤

j=1
d
X

k
X

yj

(2.18)

yj(2.19)

j=1

xj =

j=1

d
X
j=1

が成り立ち、k = d のときに等号が成り立つならば、x は y に majorize(メジャライズ) されるといい、x ≺ y と書く。
いま、すべての実数 t に対して、
dXmax(xj − t, 0) ≤

j=1

d
X

max(yj − t, 0)(2.20)

yj(2.21)

j=1
d
X

および

xj =

j=1

d
X
j=1

ならば、またそのときに限り、x ≺ y であることを示す。
(2.21) 式は (2.19) 式と同等であるので、(2.20) 式が (2.18) 式と同等であることを示したい。
ここで k と l は、0 ≤ k ≤ d、0 ≤ l ≤ d の任意の数とし、xl − t ≥ 0 (xl−1 − t < 0)、yk − t ≥ 0 (yk−1 − t < 0) とする。

i)k < l のとき
x1 + x2 + · · · + xl − lt ≤ y1 + y2 + · · · + yk − kt
x1 + x2 + · · · + xk + (xk+1 + · · · + xl − (l − k)t)
≤ y1 + y2 + · · · + yk
x1 + x2 + · · · + xk + (xk+1 − t + · · · + xl − t)
≤ y 1 + y 2 + · · · + yk
(xk+1 − t + · · · + xl − t) > 0 より
x1 + x2 + · · · + xk ≤ y1 + y2 + · · · + yk
よって、
k
X

xj ≤

j=1

k
X

yj

(2.22)

j=1ii)k = l のとき
x1 + x2 + · · · + xk ≤ y1 + y2 + · · · + yk
よって、
k
X
j=1

xj ≤

k
X
j=1

10

yj

(2.23)

iii)k > l のとき
x1 + x2 + · · · + xl − lt ≤ y1 + y2 + · · · + yk − kt
x1 + x2 + · · · + xk − (xl+1 + · · · + xk − (k − l)t)
≤ y1 + y2 + · · · + yk
x1 + x2 + · · · + xk − (xl+1 − t + · · · + xk − t)
≤ y1 + y2 + · · · + yk−(xl+1 − t + · · · + xk − t) > 0 より
x1 + x2 + · · · + xk ≤ y1 + y2 + · · · + yk
よって、
k
X

xj ≤

j=1

k
X

yj

(2.24)

j=1i)、ii)、iii) より、(2.20)、(2.21) 式は (2.18)、(2.19) 式と同等であると言え、そのときの x、y は x ≺ y である。

2.3

エンタングルメント変換と x ≺ y の関係

2.2 で述べたように、x ≺ y とエンタングルメント変換には深い関係がある。ここでは、
x ≺ y とエンタングルメント変換がどのような関係であるか紹介する。
EPR 状態である状態 | ψ i を LOCC で | φ i に変換したい。いま、| ψ i、| φ i は次のような状態である。
|ψi =
|φi =

√
√

x0 | 00 i +y0 | 00 i +√√x1 | 11 i(2.25)

y1 | 11 i(2.26)

2.1 で述べたように、LOCC で変換するには補助 qubit が必要である。よって、使用する補助 qubit は、、
補助 qubit = cos α| 0 i + sin α| 1 i(2.27)

であり、| ψ i に用いると、全系は、√√( x0 | 00 i + x1 | 11 i)(cos α| 0 i + sin α| 1 i)√√
= ( x0 cos α| 00 i + x1 sin α| 11 i)| 0 i√√+( x0 sin α| 00 i + x1 cos α| 11 i)| 1 iとなり、補助 qubit を次のように Unitary 変換すると、

Uθ | 0 i = cos θ| 0 i + sin θ| 1 i(2.28)

Uθ | 1 i = − sin θ| 0 i + cos θ| 1 i(2.29)

11√√( x0 cos α| 00 i + x1 sin α| 11 i)(cos θ| 0 i + sin θ| 1 i)√√+( x0 sin α| 00 i + x1 cos α| 11 i)(− sin θ| 0 i + cos θ| 1 i)√√
= ( x0 cos α cos θ| 00 i + x1 sin α cos θ| 11 i√√
− x0 sin α sin θ| 00 i − x1 cos α sin θ| 11 i)| 0 i√√+( x0 cos α sin θ| 00 i + x1 sin α sin θ| 11 i√√
+ x0 sin α cos θ| 00 i + x1 cos α cos θ| 11 i)| 1 i
ここで、

√
√
√
√
β0 ( y0 | 00 i + y1 | 11 i)| 0 i + β1 ( y1 | 00 i + y0 | 11 i)| 1 i(|β0 |2 + |β1 |2 = 1)

(2.30)(2.31)の状態ならば、2.1.2 で表したように補助 qubit の測定を行えば、測定後の状態として、状√√態 y0 | 00 i + y1 | 11 i を得ることができる。

√√√
x0 sin α sin θ = β0 y0√√√x1 sin α cos θ − x1 cos α sin θ = β0 y1√x0 cos α cos θ −√√x0 sin α cos θ = β1 y1√√√
x1 sin α sin θ + x1 cos α cos θ = β1 y0x0 cos α sin θ +(2.32)(2.33)(2.34)(2.35)

よって、上式を満たす α、θ が存在すればよい。
(2.32)、(2.33)、(2.34)、(2.35) 式は、和積の公式より、√
y0cos (α + θ) = β0 √x0(2.36)√y1sin (α − θ) = β0 √x1(2.37)√y0cos (α − θ) = β1 √x1(2.38)√y1sin (α + θ) = β1 √x0

(2.39)である。(2.36)、(2.39) の右辺をベクトルの成分としたとき内積は、

β02

y1
y0
+ β12
x0
x0
12

(2.40)

となり、(2.36) の 2 乗と (2.39) の 2 乗を足すと、

x0 = β02 y0 + β12 y1(2.41)より (2.40) は 1 となり単位ベクトルをとることが分かる。したがって、角度 (α + θ) は存在
することが証明できた。また同様に、(2.37) の 2 乗と (2.38) の 2 乗を足すと、

x1 = β02 y1 + β12 y0(2.42)β02 =y1 x0 − y0 x1
y12 − y02(2.43)

β12 =y0 x0 − y1 x1
y02 − y12(2.44)

を得、(2.41)、(2.42) 式から、となる。いま、x ≺ y が成り立つとして、

i) y0 > y1 、x0 > x1 のとき
x0 ≤ y0(2.45)

x0 + x1 = y0 + y1 = 1(2.46)(2.46) より、
y1 x0 − y0 x1= (1 − y0 )x0 − y0 (1 − x0 )= x0 − y0(2.45) より(2.47)< 0(2.47) 式、y12 − y02 < 0 より、 β02 ≥ 0 であり、同様にして β12 ≥ 0 である。つまり、 x ≺ yであれば、 β02 ≥ 0 、β12 ≥ 0 となり式は成立する。
また、ii) y0 > y1 ,x1 > x0 、 iii)y1 > y0 ,x0 > x1 、 iv)y1 > y0 ,x1 > x0 のときも同様のことが言える。以上のことから x ≺ y であれば、EPR 状態 | ψ i を LOCC で別の状態 | φ i に変換できることが分かった。
また、2 凖位系のみならず、一般の場合にも x ≺ y であれば、エンタングルメントを変換できるということが分かっており、さらにエンタングルメント変換が可能ならば、そのとき
x ≺ y であることも分かっている [参考文献.3 303-310]。

| ψ i −→ | φ i

⇐⇒

LOCC

13

x≺y

2.4

まとめ

EPR 状態 | ψ i を | φ i に変換しようと思うと、自分の qubit の測定や、電話などの LOCC のみではできない。LOCC で変換するには補助 qubit が必要であり、そのことは本章で証明できた。また、エンタングルメントを変換する際に深い関係があると言われている majorizationの紹介をし、x ≺ y であれば、状態 | ψ i を | φ i に変換できることを説明した。
次章では x ≺ y とエンタングルメント変換の関係を利用して、さらにエンタングルメントの変換について考察する。

14

第3章

触媒作用

本章では、x ≺ y とエンタングルメント変換の関係を利用し、触媒という新しい要素を取り入れて、さらにエンタングルメントの変換について考察する。

3.1

触媒
Alice

| >

| >

Bob

BANK
Alice

|c>

|c>

| >|c >

| >|c >

Bob
図 3.1

触媒作用

はじめに、本章で扱う触媒作用というおもしろい現象について、紹介する。このエンタン
グルメントの触媒は、Jonathan,Plenio により発見された。[参考文献.7]√√√√
いま、アリスとボブは状態 | ψ i = 0.4| 00 i + 0.4| 11 i + 0.1| 22 i + 0.1| 33 i にある一√対の 4 凖位システムを共有しているとする。2 人はこの状態を LOCC で | φ i = 0.5| 00 i +√√0.25| 11 i + 0.25| 22 i に変換したいのだができない。しかし友好的な銀行が エンタング√√
ルした状態にある qubit 対 | c i = 0.6| 00 i + 0.4| 11 i を彼らに貸してくれたとする。アリスとボブは LOCC によって 状態 | ψ i| c i を | φ i| c i に変換できて、変換終了後に | c i を銀行に返すことができる。このような | c i は化学反応の触媒作用と似ているため、触媒と呼ば15れている。本章では、この触媒について考察し、どのような場合に触媒作用が起こるのか考
える。

3.2

最も簡単な系

Jonathan,Plenio によれば、4 凖位システムの状態 | ψ i が触媒によって変換できることが示されていた。そこで、4 凖位システムより簡単な系では変換できないのか検証してみることにした。状態 | ψ i が LOCC で | φ i に変換できない、つまり、x ≺ y を満たさない状態 | ψ i、
| φ i について考え、さらに、その中の | ψ i、| φ i で触媒を借りると状態 | ψ i| c i が | φ i| c i に変換できる最も簡単な系を探すこととする。
まず、状態 | ψ i、 | φ i は次のような 2 凖位システムの qubit 対であるとする。

√

|ψi =

√

|φi =

x0 | 00 i +y0 | 00 i +√x1 | 11 i(x0 ≥ x1 )(3.1)

y1 | 11 i(y0 ≥ y1 )(3.2)

α1 | 11 i(α0 ≥ α1 )

(3.3)

√

また、触媒 | c i は

|ci =

√

α0 | 00 i +√とおく。x ≺ y の式は、

(3.4)

x0 ≤ y0x0 + x1 = y0 + y1 = 1(3.5)

である。いま。x ≺ y を満たさないのだが、(3.5) 式は規格化条件で絶対のものなので、(3.4)
式を満たさないこととなる。よって、最初の条件は、(3.6)

x0 > y0x0 + x1 = y0 + y1 = 1(3.7)

である。状態 | ψ i、| φ i に触媒を作用させると、| ψ i| c i =| φ i| c i =√√x0 α0 | 0000 i +y0 α0 | 0000 i +√√x1 α0 | 1010 i +y1 α0 | 1010 i +√√x0 α1 | 0101 i +y0 α1 | 0101 i +√√x1 α1 | 1111 i(3.8)

y1 α1 | 1111 i(3.9)となる。このとき xα ≺ yα を満たしていれば、状態 | ψ i| c i を | φ i| c i に変換できる。xα 、yα を大きい順に比較してみるとまず、

x0 α0 ≤ y0 α016(3.10)

を得る。しかしこれは (3.6) 式と矛盾している。よって x ≺ y を満たさない x、y が同時に
xα ≺ yα を満たすことはなく、2 凖位システムの 状態 | ψ i、 | φ i では LOCC で変換できな
いことが分かった。
次に、状態 | ψ i、 | φ i を 3 凖位システムの qubit 対であるとする。

|ψi =
|φi =

√
√

x0 | 00 i +y0 | 00 i +√√x1 | 11 i +y1 | 11 i +√√x2 | 22 i(x0 ≥ x1 ≥ x2 )(3.11)

y2 | 22 i(y0 ≥ y1 ≥ y2 )(3.12)

触媒 | c i は (3.3) 式を用いる。このとき x ≺ y の式は、

x0 ≤ y0(3.13)

x0 + x1 ≤ y0 + y1

(3.14)

x0 + x1 + x2 = y0 + y1 + y2 = 1(3.15)である。先ほどと同様、x ≺ y を満たさない x、y を考える。2 凖位システムの結果から、(3.14) 式のみを満たさないこととなる。よって、3 凖位システムの最初の条件は、

x0 ≤ y0(3.16)

x0 + x1 > y0 + y1

(3.17)

x0 + x1 + x2 = y0 + y1 + y2 = 1(3.18)である。状態 | ψ i| c i、| φ i| c i の xα 、yα を大きい順に比較する。最大である xα 、yα と、最小である xα 、yα は明らかなので、最後から 2 番目の不等式に注目してみると、

1 − α1 x2 ≤ 1 − α1 y2x2 ≥ y2(3.19)を得る。ここで、最初の条件 (3.17)、(3.18) 式より、

x2 < y2(3.20)

でなければならないので、(3.19) 式は (3.20) 式と矛盾している。よって x ≺ y を満たさない
x、y が同時に xα ≺ yα を満たすことはなく、3 凖位システムの状態 | ψ i、 | φ i では LOCC
で変換できないことが分かった。

| ψ i 6→ | φ i x 6≺ y
| ψ i| c i → | φ i| c i xα ≺ yα

⇒ 同時に満たさない

よって、4 凖位システムの状態 | ψ i、 | φ i が最も簡単な系であると思われる。

17

では、4 凖位システムの状態 | ψ i、 | φ i についても調べてみる。4 凖位システムの状態| ψ i、 | φ i は、
√
√
√
√
|ψi =
x0 | 00 i + x1 | 11 i + x2 | 22 i + x3 | 33 i
(3.21)|φi =√y0 | 00 i +√y1 | 11 i +√(x0 ≥ x1 ≥ x2 ≥ x3 )√y2 | 22 i + y3 | 33 i
(3.22)(y0 ≥ y1 ≥ y2 ≥ y3 )となり、触媒 | c i は (3.3) 式を用いる。このとき x ≺ y の式は、

x0 ≤ y0(3.23)

x0 + x1 ≤ y0 + y1

(3.24)

x0 + x1 + x2 ≤ y0 + y1 + y2

(3.25)

x0 + x1 + x2 + x3 = y0 + y1 + y2 + y3 = 1(3.26)である。先ほどと同様、x ≺ y を満たさない x、y を考える。2 凖位、3 凖位システムの結果
から、(3.24) 式のみを満たさないこととなる。よって、4 凖位システムの最初の条件は、

x0 ≤ y0(3.27)

x0 + x1 > y0 + y1

(3.28)

x0 + x1 + x2 ≤ y0 + y1 + y2

(3.29)

x0 + x1 + x2 + x3 = y0 + y1 + y2 + y3 = 1(3.30)である。先ほどまでと同様、状態 | ψ i| c i、| φ i| c i の xα 、yα を大きい順に比較する。xα、yα の大小関係は様々な場合が考えられるので、場合分けをし比較してみた。すると、明らかな矛盾は見つからず、3.1 で紹介した例より、4 凖位システムの状態 | ψ i、 | φ i であれ
ば、LOCC で変換できるものがあることが確認できた。

| ψ i 6→ | φ i x 6≺ y
| ψ i| c i → | φ i| c i xα ≺ yα

⇒ 同時に満たすものがある

しかし、場合分けをし得られた複数の不等式から状態 | ψ i を | φ i に変換できなくも、状態 | ψ i| c i を | φ i| c i に変換できる、すなわち、x 6≺ y であり、xα ≺ yα を満たす状態 | ψ i、
| φ i の新たな条件を導き出すことはできなかった。
したがって、次節では 4 凖位システムでの最初の条件 (3.27)、(3.28)、(3.29)、(3.30) 式 −今後条件 A とする− を満たす具体的な x、y から xα ≺ yα をも満たす組み合わせを探すこ
ととする。

3.3

触媒を使った変換

3.1 で紹介した状態 | ψ i、| φ i、 | c i 以外に、4 凖位システムの条件 A を満たす状態 | ψ i、
| φ i から状態 | ψ i| c i を | φ i| c i に変換できる x、y の組み合わせを探す。x、y は自分で適18

当に決める。その x、y が xα ≺ yα を満たしていれば、状態 | ψ i| c i を | φ i| c i に変換できるとみなすことができるので調べてみる。ここで、触媒 | c i も自分で決めてみたのだが、自分で決めた状態 | ψ i、 | φ i、| c i では xα ≺ yα を満たさなかった。
そこで、自分で決めた x、y で xα ≺ yα を満たす触媒 | c i、つまり α0 、 α1 が存在するのか、数値的に調べてみることにした。
すると、α0 、 α1 が存在する x、y の組み合わせと、存在しない x、y の組み合わせがあることが確認できた。

α0 、 α1 が存在した x、y の組み合わせの例

 (x0 , x1 , x2 , x3 ) = (0.50, 0.40, 0.05, 0.05)(y0 , y1 , y2 , y3 ) = (0.70, 0.15, 0.15, 0.00)
ex.α0 = 0.70, α1 = 0.30


 (x0 , x1 , x2 , x3 ) = (0.60, 0.30, 0.05, 0.05)(y0 , y1 , y2 , y3 ) = (0.70, 0.15, 0.15, 0.00)
α0 = 0.63, α1 = 0.37

α0 、 α1 が存在しなかった x、y の組み合わせの例((((x0 , x1 , x2 , x3 ) = (0.45, 0.35, 0.10, 0.10)(y0 , y1 , y2 , y3 ) = (0.50, 0.25, 0.25, 0.00)(x0 , x1 , x2 , x3 ) = (0.60, 0.30, 0.05, 0.05)(y0 , y1 , y2 , y3 ) = (0.70, 0.15, 0.10, 0.05)(x0 , x1 , x2 , x3 ) = (0.50, 0.40, 0.05, 0.05)(y0 , y1 , y2 , y3 ) = (0.70, 0.15, 0.05, 0.05)

以上のことから 4 凖位システムの 状態 | ψ i、 | φ i で触媒作用によって、状態 | ψ i| c i を| φ i| c i に変換できるものが存在することが確認できた。しかし、x、y が条件 A を満たしても、xα ≺ yα を満たすとは限らず、状態 | ψ i| c i を | φ i| c i に変換できるとは限らないことが分かった。すなわち、条件 A は状態 | ψ i| c i を | φ i| c i に変換する際の必要条件であり、十分条件でないことが分かる。また、計算機の結果から、状態 | ψ i| c i が | φ i| c i に変換できるときの条件 A 以外の条件がないか調べてみたが、α0 、α1 が存在した x、y の組み合わ
せから新しい条件を導き出すことはできず、分かる条件は条件 A のみであった。

19

3.4

まとめ

本章では、状態 | ψ i を LOCC で | φ i に変換できないものが触媒によって、状態 | ψ i| c i
を LOCC で | φ i| c i に変換できる触媒作用について考察した。すると、変換できる最も簡単な系は 4 凖位システムの状態 | ψ i、 | φ i であること分かり、条件 A を導くことができた。
また変換できる具体的な x、y を探しだし、状態 | ψ i| c i を LOCC で | φ i| c i に変換できる
触媒 | c i の存在を確認できた。また、導かれた条件 A は必要条件であり、十分条件でないことが分かった。

20

第4章

自己触媒

第 3 章では、状態 | ψ i| c i を LOCC で | φ i| c i に変換できる触媒が存在することが確認できた。そこで、本章ではさらに発展させ、触媒のかわりに自分自身を触媒として用いても変換できるのか考える。つまり、状態 | ψ i1 つだけでは | φ i に変換できないのに、状態 | ψ i を
2 つにすると、 | φ i2 つに変換できるか調べる。ここで、自分自身の触媒のことを『自己触媒』と名付けることとする。

| ψ i 6→ | φ i x 6≺ y
| ψ i| ψ i → | φ i| φ i xx ≺ yy

4.1

最も簡単な系

まず、状態 | ψ i が | φ i に変換できなく、状態 | ψ i| ψ i を LOCC で | φ i| φ i に変換できる
状態 | ψ i| φ i を探したい。そのために変換できる最も簡単な系を探したい。
まず、2 凖位、3 凖位システムの状態 | ψ i、 | φ i を考える。

2 凖位システム
|ψi =
|φi =

√
√

x0 | 00 i +y0 | 00 i +√x1 | 11 i(x0 ≥ x1 )(4.1)

y1 | 11 i(y0 ≥ y1 )

(4.2)

√

√

√

3 凖位システム
|ψi =
|φi =

√
√

x0 | 00 i +y0 | 00 i +√x1 | 11 i +y1 | 11 i +√x2 | 22 i(x0 ≥ x1 ≥ x2 )(4.3)

y2 | 22 i(y0 ≥ y1 ≥ y2 )(4.4)

このとき、先ほどの触媒と同様 x 6≺ y と、 xx ≺ yy を同時に満たすことはできない。よって、2 凖位、3 凖位システムの状態 | ψ i、 | φ i では LOCC で状態 | ψ i| ψ i を | φ i| φ i に変換
できないことが分かった。また、4 凖位システムは、

|ψi =
|φi =

√
√

x0 | 00 i +y0 | 00 i +√√x1 | 11 i +y1 | 11 i +√√x2 | 22 i +√x3 | 33 i(4.5)(x0 ≥ x1 ≥ x2 ≥ x3 )√y2 | 22 i + y3 | 33 i

(4.6)

(y0 ≥ y1 ≥ y2 ≥ y3 )であり、x 6≺ y と、 xx ≺ yy を同時に満たそうと思うと矛盾は見つからなかった。すなわ
ち、触媒同様、4 凖位システムが状態 | ψ i が | φ i に変換できなくも、状態 | ψ i| ψ i を LOCC

21

で | φ i| φ i に変換できる可能性のある最も簡単な系であることが分かった。また 4 凖位シス
テムの最初の条件も、同じく条件 A となった。
＜条件 A ＞x0 ≤ y0(4.7)

x0 + x1 > y0 + y1

(4.8)

x0 + x1 + x2 ≤ y0 + y1 + y2

(4.9)

x0 + x1 + x2 + x3 = y0 + y1 + y2 + y3 = 1(4.10)

したがって、次節では 4 凖位システムでの＜条件 A ＞を満たす具体的な x、y の中から
xx ≺ yy をも満たす組み合わせを探すこととする。

4.2

自己触媒を使った変換

4 凖位システムの条件 A を満たす状態 | ψ i、 | φ i から状態 | ψ i| ψ i を | φ i| φ i に変換できる x、y の組み合わせを探す。x、y は触媒で用いた、自分で適当に決めたものを使う。その x、y が xx ≺ yy を満たしていれば、状態 | ψ i| ψ i を | φ i| φ i に変換できるとみなすことができるので調べてみる。しかし、複数の x、y の組み合わせで調べてみたのだが、自分で決めた状態 | ψ i| φ i では xx ≺ yy を満たさず、自分で見つけるのは困難であった。
そこで、数値的に乱数を使って x、y を決め、16 の不等式を計算機でチェックし、xx ≺ yy
であるか調べた。すると、状態 | ψ i が | φ i に変換できないのに、状態 | ψ i| ψ i なら | φ i| φ iに変換できる、つまり x 6≺ y と、 xx ≺ yy を同時に満たす、状態 | ψ i、 | φ i を探しだすことができた。
乱数 [通り]1,000
100000x 6≺ y かつ xx ≺ yy
である | ψ i | φ i [通り]2233

よって、自分自身が触媒となることはでき、自己触媒は存在するということが証明できた。しかし、上で述べたように、4 凖位システムの条件 A を満たす x、y でも xx ≺ yy を満たさずに変換できないものも存在した。つまり、触媒同様条件 A は必要条件であり、十分条
件ではなかった。

22

4.3

自己触媒を増やしていったときの関係

前節では、自己触媒が存在することが分かった。自己触媒を 1 つ使うと変換できることから 2 つ以上使った場合でも変換できると思われる。そこで本節では自己触媒を異なる数使った場合にその関係はどうなっているか考察する。

4.3.1

自己触媒 1 つと 2 つ

まず自己触媒を 1 つ使ったときと、2 つ使ったときの関係について考察する。

| ψ i 6→ | φ i x 6≺ y
| ψ i| ψ i → | φ i| φ i xx ≺ yy

⇓⇑

関係は??

| ψ i| ψ i| ψ i → | φ i| φ i| φ i xxx ≺ yyy
乱数を使って、x、 y を決め、 x 6≺ y と、 xx ≺ yy を満たす x、 y のうち、xxx ≺ yyy
を満たすものがあるか調べた。すると、すべて満たす結果となったので、別のプログラムを作り、xxx ≺ yyy を満たすものと xxx ≺ yyy を満たさない組合せの数を調べた。また、反対からのことも調べた。
乱数 [通り]1,000
10,000100,000
1,000,000
10,000,000
100,000,000

乱数 [通り]1,000
10,000100,000
1,000,000
10,000,000
100,000,000

xx ≺ yy
2
25
233
2,458
24,810249,033xxx ≺ yyy
2
25
233
2,458
24,810249,033xxx 6≺ yyy
0
0
0
0
0
0

xxx ≺ yyy
5
44
404
4,389
44,585448,025xx ≺ yy
2
25
233
2,458
24,810249,033

xx 6≺ yy
3
19
171
1,931
19,775
198,992

すると、x 6≺ y と、 xx ≺ yy を満たす x、 y はすべて xxx ≺ yyy を満たす結果となった。
そこで、x、 y が xx ≺ yy を満たすならば、xxx ≺ yyy も満たすということを理論的に証
明したい。

23

まず、x、 y が xx ≺ yy を満たすときの 16 の不等式と、xxx ≺ yyy を満たすときの 64 の不等式から、両方満たすときの条件を導こうとした。しかし、各不等式にはそれぞれ場合分けが必要であることと、不等式が多いことから、導き出すことはできなかった。
次に、第 2 章で紹介した、x ≺ y と同等である (2.20)、(2.21) 式を使ってみる。
dXmax(xj − t, 0) ≤

j=1

d
X

max(yj − t, 0)(2.20)

j=1
d
X

および

xj

=

j=1

d
X

yj

(2.21)j=1

いま、(2.20) 式を使って xx ≺ yy を表すと、
dX

max(xi xj − t, 0) ≤

i,j

d
X

max(yi yj − t, 0)(4.11)

max(yi yj yk − t, 0)(4.12)

i,jとなり、xxx ≺ yyy を表すと、
dX

max(xi xj xk − t, 0) ≤

i,j,k

d
X
i,j,k

となる。(4.11) 式が成り立つと (4.12) 式も成り立つことを証明したい。
(4.12) 式の左辺を考えると、
dXmax(xi xj xk − t, 0)

i,j,k

=

X

xi

X

i

j,k

X

X

max(xj xk −

t
, 0)
xi

(4.11) 式より、≤=(4.13)txi
max(yj yk − , 0)
xi
i
j,k

X

max(xi yj yk − t, 0)(4.14)(4.15)i,j,k

ここで、(4.12) 式の右辺にもっていくことはできず、(4.11) 式が成り立つと (4.12) 式も成り立つことは証明できなかった。

24

4.3.2

自己触媒 2 つと 3 つ

次に、自己触媒を 2 つ使ったときと、3 つ使ったときの関係について考察する。

| ψ i 6→ | φ i x 6≺ y
| ψ i| ψ i| ψ i → | φ i| φ i| φ i xxx ≺ yyy

⇓⇑

関係は??

| ψ i| ψ i| ψ i| ψ i → | φ i| φ i| φ i| φ i xxxx ≺ yyyy
方法は同様で、 x 6≺ y と、 xxx ≺ yyy を満たす x、 y のうち、xxxx ≺ yyyy を満たすものと xxxx ≺ yyyy を満たさない組合せの数を調べた。また、反対からのことも調べてみた。
乱数 [通り]1,000
10,000100,000
1,000,000
10,000,000
100,000,000

乱数 [通り]1,000
10,000100,000
1,000,000
10,000,000
100,000,000

xxx ≺ yyy
5
44
404
4,389
44,585448,025xxxx ≺ yyyy
5
44
400
4,340
44,096443,060xxxx 6≺ yyyy
0
0
4
49
489
4,965

xxxx ≺ yyyy
5
50
494
5,309
53,464
535,060xxx ≺ yyy
5
44
400
4,340
44,096443,060xxx 6≺ yyy
0
6
94
969
9,368
92,000

すると、x 6≺ y と、 xxx ≺ yyy を満たしても xxxx ≺ yyyy を満たすとは限らず、状態| ψ i| ψ i| ψ i を | φ i| φ i| φ i に変換できても、| ψ i| ψ i| ψ i| ψ i を | φ i| φ i| φ i| φ i に変換できるとは限らないことが分かった。

25

4.3.3

自己触媒 1 つと 3 つ

さらに、自己触媒を 1 つ使ったときと、3 つ使ったときの関係について考察する。今回、
xx ≺ yy を満たすものは xxxx ≺ yyyy を満たすのは明らかであるので、xxxx ≺ yyyy を満たすとき xx ≺ yy を満たすのか調べてみる。

| ψ i 6→ | φ i x 6≺ y
| ψ i| ψ i → | φ i| φ i xx ≺ yy

⇑

関係は??

| ψ i| ψ i| ψ i| ψ i → | φ i| φ i| φ i| φ i xxxx ≺ yyyy
方法は同様で、 x 6≺ y と、 xxxx ≺ yyyy を満たす x、 y のうち、xx ≺ yy を満たすものと xx ≺ yy を満たさない組合せの数を調べた。
乱数 [通り]1,000
10,000100,000
1,000,000
10,000,000
100,000,000

xxxx ≺ yyyy
5
50
494
5,309
53,464
535,060xx ≺ yy
2
25
233
2,458
24,810249,033

xx 6≺ yy
3
25
261
2,851
28,654
286,027

すると、x 6≺ y と、 xxxx ≺ yyyy を満たしても xx ≺ yy を満たすとは限らず、状態| ψ i| ψ i| ψ i| ψ i を | φ i| φ i| φ i| φ i に変換できても、| ψ i| ψ i を | φ i| φ i に変換できるとは限らないことが分かった。

4.4

まとめ

触媒同様、状態 | ψ i が | φ i に変換できなくも、状態 | ψ i| ψ i を LOCC で | φ i| φ i に変換できる最も簡単な系は 4 凖位システムであることが分かり、状態 | ψ i| ψ i を | φ i| φ i に変換できる x 、 y の具体的な組合せを得ることができた。導いた条件も、条件 A となったが、同じく必要条件であって、十分条件でないことが分かった。
また、自己触媒の数を変えたとき、その関係はどうなっているか考察した。すると、 xx ≺ yyを満たす x、 y はすべて xxx ≺ yyy を満たす結果となり、数値的に調べた範囲では LOCC
で状態 | ψ i| ψ i を | φ i| φ i に変換できれば | ψ i| ψ i| ψ i も LOCC で | φ i| φ i| φ i に変換できると思われる。しかし、その理論的証明はできなかった。

26

第5章

結論

本研究では、量子情報処理で有効的に使われ、重要な資源である、量子エンタングルメン
トの変換について考察し、また変換補助の役割である触媒を使う、触媒効果についても考えた。2 人の観測者が遠く離れていても、共有している状態を変換できることは画期的なことであるといえる。
第 2 章では、EPR 状態 | ψ i を | φ i に変換する場合、自分の qubit の測定や、電話などのLOCC のみではできないことが確認でき、補助 qubit が必要であることが証明できた。また、エンタングルメントを変換する際に深い関係があると言われている majorization の紹介をし、x ≺ y と | ψ i が LOCC で | φ i に変換できることは同等であることの説明をした。
そして第 3 章では x ≺ y とエンタングルメント変換の関係を利用して、状態 | ψ i を LOCC
で | φ i に変換できないものが触媒によって、状態 | ψ i| c i を LOCC で | φ i| c i に変換できる
触媒作用について考察した。すると、変換できる最も簡単な系は 4 凖位システムの状態 | ψ i、
| φ i であること分かり、条件 A を導くことができた。また変換できる具体的な x、y を探しだし、状態 | ψ i| c i を LOCC で | φ i| c i に変換できる触媒 | c i の存在を確認できたが、条件
A を満たしたからといって、変換できるとは限らないことが分かった。つまり、導かれた条
件 A は必要条件であり、十分条件でないことが分かった。
次に自分自身を触媒として扱うことを考え、自己触媒というものが存在することを発見した。自己触媒は、触媒同様、4 凖位システム以上の状態 | ψ i、 | φ i で、状態 | ψ i| ψ i を
LOCC で | φ i| φ i に変換できる可能性があることが分かった。そして、数値的に探した結果、
状態 | ψ i| ψ i を | φ i| φ i に変換できる x 、 y の具体的な組合せを得ることができた。導い
た条件も、条件 A となったが、同じく必要条件であって、十分条件でないことが分かった。
さらに、自己触媒の数を変えたとき、その関係はどうなっているか考察した。すると、数値的に検証した結果、 xx ≺ yy を満たす x、 y はすべて xxx ≺ yyy を満たし、LOCC で状
態 | ψ i| ψ i を | φ i| φ i に変換できれば | ψ i| ψ i| ψ i も LOCC で | φ i| φ i| φ i に変換できると思われることが分かった。しかし、このことは理論的に証明しようと試みたのだが、証明することはできなかった。よって、証明することが今後の課題である。

27

参考文献
1. Michael A.Nielsen, Isaac L.Chuang 共著／木村達也 訳
量子コンピュータと量子通信 I − 量子力学とコンピュータ科学 − 、オーム社 (2004)
2. Michael A.Nielsen, Isaac L.Chuang 共著／木村達也 訳
量子コンピュータと量子通信 II − 量子コンピュータとアルゴリズム − 、 オーム社
(2005)
3. Michael A.Nielsen, Isaac L.Chuang 共著／木村達也 訳
量子コンピュータと量子通信 III − 量子通信 · 情報処理と誤り訂正 − 、オーム社(2005)

4. A. Einstein, B.Podolsky, and N. Rosen. Can quantum-mechanical description ofphysical reality be considered complete? phys.Rev., 47 : 777-780, 1935.
5. C. H. Bennett, G. Brassard, C. Crépeau, R. Jozsa, A.Peres, and W. Wootters. Teleporting an unknown quantum state via dual classical and EPR channels. phys.Rev.Lett., 70 :1895-1899, 1993.
6. http://homepage2.nifty.com/einstein/contents/relativity/contents/relativity104.html
7. C. H. Bennett and S.J. Wiesner. Commnication via one- and two- particle operatorson Einstein-Podolsky-Rosen states. phys.Rev.Lett., 69(20) : 2881-2884, 1992.
8. D. Jonathan and M. B. Plenio. Entanglement-assisted local manipulation of purestates. phys.Rev.Lett., 83 : 3566-3569, 1999.

28謝辞
本論文を作成するにあたり、物理工学科 林 明久 先生には終始変わらぬ厚い御指導を賜わりましたことを感謝し御礼申し上げ、また、鈴木 敏男 先生、田嶋 直樹 先生にも卒論研究全般で厚い御指導、御意見を賜わり、深く感謝致します。
本論文および研究に対して御指導、御意見を頂いた多くの物理工学科の先生方の皆様にも心から御礼申し上げます。
最後に、有益なご討論を頂いた当研究室の院生、石田 陽介 先輩及び、学生に感謝し、謝辞の言葉とさせて頂きます。

29

付録 プログラムリスト
1. 条件 A を満たす、自分で決めた x 、y で xα ≺ yα を満たす触媒が存在するか調べるプログラム#include<stdio.h>void order(double x[], int n){
int i, j;double c;for (i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(x[i]<x[j]){c=x[i]
x[i]=x[j];x[j]=c;}}}}int main(){double x[4],y[4],a[2],xa[8],ya[8];int p,i,k, n;double j,q,m;
int count;x[0]=0.50;
x[1]=0.40;
x[2]=0.05;
x[3]=0.05;
y[0]=0.70;
y[1]=0.15;
y[2]=0.15;
y[3]=0.00;
for(n=0;n<50;n++){m=0.50+n*0.01;
a[0]=m;30

a[1]=1-a[0];for(i=0;i<4;i++){for(k=0;k<2;k++){xa[2*i+k]=x[i]*a[k];ya[2*i+k]=y[i]*a[k];}}order(xa, 8);order(ya, 8);for(p=0;p<8;p++){printf("%lf %lf\n", xa[p], ya[p]);
}
j=0;
q=0;
count=0;
for(i=0;i<8;i++){j=j+xa[i];q=q+ya[i];printf("%lf %lf\n", j,q);if(j<=q){
printf("OK\n");count++;}
if(j>q){printf("error\n");}}if(count==8){
printf("%lf %f\n", a[0], a[1]);
}
}

}

31

2. 条件 A をみたす x 、 y を乱数で決定し、xx ≺ yy を満たす x 、 y の組み合わせが存在するか調べるプログラム#include<stdio.h>#include<math.h>#include<stdlib.h>void order(double x[], int n){
int i, j;double c;for (i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(x[i]<x[j]){c=x[i];
x[i]=x[j];x[j]=c;}}}}int futoushiki(double x[], double y[], int n, int job){
int i;
double j, q, e;
int count;
j=0;
q=0;
count=0;e=0.000001;
for(i=0;i<n;i++){j=j+x[i];q=q+y[i];if(job==0){}
if(job==1){
printf("%lf %lf\n", j,q);}if(j<=q+e){
32

count++;}if(j>q){}}if(job==1){
printf("\n");}return count;}
int main(){double x[4],y[4],xx[16],yy[16];int p,i,k,j,m,r,w,z,v;
double a,b,st,su,t,u;
int count;for(i=1;i<=10000;i++){for(m=0;m<4;m++){a=((double)rand()/(double)(RAND_MAX));b=((double)rand()/(double)(RAND_MAX));x[m]=a;y[m]=b;}t=0;
u=0;
for(r=0;r<4;r++){t=t+x[r];u=u+y[r];
}
st=t;
su=u;
for(m=0;m<4;m++){x[m]=x[m]/st;y[m]=y[m]/su;}
for(z=0;z<3;z++){v=100*x[z];w=100*y[z];x[z]=v/100.0;
y[z]=w/100.0;}
x[3]=1-x[0]-x[1]-x[2];33y[3]=1-y[0]-y[1]-y[2];order(x,4);order(y,4);count=futoushiki(x, y, 4, 0);if(count<4){for(j=0;j<4;j++){for(k=0;k<4;k++){xx[4*j+k]=x[j]*x[k];yy[4*j+k]=y[j]*y[k];}}order(xx, 16);order(yy, 16);count=futoushiki(xx, yy, 16, 0);if(count==16){
for(p=0;p<4;p++){printf("%lf %lf\n", x[p], y[p]);}printf("\n");futoushiki(x, y, 4, 1);
futoushiki(xx, yy, 16, 1);
}
}
}
}

34

3. 条件 A、xx ≺ yy を満たす x、y が xxx ≺ yyy を満たすのか調べるプログラム#include<stdio.h>#include<math.h>#include<stdlib.h>void order(double x[], int n){
int i, j;double c;for (i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(x[i]<x[j]){c=x[i];
x[i]=x[j];x[j]=c;}}}}int futoushiki(double x[], double y[], int n, int job){
int i;
double j, q, e;
int count;
j=0;
q=0;
count=0;e=0.000001;
for(i=0;i<n;i++){j=j+x[i];q=q+y[i];if(job==0){}
if(job==1){
printf("%lf %lf\n", j,q);}if(j<=q+e){
count++;
35

}if(j>q){}}if(job==1){
printf("\n");}return count;}
int main(){double x[4],y[4],xx[16],yy[16],xxx[64],yyy[64];int p,i,k,j,m,r,w,z,v;
double a,b,st,su,t,u;
int count;for(i=1;i<=100000;i++){for(m=0;m<4;m++){a=((double)rand()/(double)(RAND_MAX));b=((double)rand()/(double)(RAND_MAX));x[m]=a;y[m]=b;}t=0;
u=0;
for(r=0;r<4;r++){t=t+x[r];u=u+y[r];
}
st=t;
su=u;
for(m=0;m<4;m++){x[m]=x[m]/st;y[m]=y[m]/su;}
for(z=0;z<3;z++){v=100*x[z];w=100*y[z];x[z]=v/100.0;
y[z]=w/100.0;}
x[3]=1-x[0]-x[1]-x[2];y[3]=1-y[0]-y[1]-y[2];36order(x,4);order(y,4);count=futoushiki(x, y, 4, 0);if(count<4){for(j=0;j<4;j++){for(k=0;k<4;k++){xx[4*j+k]=x[j]*x[k];yy[4*j+k]=y[j]*y[k];}}order(xx, 16);order(yy, 16);count=futoushiki(xx, yy, 16, 0);if(count==16){
printf("2-OK\n");for(m=0;m<4;m++){for(j=0;j<4;j++){for(k=0;k<4;k++){xxx[16*m+4*j+k]=x[m]*x[j]*x[k];yyy[16*m+4*j+k]=y[m]*y[j]*y[k];}}}order(xxx, 64);
order(yyy, 64);
count=futoushiki(xxx, yyy, 64, 0);if(count==64){
printf("3-OK\n");for(p=0;p<4;p++){printf("%lf %lf\n", x[p], y[p]);}printf("\n");futoushiki(x, y, 4, 1);
futoushiki(xx, yy, 16, 1);
futoushiki(xxx, yyy, 64, 1);}37

if(count<64){
printf("3-NG\n");
}
}
}
}
}

38

4. 条件 A、xx ≺ yy を満たす x、y のうち、 xxx ≺ yyy を満たす数と、満たさない数を調べるプログラム#include<stdio.h>#include<math.h>#include<stdlib.h>void order(double x[], int n){
int i, j;double c;for (i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(x[i]<x[j]){c=x[i];
x[i]=x[j];x[j]=c;}}}}int futoushiki(double x[], double y[], int n, int job){
int i;
double j, q, e;
int count;
j=0;
q=0;
count=0;e=0.000001;
for(i=0;i<n;i++){j=j+x[i];q=q+y[i];if(job==0){}
if(job==1){
printf("%lf %lf\n", j,q);}if(j<=q+e){39

count++;}if(j>q){}}if(job==1){
printf("\n");}return count;}
int main(){double x[4],y[4],xx[16],yy[16],xxx[64],yyy[64];int p,i,k,j,m,r,w,z,v;
double a,b,st,su,t,u;
int count, number1, number2, number3;
number1=0;
number2=0;
number3=0;
for(i=1;i<=100000000;i++){for(m=0;m<4;m++){a=((double)rand()/(double)(RAND_MAX));b=((double)rand()/(double)(RAND_MAX));x[m]=a;y[m]=b;}t=0;
u=0;
for(r=0;r<4;r++){t=t+x[r];u=u+y[r];
}
st=t;
su=u;
for(m=0;m<4;m++){x[m]=x[m]/st;y[m]=y[m]/su;}
for(z=0;z<3;z++){v=100*x[z];w=100*y[z];40x[z]=v/100.0;
y[z]=w/100.0;}
x[3]=1-x[0]-x[1]-x[2];y[3]=1-y[0]-y[1]-y[2];order(x,4);order(y,4);count=futoushiki(x, y, 4, 0);if(count<4){for(j=0;j<4;j++){for(k=0;k<4;k++){xx[4*j+k]=x[j]*x[k];yy[4*j+k]=y[j]*y[k];}}order(xx, 16);order(yy, 16);count=futoushiki(xx, yy, 16, 0);if(count==16){
number1++;
for(m=0;m<4;m++){for(j=0;j<4;j++){for(k=0;k<4;k++){xxx[16*m+4*j+k]=x[m]*x[j]*x[k];yyy[16*m+4*j+k]=y[m]*y[j]*y[k];}}}order(xxx, 64);
order(yyy, 64);
count=futoushiki(xxx, yyy, 64, 0);if(count==64){
number2++;}
if(count<64)
41

{number3++;}}}}
printf("%d %d %d\n", number1, number2, number3);}42

5. 条件 A、xxx ≺ yyy を満たす x、y のうち、 xx ≺ yy を満たす数と、満たさない数を調べるプログラム#include<stdio.h>#include<math.h>#include<stdlib.h>void order(double x[], int n){
int i, j;double c;for (i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(x[i]<x[j]){c=x[i];
x[i]=x[j];x[j]=c;}}}}int futoushiki(double x[], double y[], int n, int job){
int i;
double j, q, e;
int count;
j=0;
q=0;
count=0;e=0.000001;
for(i=0;i<n;i++){j=j+x[i];q=q+y[i];if(job==0){}
if(job==1){
printf("%lf %lf\n", j,q);}if(j<=q+e){43

count++;}if(j>q){}}if(job==1){
printf("\n");}return count;}
int main(){double x[4],y[4],xx[16],yy[16],xxx[64],yyy[64];int p,i,k,j,m,r,w,z,v;
double a,b,st,su,t,u;
int count, number1, number2, number3;
number1=0;
number2=0;
number3=0;
for(i=1;i<=1000;i++){for(m=0;m<4;m++){a=((double)rand()/(double)(RAND_MAX));b=((double)rand()/(double)(RAND_MAX));x[m]=a;y[m]=b;}t=0;
u=0;
for(r=0;r<4;r++){t=t+x[r];u=u+y[r];
}
st=t;
su=u;
for(m=0;m<4;m++){x[m]=x[m]/st;y[m]=y[m]/su;}
for(z=0;z<3;z++){v=100*x[z];w=100*y[z];44x[z]=v/100.0;
y[z]=w/100.0;}
x[3]=1-x[0]-x[1]-x[2];y[3]=1-y[0]-y[1]-y[2];order(x,4);order(y,4);count=futoushiki(x, y, 4, 0);if(count<4){
for(m=0;m<4;m++){for(j=0;j<4;j++){for(k=0;k<4;k++){xxx[16*m+4*j+k]=x[m]*x[j]*x[k];yyy[16*m+4*j+k]=y[m]*y[j]*y[k];}}}order(xxx, 64);
order(yyy, 64);
count=futoushiki(xxx, yyy, 64, 0);if(count==64){
number1++;for(j=0;j<4;j++){for(k=0;k<4;k++){xx[4*j+k]=x[j]*x[k];yy[4*j+k]=y[j]*y[k];}}order(xx, 16);order(yy, 16);count=futoushiki(xx, yy, 16, 0);if(count==16){
number2++;}
if(count<16)45

{number3++;}}}}
printf("%d %d %d\n", number1, number2, number3);}46

6. 条件 A、xxx ≺ yyy を満たす x、y のうち、 xxxx ≺ yyyy を満たす数と、満たさない数を調べるプログラム#include<stdio.h>#include<math.h>#include<stdlib.h>void order(double x[], int n){
int i, j;double c;for (i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(x[i]<x[j]){c=x[i];
x[i]=x[j];x[j]=c;}}}}int futoushiki(double x[], double y[], int n, int job){
int i;
double j, q, e;
int count;
j=0;
q=0;
count=0;e=0.000001;
for(i=0;i<n;i++){j=j+x[i];q=q+y[i];if(job==0){}
if(job==1){
printf("%lf %lf\n", j,q);}if(j<=q+e){47

count++;}if(j>q){}}if(job==1){
printf("\n");}return count;}
int main(){double x[4],y[4],xxx[64],yyy[64],xxxx[256],yyyy[256];int p,i,k,j,m,r,w,z,v;
double a,b,st,su,t,u;
int count, number1, number2, number3;
number1=0;
number2=0;
number3=0;
for(i=1;i<=100000000;i++){for(m=0;m<4;m++){a=((double)rand()/(double)(RAND_MAX));b=((double)rand()/(double)(RAND_MAX));x[m]=a;y[m]=b;}t=0;
u=0;
for(r=0;r<4;r++){t=t+x[r];u=u+y[r];
}
st=t;
su=u;
for(m=0;m<4;m++){x[m]=x[m]/st;y[m]=y[m]/su;}
for(z=0;z<3;z++){v=100*x[z];w=100*y[z];48x[z]=v/100.0;
y[z]=w/100.0;}
x[3]=1-x[0]-x[1]-x[2];y[3]=1-y[0]-y[1]-y[2];order(x,4);order(y,4);count=futoushiki(x, y, 4, 0);if(count<4){
for(m=0;m<4;m++){for(j=0;j<4;j++){for(k=0;k<4;k++){xxx[16*m+4*j+k]=x[m]*x[j]*x[k];yyy[16*m+4*j+k]=y[m]*y[j]*y[k];}}}order(xxx, 64);
order(yyy, 64);
count=futoushiki(xxx, yyy, 64, 0);if(count==64){
number1++;
for(r=0;r<4;r++){for(m=0;m<4;m++){for(j=0;j<4;j++){for(k=0;k<4;k++){xxxx[64*r+16*m+4*j+k]=x[r]*x[m]*x[j]*x[k];yyyy[64*r+16*m+4*j+k]=y[r]*y[m]*y[j]*y[k];}}}}order(xxxx, 256);
order(yyyy, 256);
count=futoushiki(xxxx, yyyy, 256, 0);if(count==256)
49

{number2++;for(p=0;p<4;p++){//printf("%lf %lf\n", x[p], y[p]);}}if(count<256){
number3++;}}}}
printf("%d %d\n", number2, number3);}50

7. 条件 A、xxxx ≺ yyyy を満たす x、y のうち、 xxx ≺ yyy を満たす数と、満たさない数を調べるプログラム#include<stdio.h>#include<math.h>#include<stdlib.h>void order(double x[], int n){
int i, j;double c;for (i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(x[i]<x[j]){c=x[i];
x[i]=x[j];x[j]=c;}}}}int futoushiki(double x[], double y[], int n, int job){
int i;
double j, q, e;
int count;
j=0;
q=0;
count=0;e=0.000001;
for(i=0;i<n;i++){j=j+x[i];q=q+y[i];if(job==0){}
if(job==1){
printf("%lf %lf\n", j,q);}if(j<=q+e){51

count++;}if(j>q){}}if(job==1){
printf("\n");}return count;}
int main(){double x[4],y[4],xxx[64],yyy[64],xxxx[256],yyyy[256];int p,i,k,j,m,r,w,z,v;
double a,b,st,su,t,u;
int count, number1, number2, number3;
number1=0;
number2=0;
number3=0;
for(i=1;i<=100000000;i++){for(m=0;m<4;m++){a=((double)rand()/(double)(RAND_MAX));b=((double)rand()/(double)(RAND_MAX));x[m]=a;y[m]=b;}t=0;
u=0;
for(r=0;r<4;r++){t=t+x[r];u=u+y[r];
}
st=t;
su=u;
for(m=0;m<4;m++){x[m]=x[m]/st;y[m]=y[m]/su;}
for(z=0;z<3;z++){v=100*x[z];w=100*y[z];52x[z]=v/100.0;
y[z]=w/100.0;}
x[3]=1-x[0]-x[1]-x[2];y[3]=1-y[0]-y[1]-y[2];order(x,4);order(y,4);count=futoushiki(x, y, 4, 0);if(count<4){
for(r=0;r<4;r++){for(m=0;m<4;m++){for(j=0;j<4;j++){for(k=0;k<4;k++){xxxx[64*r+16*m+4*j+k]=x[r]*x[m]*x[j]*x[k];yyyy[64*r+16*m+4*j+k]=y[r]*y[m]*y[j]*y[k];}}}}order(xxxx, 256);
order(yyyy, 256);
count=futoushiki(xxxx, yyyy, 256, 0);if(count==256){
number1++;
for(m=0;m<4;m++){for(j=0;j<4;j++){for(k=0;k<4;k++){xxx[16*m+4*j+k]=x[m]*x[j]*x[k];yyy[16*m+4*j+k]=y[m]*y[j]*y[k];}}}order(xxx, 64);
order(yyy, 64);
count=futoushiki(xxx, yyy, 64, 0);53

if(count==64){
number2++;for(p=0;p<4;p++){//printf("%lf %lf\n", x[p], y[p]);}}if(count<64){
number3++;}}}}
printf("%d %d %d\n", number1, number2, number3);}54

8. 条件 A、xxxx ≺ yyyy を満たす x、y のうち、 xx ≺ yy を満たす数と、満たさない数を調べるプログラム#include<stdio.h>#include<math.h>#include<stdlib.h>void order(double x[], int n){
int i, j;double c;for (i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(x[i]<x[j]){c=x[i];
x[i]=x[j];x[j]=c;}}}}int futoushiki(double x[], double y[], int n, int job){
int i;
double j, q, e;
int count;
j=0;
q=0;
count=0;e=0.000001;
for(i=0;i<n;i++){j=j+x[i];q=q+y[i];if(job==0){}
if(job==1){
printf("%lf %lf\n", j,q);}if(j<=q+e){55

count++;}if(j>q){}}if(job==1){
printf("\n");}return count;}
int main(){double x[4],y[4],xx[16],yy[16],xxx[64],yyy[64],xxxx[256],yyyy[256];int p,i,k,j,m,r,w,z,v;
double a,b,st,su,t,u;
int count, number1, number2, number3;
number1=0;
number2=0;
number3=0;
for(i=1;i<=100000000;i++){for(m=0;m<4;m++){a=((double)rand()/(double)(RAND_MAX));b=((double)rand()/(double)(RAND_MAX));x[m]=a;y[m]=b;}t=0;
u=0;
for(r=0;r<4;r++){t=t+x[r];u=u+y[r];
}
st=t;
su=u;
for(m=0;m<4;m++){x[m]=x[m]/st;y[m]=y[m]/su;}
for(z=0;z<3;z++){v=100*x[z];w=100*y[z];56x[z]=v/100.0;
y[z]=w/100.0;}
x[3]=1-x[0]-x[1]-x[2];y[3]=1-y[0]-y[1]-y[2];order(x,4);order(y,4);count=futoushiki(x, y, 4, 0);if(count<4){
for(r=0;r<4;r++){for(m=0;m<4;m++){for(j=0;j<4;j++){for(k=0;k<4;k++){xxxx[64*r+16*m+4*j+k]=x[r]*x[m]*x[j]*x[k];yyyy[64*r+16*m+4*j+k]=y[r]*y[m]*y[j]*y[k];}}}}order(xxxx, 256);
order(yyyy, 256);
count=futoushiki(xxxx, yyyy, 256, 0);if(count==256){//number1++;for(j=0;j<4;j++){for(k=0;k<4;k++){xx[4*j+k]=x[j]*x[k];yy[4*j+k]=y[j]*y[k];}}order(xx, 16);order(yy, 16);count=futoushiki(xx, yy, 16, 0);if(count==16){
number2++;57

for(p=0;p<4;p++){//printf("%lf %lf\n", x[p], y[p]);}}if(count<16){
number3++;}}}}
printf("%d %d\n", number2, number3);}58