これで量子情報に移る準備が整いました。ここでは、考慮されるシステムの状態(この場合は量子状態)を表すベクトルの型について、異なる選択を行います。
古典的情報の前の議論と同様に、有限で空でない古典状態の集合を持つシステムに関心を持ち、同じ表記法の多くを使用します。
量子状態ベクトル
システムの量子状態は、確率状態と同様に列ベクトルで表されます。以前と同様に、ベクトルのインデックスはシステムの古典状態をラベル付けします。
量子状態を表すベクトルは、これらの2つの特性によって特徴付けられます:
-
量子状態ベクトルの要素は複素数です。
-
量子状態ベクトルの要素の絶対値の2乗の合計は1です。
したがって、確率状態とは対照的に、量子状態を表すベクトルは非負の実数の要素を持つ必要はなく、1に等しくなければならないのは要素の合計ではなく、要素の絶対値の2乗の合計です。これらの変更は単純ですが、量子情報と古典情報の違いを生み出します。量子コンピュータからのスピードアップや量子通信プロトコルからの改善は、最終的にこれらの単純な数学的変更から派生します。
列ベクトル
v=α1⋮αn
のユークリッドノルムは次のように表記され、定義されます:
∥v∥=k=1∑n∣αk∣2.
量子状態ベクトルの絶対値の2乗の合計が1に等しいという条件は、したがって、そのベクトルがユークリッドノルムが1に等しいことと同等です。
つまり、量子状態ベクトルは、ユークリッドノルムに関する単位ベクトルです。
量子ビット状態の例
量子ビットという用語は、古典状態集合が{0,1}である量子システムを指します。
つまり、量子ビットは実際には単なるビットですが、この名前を使用することで、このビットが量子状態にあり得ることを明示的に認識します。
これらは量子ビットの量子状態の例です:
(10)=∣0⟩and(01)=∣1⟩,
(2121)=21∣0⟩+21∣1⟩,(1)
および
(31+2i−32)=31+2i∣0⟩−32∣1⟩.
最初の2つの例、∣0⟩と∣1⟩は、標準基底要素が有効な量子状態ベクトルであることを示しています: それらの要素は複素数であり、これらの数の虚部はすべてたまたま0であり、要素の絶対値の2乗の合計を計算すると
∣1∣2+∣0∣2=1and∣0∣2+∣1∣2=1,
が得られ、要求を満たします。
古典的な設定と同様に、量子状態ベクトル∣0⟩と∣1⟩を、量子ビットがそれぞれ古典状態0と1にあることと関連付けます。
他の2つの例では、再び複素数の要素があり、要素の絶対値の2乗の合計を計算すると
212+212=21+21=1
および
31+2i2+−322=95+94=1.
これらはしたがって有効な量子状態ベクトルです。これらは標準基底状態∣0⟩と∣1⟩の線形結合であることに注意してください。このため、私たちはしばしばこれらを状態0と1の重ね合わせと呼びます。
量子状態の文脈においては、重ね合わせと線形結合は本質的に同義です。
上記の(1)のキュビット状態ベクトルの例は非常によく見られるものです——これはプラス状態と呼ばれ、次のように表記されます
∣+⟩=21∣0⟩+21∣1⟩.
また、次の表記も使用します
∣−⟩=21∣0⟩−21∣1⟩
これは、2番目の要素が正ではなく負である、関連する量子状態ベクトルを指すためのもので、この状態をマイナス状態と呼びます。
この種の記法、つまり古典状態を参照する記号以外の何かがケットの中に現れるものは一般的です——ケットの中には、ベクトルに名前を付けるために好きな名前を使うことができます。
必ずしも標準基底ベクトルであるとは限らない任意のベクトルを参照するために、∣ψ⟩、あるいはψの代わりに別の名前を使った記法を使用するのはごく一般的です。
添字が何らかの古典状態集合Σに対応するベクトル∣ψ⟩があり、a∈Σがこの古典状態集合の要素である場合、行列積⟨a∣∣ψ⟩は、aに対応する添字を持つベクトル∣ψ⟩の要素に等しいことに注目してください。
∣ψ⟩が標準基底ベクトルであった場合と同様に、読みやすさのために
⟨a∣∣ψ⟩ではなく⟨a∣ψ⟩と書きます。
例えば、Σ={0,1}であり
∣ψ⟩=31+2i∣0⟩−32∣1⟩=(31+2i−32),(2)
then
⟨0∣ψ⟩=31+2iand⟨1∣ψ⟩=−32.
一般に、任意のベクトルに対してディラック記法を使用する場合、記法⟨ψ∣は、列ベクトル∣ψ⟩の共役転置を取ることで得られる行ベクトルを指します。ここで、ベクトルは列ベクトルから行ベクトルに転置され、各要素はその複素共役に置き換えられます。
例えば、∣ψ⟩が(2)で定義されたベクトルである場合
⟨ψ∣=31−2i⟨0∣−32⟨1∣=(31−2i−32).
転置に加えて複素共役を取る理由については、後で内積について議論するときにより明確になります。
他のシステムの量子状態
任意の古典状態集合を持つシステムの量子状態を考えることができます。
例えば、次は電気ファンのスイッチに対する量子状態ベクトルです
210−2i21=21∣high⟩−2i∣low⟩+21∣off⟩.
ここでの前提は、古典状態が高、中、低、オフの順に並んでいるということです。
電気ファンのスイッチの量子状態を考える特別な理由はないかもしれませんが、原理的には可能です。
もう一つの例として、今度は古典状態が0,1,…,9:である量子10進数について見てみましょう
385112345678910=3851k=0∑9(k+1)∣k⟩.
この例は、ディラック記法を使って状態ベクトルを書くことの便利さを示しています。
この特定の例では、列ベクトル表現は単に煩雑であるだけですが、古典状態が大幅に多くなると使用できなくなります。
対照的に、ディラック記法は、大規模で複雑なベクトルをコンパクトな形式で正確に記述することを可能にします。
ディラック記法は、ベクトルのさまざまな側面が不確定である、つまり未知であるか、まだ確立されていないことを表現することも可能にします。
例えば、任意の古典状態集合Σについて、次の量子状態ベクトルを考えることができます
∣Σ∣1a∈Σ∑∣a⟩,
ここで、記法∣Σ∣はΣのユークリッドノルムを指し、この場合∣Σ∣は単にΣの要素数です。
言い換えると、これはΣ内の古典状態にわたる一様重ね合わせです。
後のレッスンでは、列ベクトルの使用が非現実的、あるいは不可能であるような、量子状態ベクトルのはるかに複雑な表現に出会うことになります。
実際、要素の数が少ないベクトル(多くの場合、例の文脈において)を除いて、状態ベクトルの列ベクトル表現はほとんど放棄することになります。要素の数が少ない場合には、要素を明示的に表示して調べることが役立つことがあります。
ディラック記法を使って状態ベクトルを表現することが便利であるもう一つの理由がここにあります。それは、古典状態の順序(あるいは同等に、古典状態とベクトルの添字の対応)を明示的に指定する必要がなくなることです。
例えば、次のような、古典状態集合
{♣,♢,♡,♠}を持つシステムに対する量子状態ベクトルは
21∣♣⟩+2i∣♢⟩−21∣♡⟩−2i∣♠⟩,
この式によって曖昧さなく記述され、式を理解するためにこの古典状態集合の順序を選択したり指定したりする必要は実際にはありません。
この場合、標準的なトランプのスートの順序を指定することは難しくありません——例えば、次のように順序を選ぶことができます:♣、♢、♡、♠。
この特定の順序を選ぶと、上記の量子状態ベクトルは次の列ベクトルで表されます
212i−21−2i.
しかし、一般的には、古典状態集合がどのように順序付けられているかという問題を単に無視できることが便利です。
量子状態の測定
次に、量子状態が測定されたときに何が起こるかを考えてみましょう。標準基底測定として知られる単純な種類の測定に焦点を当てます。
(後で議論する、より一般的な測定の概念があります。)
確率的設定と同様に、量子状態のシステムが測定されると、測定を実行する仮想的な観測者は量子状態ベクトルを見るのではなく、ある古典状態を見ます。
この意味で、測定は量子情報と古典情報の間のインターフェースとして機能し、それを通じて古典情報が量子状態から抽出されます。
ルールは単純です: 量子状態が測定されると、システムの各古典状態は、その古典状態に対応する量子状態ベクトルの要素の絶対値の2乗に等しい確率で現れます。
これは量子力学におけるボルンの規則として知られています。
このルールは、量子状態ベクトルの要素の絶対値の2乗が1に合計されるという要件と一致していることに注意してください。これは、異なる古典状態の測定結果の確率が1に合計されることを意味します。
例えば、プラス状態
∣+⟩=21∣0⟩+21∣1⟩
を測定すると、2つの可能な結果、0と1が、次のような確率で得られます。
Pr(outcome is 0)=⟨0∣+⟩2=212=21
Pr(outcome is 1)=⟨1∣+⟩2=212=21
興味深いことに、マイナス状態
∣−⟩=21∣0⟩−21∣1⟩
を測定すると、2つの結果に対してまったく同じ確率が得られます。
Pr(outcome is 0)=⟨0∣−⟩2=212=21
Pr(outcome is 1)=⟨1∣−⟩2=−212=21
これは、標準基底測定に関する限り、プラス状態とマイナス状態に違いがないことを示唆しています。
それでは、なぜ私たちはそれらを区別することに関心を持つのでしょうか?
答えは、これらの2つの状態は、以下の次のサブセクションで説明するように、それらに対して演算が実行されるときに異なる動作をするということです。
もちろん、量子状態∣0⟩を測定すると、確実に古典状態0が得られ、同様に量子状態∣1⟩を測定すると、確実に古典状態1が得られます。
これは、以前に提案されたように、これらの量子状態を対応する古典状態にあるシステムとの識別と一致しています。
最後の例として、状態
∣ψ⟩=31+2i∣0⟩−32∣1⟩
を測定すると、2つの可能な結果が次のような確率で現れます:
Pr(outcome is 0)=⟨0∣ψ⟩2=31+2i2=95,
および
Pr(outcome is 1)=⟨1∣ψ⟩2=−322=94.
ユニタリ演算
これまでのところ、量子情報が古典情報と根本的に異なる理由は明らかではないかもしれません。
つまり、量子状態が測定されると、各古典状態を得る確率は対応するベクトル要素の絶対値の2乗によって与えられます。では、なぜこれらの確率を確率ベクトルに単に記録しないのでしょうか?
答えは、少なくとも部分的には、量子状態に対して実行できる許容される演算の集合が、古典情報の場合とは異なるということです。
確率的設定と同様に、量子状態に対する演算は線形写像ですが、古典的な場合のように確率行列によって表されるのではなく、量子状態ベクトルに対する演算はユニタリ行列によって表されます。
複素数の要素を持つ正方行列Uは、次の方程式を満たす場合ユニタリです
UU†U†U=I=I.(3)
ここで、Iは単位行列であり、U†はUの共役転置です。つまり、Uを転置し、各要素の複素共役を取ることによって得られる行列です。
U†=UT
上記の(3)で番号付けされた2つの等式のいずれかが真である場合、もう一方も真でなければなりません。
両方の等式は、U†がUの逆行列であることと同等です:
U−1=U†.
(警告:Mが正方行列でない場合、M†M=IでMM†=Iとなる可能性があります。
上記の最初の方程式の2つの等式の同等性は、正方行列に対してのみ真です。)
Uがユニタリであるという条件は、Uによる乗算がベクトルのユークリッドノルムを変更しないという条件と同等です。
つまり、複素数の要素を持つすべてのn次元列ベクトル∣ψ⟩に対して
∥U∣ψ⟩∥=∥∣ψ⟩∥
が成り立つとき、かつそのときに限り、n×n行列Uはユニタリです。
したがって、すべての量子状態ベクトルの集合がユークリッドノルムが1に等しいベクトルの集合と同じであるため、ユニタリ行列を量子状態ベクトルに乗算すると、別の量子状態ベクトルが得られます。
実際、ユニタリ行列は、常に量子状態ベクトルを他の量子状態ベクトルに変換する線形写像の集合です。ここで、演算が確率行列に関連付けられる古典的確率的ケースとの類似性に注意してください。確率行列は、確率ベクトルを常に確率ベクトルに変換するものです。
量子ビットに対するユニタリ演算の例
次のリストは、量子ビットに対する一般的に遭遇するユニタリ演算のいくつかを説明しています。
-
パウリ演算。4つのパウリ行列は次のとおりです:
I=(1001),σx=(0110),σy=(0i−i0),σz=(100−1).
一般的な代替表記法はX=σx, Y=σy,およびZ=σzです(ただし、文字X, Y,およびZは他の目的にも一般的に使用されることに注意してください)。X演算は、ビットに対して次のアクションを誘導するため、ビット反転またはNOT演算とも呼ばれます:
X∣0⟩=∣1⟩andX∣1⟩=∣0⟩.
Z演算は位相反転とも呼ばれ、次のアクションを持ちます:
Z∣0⟩=∣0⟩andZ∣1⟩=−∣1⟩.
-
アダマール演算。アダマール演算は、この行列によって記述されます:
H=(212121−21).
-
位相演算。位相演算は、任意の実数θの選択に対して、次の行列によって記述される演算です
Pθ=(100eiθ)
任意の実数θの選択について。
演算
S=Pπ/2=(100i)andT=Pπ/4=(10021+i)
は特に重要な例です。他の例には、I=P0とZ=Pπがあります。
定義されたすべての行列はユニタリであり、したがって単一の量子ビットに対する量子演算を表します。
例えば、Hがユニタリであることを確認する計算を次に示します:
(212121−21)†(212121−21)=(212121−21)(212121−21)=(21+2121−2121−2121+21)=(1001).
そして、ここに、一般的に遭遇するいくつかの量子ビット状態ベクトルに対するアダマール演算のアクションがあります。
H∣0⟩H∣1⟩H∣+⟩H∣−⟩=(212121−21)(10)=(2121)=∣+⟩=(212121−21)(01)=(21−21)=∣−⟩=(212121−21)(2121)=(10)=∣0⟩=(212121−21)(21−21)=(01)=∣1⟩
より簡潔に、これらの4つの方程式が得られます。
H∣0⟩=∣+⟩H∣1⟩=∣−⟩H∣+⟩=∣0⟩H∣−⟩=∣1⟩
H∣+⟩=∣0⟩と
H∣−⟩=∣1⟩という事実を考慮する価値があります。これは、状態∣+⟩と∣−⟩の区別に関する前のセクションで提案された質問に照らして考えると興味深いです。
量子ビットが2つの量子状態∣+⟩と
∣−⟩のいずれかで準備されているが、どちらであるかが私たちに知られていない状況を想像してください。
いずれかの状態を測定すると、既に観察したように、もう一方と同じ出力分布が生成されます:
0と1の両方が等しい確率1/2で現れ、これは2つの状態のどちらが準備されたかについての情報を全く提供しません。
しかし、最初にアダマール演算を適用してから測定すると、元の状態が∣+⟩であった場合は確実に結果0が得られ、元の状態が∣−⟩であった場合は再び確実に結果1が得られます。
したがって、量子状態∣+⟩と∣−⟩は完全に識別できます。
これは、符号の変化、またはより一般的には量子状態ベクトルの複素数要素の位相(伝統的に偏角とも呼ばれます)の変化が、その状態を大幅に変更できることを明らかにします。
これは別の例で、以前に言及した状態ベクトルに対してアダマール演算がどのように作用するかを示しています。
H(31+2i∣0⟩−32∣1⟩)=(212121−21)(31+2i−32)=(32−1+2i323+2i)=32−1+2i∣0⟩+323+2i∣1⟩
次に、プラス状態に対するT演算のアクションを考えてみましょう。
T∣+⟩=T(21∣0⟩+21∣1⟩)=21T∣0⟩+21T∣1⟩=21∣0⟩+21+i∣1⟩
ここでは、同等の行列/ベクトル形式に変換することを気にせず、代わりに行列乗算の線形性と式
T∣0⟩=∣0⟩andT∣1⟩=21+i∣1⟩.
同様に、先ほど得た量子状態ベクトルにアダマール演算を適用した結果を計算することができます
H(21∣0⟩+21+i∣1⟩)=21H∣0⟩+21+iH∣1⟩=21∣+⟩+21+i∣−⟩=(21∣0⟩+21∣1⟩)+(221+i∣0⟩−221+i∣1⟩)=(21+221+i)∣0⟩+(21−221+i)∣1⟩.
2つのアプローチ——一つは明示的に行列表現に変換する方法、もう一つは線形性を利用して標準基底状態への演算の作用を代入する方法——は同等です。
その場その場でより便利な方を使用することができます。
量子ビットユニタリ演算の合成
ユニタリ演算の合成は、確率的設定で行ったように、行列乗算によって表されます。
例えば、最初にアダマール演算を適用し、次にS演算を適用し、次に別のアダマール演算を適用するとします。
この例の目的のためにRと名付ける結果の演算は、次のとおりです:
R=HSH=(212121−21)(100i)(212121−21)=(21+i21−i21−i21+i).
このユニタリ演算Rは興味深い例です。
この演算を2回適用すると、その行列表現を2乗することと同等であり、NOT演算が得られます:
R2=(21+i21−i21−i21+i)2=(0110).
つまり、RはNOTの平方根演算です。
このような動作、つまり、同じ演算が2回適用されてNOT演算が得られるという動作は、単一のビットに対する古典的演算では不可能です。
より大きなシステムに対するユニタリ演算
後のレッスンでは、2つ以上の古典状態を持つシステムに対するユニタリ演算の多くの例が見られます。
3つの古典状態を持つシステムに対するユニタリ演算の例は、次の行列によって与えられます。
A=010001100
システムの古典状態が0, 1,および2であると仮定すると、この演算を3を法とする加算として記述できます。
A∣0⟩=∣1⟩,A∣1⟩=∣2⟩,andA∣2⟩=∣0⟩
行列Aは置換行列の例であり、これはすべての行と列が正確に1つの1を持つ行列です。
このような行列は、それらが作用するベクトルの要素を単に再配置、または置換します。
単位行列はおそらく置換行列の最も単純な例であり、別の例はビットまたは量子ビットに対するNOT演算です。
任意の正の整数次元のすべての置換行列はユニタリです。
これらは、古典演算と量子演算の両方を表す行列の唯一の例です: 行列が確率的でユニタリである場合、それは置換行列である場合に限ります。
別のユニタリ行列の例は、今回は4×4行列で、これです:
U=2111111i−1−i1−11−11−i−1i.
この行列は、特に4×4の場合に、量子フーリエ変換として知られる演算を記述します。
量子フーリエ変換は、任意の正の整数次元nに対してより一般的に定義でき、量子アルゴリズムにおいて重要な役割を果たします。