IBMが先般、量子コンピュータのロードマップを更新した。
特筆すべきは、4000量子ビット以上のコードネームKookaburra(クッカバラ/カワセミの意味)を2025年に投入するという極めて野心的な計画であるということだ。
2021年、IBMは127量子ビットのコードネームEagle(イーグル/鷹の意味)を提供した。
IBMが提供する量子ハードウェアはクラウド上から実行することができる。
IBMはそのためのSDKであるQiskitも提供している。
Qiskitは、古典コンピュータ(量子コンピュータに対して従来のコンピュータをこう呼ぶ)でのシミュレーションにも対応しているので、少ない量子ビットならば簡単に手元のPCで試すことができる。
現在の量子コンピュータのプログラミングは、量子回路の設計とほぼ同義で、これは古典コンピュータにおける論理回路の組み合わせで計算をさせるといった段階に相当する。つまり、プログラミング言語というよりも回路の記述ができるという段階で、一般のプログラマーがイメージするようなプログラミングとは今のところ厳密には違う。
色々な量子アルゴリズムが考案されているが、実用的に使えるものはまだたくさんは見つかっていない。
しかし、ハードが先かソフトが先かという、テクニウムの法則から考えると、量子コンピュータもハードが先にできて後からソフトが追いついていくというパターンに当てはまる可能性が高い。
量子ビット(Qubit)は、古典コンピュータのビット数とは異なり、一つの量子ビットを表現するのに2つの複素数を使う。
複素数というのは、C=a+bj (jは虚数単位)のように表されるもので、これをシミュレートしようとすると、a(実数部)とb(虚数部)にそれぞれ16ビットの情報を割り当てるとすると、2量子ビットで64バイト、50量子ビットで16ペタバイトの情報量が必要ということになり、これは到底今のコンピュータ(古典コンピュータ)がシミュレートできる情報量ではなくなる。
上図は、実際に1量子ビット、2量子ビット、3量子ビットの演算子として情報量を増やしていった結果だ。たかだか3量子ビットへの演算子でも、表現するためには8x8の行列が必要になってしまう。
n量子ビットは2のn乗の情報量があり、n量子ビットへの演算子は2^n*2^nの行列になる
つまり4000量子ビットとなれば、当然、もはや文字通り別次元のものということになるだろう。
そんなものが本当にあと数年で実現してしまうとすれば、ソフトウェア技術者の不足は明らかだ。
ただ、情けないことにそういう問題意識を持ったとしても、筆者にしてからがでは実際の量子コンピュータを活用したプログラミングをどうすればいいのかということがかなりチンプンカンプンなのだ。
というのも、量子コンピュータにおけるプログラミングは、あまりにもこれまでの直感に反するばかりか、数学の中でもかなり特殊な分野の数学的知識が前提に要求されることになる。
何が起きているのか理解するために、量子力学の知識はもちろん、その前提となる複素数やブラ-ケット表現、ブロッホ級、そして回転行列に関する知識が必要となる。
こうしたコンピューティング能力の爆発的な向上への期待が高まる一方、扱いにくさも指摘されている。
しかし、確率論的に学習を進めるという意味では人工知能、特にニューラルネットワークや機械学習といった分野との相性が良いと考えられていて、量子コンピューティングに対応した機械学習ライブラリも登場してきている。
ただ、今のところは量子コンピュータを使った方が「良い結果」になるとは限らないというのが難しいところで、現状はまだ「全力で量子コンピュータをやるべき」とは言い切れない。
しかし、量子コンピュータと古典コンピュータを組み合わせたハイブリッドアプローチにおいて、本来はゲームのグラフィックス処理専用に進化したGPUがAIの分野で大いに活用されたように、量子コンピュータを使った方が明らかに良い結果を生む場面というものが登場しないとも限らない、というよりも登場する可能性が極めて高いと考えるべきだろう。
期待されるのは量子コンピュータによる量子化学シミュレーションのように、量子現象そのものを計算しようとするときに量子コンピュータを使うような使い方や、量子探索(グローバのアルゴリズムが知られている)のような分野では飛躍的な効果が得られる日が来るかもしれないということだ。
高速な量子化学シミュレーションが可能になると、強化学習するAIとの組み合わせで化学的に大きな材料革命を起こせる可能性が生まれる。
量子生物学(実質的には量子化学+分子生物学)においても、量子コンピュータとAIの組み合わせによって革命的な発見が次々と起きるだろう。人間離れした洞察力を持つAIと、(古典的な)宇宙離れした量子コンピュータの組み合わせは、シンギュラリティ前夜と呼ぶにふさわしい効果を生むはずだ。
コンピュータの歴史を振り返れば、論理回路を組み合わせて何とか四則演算をやっていた(それすらとても難しかった)時代から、原始的なプログラミング言語が発明され、少しは別のことに注意を集中できるようになった時代、そしてやる気さえあれば小学生でも自分の思い通りのプログラムを書ける時代へと進歩してきた。
また、その過程で生まれた副産物として、ワールドワイドウェブやスマートフォンや動画メディアといったものが生まれ、プログラミングを理解できない人でもコンピュータの恩恵を受けられるようになった。
量子コンピュータもおそらく同じ道筋を辿るだろうが、それがあと数年内に起きるのか、それとももう少しゆっくりと十数年かかって起きるのかはまだわからない。
しかし引き続き注目すべき分野であろうことは想像に難くない。
おすすめ記事と編集部のお知らせをお送りします。(毎週月曜日配信)
登録はこちら新潟県長岡市生まれ。1990年代よりプログラマーとしてゲーム業界、モバイル業界などで数社の立ち上げに関わる。現在も現役のプログラマーとして日夜AI開発に情熱を捧げている。