Experience the CMOS Annealing Machine

アニーリングマシンと仲良くなるためのおすすめ書籍

概要

Annealing Cloud Webでは、アニーリングマシンの基礎知識から実際に使えるようになるまでのスキルを身につけるコンテンツを提供しています。ただし、他のウェブサイトや本などで吸収できる知識はそちらに任せ、他のウェブサイトや本では理解しづらいような内容に絞ったコンテンツ構成となっています。よって、実際には、Annealing Cloud Webで学んだだけで、すべてのことが出来るわけではありません。そこで、本コラムでは、実際にアニーリングマシンを使うために、Annealing Cloud Web以外で知識を深めるべきおすすめの書籍について紹介します。

課題を解決したい…それならアルゴリズムと数学と仲良くなろう

問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本

米田 優峻(著) 技術評論社

世の中にある課題を最適化問題として解くにあたってはアルゴリズムと数学の知識が必要です。より速く効率的に処理するために様々なアルゴリズムが役に立ちます。そして応用力を高めるためには数学的な考察を駆使することが大きな武器になります。

アニーリングマシンを学ぶ人にとってどのようにこの本が役に立つかをポイントごとにまとめると次のことが言えます。

課題を解決するための数学の知識が基本からわかる

この本は中学、高校レベルからの数学の知識をカバーしており、それらのレベルから学び直さなくても最適化に必要な数学知識がおさらいできる優れものです。最適化の初学者の味方といえます。具体的には、行列、場合の数、微分・積分といった、課題解決の場面で頻繁に用いられる知識が易しく説明されています。アニーリングマシンを効果的に使うためにこれらの数学の知識が必要となります。

課題の定式化、検証など、最適化処理そのものの効果を最大化するために役立つアルゴリズム

ある課題について最適化処理をする時に、アルゴリズムを考えることで計算量を予測できるようになります。計算量はどういった解法を使うかの1つの重要な指標になります。また、現実的な課題をどのような数学的な問題としてとらえるか、論理的に考える力がものを言います。まずは基本的なアルゴリズムを学ぶことで、定式化などに必要な応用力が育まれ、イノベーションに繋がります。

アニーリングマシンそのものの仕組みを改良、検討するための武器を身に付けることができる

更に言うならアニーリングマシンのハードウェアや仕組みを構築する際にもアルゴリズムを創造したり応用するスキルが役に立ちます。新規なハードウェアの開発に興味があれば挑戦してみてはいかがでしょう。

この本を書いた著者はプログラミングコンテスト上位の常連であり数学オリンピックでも3回金メダルを受賞しているというまさに世界最高レベルの実力者です。驚くべきは初学者レベルに寄り添った構成と内容です。また参考文献やリファレンス、インターネットコンテンツの紹介など非常に充実しており、まさに良書です。

色々な課題を数学的にとらえ、Pythonというツールでどのように解くかを知ろう

Pythonによる数理最適化入門

久保 幹雄(監修)並木 誠(著) 朝倉書店

本書は、数理最適化という学問の基礎についてPythonで書かれたサンプルを用いながら解説しています。数理最適化は従来のコンピュータでも探求されてきたものであり、本書もアニーリングマシンの使い方を解説しているわけではありませんが、従来の研究成果としての数理最適化をよく学び、新技術であるアニーリングマシンの適用分野との対応を明らかにしていくことは、アニーリングマシンの探求にとって役に立つでしょう。

Pythonを用いた数理最適化の学び始めにも最適

1章 概要 では、プログラミング初心者にもわかるようなデータ型、基本文法の説明や、例えば行列やベクトルを扱うためのPythonライブラリであるnumpyなどの、数理最適化を学ぶためのライブラリを列挙し概要や用途からやさしく説明されています。Pythonをツールとして数理最適化を学ぶのにとても親切な1冊です。信号制御最適化による渋滞解消でもnumpyを使用していますが文法までは説明していません。この本の1章を読んで取り組むことで基本と応用が身についてきます。

数理最適化の扱い方を俯瞰的に学んだ上で離散問題に効果的なアニーリングマシンを扱う

2章以降では、さまざまな数理最適化問題を解く手法が紹介されています。さまざまな分野で活用されている線形最適化問題から始まり、整数線形最適化問題、グラフ最適化、非線形最適化問題の解き方が紹介されています。これらを俯瞰的に学ぶことで、最適化問題にどうやって対応していくべきかの知識を得ることが出来ます。これらの中で離散変数の最適化問題はアニーリングマシンで扱うことが出来る可能性があります。数理最適化の概要を本書で学んだうえで、Annealing Cloud Webでアニーリングマシンの詳細な使い方を学んでいただければと思います。

