さて、次に私が気になったのは、「今」の量子コンピュータにできることは何か?ということです。「未来」でも「将来」でもなく、まさに現在進行中の「今」です。ところが、この「今」の話がなかなか見つからないのです。
まあ、私も現状の量子コンピュータが、NP困難系の複雑な社会課題を解決する段階にないのは、よく知っています。
それどころか、量子コンピュータは、ようやく現実世界に有体物として登場してきた計算機であって、現状の古典コンピュータで例えるのであれば、集積回路どころか、トランジスタでもなく、真空管で古典ビットを実現している程度のフェーズにある、ということも理解しています。
という訳で、今回は、NP困難でもなく、全世界人口レベルの感染対策シミュレーションでもなく、「今」、公開されているD-WaveやIBMや、Googleが提供するコンピュータでできそうな量子コンピュータのアルゴリズムを調べてみました。
最初にネタバレをしてしまいますと、これから紹介するアルゴリズムの持つ意義はスゴいものなのですが、そこから出てくる答えは限りなくショボい ―― というか、楽しくないものです。
これを「スゴい」と思えるか、「ショボい」と思えるかで、あなたの量子コンピュータの勉強の向き不向きを判定する題材になると思います。ちなみに私は、「スゴい」と「ショボい」を同時に感じました。
では、これから量子アルゴリズムについてお話しますが、その前に「オラクル」というものを説明します。
「オラクル(神託)」とは、内容が全く分からないブラックボックスの関数です。なんでそんな大層な名前で読んでいるのか、その理由を以下の例で説明しましょう。
このイメージは、「お見合い写真(独身女性x)を神さま(f(x))に渡すと、どの相手が良いかを決めてくれる」というものですが、神さまはその理由は説明してはしてくれません。このように、“f(x)が何をやっているか分からない”ことが、オラクル(神託)と呼ばれるゆえんです。
しかし、神様がどういう基準で相手を選んでいるかは、膨大な数のお見合い写真を神様に渡して、それを解析し続ければ、いつかはバレます。
ここで「オラクル」とは、量子コンピュータの「攻撃対象」という意味です。最小枚数、あるいはたったの1枚の写真だけで、神様の思考を読み取るというものです ―― 中二病的に言えば、『神を見透(みす)かす』 です ―― うん、何かかっこいい。
これが見合いの写真であれば、どーでも良いと思います(私も全く興味ありません)。しかし、もし、この神様が、「暗号発生装置」であればどうでしょうか?
たった1回の攻撃で、暗号発生装置の中身が丸裸にされれば、ネットサービスは言うに及ばず、現在の社会システムのほとんど(通信、金融、輸送、物流、医療、自治体サービス、生活インフラ)を壊滅させることができることになります。まさに、暗号発生装置は、現代のオラクルです。
では、代表的な3つの量子アルゴリズムの概要を説明します。
これらのアルゴリズムのポイントは、「たった1回で、神のオラクルを見透かす」という点にあります。これは、"0猫"と"1猫"が同時に併存する量子ビットの性質が利用できるからです。
では、最初にドイチ問題から簡単に解説します。
これは、「オラクルの中身を見透かす」という話ではなく、「"Constant"と"Balanced"のどっちのオラクルでしょうか?」を決める問題です。これは、オラクルに"2回"(f(0)とf(1))質問すれば、確実に分かる問題です。
これが1回になるということに衝撃を受ける人は、「量子コンピュータに愛される資質」があります。
次は、ドイチ・ジョサ問題です。
これは実は2量子ビットを使う問題なので、単純に"0猫"、"1猫"問題には落せないし、オラクルの振る舞いも8通りあります。ただ、この8通りのオラクルの全部を見抜ければかっこいいんですが、これもConstantかBalancedの2つを区別する問題で、詰まるところ、ショボい感じは否めません。
「暗号発生装置」のハッキングどころか、「冷蔵庫に"ネギ"と"卵"と"ホウレンソウ"と"ジャガイモ"残っていたかな?」を、冷蔵庫のドアを1回開いて確認する、というくらいのイメージです。
ともあれ、少なくとも「古典コンピュータより少ない計算回数で、オラクルを見透かすことができる」という、量子コンピュータという最大のウリが、ここから始まったのは事実です。
実際に、これらのアルゴリズムは、IBMが提供している量子コンピュータで検証できることは分かっています(私は、IBMの量子コンピュータのエミュレータ(機械装置の動作・機能を模倣するソフトウェア)を自分のPCにインストールして確認しただけで、まだ実際のジョブを量子コンピュータに投げたことはありません。この連載の最終回までには、1回はやってみたいと思っています*))
*)[Tさんツッコミ!]ぜひやってみてください。けっこう衝撃ですよ、いろいろな意味で。
しかし、(1)前述の「暗号発生装置のハッキング」というのが、決して夢物語ではなさそうだぞ、と世界に確信させ、(2)組合せ爆発の発生によって古典コンピュータでは諦めるしかなかったNP困難問題の幾つかが解けるかもしれないという期待を生み出したのが、以下のアルゴリズムです。
現在の暗号システムが、素数のかけ算の値(例1073602561)から、素数8191と131071を導くのが、恐ろしく難しいという性質を利用しているのはご存じかと思います。
もっとも、この難しさは、問題が難しいのではなく、その計算時間が長くなる点にあります。例えば、「暗号化されたメッセージが10年後や100年後に解読されるかもしれんが、それなら構わん」ということです。即時に使えない情報には、大抵の場合、価値がないからです。
ところが、この難しい素数分解を、情報の価値が失われない時間以内に可能としてしまう ―― これがショアのアルゴリズムです。さすがに、このアルゴリズムの登場が世界に与えたショックは大きかったようです。
しかし、実際のところ、現在の暗号システムを破るには、現状の量子コンピュータのスペック(50量子ビット程度)では、全くお話にならないので、あまり心配しなくてもよさそうです(一説には、1000〜10000程度の量子ビットが必要とか)*)。
*)[Tさんツッコミ!]これはノイズのない場合であって、ノイズのある物理量子ビットの数は、これのさらに1000倍くらいになると思います。
しかし、世界最初の真空管のコンピュータ(Atanasoff-Berry Computer:1942年)も最初は31本の真空管から始まったことを考えれば、 あまり、のん気にしていられないかもしれません。
もう一つはグローバーのアルゴリズムです。こっちは、もう、探索問題を高速(というか短時間)で解くアルゴリズム、という認識でOKです。または y=f(x)の逆問題(yの値になるXを求める問題)という解釈も可能で、前述した「オラクル」を見透かすアルゴリズムと同じ機能を持つものとも言えます。
以上、6つのアルゴリズムを紹介しました。これで、(少なくとも)私は、"今"の量子コンピュータができることをざっくりイメージすることができました。
私の乱暴な総括ですが、
そして、
と理解しました。
そんでもって、
ということも分かってきました。
量子コンピュータで、データベースを管理したり、文章を作成したり、ゲームをしたりする必要はないのです。そういうことは、今のコンピュータにぶん投げておけば良いのです。ただ、ゲームに関しては、超高速の行列計算とかには役に立ちそうです。
そういえば、「おうちにやってくる人工知能 〜 国家や大企業によるAI技術独占時代の終焉」で、「潤沢な計算リソースの使い道が「初音ミク」?」という内容を記載しましたが、これと同じことが量子コンピュータでも起こるかもしれません ―― というか起こるでしょう。
なぜ私がそう思うかと言えば、私たちも真空管でコンピュータを作っていた80年前は言うに及ばず、今世紀の初頭(20年前)に至っても、「コンピュータが人間の言葉で歌を歌い出す」などとは、想像もできなかったからです。
Copyright © ITmedia, Inc. All Rights Reserved.