2020年06月04日 08時00分 公開
特集/連載

量子コンピュータプログラミングの入門方法量子コンピュータ時代に備えよう

この数年間で量子コンピュータ分野は大きく進み、研究者でなくても触れられる可能性が拡大した。来る量子コンピュータ時代に備えてプログラミングを学ぶ方法とは。

[Abraham Asfaw,Computer Weekly]
iStock.com/sh22

 量子コンピューティング分野は、ここ数年の間に急速に進歩した。2016年、IBMは量子コンピュータをクラウドで公開し、この技術を利用する機会を研究所の外へと広げた。その目的は、関心を持つ誰もが量子コンピュータを利用できるようにし、人材の育成を支援することだ。そうすることで、業界の課題を量子コンピュータによる解決が可能な問題へと変えることができる。

 取引決済の最適化、機械学習を用いた新たな洞察の獲得、科学的発見の加速を後押しするため、業界では量子コンピュータを使った実験が始まっている。さまざまな計画を成功につなげるには多くの量子開発者が必要になる。あなたが量子に備えるべきかどうか迷っているなら、その端的な答えは「イエス」だ。

 わずか4年半前、プリンストン大学の大学院教育助手だった筆者はホワイトボードを使って約20人の学生に量子コンピューティングを教えていた。IBMがクラウドベースの量子コンピュータを利用可能にして以来、プリンストン大学の講師陣はカリキュラムに実践演習を取り入れることが可能になった。同大学は2019年から「IBM Q Network」のアカデミックパートナーになっている。実践演習を組み込んだコース(ELE 396/COS 396)の履修者は、学部トップクラスの優秀な人材に成長した。

 現在では、世界中の複数の大学で量子コンピューティングコースが開設され、クラウドベースの量子コンピュータをそれぞれの教育に取り入れている。

量子コンピュータについて知っておくべきこと

 まず量子コンピュータの仕組みを少し説明する。量子コンピューティングとは、量子力学を演算に効果的に利用するものだ。量子ビット(キュービット)は、量子コンピュータが使う基本情報単位で、現在の古典コンピュータが使っているビットとは全く別物だ。

 古典コンピュータのビットは0か1の値にしかならない。だが、量子ビットは0と1の組み合わせとして存在できる。この性質を「重ね合わせ」と呼ぶ。つまり、個々の量子ビットは本稿の執筆に使っているノートPCでは利用できない状態を生み出すことができる。

 複数の量子ビットは「量子もつれ」の状態になることも可能だ。量子もつれ状態になった2つの量子ビットがあるとする。そのうちの一つの状態を観測すると、もう一方の量子ビットを観測した結果に何らかの形で相関性が示され、完全なランダムにはならなくなる。2つの量子ビットが遠く離れているとしてもだ。量子コンピューティングでは、重ね合わせと量子もつれを一緒に利用できる。

 量子アルゴリズムを作成する上で重要な概念がもう一つある。それは「干渉」だ。干渉の具体的なイメージをつかむために、2つの正弦波を思い浮かべてみよう。2つの正弦波が整列すると2つの信号が加算され、信号が増幅される。反対に、これらが整列していないと相殺的干渉が生じて信号が減衰する。

 幾つかの量子アルゴリズムは、指数関数的に増える膨大な数の論理状態の重ね合わせを生成することから始める。このアルゴリズムは、干渉を活用することで特定の問題に対する全ての誤った解が相殺して最終出力に現れないようにし、正しい解のみが残るようにする。

量子コンピューティングの導入

 1つの演算だけで、0か1のような古典コンピューティングの状態から0と1を組み合わせた情報を持つことが可能な重ね合わせ状態へと移行できる。同様に、2つの演算だけで、量子ビット間で量子もつれを実現することが可能だ。

 「IBM Quantum Experience」は、IBMの5量子ビットシステムと15量子ビットシステムへのアクセスを提供している。IBMは「Circuit Composer(https://quantum-computing.ibm.com/docs/circ-comp/)」というツールを用意しており、これを使って量子ゲートを個別に量子ビットにドラッグ&ドロップすることで量子プログラムを作成できる。

 「Python」を使ったオープンソース量子プログラミングプラットフォーム「Qiskit(https://github.com/Qiskit)」でプログラミングすることも可能だ。Pythonを既に使えるなら、あと少しの努力で重ね合わせ、量子もつれ、干渉を量子プログラムで活用できるようになるだろう。

 量子コンピューティングアプリケーションの可能性を研究しようとする熟練開発者向けに、Qiskitの構成要素である「Qiskit Aqua」(量子コンピューティングアプリケーション用アルゴリズム)で人工知能(AI)、化学、財務、最適化用アルゴリズムライブラリが提供されている。例えば、信用リスク分析、債券価格、バスケットオプション価格などを試すための財務関連のチュートリアルが多数用意されている。

 IBMとJPMorgan Chaseの科学者は、将来実現し得るオプション価格決定の高速化のテストに関する研究を発表している。この研究は、現在の従来型モンテカルロ法ではなくQiskitの振幅推定アルゴリズムを利用している。

ITmedia マーケティング新着記事

news103.jpg

HubSpotに聞く 顧客と自社の成長になぜ「文化」が重要か
企業文化は「第2の製品」。自らが求める価値と行動指針を「カルチャーコード」として定義...

news023.jpg

「6G」の特許出願レースは中国がリード、日本は追い付けるか?
2020年台後半には実用化が始まるといわれる6Gの技術。日本は世界で存在感を示せるでしょ...

news016.jpg

「パーソナライゼーションエンジン」 売れ筋TOP10(2021年9月)
今週はパーソナライゼーション製品の売れ筋TOP10を紹介します。