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

本書は,オペレーションズ・リサーチ(OR)の主要なモデルとアルゴリズムについて,その考え方と数理的な導出を解説する教科書である.
法政大学の講義「オペレーションズ・リサーチB」および「最適化特論」の教材として執筆している.
本書の特徴
具体的な問題から数理モデルへつなぐ. 在庫管理や効率性の評価などの問題を通じて,何を決め,何を評価するのかを整理し,数式で表す考え方を説明する.モデルの前提と,式が表す意味を大切にする.
結果に至る道筋を丁寧にたどる. 定理や公式の背景にある考え方を説明し,導出に必要な式変形を順を追って示す.結果がなぜ成り立つのかを,読者が自分の手で確かめられるようにする.
例で学び,練習問題で理解を確かめる. 本文の議論に沿った例で,モデルや解法の使い方を示す.さらに,練習問題を通じて,自分で考え,解く力を養う.
図と計算で理解を補う. 数式に加えて,図や数値例を用い,モデルの性質やアルゴリズムの動作を具体的に示す.Pythonのコードも掲載し,計算結果を再現したり,条件を変えて挙動を確かめたりできるようにする.
想定する読者と前提知識
主な読者として,経営工学・情報工学系の学部2年生以上を想定している.読み進めるには,微分積分・線形代数・確率・統計の基礎知識が必要である.このうち,微分積分・確率・線形代数の基本事項は,それぞれ付録の微分積分,確率,線形代数にまとめてある.証明の書き方に慣れていない場合は,How to Write Proofsも参照するとよい.
Pythonの文法そのものは扱わないが,理論の説明はコードを読まなくても理解できるように構成している.コードも併せて読み,実行することで,モデルやアルゴリズムの具体的な動作を確かめられる.
本書の読み方
興味のある分野から読み始めても構わない.ただし,同じ分野に属する章は,それ以前の章の内容を前提とすることがあるため,掲載順に読むことを勧める.また,記号の章には本書全体で用いる記号をまとめてあるので,最初に目を通してほしい.
本文の形式
内容に応じて,次の形式を使い分けている.
例では,定義や定理の意味や使い方を具体的に示し,解答まで説明する.
練習は,読者が自分で解き,理解を確かめるための問題である.多くの練習には,直後に解答を付けている.解答は枠で囲まず,斜体の見出し 解答. で始める.
ノートでは,本文に関連する補足的な話題を扱う.読み飛ばしても本文の理解に支障はない.
コードの実行方法
本書に掲載したコードは,以下の手順でGoogle Colab上で実行できる.
- Googleアカウントにログインする
- Google Colabにアクセスする
- 「ノートブックを新規作成」をクリックする
- コードをコピーして,セルに貼り付ける
- セルを実行する
それ以前のコードで定義した変数や関数を使う場合は,必要なコードを先に実行してほしい.
主に用いるライブラリはNumPy,SciPy,pandas,Matplotlib,NetworkXである.一部の章では,Gurobiやscikit-learnも使用する.追加のライブラリが必要な場合は,各章の説明に従って準備してほしい.
図を描くためのコードは,折り畳んだ状態で表示している.「Code」をクリックすると展開できる.アルゴリズムの実装など,コードそのものが説明の対象となる箇所では,最初から展開している.
問い合わせ
本書は執筆途中であり,随時更新している.ページを開いたままにしている場合は,再読み込みして最新の内容を確認してほしい.
誤字脱字,内容の不備,わかりにくい箇所などを見つけたら,劉子昂まで連絡してほしい.
Email: liu@hosei.ac.jp