ショアのアルゴリズム
次に、整数因数分解問題に注目し、位相推定を用いて量子コンピュータ上でこの問題を効率的に解く方法を見ていきましょう。 導出されるアルゴリズムが 整数因数分解のためのショアのアルゴリズム です。 ショアは自身のアルゴリズムを特に位相推定の言葉で説明していませんでしたが、その仕組みを説明するうえで自然かつ直感的なアプローチです。
まず、位数発見問題 と呼ばれる中間問題について説明し、位相推定がこの問題の解を与えることを確認します。 次に、位数発見問題の効率的な解が整数因数分解問題の効率的な解をもたらすことを見ていきます。 (ある問題の解が別の問題の解を与えるとき、後者の問題は前者に 帰着する と言います。ここでは整数因数分解を位数発見に帰着しています。) ショアのアルゴリズムのこの第二部分は量子計算をまったく使いません。完全に古典的です。 量子計算が必要なのは位数発見を解くためだけです。
位数発見問題
初等整数論の基礎
位数発見問題と、それを位相推定で解く方法を説明するために、まずいくつかの基本的な整数論の概念を確認し、便利な記法を導入しておきましょう。
はじめに、任意の正整数 に対して、集合 を次のように定義します。
例えば、 などとなります。
これらは数の集合ですが、単なる集合以上のものとして考えることができます。 特に、 上の 演算(加算や乗算など)を考えることができ、答えを常に で割った余り(すなわち を法とした剰余)として取ることで、これらの演算を施しても常にこの集合の中に留まります。 を法とした加算と乗算という二つの演算によって、