オペレーションズ・リサーチ
Operations Research: Models, Algorithms, and Implementations
まえがき

本書は,オペレーションズ・リサーチ(OR)の主要なモデルとアルゴリズムを,数理的な導出とPythonによる実装の両面から解説する教科書である.
法政大学の講義「オペレーションズ・リサーチB」および「最適化特論」の資料として執筆している.
本書の特徴
理論と実装を対にして扱う. AIやデータサイエンスの分野では,理論とPythonによる実装を併せて解説する教科書が増えている.一方,ORの分野でプログラミングを取り入れた教科書はまだ少ない.本書では,取り上げるモデルとアルゴリズムに,そのまま実行できるPythonコードを添える.本文の図は,一部を除いて,掲載しているコードの実行結果である.
導出を省略しない. 定理や公式は,結論だけを与えるのではなく,途中の式変形まで示す.読者が紙の上で最後まで追えることを目指している.
例と練習問題が多い. 例は解答まで含んでおり,読むだけで理解できる.練習問題は本文の議論に対応させて配置し,多くには解答をつけている.
想定する読者と前提知識
経営工学・情報工学系の学部2年生以上を想定している.読み進めるには,微分積分・線形代数・確率・統計の基礎知識が必要である.不足を感じたときのために,本書で用いる範囲を付録の微分積分,確率,線形代数にまとめてある.証明の書き方に慣れていない場合は,How to Write Proofsも参照するとよい.
Pythonの文法そのものは扱わない.コードが読めなくても本文の理解に支障はないが,読めるとより深く理解できる.
本書の読み方
章のあいだの依存関係は強くないため,興味のある分野から読んでも構わない.ただし,記号の章には本書全体で用いる記号をまとめてあるので,最初に目を通してほしい.
本文の形式
内容に応じて,次の形式を使い分けている.
例は,定義や定理を具体的な数値で確かめるためのものであり,解答まで含む.読者は読むだけでよい.
練習は,読者が手を動かすためのものである.多くの練習には,直後に解答をつけている.解答は枠で囲まず,解答. という斜体の見出しで始まる形式で示す.
ノートは,本筋から外れる補足である.読み飛ばしても支障はない.
コードの実行方法
以下の手順で,本書に掲載されているコードをGoogle Colab上で実行できる.
- Googleアカウントにログインする
- Google Colabにアクセスする
- 「ノートブックを新規作成」をクリックする
- コードをコピーして,セルに貼り付ける
- セルを実行する
用いるライブラリはNumPy,SciPy,pandas,Matplotlib,NetworkXであり,いずれもColabに導入済みである.
なお,図を描くためのコードは折り畳んで表示している.「Code」をクリックすると展開できる.アルゴリズムの実装など,コードそのものが説明の対象である場合は,最初から展開してある.
本書について
本書は執筆途中であり,随時更新される.閲覧の際には,最新の内容が表示されるよう,必ずブラウザを再読み込みしてほしい.
誤字脱字,内容の不備,わかりにくい箇所などを見つけたら,劉子昂まで連絡してほしい.
Email: liu@hosei.ac.jp