--- layout: page title: CPU 演算との違い description: 量子コンピュータ版 論理演算 ---

QPU 演算は、AND や OR といった CPU で実行される論理演算の量子版です。 QPU 演算と CPU 演算には、次の大きな違いがあります。

  1. QPU 演算は重ね合わせ状態に作用できます。入力として振幅の大きさと位相というパラメータを持つ量子ビットを取り、それらを変更した量子ビットを出力します。 一方で CPU 論理演算は 0 または 1 のみを入力・出力します。
  2. QPU 演算の大部分は、逆方向の演算 (逆演算) を持ちます。演算を適用した後に逆演算を適用すると、量子ビットを元の状態に戻すことができます (後にいくつかの QPU 演算と逆演算を具体的に見ます)。 一方で CPU 論理演算はそのほとんどが非可逆です。たとえば、AND 演算の出力 1 ビット (0 または 1) から入力の 2 ビット (00, 01, 10, 11) を知ることはできません。

逆演算は量子プログラミングでひんぱんに使うテクニックの 1 つであるアンコンピュテーションにとって重要です。 アンコンピュテーションとは、実行中にぐちゃぐちゃになった量子ビットの状態を元の初期状態に戻して再利用する方法で、少ない量子ビット数でやりくりするための量子版ガベージ・コレクションとも言えるものです。 後にそのやり方を見ていきますが、量子プログラミング言語にはまだガベージ・コレクションのような高級な機能はないので、プログラマが明示的に実装してやる必要があります。