第42話 Shor(ショア)のアルゴリズム
を素因数分解する。x< nで次式を満たすnと互いに素なxとrを探す。
このときrは周期で
このとき次式とnの最大公約数を求めるとnの因数となる。
Peter Shorの示した素因数分解のアルゴリズムはこれを量子計算することで効率的に行える事を示しました。実際に非常に効率的なアルゴリズムだったため量子コンピュータの研究開発に与えた影響は非常に大きいといえます。
このアルゴリズムを簡単な例を使って実際に確かめてみましょう。
n=15
x=2の例
x=7の場合
1,7,4,13,1,7,4,13,... この場合は周期は4なのでOK
x=8の場合
1,8,4,2,1,8,4,2,... この場合は周期は4なのでOK
n=15
x=2の例
x=7の場合
1,7,4,13,1,7,4,13,... この場合は周期は4なのでOK
x=8の場合
1,8,4,2,1,8,4,2,... この場合は周期は4なのでOK
n=2007の場合x=40で1,40,1600,1783,1075,853,...周期は6です。
以上で見たように特に量子計算を行わなくても普通のアルゴリズムとしても使える事が分かります。しかし、実際には周期rを求めるのは大きな数ではやはり不可能に近い計算時間を必要としてしまいます。
Shorはこの周期rを求める部分を巧妙な方法で量子計算するアルゴリズムを発見したのです。そのアルゴリズムは見事と言うしかありません。
Shorはこの周期rを求める部分を巧妙な方法で量子計算するアルゴリズムを発見したのです。そのアルゴリズムは見事と言うしかありません。
次回からはその妙技をじっくり見ていきたいと思います。