量子計算とはkanada/lib/2002/qcintro.pdf量子計算とは 金田 直樹 [email protected]...
TRANSCRIPT
Overview• はじめに(なぜ量子計算か?)
• 量子計算とは何か
• 量子計算の簡単な歴史
• Turing機械 (Turing Machine)
• 量子力学の基本原理
• 量子ビット
• 量子 Turing機械 (Quantum Turing Machine)
• Shorのアルゴリズムの特徴
• おわりに量子計算とは – p.2/42
Introduction (1)なぜ量子計算が注目を集めているか
• 多くの研究者の努力にも関わらず効率的なアルゴリズムが発見されていない問題達が存在• NP完全問題(例:巡回セールスマン問題)• (素)因数分解
• NP完全問題は効率的に解くことができないと予想されているが、それを証明するのは困難(P = NP?問題)
• (NPは Non-deterministic Polynomialを表す)
量子計算とは – p.3/42
Introduction (2)• 現在最も普及している公開鍵暗号である RSA暗号は整数の素因数分解問題に対する効率的なアルゴリズムが存在しないであるという予想を安全性の根拠としている
RSA暗号について
• P. W. Shor (AT&T Lab.)が因数分解問題を多項式時間で解く量子アルゴリズムを発表 (1994)
• Shorのアルゴリズムにより、指数時間(現実的に不可能)必要と考えられていた因数分解は量子計算機において多項式時間で(効率的)実行できることが示された
• 現在の公開鍵暗号は破綻するのか?→各分野で様々な研究が開始される
量子計算とは – p.4/42
Introduction (3)• 数学者から見れば n2ステップも 2n ステップも「たかだか有限」でしかないが、この 2つには大きな差がある前者は多項式時間,後者は指数時間と言う
• 他にも量子計算機を使うと今までよりも高速に実行できる問題としてデータベース検索問題が見つかっている。
量子計算とは – p.5/42
Introduction (4)• 計算量の例:実行時間入力サイズ n = 1000の例• 計算時間 n2 : 10002 = 1000000 = 106
(この計算時間を仮に 1秒とする)
• 計算時間 2n : 21000 ≈ 10300
(この計算時間は約 10294 秒)
• 宇宙時間 (約 100億年 = 1010年 = 3.15× 1017秒)より時間のかかる計算は実際的に計算不可能と言える。
• 多項式ステップのアルゴリズム:効率的とする量子計算とは – p.6/42
Introduction (5)計算機科学と物理学のどちらからも興味深い
• 量子計算機を作ることは可能か?技術の進歩により量子状態を直接扱うことが可能になり、量子計算機を作るための基礎技術ができつつある
• 量子計算は高速に計算を行えるか?新しい計算モデルでNP完全問題を量子計算で高速に解けるか否か
量子計算とは – p.7/42
Quantum Computation ?• 量子計算 (D. Deutsch(1985))とは量子力学の基本原理を今までの計算(古典計算)に取り込んだ計算モデルである
• 古典計算のモデル Turing機械 (Turing
Machine, TM)に対応する量子計算のモデルは量子 Turing機械 (Quantum Turing Machine,
QTM)である
• 量子 Turing機械の計算可能性は古典 Turing機械 (TM)と等価→理論計算機科学の立場から言えば計算量が問題となる 量子計算とは – p.8/42
History量子計算の簡単な歴史
• 1985 D. Deutsch : QTM
• 1985 R. P. Feynman : 制御 NOTゲート
• 1989 D. Deutsch : 量子回路 (Quantum Circuit)
• 1994 P. W. Shor : 因数分解に対するゼロ誤り多項式時間限定量子アルゴリズム(今までは指数時間と考えられていた)
• 1995 Barenco et.al. : 量子回路の万能基底
• 1996 L. K. Grover : データベース検索問題
量子計算とは – p.9/42
Controlled NOT• NOT
a a′×a a′0 11 0
• 制御NOT (Controlled NOT)
b b′×a a′� a b a′ b′
0 0 0 00 1 0 11 0 1 11 1 1 0
量子計算とは – p.10/42
Turing Machine (1)Turing機械 (TM)は以下の3要素から成る
• (無限の長さを持つ)テープ
• テープヘッド
• 有限制御部
量子計算とは – p.11/42
Turing Machine (2)• テープは、1度に 1つの記号を保持できるセルに分割されており、セルは整数により番号付けされている
• Turing機械は 1回の動作でテープヘッドの指すセルの保持する記号を読み、書き換え、テープヘッドを 1つ左または右へ移動することができる
量子計算とは – p.12/42
Turing Machine (3)TMの動作を図で表せば例えば以下のようになる
a
q
�
· · · · · · → b
p
�
· · · · · ·
上記の TMの動作を数式で記述すると
δ(q, a) = (p, b,R)と記述される
量子計算とは – p.13/42
Turing Machine (4)Turing機械M は以下の 7項組として定義されるM = 〈Q,Γ,Σ, δ, B, q0, F 〉
• Qは状態の有限集合,
• Γはテープ記号の有限集合,
• B ∈ Γは空白記号,
• Σ ⊆ Γ − {B}は入力記号の集合,
• q0は初期状態,
• F ⊆ Qは終状態の集合,
• δ : Q× Γ → Q× Γ × {L,R}は状態遷移関数.量子計算とは – p.14/42
Turing Machine : Example例:自然数に 1を加える Turing機械M
Q = {q0, q1, qf},Γ = {0, 1, B},Σ = {0, 1}, F =
{qf}とする. δは以下の表のように定める.
入力 出力q0 0 q1 1 Lq0 1 q0 0 Rq0 B q1 1 Lq1 0 q1 0 Lq1 1 q1 1 Lq1 B qf B R
· · · B 1 1 B · · ·�
q0
量子計算とは – p.15/42
Turing Machine : Example例:自然数に 1を加える Turing機械M
Q = {q0, q1, qf},Γ = {0, 1, B},Σ = {0, 1}, F =
{qf}とする. δは以下の表のように定める.
入力 出力q0 0 q1 1 Lq0 1 q0 0 Rq0 B q1 1 Lq1 0 q1 0 Lq1 1 q1 1 Lq1 B qf B R
· · · B 0 1 B · · ·�
q0
量子計算とは – p.15/42
Turing Machine : Example例:自然数に 1を加える Turing機械M
Q = {q0, q1, qf},Γ = {0, 1, B},Σ = {0, 1}, F =
{qf}とする. δは以下の表のように定める.
入力 出力q0 0 q1 1 Lq0 1 q0 0 Rq0 B q1 1 Lq1 0 q1 0 Lq1 1 q1 1 Lq1 B qf B R
· · · B 0 0 B · · ·�
q0
量子計算とは – p.15/42
Turing Machine : Example例:自然数に 1を加える Turing機械M
Q = {q0, q1, qf},Γ = {0, 1, B},Σ = {0, 1}, F =
{qf}とする. δは以下の表のように定める.
入力 出力q0 0 q1 1 Lq0 1 q0 0 Rq0 B q1 1 Lq1 0 q1 0 Lq1 1 q1 1 Lq1 B qf B R
· · · B 0 0 1 · · ·�
q1
量子計算とは – p.15/42
Turing Machine : Example例:自然数に 1を加える Turing機械M
Q = {q0, q1, qf},Γ = {0, 1, B},Σ = {0, 1}, F =
{qf}とする. δは以下の表のように定める.
入力 出力q0 0 q1 1 Lq0 1 q0 0 Rq0 B q1 1 Lq1 0 q1 0 Lq1 1 q1 1 Lq1 B qf B R
· · · B 0 0 1 · · ·�
q1
量子計算とは – p.15/42
Turing Machine : Example例:自然数に 1を加える Turing機械M
Q = {q0, q1, qf},Γ = {0, 1, B},Σ = {0, 1}, F =
{qf}とする. δは以下の表のように定める.
入力 出力q0 0 q1 1 Lq0 1 q0 0 Rq0 B q1 1 Lq1 0 q1 0 Lq1 1 q1 1 Lq1 B qf B R
· · · B 0 0 1 · · ·�
q1
量子計算とは – p.15/42
Turing Machine : Example例:自然数に 1を加える Turing機械M
Q = {q0, q1, qf},Γ = {0, 1, B},Σ = {0, 1}, F =
{qf}とする. δは以下の表のように定める.
入力 出力q0 0 q1 1 Lq0 1 q0 0 Rq0 B q1 1 Lq1 0 q1 0 Lq1 1 q1 1 Lq1 B qf B R
· · · B 0 0 1 · · ·�
qf
量子計算とは – p.15/42
Quantum Mechanics量子力学の基本原理 (P.A.M.Dirac)
• 重ね合わせの原理
• 状態のユニタリな時間発展(シュレーディンガー方程式)
• 状態の収縮と確率解釈
後に述べる量子 Tuirng機械はこれらの原理をTuring機械に付加したものである
まずは量子状態について述べる
量子計算とは – p.16/42
Quantum states (1)量子状態の表現
• 量子力学において状態を以下のように表現する
|状態を表す記号〉これを Diracのケット記法と呼ぶ
• 量子状態を数学的に表現する場合はヒルベルト空間(特に C
n)の元として表現する即ち |状態〉 ∈ C
nである
量子計算とは – p.17/42
Quantum states (2)量子状態の表現
• 2状態系は複素 2次元ベクトルで表現される
• 例:2状態系の表現における基底
|↑〉 =
(1
0
)∈ C
2, |↓〉 =
(0
1
)∈ C
2
量子計算とは – p.18/42
Quantum states (3)• 2状態系が 2つなら全体で 22 = 4状態系であり状態は 4次元複素ベクトルで表される
|↑↑〉 =
1
000
=
(1(10
)0(10
)) =
(1
0
)⊗(
1
0
)
= |↑〉 ⊗ |↑〉, . . .• 上記の例からもわかるように系全体の状態は各系の状態のテンソル積としても表される。
量子計算とは – p.19/42
Quantum states (4)量子状態の表現
• 一般に 2状態系が n個ある場合は全体として2n状態系となり全体の状態は 2n次元複素ベクトルで表現される
• n個の 2状態系全体の数学的表現は、各系の状態のテンソル積として表現される
量子計算とは – p.20/42
Superposition principle重ね合わせの原理状態 |a〉と状態 |b〉が可能な状態でありα, β を
|α|2 + |β|2 = 1である複素数としたとき、以下の状
態も可能な状態である� �
α|a〉 + β|b〉� �
量子計算とは – p.21/42
Unitary evolution状態のユニタリな時間発展状態はシュレーディンガー方程式に従いユニタリな時間発展を行う� �
|ψ〉 → U |ψ〉� �
ここで、 |ψ〉は重ね合わせ状態で合っても良い
量子計算とは – p.22/42
Probablistic interpretation波束の収縮と確率解釈
• a, bをある物理量Qの異なる固有値とする• 対応する固有状態を |a〉, |b〉とする• |a〉, |b〉, α, β が規格化されているとする
• α|a〉 + β|b〉という重ね合わせ状態において物理量 Qを観測すると状態は
• 確率 |α|2で |a〉• 確率 |β|2で |b〉に遷移する(波束の収縮と言う)
量子計算とは – p.23/42
A quantum bit (qubit)• 量子ビット (qubit)は状態 |0〉と |1〉の重ね合わせ状態 |ψ〉 = α|0〉 + β|1〉を保持することができる
• 状態 |ψ〉 = α|0〉 + β|1〉にある (|α|2 + |β|2 = 1)
量子ビットを観測すると• 確率 |α|2で |0〉• 確率 |β|2で |1〉が観測できる
量子計算とは – p.24/42
Qubits – Tensor product量子ビットが n個存在するとする
• n qubitsにより 2n 通りの重ね合わせ状態を保持できる例えば 2 qubitsあれば以下のように 4通りの重ね合わせ状態を保持できる12(|0〉|0〉 + |0〉|1〉 + |1〉|0〉 + |1〉|1〉)
• |0〉|0〉 · · · |0〉を |00 · · · 0〉と表記する• n = 100ならば
2100 = 1267650600228229401496703205376通りの重ね合わせ状態を保持できる
量子計算とは – p.25/42
Quantum Parallel (1)n qubitsの重ね合わせ状態を用いた量子計算では2n個の状態に対し同時に計算を行う(ユニタリ変換を作用させる)ことができる
2n−1∑x=0
|x〉|0〉 U→2n−1∑x=0
|x〉|f(x)〉
xi ∈ {0, 1}, x = x1x2 · · · xn, f : {0, 1}n → {0, 1}この場合、2n 個の状態に対し、同時に計算を行う
ことができる
量子計算とは – p.26/42
Quantum Parallel (2)• 量子計算においては状態を重ね合わせたまま計算(ユニタリな時間発展)を行うことができる
• 量子状態の観測を行なうと波束の収縮が生じ、重ね合わせ状態のうちどれか 1つしか観測できない
• そのため量子計算機が実現したとしてもアルゴリズム的な工夫無しに高速化することはできない
量子計算とは – p.27/42
QTM量子 Turing機械M は以下の 7項組で定義されるM = 〈Q,Γ,Σ, δ, B, q0, F 〉
• Qは状態の有限集合,
• Γはテープ記号の有限集合,
• B ∈ Γは空白記号,
• Σ ⊆ Γ − {B}は入力記号の集合,
• q0は初期状態,
• F ⊆ Qは終状態の集合,
• δ : Q× Γ → C̃Q×Γ×{L,R}は状態遷移関数.
量子計算とは – p.28/42
Shor’s AlgorithmShorのアルゴリズムの特徴
• 効率的に因数分解を行う量子アルゴリズム
• 時間計算量は O(n2 log n log log n)
• ゼロ誤り確率的アルゴリズムである結果の検算は容易なので、誤った答えを出力した場合に計算をやり直すことができ、誤った答えを出力させないことができる
量子計算とは – p.29/42
Endおわりに
•• 量子計算は計算機科学と物理学の両方にとって challengingな問題である
• 計算機科学的には計算モデルとして標準的な新しいモデルとして捉えることができる
• 物理学的には量子力学の基本原理を応用した新しいデバイスと捉えることができる
• 多数の研究者によって研究が始められたのはShorの結果以降であり、非常に若い分野である
量子計算とは – p.30/42
References日本語の参考文献
• 西野哲朗「量子コンピュータ入門」東京電機大出版局(1997)
• 細谷暁夫「臨時別冊・数理科学 SGCライブラリ 量子コンピュータの基礎」サイエンス社 (1999)
• 上坂吉則「量子コンピュータの基礎数理」コロナ社(2000)
論文が掲載される主な雑誌• 計算機科学 : SIAM Journal on Computing(特にOct1997)
• 物理学:Phys. Rev. A
• Web : http://arxiv.org/quant-ph/
量子計算とは – p.31/42
End of this slide
スライドの最後先頭へ戻る
量子計算とは – p.32/42
RSA
RSA公開鍵暗号系の説明• 公開鍵による encode /秘密鍵による decodeの説明
• 秘密鍵による encode /公開鍵による decode (電子署名)は逆の手順で行えばよい
イントロに戻る
量子計算とは – p.33/42
Fermat’s theoremフェルマーの小定理
定理 (Fermat)� �
p: 素数, a: pの倍数でない正整数とする。このとき、以下が成り立つ
ap−1 ≡ 1 (mod p)� �
量子計算とは – p.34/42
Proof of Fermat’s theorem (1)帰納法によるフェルマーの小定理の証明以下 ap ≡ a (mod p)を示す。
ap ≡ aならば aと pは互いに素なので
ap−1 ≡ 1 (mod p)
が成り立つ。
basis: a = 1 のとき ap ≡ a (mod p) が成り立つの
は明らか。
量子計算とは – p.35/42
Proof of Fermat’s theorem (2)inductive step: (a+ 1)pを 2項展開する。
(a+ 1)p =
p∑i=0
(p
i
)ai
pが素数であるため i = 0, p以外で(pi
)は pの倍数
であり、よって以下が成り立つ。
(a+ 1)p ≡ ap + 1 (mod p)
これは帰納法の仮定より a+ 1 (mod p)に等しく
(a+ 1)p ≡ a+ 1 (mod p)が示された。量子計算とは – p.36/42
Euler function定義 φ(n) : N → Nを 1以上n未満の自然数でnと
互いに素な数の個数とする
例:φ(10)は 1, 3, 7, 9が条件を満たし φ(10) = 4
nが素数なら φ(n) = n− 1.
量子計算とは – p.37/42
Euler’s theorem定理 (Euler)� �
nを 2以上の整数, aを nと互いに素な正整数とする. このとき、以下が成り立つ
aφ(n) ≡ 1 (mod n)� �nが素数の場合が Fermatの小定理である
▼
量子計算とは – p.38/42
RSA (1)• 異なる大きな素数 p < qを選び, n = pqとするこのとき φ(n) = (p− 1)(q − 1)である
• φ(n)と互いに素な自然数 eをランダムに選ぶ
• ed ≡ 1 (mod φ(n))となる (∃k ∈ N,
ed = kφ(n) + 1となる) dを求める (後述)
• (e, n)を公開鍵, (d, n)を秘密鍵とする
• 公開鍵から秘密鍵を求めるには, nを素因数分解して φ(n)を求め(これが困難), e, φ(n)か
ら dを求めればよい
量子計算とは – p.39/42
RSA (2)• 公開鍵による encode平文(自然数)M < pから暗号文 C ≡M e (mod n)を生成する
• 秘密鍵による decode暗号文 C に対し以下の計算を行う
Cd (mod n)
≡ (M e)d ≡M (ed) ≡Mkφ(n)+1 (mod n)
≡ (Mφ(n))kM
≡ M (Eulerの定理) (mod n)
量子計算とは – p.40/42
Extended Euclid (1)拡張ユークリッドの互除法
• 拡張ユークリッドの互除法自然数 a, bを与えられたとき ax+ by = dを満たす整数 (x, y, d = GCD(a, b))の組を求めるア
ルゴリズム
• e, φ(n)が既知のときに ed ≡ 1 (mod φ(n))を
満たす dを効率的に発見する(ex+ φ(n)y = 1を満たす x, y を発見する)
量子計算とは – p.41/42
Extended Euclid (2)var x1, x2, y1, y2, z1, z2, t, u, v : integer;function EGCD(a, b) : integer;begin (x1, y1, z1) := (1, 0, a); (x2, y2, z2) := (0, 1, b); while (z2 = 0) do begin (t, u, v) := (x2, y2, z2); q := z1 div z2; (x2, y2, z2) := (x1, y1, z1) − q × (x2, y2, z2); (x2, y2, z2) := (t, u, v); end; (x, y, d) := (x1, y1, z1);end; ▲
量子計算とは – p.42/42