Pythonによるアニーリングマシン入門 PyQUBOで解く最適化問題

  • Pythonによるアニーリングマシン入門 PyQUBOで解く最適化問題
  • Pythonによるアニーリングマシン入門 PyQUBOで解く最適化問題
ページ数
190p
ISBN
978-4-320-03636-9
著者情報
棚橋 耕太郎(タナハシ コウタロウ)
2015年京都大学大学院工学研究科高分子化学専攻修士課程修了、修士(工学)。現在、チューリング株式会社E2E自動運転チームマネージャシニアエンジニア、IPA未踏ターゲット事業アニーリング部門プロジェクトマネージャ。専門分野:量子アニーリング、自動運転、機械学習、数理最適化

中田 百科(ナカダ ヒャッカ)
2016年東京大学大学院理学系研究科物理学専攻修士課程修了、修士(理学)。現在、株式会社リクルート。専門分野:量子アルゴリズム、数理統計、機械学習

田中 宗(タナカ シュウ)
2008年東京大学大学院理学系研究科物理学専攻博士課程修了、博士(理学)。現在、慶應義塾大学理工学部物理情報工学科教授、同大学サスティナブル量子AI研究センター長、同大学ヒト生物学‐微生物叢‐量子計算研究センター(WPI‐Bio2Q)副拠点長、株式会社Quanmatic CTO、IPA未踏ターゲット事業アニーリング部門プロジェクトマネージャ。専門分野:量子計算、量子アニーリング、イジングマシン、統計物理学、物性科学

¥3,300 税込

15 nanacoポイント

15 セブンマイル

セブン-イレブン受取り(送料無料)

発送目安

発売日(発売日以降は当日)~2日で発送

宅配(送料¥550税込)

発送目安

発売日(発売日以降は当日)~2日で発送

交通状況・天候の影響や注文が集中した場合等、お届けにお時間をいただく場合がございます。

商品説明

本書では、プログラミング言語であるPythonを用いて、アニーリングマシンを利用し最適化問題を解くための方法を学ぶことができます。

世の中にはたくさんの組合せ最適化問題が存在しています。電車の運行計画、工場の生産スケジュール、チラシ上の商品のレイアウト、電子回路の最適な設計など、例を挙げるときりがありません。これらは従来、汎用的な数理最適化ソルバーを用いて解かれていましたが、2011年にD-Wave Systemsによって世界初の量子アニーリングマシンが開発されて以来、多くのアニーリングマシンが世の中に登場し、組合せ最適化問題に対する新しい技術的なアプローチとして注目されるようになりました。
ユーザがこれらのマシンを利用する際には、最適化問題の形式の一種であるイジングモデルやQUBO(Quadratic Unconstrained Binary Optimization)を作成してマシンに入力し、その解をビット列の出力として得ます。それぞれのアニーリングマシンはそれぞれ固有の動作原理を持っており、アニーリングマシンとしての特徴も非常に異なっていますが、解きたい問題をイジングモデルやQUBOにさえ変換できれば、どのようなアニーリングマシンであってもQUBOから問題を解いてくれます。

本書では、PythonライブラリのPyQUBOを用いることで最適化問題からQUBOを作成する方法を説明します。実際にアニーリングマシンで問題を解くには、パラメータの逐次調整や得られたビット列の解釈など、多くの処理が必要になります。この処理をしてくれるのがPyQUBOです。どのようなアニーリングマシンを使うかにかかわらず、組合せ最適化問題を記述してQUBOを生成し、マシンから返ってきたビット列を解釈する役割をPyQUBOが担ってくれます。また、QUBOは量子アニーリングだけでなく量子ゲート方式の最適化手法にも頻繁に登場します。そこで、PyQUBOを用いた量子最適化計算についても説明します。

なお、アニーリングは組合せ最適化問題を解くためのアプローチの1つに過ぎないため、本書では組合せ最適化問題を解くための他の手法として、貪欲法、全探索法、数理最適化ソルバーを用いる方法についても紹介します。問題によって解くための適切なアプローチは異なるため、それぞれの手法を知っておくことで、アニーリングマシンがどのような問題に対して得意であるのかなどの見極めができるようになります。

目次

第1章 PyQUBOを使うための準備
1.1 Pythonの開発環境構築
 1.1.1 uvのインストール
 1.1.2 uvプロジェクトの初期化
 1.1.3 パッケージのインストール方法
 1.1.4 Pythonプログラムの実行
 1.1.5 本書で利用するパッケージ
1.2 Pythonの基本操作
 1.2.1 データ構造
1.3 アニーリングの基礎
 1.3.1 組合せ最適化問題とは
 1.3.2 ナップサック問題の定式化
 1.3.3 QUBO,イジングモデルとは
 1.3.4 QUBOとイジングモデルの変換
1.4 組合せ最適化問題からQUBOへの変換
 1.4.1 線形計画問題として定式化
 1.4.2 ペナルティ法により制約式を削除
 1.4.3 整数をバイナリにエンコード
 1.4.4 多項式の展開
 1.4.5 高次項の次元削減
 1.4.6 式を整理して係数からQUBO行列を作成する
 1.4.7 ナップサック問題のQUBO定式化

第2章 PyQUBO の使い方
2.1 PyQUBOの基礎
 2.1.1 BinaryクラスとSpinクラス
 2.1.2 数式をコンパイルしてQUBOを作成する
 2.1.3 Spinクラスを使ってハミルトニアンの数式を構築する
 2.1.4 Spinクラスを使って整数分割問題を解く
 2.1.5 イジングモデルによって整数分割問題を解いてみる
2.2 PyQUBOの応用
 2.2.1 Arrayクラス
 2.2.2 SubHクラス
 2.2.3 Placeholderクラス
 2.2.4 Integerクラス
 2.2.5 論理ゲートクラス
 2.2.6 論理ゲートクラスの応用
 2.2.7 論理制約クラス
2.3 PyQUBOを使わないナップサック問題の定式化
2.4 アニーリング以外でナップサック問題を解く
 2.4.1 全探索(枝刈りあり)
 2.4.2 貪欲法で解く
 2.4.3 整数計画問題ソルバーを使って解く

ほか

商品詳細

出版社名
共立出版
サイズ
21cm
対象年齢
一般
フォーマット
単行本

注意事項

本の帯に関して
帯つきでの出荷はお約束しておりません。
商品ページに、帯のみに付与される特典物等の表記がある場合でも、確実に帯つきでの出荷はお約束しておりません。
また、帯は商品の一部ではなく「広告扱い」のため、帯の有無・破損による交換や返品は承っておりません。
版・表紙について
版・表紙(カバー)のご指定は承っておりません。ご注文いただくタイミングによっては、お届けする商品の版や表紙が商品ページ上のものとは異なる場合がございます。
また、初版にのみにお付けしている特典(初回特典、初回仕様特典)がある商品は、商品ページに特典の表記がされている場合でも、無くなり次第終了となります。

あなたへのおすすめ