難しい問題を解くために新方式の技術を使う。その近道となる新しい入門書

あたらしい数理最適化 Python言語とGurobiで解く

久保 幹雄・J.P.ペドロソ・村松 正和・A.レイス (共著) 近代科学社

アニーリングマシンで解くべき問題を知る為に好適

書名にあるGurobiは混合整数計画問題を解くための高性能な数理最適化ソルバです。高性能な数理最適化ソルバは、高級水準プログラミング言語から直接呼び出して使えるものもあり、世の中の複雑な問題をモデル化し解決することのハードルが非常に低くなっています。著者は、この書籍を書いた理由を以下のように述べています。

著者らは,そのようなパラダイムの変化に応えるため,新しいタイプの数理最適化の入門書を書くことを思い立った.内容としては,旧来の複雑な理論の解説は極力抑え,実務に役に立つものだけに限定して記述することにした.数理最適化ソルバーは,ほぼブラックボックスとして用いても差し障りがなく,その中身をすべて知る必要はないと判断したためである.

(「はじめに」より)

アニーリングマシン自体はこの書籍の中で紹介されていませんが、アニーリングマシンはGurobiと同様に、最適化部分をブラックボックスとして扱えるため、従来必要であった最適化計算そのものを検討する必要がなく、組合せ最適化問題をどのようにモデリングするかなどの前処理の検討に集中することができます。最適化処理のフローが共通しているため、本書の内容を応用しやすいといえるのです。先に紹介した「Pythonによる数理最適化入門」で、数学的課題をPythonで表現し解を得る流れを掴んだら、本書で組合せの問題とはどのようなものがあるか、どのように定式化されるのかを学び、アニーリングマシンを活用する力を身に付けてはいかがでしょうか。

様々な問題の特徴と定式化、ターゲットとなるソルバの使用についてのわかりやすい解説、ちりばめられたTipsも貴重な情報源

アニーリングマシンに限らず、最適化処理のソルバーを初めから完璧に使いこなすことは難しいことです。たとえば、極めて単純な問題を解いてみて正確さを検証しなければなりません。そのように重要なヒントが「モデリングのコツ」として随所に書き添えられており、必見です。また、「欄外ゼミナール」は、数理最適化に必要な知識を歴史も踏まえて説明しています。

多様なスキルをものにし、誰も解いたことのない答えを見つける

このコラムでは「課題解決に必要な数学とアルゴリズムの知識」、「課題を数学的にとらえPythonを用いて解を得る手順」、「難しい問題を解く新しい手法を使いこなす知識」といった観点で、それぞれのお薦めの書籍をご紹介しました。あなたの探求を深める道標になれば幸いです。

関連リンク

ACWスキルロードマップ

記事を読みましたか?スキルロードマップに印を付けましょう。

この記事はACWスキルロードマップの一部です。スキルロードマップを使ってACWを学んでみてください。

SNS共有

記事が役に立ちましたか?他の人に共有してみてください。

組合せ最適化問題をアニーリングマシンで解決する具体的な事例を知りたい人は

組合せ最適化問題とは

組合せ最適化を身近な組合せ最適化問題として分かりやすい2つの例を用いて解説します。また、IoT社会における組合せ最適化処理の高速解法の重要性について述べます。

COVID-19感染対策を考慮し研究員シフトを最適化する

COVID-19の流行に伴い、感染リスクを考慮した制約条件の下、研究員のシフト作成をアニーリングマシンで行うユースケースを紹介しています。

保険会社の再保険ポートフォリオを最適化する

自然災害リスクに対応するため、保険会社が保有する膨大なデータを活用した再保険ポートフォリオ策定をアニーリングマシンで行うユースケースを紹介しています。

アニーリングマシンの使い方が知りたい人は

易しく学ぶ最適化フロー

初級者向けに、アニーリングマシンで最適化問題を解く工程を、「課題整理と要件定義」「定式化」「入力データ作成」「アニーリングマシン実行」の4段階に分けて手順やポイントを解説します。

アニーリングマシンのための数学

アニーリングマシンが得意とする問題の特徴である「二次」「離散」を中心に、知っておくべき数学的前提を易しく解説します。