実現するか?「量子コンピューター」 いったい何がすごいのか
ポイントは「0」と「1」が重なり合った状態
まず、この中の1粒のイオンだけに注目してみましょう。イオンがもつ量子的性質として、決まった波長の光が当たると、その光を吸収することがあります。そして、私たちはイオンの振る舞いを観測することで、そのイオンが光を吸収する前の状態であるか、吸収した後の状態であるかを区別することができます。それぞれのイオンの状態を「0」「1」と呼ぶことにすれば、イオンの状態の並び方を2進法のデータとして取り扱えることになります。 しかし、私たちがイオンを観測しない場合、そのイオンの状態は「0」であるか「1」であるかは決まりません。ではどうなっているかというと、実は「0と1が(ある重みで)重なり合った状態」という特殊な状態になっています。このような状態を取れるということが、量子コンピューターの大きな特徴の一つであり、古典コンピューターと決定的に違うところです。このイオンのように「0と1がある重みで重なり合った状態」を取ることができるものを「量子ビット」と呼びます。 古典コンピューターでは「0」「1」の2種類の数字ですべてを表現するので、「0」「1」を変換する演算操作を繰り返して答えを求めていきます。一方、量子ビットは「0と1がある重みで重なり合った状態」のまま演算を進めていくため、古典コンピューターとは全く違う論理体系で演算する必要があります。言い換えれば、今まで私たちが使ってきた(四則演算のような)演算とは全く異なる考え方で問題を解くことが許されるのです。これが「量子コンピューターは古典コンピューターとは全く違う計算手順で問題を解く」の正体であり、その起源は量子ビットの性質にあるといえます。
量子の「もつれ」を利用して一度に大量の演算処理
量子ビットの演算には、量子が持つもう一つの性質「量子もつれ」を活かす必要があります。量子もつれとは、2つの量子ビットの間で特殊な相互作用がある場合に、その2つの量子ビットが一体となって「0」「1」の状態が重なり合わさる現象です。たとえば2つの量子ビットがもつれている場合、「00」「01」「10」「11」がそれぞれある確率で重なり合わさることになります。 例えばイオンがたくさん並んでいる場合、隣り合うイオン同士がどちらも電気をもった粒であるので、互いに反発した力を受けています。このため、お互いのイオンは見えないバネでつながれているかのように相互作用し、この振動が量子もつれを生成するもととなります(今回はイオンを例に説明しましたが、電荷がない粒子でも、2つの粒子の間に何らかの相互作用があれば量子もつれを起こすことができます)。 量子もつれを応用すれば、それぞれの量子ビットを相互作用させたまま演算処理させることができます。たとえば、複数の量子ビットをもつれさせることで、「000…00」から「111…11」までの状態の重ね合わせを保ったまま、一気に演算させることもできます。20個の量子ビットがあれば、実に250≒1000兆通りもの演算を一度にできることになります。実はその状態から所望の答えを取り出すためには、もう一工夫しないといけないのですが(そしてそこが大変難しい)、うまくいけば、複数の条件の計算をいちいち行う古典コンピューターよりも高速に処理できます。 量子コンピューターの活躍が期待されている応用先は、素因数分解に限りません。古典コンピューターが苦手とする組み合わせ問題(※注3)や、量子化学計算(※注4)なども、新しい演算手法があれば解けるかもしれません。あのファインマンが量子力学を理解したい一心で量子コンピューターに向き合ったのも納得できます。 とはいえ、具体的にこの特長を活かしてどんなアルゴリズムを作れば面白い計算ができるのか、量子コンピューター本体はどこまで開発できるのか、まだまだ分からないことだらけです。今の段階では、量子コンピューターが完成する未来と完成しない未来とが重なり合わさっているのかもしれませんが、私は研究者の熱意を信じたいと思います。数十年後、量子コンピューターが活躍する社会を観測するのが楽しみです。 (※注3)組み合わせ問題…例えば、決められた地点を全て回る際の最短ルートを探索する「巡回セールスマン問題」など (※注4)量子化学計算…例えば、医薬品が生体分子とどう相互作用するかの分子シミュレーションなど
◎日本科学未来館 科学コミュニケーター 太田努(おおた・つとむ) 神奈川県生まれ。専門は物理化学。分子や原子の気持ちを考えるのが好きで、原子の集合体「クラスター」の性質を研究した。特許事務所での仕事経験を経て、2019年4月から現職