ISBN 9784873119199

動かして学ぶ量子コンピュータプログラミング : シミュレータとサンプルコードで理解する基本アルゴリズム

動かして学ぶ量子コンピュータプログラミング : シミュレータとサンプルコードで理解する基本アルゴリズム
刊行
2020-08

概要

ブラウザ上のシミュレータで量子アルゴリズムを実装しながら理解する

想定読者

量子コンピュータの概念は知っているが、実際にプログラムを書いて動かした経験がないエンジニア・研究者

こんな人には向いていない

  • 量子力学の数学的基礎(線形代数・複素数)を全く知らない完全な初学者には、本書だけでは数式の理解に詰まる箇所がある
  • Qiskit や Cirq などの実機・クラウド量子コンピュータ向けフレームワークで実装したい読者には、QCEngine は教育用シミュレータのため直接応用しにくい
  • 量子誤り訂正や量子通信プロトコルの理論を深く掘り下げたい読者には扱いが浅い

読了後にできるようになること

  • 円形表記(Circular Notation)を使って単一キュビットの状態と演算を視覚的に把握できる
  • CNOT ゲートや量子もつれの仕組みを、QCEngine のサンプルコードで実際に確認できる
  • 振幅増幅(グローバーのアルゴリズム)と量子フーリエ変換の動作原理を段階的に実装できる
  • ショアの素因数分解アルゴリズムをシミュレータ上でエンドツーエンドで動作させられる
  • 量子機械学習(線形方程式・PCA・SVM)への量子アルゴリズム適用の概要を把握できる
  • 量子スーパーサンプリングなど非典型的な QPU 応用例を通じ、アルゴリズム設計の発想を広げられる

本書のキー概念(章解説)

  • 第 1 章 はじめに — QCEngine の使い方とシミュレータの限界を把握する導入。まずここで環境確認を済ませると以降がスムーズ
  • 第 2 章 単一キュビット — 円形表記の理解が本書全体の鍵。他の章より時間をかけて読む価値がある
  • 第 3 章 複数キュビット — CNOT ゲートともつれを実装で確認。量子テレポーテーションへの橋渡し
  • 第 4 章 量子テレポーテーション — 前章のもつれ概念を応用した実装演習。理論と実装が対応していることを確認できる
  • 第 5 章 量子演算と論理 — 可逆性と Boolean マッピングを実装で体験。後続の振幅増幅への前提
  • 第 6 章 振幅増幅 — グローバーのアルゴリズムの核心。位相変換とイテレーションの挙動をステップ追いで理解できる
  • 第 7 章 量子フーリエ変換 — DFT との比較で隠れたパターン検出の直感を掴む
  • 第 8 章 量子位相推定 — 固有位相(eigenphase)の応用範囲が広く、後続アルゴリズムの共通基盤
  • 第 9 章 量子データ表現 — 非整数データと QRAM の扱い。機械学習応用の前提となる章
  • 第 10 章 量子探索 — 位相論理と充足可能性問題を通じ、アルゴリズム設計の応用力を養う
  • 第 11 章 量子スーパーサンプリング — コンピュータグラフィクスへの量子応用という異色のテーマ。QPU の汎用性を示す章
  • 第 12 章 ショアの素因数分解アルゴリズム — 量子計算の代表的応用。QFT と位相推定が合流する章で、前章までの理解の総点検になる
  • 第 13 章 量子機械学習 — 線形方程式・PCA・SVM への量子アルゴリズム応用の概観。実務適用の解像度を高める
  • 第 14 章 最先端のトピックス — 誤り訂正・量子言語・ゲート分解の文献案内。次の学習ステップへの地図として活用できる

ハイライト

  • 概念的な記述が多い他の量子コンピュータの本とははっきり一線を画し、あくまでも実践に主軸を置き、著者たちが作ったシミュレータを利用してブラウザさえあれば試すことができるという、実践的なアプローチが特徴的です。(本書の差別化ポイントが最も端的に表れている記述)

外部からの言及

  • 量子回路の作図ツールを比較した記事で QCEngine が選択肢の一つとして紹介されており、本書付属のシミュレータとして参照されている。機能的な表現には適しているが表示形式が独特という評価が見られる(qiita)
  • 2020 年の量子コンピュータ関連書籍をレベル別にまとめた記事で、本書はプログラミング寄りの入門書として分類されている(qiita)

編集メモ

Qiita で直接言及が確認できた記事は 2 件(合計 likes 35)。量子コンピュータ関連の日本語 Qiita 記事全体では引用頻度は低め。楽天ランキング履歴は未確認。量子プログラミング入門書としては参照されるが、定番級の言及数には至っていない

読む前に押さえておきたいこと

  • 複素数の基本演算(加算・積・共役)と絶対値の概念
  • 2×2 行列の乗算など線形代数の初歩
  • JavaScript の基本的な読み書き(QCEngine サンプルの改変に必要)

学習のコツ

  • 第2章の円形表記(Circular Notation)の理解が全章の鍵になる。ここを手厚く読んでから先に進むと、各アルゴリズムの動作確認が直感的になる
  • QCEngine はブラウザで動くため、読書と並行してコードをその場で実行できる。章ごとにサンプルを改変して動作確認する習慣をつけると定着度が上がる
  • 第6章(振幅増幅)と第7章(量子フーリエ変換)は後続の応用章(10〜13章)の共通基盤になるため、理解が甘いと感じたら先に進まず復習する
  • 第14章は論文・文献ガイドとして設計されているため、読書中に気になったトピック(誤り訂正・量子言語など)の次の学習先を確認するために活用する
出版社による内容紹介

ブラウザで動くシミュレータで量子プログラミングを実際に試して理解できる! 量子コンピュータによって何が可能なのか、何によってより強力になるのか、解決できる問題を特定する方法についての理解を深めることを目的としています。概念的な記述が多い他の量子コンピュータの本とははっきり一線を画し、あくまでも実践に主軸を置き、著者たちが作ったシミュレータを利用してブラウザさえあれば試すことができるという、実践的なアプローチが特徴的です。量子コンピュータのプログラミングに必要な知識とツールとスキルをコンパクトにまとめ、実践的な観点から説明します。

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。