【目的】
2018年7月18日に公開されたGoogleの量子コンピュータNISQを使うための PythonによるCirq量子プログラミングについて解説しています。 Python言語を使って無料でGoogleの量子シミュレータが使えるCirq量子計算入門書です。
【概要】
Googleの量子コンピュータNISQは、間もなく登場する72ビットの量子プロセッサーBristleconeの量子コンピュータ実機への実装に向けた布石で、量子ゲート方式の量子シミュレータとして登場しました。 そこで、Cirq量子計算を行うPythonプログラムについて解説した動作確認済みの実践的な入門書です。 Googleは、量子ゲート方式に使われている量子プロセッサには、今後50~100程度の量子 ビットが使われる中規模の量子コンピュータが普及すると想定していると思われる。 一般 に、量子ゲート方式の問題点は、ビット反転雑音や位相反転雑音などの量子ノイズを避ける ことが出来ず、今後、量子ノイズのある中規模の量子コンピュータが実用的に使われること が予想される。このような量子ノイズが避けられない中規模の量子コンピュータの普及機 として、NISQ(Noisy Intermediate-Scale Quantum)を構築しようとしている。 このNISQ を、今回量子シミュレータとして公開し、将来的には 中規模の量子コンピュータ の普及実機で動作させよう としている思われる。 量子コンピュータがビジネスで使える時代になってきており、それに備えた斬新な解説入門書です。テキストでは、95例のCirqコードで分かりやすく丁寧に解説しています。 拙著「Pythonクラウド量子計算QISKitバイブル」「Python量子プログラミング入門」で解説した、定番の量子ゲートから量子アルゴリズム、量子通信プロトコル、グローバー探索アルゴリズム、量子フーリエ変換、ショアの因数分解アルゴリズム、関数傾斜推定アルゴリズム、さらに、イジングモデルでの断熱量子計算、組み合わせ最適化問題をCirq量子計算コードで解説しています。 これらのCirqコードを約209頁で丁寧に解説した本格的な入門書です。このテキストで十分にCirqコードによる量子計算の基礎と応用が習得できます。
【特徴】
組み合わせ最適化問題では、論理演算の真理値表を求めるイジングモデルでの断熱量子計算や、Number Partition問題におけるイジングモデル、MaxCut問題におけるイジングモデル、ドイチ問題のイジングハミルトニアンについて解説し、実際にCirq量子計算コードを作成して、これらの組み合わせ最適化問題の探索解を求めています。
【目次】
第1章 Google NISQ とPython開発環境
1-1 Pythonのインストールと開発環境
1-2 AnacondaとJupyter notebook
1-3 Cirqの設定
1-4 Cirqドキュメント
第2章 量子コンピュータNISQのためのCirq
2-1 CirqによるPythonプログラミング
2-2 Cirqによる量子計算入門
第3章 量子ゲートの基礎
3-1 量子回路でのCirq量子ゲートの基礎
3-2 2量子ビット以上のCirq量子計算
3-3 Cirqの基本ゲートでのX, Y, Z測定
3-4 Cirqコードの制御NOTゲート
3-5 ユニタリ回転ゲート
3-6 多重制御Uゲート
第4章 量子アルゴリズム
4-1 ドイチアルゴリズム
4-2 ドイチ・ジョサアルゴリズム
4-3 ベルンシュタインヴァジラニアルゴリズム
4-4 サイモンアルゴリズムのCirqコード
第5章 量子通信プロトコル
5-1 量子テレポーテーション実験
5-2 量子高密度符号実験
第6章 グローバー探索アルゴリズム
6-1 グローバーの探索アルゴリズム
6-2 データベースN=8でのグローバー探索アルゴリズム
第7章 量子フーリエ変換
7-1 量子フーリエ変換の定義
7-2 N=2nの量子フーリエ変換
7-3 逆量子フーリエ変換ゲート
第8章 ショアの因数分解アルゴリズム
8-1 古典的因数分解アルゴリズム
8-2 量子関数の作り方
8-3 量子オラクルの作り方
8-4 関数傾斜推定アルゴリズム
第9章 イジングモデルでの断熱量子計算
9-1 イジングモデルとは
9-2 イジングモデルの断熱量子計算
9-3 イジングモデルのハミルトニアンの量子ゲート実装
9-4 イジングモデルでの断熱量子計算の基本
第10章 組み合わせ最適化問題
10-1 論理演算のイジングモデルでの断熱量子計算
10-2 Number Partition問題におけるイジングモデル
10-3 MaxCut問題におけるイジングモデル
10-4 ドイチ問題のイジングハミルトニアン
10-5 イジングハミルトニアンのエネルギー準位
【著者紹介】
中山 茂 (なかやま しげる) 京都生まれ。 京都大学大学院工学研究科博士課程修了後、上智大学、英国Reading大学、京都工芸繊維大学、兵庫教育大学、英国Oxford大学、鹿児島大学を経て、2014年に定年退職。
【著書】
「HotJava 入門」「HTML と JavaScript」(以上、工学図書)、「Turbo C、Turbo C++ グラフィックスプログラミング入門」「Fortress 言語」「量子アルゴリズム」「Java2 グラフィックスプログラミング入門」(以上、技報堂出版)、「Swift 言語入門」「Swift アプリ開発入門」「Swift Apple Watch アプリ開発入門」「クラウド量子計算入門」「Swift Mac アプリ開発入門」「Swift Playgrounds アプリデビュー」(以上、カットシステム)、「Swift Playgrounds iPadでミニゲームアプリ作成入門」「2018年版 診療放射線技師受験対策 医用工学速習」「Swift4 iPhoneX ミニゲームアプリ作成入門」「クラウド量子計算 量子アセンブラ入門」「Pythonクラウド量子計算QISKitバイブル」「Python量子プログラミング入門」(以上、NextPublishing)など。