【目的】
2018年7月18日に公開されたGoogleの量子コンピュータNISQを使うための
PythonによるCirq量子計算コードでN-Queens問題について解説しています。 Python言語を使って無料でGoogleの量子シミュレータが使えるCirq量子計算入門書です。 先に上梓した「Cirq量子計算入門」「Cirq量子アルゴリズム」に続き、N-Queens問題の量子アルゴリズムとCirq量子計算コードによる実装を行った入門書です。
【概要】
Googleの量子コンピュータNISQは、間もなく登場する72ビットの量子プロセッサーBristleconeの量子コンピュータ実機への実装に向けた布石で、量子ゲート方式の量子シミュレータとして登場しました。 そこで、N-Queens問題のCirq量子計算を行うPythonプログラムについて解説した動作確認済みの実践的な入門書です。 Googleは、量子ゲート方式に使われている量子プロセッサには、今後50~100程度の量子ビットが使われる中規模の量子コンピュータが普及すると想定していると思われる。 一般 に、量子ゲート方式の問題点は、ビット反転雑音や位相反転雑音などの量子ノイズを避けることが出来ず、今後、量子ノイズのある中規模の量子コンピュータが実用的に使われることが予想される。このような量子ノイズが避けられない中規模の量子コンピュータの普及機 として、NISQ(Noisy Intermediate-Scale Quantum)を構築しようとしている。 このNISQ を、今回量子シミュレータとして公開し、将来的には、中規模の量子コンピュータの普及実機で動作させようとしている思われる。 量子コンピュータがビジネスで使えるQ2B時代になってきており、それに備えた斬新な解説入門書です。テキストでは、NP完全問題であるN-Queens問題を、N=2,3,4の例を取り上げて、Cirqコードで分かりやすく丁寧に解説しています。 特に、4-Queens問題では25量子ビット必要になり、IBM QXの20量子ビット制限では実装できないので、Googleの量子コンピュータNISQの量子シミュレータで解説しています。 N-Queens問題はいろいろなビジネス応用があり、本書で解説したN-Queens問題をビジネスのいろいろな分野に応用されることを期待しています。
【目次】
第1章 Google NISQのためのCirq設定
1-1 Pythonの開発環境とCirqの設定
1-1-1 Pythonの開発環境
1-1-2 Cirqのインストール
1-1-3 WindowsでのCirqのインストール
1-1-4 MacでのCirqのインストール
1-1-5 Jupyter notebookでのCirqの動作確認
1-2 Cirqドキュメント
1-2-1 Cirqチュートリアル
1-2-2 GitHubでのCirqコード
1-3 科学技術計算のPython基礎
1-3-1 Pythonの数値リテラル
1-3-2 NumPyモジュール
1-3-3 Mathモジュール
1-3-4 SciPyモジュール
1-3-5 Matplotlibモジュール
第2章 Cirq量子計算とN-Queens問題の基礎
2-1 CirqによるPythonプログラミング
2-1-1 cirqパッケージ
2-2 Cirq量子計算の基礎
2-2-1 はじめてのCirq量子計算
2-2-2 もつれ状態の生成とデータ取得
2-2-3 ヒストグラムのバーグラフ表示
2-2-4 2量子ビットでのヒストグラム表示
2-3 Cirq量子計算での目的関数設定
2-3-1 目的関数設定
2-3-2 3量子ビットでの目的関数(最大値)の設定
2-4 N-Queens問題の基礎
2-4-1 N-Queens問題とは
2-4-2 N-Queens問題の古典的アルゴリズム
2-4-3 N-Queens問題の量子アルゴリズム
2-4-4 N-Queens問題のビジネス応用Q2B
第3章 2-Queens問題の量子アルゴリズム
3-1 2-Queens問題の初期状態
3-1-1 もつれたベル状態
3-1-2 2-Queens問題のベル状態
3-2 2-Queens問題の列制約チェック
3-2-1 制御NOTゲートによる列制約検出
3-3 2-Queens問題の対角制約検出
3-4 2-Queens問題でのゲート配置の整列化
3-4-1 モーメントによるゲート配置の整列化
3-4-2 2-Queens問題の簡易的な図表示
3-4-3 チェスボード表示
第4章 3-Queens問題の量子アルゴリズム
4-1 3-Queens問題の初期状態
4-1-1 多粒子エンタングルのW状態生成
4-1-2 3量子ビットのもつれたW状態
4-1-3 3-Queens問題のW状態
4-2 3-Queens問題の列制約チェック
4-2-1 制御NOTゲートによる列制約検出
4-3 3-Queens問題の対角制約検出
4-4 3-Queens問題の簡易的な図表示
第5章 4-Queens問題の量子アルゴリズム
5-1 4-Queens問題の初期状態
5-1-1 多粒子エンタングルのW状態生成
5-1-2 4量子ビットのもつれたW状態
5-1-3 4-Queens問題のW状態
5-2 4-Queens問題の列制約チェック
5-2-1 制御NOTゲートによる列制約検出
5-3 4-Queens問題の対角制約検出
【著者紹介】
中山 茂 (なかやま しげる) 京都生まれ。 京都大学大学院工学研究科博士課程修了後、上智大学、英国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量子プログラミング入門」「Cirq量子計算入門」「Cirq量子アルゴリズム入門」(以上、NextPublishing)など。