「量子コンピュータは、おおむね理解している」などと言っている奴は、まあ、うそつきか、矯正不能のバカであると認定して構いません ―― だって「量子コンピュータ」は、まだ、この世の中に完成形として存在していないのですから。
一方、私たちエンジニア(特にITエンジニア/IT研究者)は、量子コンピュータについて「全く知らない」と正直に白状することも、それはそれで、(キャリア的に)問題です。少なくとも、「量子IT」という観点で見れば、「量子暗号」などは、10年以内のスコープに入る可能性は高いからです。
ならば、私たちITエンジニア/IT研究者に限って言えば、「量子コンピュータ」について、他人に対して、知っているようにだまし、また、自分自身に対してすら、知っているとだます必要があります。
とは言え、今更、シュレディンガー方程式や、不確定性原理、ベルの不等式や、ラビ振動について勉強しろ、などというムチャなことは言いません。量子論については、むしろ「手を出さないこと」をお勧めしたいくらいです(下手すると精神を病みます)。
そこで提案です。
「量子コンピュータのシミュレーターを使ってみたことがある」「IBMの量子コンピュータを使ってみたことがある」をたった一度だけで良いので、試みてみて、量子コンピュータについて「全く知らないわけではない」という「言い訳」を作ってみるのはいかがでしょうか。
ではまず、「量子コンピュータのシミュレーターを使ってみたことがある」の言い訳の作り方から始めてみたいと思います。
Qiskitというのは、量子コンピュータ用のシミュレーターです。「もし、この量子コンピュータが、このパソコンの中にインストールされていたら、こういう風に動くはず」を模擬してくれるものです(量子コンピュータがPCにインストールされる訳ではありません(当たり前))(参照:Wikipedia)。
以下に、私の使っているPC、Windows10 Boxで、私が動かした通りの内容を記載していきます。
[Step 1] AnacondaとJupyter notebookのインストール
https://www.anaconda.com/download/ とhttp://jupyter.org/ から、それぞれインストールします。
[Step 2] Anaconda Prompt(anaconda3)を起動し、qiskitをインストール
>conda listでqiskitがインストールされているか、確認できます。
[Step 3] Anaconda Nabigation(anaconda3)と、Juypyter Notebook(anaconda3)を起動
[Step 4] python3を選択
[Step 5] プログラムを打ち込んで計算
上記のプログラムは、qc.x(q[0])の、量子ビットq[0]の反転の有無だけの違いがあるだけの、単純なプログラムです。上のプログラムでは、100回の中100回、確定(デジタル)値が”1”となっており、下のプログラムでは、”0”になっています。
これで「量子コンピュータ用のシミュレーターQiskitを使ったことがある」と主張してもうそにはなりません。これで、当初の目的は達成されます。
ちなみに、このPythonプログミングについては、書籍を購入したり、ネットで検索したりすれば、簡単にいくつかみつかりますので、興味のある方は調べてみてください。
では、次は本命、「IBMの量子コンピュータ、「IBM Q」を実際に動かしてみたことがある」の言い訳の作り方を説明します。せっかくですので、「IBM Q」で「量子もつれ」を作ってみましょう。
[Step 1] IBM Qのサイトにログイン
(私の場合、せっかくつくったIBMのアカウントでログインできなかったので、Googleのアカウントからログインしました。)
[Step 2] “Start a new circuit”をクリック
ちなみに、画面右側に見えているリストが、IBMが提供している量子コンピュータの一覧です。現在、街行列入っているジョブ数なども見えます。
[Step 3] 量子プログラミングをGUIで作成
ここでは3量子ビットの量子コンピュータ を選んでいますが、2量子ビットだけ使えれば十分なので、このままでも構いません。
図に示すように、HゲートとCNOTゲートを組み混んで、計算後に、それぞれのビットを観測するようにしてください。
[Step 4] 計算結果を確認
ジョブの計算が終われば、”COMPLETED”が表示されるので、これをクリックします。
クリックすると、計算結果が出力されます。
試行回数1024回で、“00”と”11”が、おおむね50%で表れていますので、予想通りの計算結果になっています。しかし、論理上、出るはずのない”01”も”10”も出てきています。これが量子コンピュータの特性の一つです。確率論に基づく量子計算では、この計算結果も正しいのです(なので、1024回も計算を繰り返すことになります)。
[Tさんツッコミ!]江端さん、これは明らかな間違いです。理論上でてきてはいけない状態は、確率的にも出てきてはいけません。ですから、これはただのノイズ(実機の不完全性)です。
今回、「量子もつれ」を作ってみたので、0量子ビットまたは1量子ビットの一方を確定(観測)すれば、他方も確定するはずですが、当然ながら、IBM Qで、そういう検証はできません(答えが出力されている段階で、観測は完了している訳ですから)。
ところで、この計算結果が「本当にIBMの量子コンピュータを使って計算したものか」は、私は知りようがありません。もしかしたら、私のジョブは、IBMのサイトの中のシミュレーター(Qiskit)で計算されて、その結果が戻されただけかもしれません(悪意のある邪推)。
だとしても ―― あなたは、「量子コンピュータ “IBM Q”を使って計算をやってみた」と、堂々と主張していいのです。IBMのポータルサイトからアクセスして使ってみたという事実があれば十分です。
そして、それを主張する際には、上記の「計算結果の誤差」の話や、あるいは「量子もつれの現象までは確認しようがなかった」だのと、テキトーに散りばめることで、話の信ぴょう性を高めることができます。
こうして、あなたの部署で、あなたが「量子コンピュータ マスター」の称号を得られることは間違いありません。
大丈夫です ―― エンジニアや研究者(量子コンピューアの研究開発をしている人間を含めて)を含めて、現時点において、量子コンピュータの完成形を知っている人間など、この地球上にただ一人として存在していないのですから。
では、今回の内容をまとめます。
【1】本連載「踊るバズワード 〜Behind the Buzzword」の量子コンピュータの最終回です。ええ、もう、最終回といったら最終回です。量子論という異世界生活の非常識の理解を説明にほとほと疲れ果て、最終回としないと、もう私(江端)のHP(ヒットポイント)とMP(マジックポイント)が尽きてしまうと判断したからです。
【2】「世間が、実用可能な量子コンピュータが存在しているかのように錯覚している理由」について考察してみました。これは、量子コンピュータを理解せずに記事を量産する自称テクニカルライターだけではなく、本屋に並べられている「量子コンピュータの本のタイトル」にも原因があるのではないかという仮説を展開しました。また、最終回ということで、私が今回の量子コンピュータの勉強で使わせて頂いた資料やサービスをご紹介しました。この中でも”YouTube”が突出して優れていたことを説明しました。
【3】量子コンピュータが実現する計算の一つである「量子もつれ」について、そのアプリケーションを探してみたところ、あまりかんばしい結果が得られなかったことを説明しました。その中でも特に、「量子テレポーテーション」についての世間の壮大な誤解(瞬間移動だの、瞬間情報伝達だの)を解消し、正しい「量子テレポーテーション」(量子状態の移動)の説明を試みました。
【4】「量子もつれ」について、現時点で既に実用化のメドが立っている「量子暗号」についてE91プロトコルを例に、その概要を説明しました。併せて、量子コンピュータと量子暗号通信が、マッチポンプの関係にあり、量子コンピュータの研究開発を進めないと、我が国は量子ITの先進国に「食われる側」に転落する、という未来予測を行いました。
【5】現時点で、量子コンピュータの最大の問題点の一つである「量子ビットのスケーラビリティ(大規模化)」について、「2次元クラスター量子もつれ」の有する驚愕のポテンシャルを理解(?)した上で、その意義を、(1)量子コンピュータをプログラムではなく、量子コンピュータの回路そのものを変更し、(2)膨大な量子間の結線を「量子もつれ」で代替することにある、という江端の独断に基づく解説を強行しました。
【6】量子コンピュータの完成形を誰も知らないこの世界にあって、「自分だけは知っている」と、世界と自分をだます方法として、量子コンピュータのシミュレーターQiskitと、実験用量子コンピュータ”IBM Q”を、1回だけ試しに使ってみることを提言し、その具体的な手順について説明しました。
以上です。
Copyright © ITmedia, Inc. All Rights Reserved.