量子コンピュータでは、1bitの情報、つまり、0または1のどちらかを保持する 情報の単位をqubitと呼ぶ。 具体的には0 を表す現象と 1 を表す現象のどちらかを観測できるような物理 現象で情報を保持する。 そのため、qubit は以下のように表される (この 0と1は情報の表現であって、数学の0とは異なることに注意)。
状態 0 を とし、 とし、 これをパウリの σzで観測すると、 0 を観測する確率が , 1 を観測する確率が となる。
複数の状態 , に対して、テンソル積 を考える。 これは、内積空間 V, W に対して、それぞれの正規直交基底が , である時、 , の時、 なお、この場合、基底どうしのテンソル積は単なる直積として考える。 また、テンソル積を や、 や、 とも表す。
さらに、 と の内積を考える。 と定義することにより、 また、
状態が複素ヒルベルト空間の元であれば、テンソル積で得られた複合状態は次 元が違うが複素ヒルベルト空間の元なので、量子力学の公理を満たすことが できる。
観測されていない任意の量子状態をコピーすることはできないことを示しま す。 これを示すには仮に二つの量子状態に対してコピーができたとき、必ず満たす べき状態が導かれるため、任意の状態のコピーにならないことを示します。 まず、状態 ψ と φ のコピーができるとします。これは初期の任意 状態 s があるユニタリ行列 U によって、 ψ や φ に遷移できるこ とを意味します。
この二つの内積を取ります。
つまり、どのようなユニタリ行列でもコピーができる状態は平行か直交かし かなく、任意の状態のコピーはできないということです。
量子コンピュータの実現性を示すためには、基本的には論理回路の構成と同 様にします。 論理回路の構成を示すには、基本ゲートを定め、入力長を固定します。 そして、任意の入力長に対して、基本ゲートのみで回路の構成の仕方のアル ゴリズムを与えます。 (なお、回路の非存在を示すような場合、入力長毎のアルゴリズムを与えら れないような回路列も想定できるため、 uniformity, non-uniformity とい う区分を考えることがあります)。 通常の論理回路では、任意の2入力論理ゲートや、多入力 and, or, nand 回 路などを想定します。
しかし量子コンピュータでは、and, or, nand ゲートなど、入力数と出力数 が異なったり、逆演算ができないようなゲートは実現できません。 そこで、入出力ゲート数が同じで、可逆計算可能で、あらゆる計算を実現で きる Toffoli Gate をユニタリ行列で実現できることを示します。
Toffoli Gate は controlled-Controlled-not (CCNOT)とも呼ばれ、次の論 理式で与えられます
量子コンピュータは入力に対して、入力に対応した qubit を作り、さ らにその入力の長さに対応したユニタリ行列を構成し、qubit にユニタリ行 列を適用し、最終的に特定の qubit の観測を出力とします。 ユニタリ行列の積はユニタリ行列なので、原理的には一つのユニタリ行列で最 終状態にすることはできます。 しかし、そのユニタリ行列の複雑度を考える上で、ユニタリ行列を基本的な 操作の組み合わせに分解することを考えます。
さらに、基本的な操作の組み合わせで計算を定義する事自体が、 量子計算のプログラミングとなります。 以下は量子コンピュータの構成の流れになります:
観測すると2つの状態のうちの一つが観測される状態 ψ は、2つの正規直交基底 と により、次で表される。
a を(広く使われている表記に合わせて) と置き、同じく bも と置く。すると、状態の表記を次のように表示できる。
ここで、全体の係数 は、観測の確率と関係なく、また、 と置くことで、2状態系の状態を二つの角度を表す実数 で表すことができる。 これは、半径1の三次元球の表面の極座標になるので、この2状態系を2実数 の極座標で表すことを Bloch 球表現と呼ぶ。
パウリ行列について次の関数を定義する
単一qubitに対するユニタリ行列 U に対して、次の実数の α, β, γ, δ が存在する。
以下のユニタリ行列もパウリ行列の積で表せる