内容紹介
数理最適化を使って現実の問題を解決できるようになる!
本書は、数理最適化の基礎から実務に応用する際のポイントや注意点まで、「モデリング」の観点を中心にして初学者にもわかりやすく解説します。
モデリングには、「教科書的な問題」と「現実の問題」の間に大きな壁があります。本書は、数理最適化の実応用に日々取り組んでいる著者たちが、その経験をもとに、「数理最適化を使う際にどのようなことを気にするか」「どのように問題を捉えるか」などを、「数理最適化の考え方」としてまとめたものです。
典型的な例題を、条件を変えながら深く考察しているので、様々に応用できるモデリングの考え方が身につきます。本書の「考え方」を習得することで、現実の問題を数理最適化を使って解決できるようになります。
数学的な予備知識はなるべく仮定せず、必要となる概念は本を読み進める中で自然に身につくようになっています。
このような方におすすめ
・数理最適化を実務で扱うビジネスマン、技術者、データサイエンティスト
・数理最適化を勉強する情報・経済・経営系などの学生
・数理最適化の応用を研究している研究者
目次
主要目次
まえがき
第1章 数理最適化という考え方
1.1 数理最適化について知ろう
1.2 今,数理最適化が注目されている理由
第2章 実務に活かす数理最適化の考え方
2.1 数理最適化とモデリング
2.2 定式化,求解,分析
2.3 最適化ソルバー
2.4 数理最適化問題の分類
2.5 まとめ
第3章 数理最適化問題の問題構造という考え方
3.1 配合問題
3.2 輸送問題
3.3 生産計画問題
3.4 まとめ
第4章 二択が含まれる最適化モデルの考え方
4.1 二択を表す変数
4.2 取捨選択問題
4.3 輸送問題再訪– 問題拡張1
4.4 輸送問題再訪– 問題拡張2
4.5 まとめ
第5章 割り当てという考え方
5.1 世の中にある割当問題
5.2 割当図と割当表
5.3 割当問題のモデル化
5.4 まとめ
第6章 割当問題を応用するための考え方
6.1 人員配置問題
6.2 シフトスケジューリング問題
6.3 配送計画問題
6.4 まとめ
第7章 問題を分割するという考え方
7.1 問題を分割するとは?
7.2 期間で分割する
7.3 粒度で分割する
7.4 問題構造で分割する
7.5 制約の強さで分割する
7.6 まとめ
第8章 数理最適化プロジェクトを成功させるための考え方
8.1 問題をどう定めるか
8.2 システム化における注意点
8.3 数理最適化プロジェクト開始前の見極め
8.4 数理最適化プロジェクト進行の要諦
8.5 数理最適化の課題の発見について
付録A Excelソルバー
A.1 Excelソルバーの導入方法
A.2 Excelソルバーを使ってみよう
付録B よく使う数学記号
B.1 等号付きの不等号記号
B.2 集合関連
B.3 添字
B.4 総和記号
B.5 総和記号の省略形
付録C スラック変数
C.1 スラック変数と実行不可能問題
C.2 スラック変数とソフト制約
文献案内
あとがき
参考文献
索引
詳細目次
まえがき
第1章 数理最適化という考え方
1.1 数理最適化について知ろう
1.1.1 数理最適化って?
1.1.2 数理最適化による問題解決
1.1.3 モデリングの重要性
1.2 今,数理最適化が注目されている理由
1.2.1 歴史から学ぶ数理最適化の考え方
1.2.2 グローバル大企業から学ぶ数理最適化の考え方1:アマゾンによる数理最適化事例
1.2.3 グローバル大企業から学ぶ数理最適化の考え方2:グーグルにおける数理最適化事例
1.2.4 多様な軸の活用事例から学ぶ数理最適化の考え方
第2章 実務に活かす数理最適化の考え方
2.1 数理最適化とモデリング
2.1.1 数理最適化のモデリングって何?
2.1.2 数理最適化モデルを作る理由
2.1.3 アルゴリズムの重要性とモデリングとの関わり
2.1.4 数理最適化技術の導入コストとソルバー
2.2 定式化,求解,分析
2.2.1 数理最適化モデルを考えてみよう!
2.2.2 線形な定式化
2.2.3 数理最適化モデルを解いてみよう!
2.2.4 結果を分析してみよう!
2.3 最適化ソルバー
2.3.1 実務者にとっての求解とは?
2.3.2 モデリング言語とは
2.3.3 モデリング言語の特徴
2.4 数理最適化問題の分類
2.4.1 問題の大まかな分類の前に
2.4.2 数理計画問題のクラス
2.4.3 実際のモデリングで意識する記述について
2.4.4 線形な定式化の重要性
2.5 まとめ
第3章 数理最適化問題の問題構造という考え方
3.1 配合問題
3.1.1 配合問題の定式化
3.1.2 問題変形してみよう!
3.1.3 配合問題の問題構造
3.2 輸送問題
3.2.1 変数とグラフ
3.2.2 目的関数の線形な定式化
3.2.3 制約条件とグラフおよび線形な定式化
3.2.4 求解
3.2.5 トラブルシューティングの心得
3.3 生産計画問題
3.3.1 定式化の吟味
3.3.2 要件をいかに捉えるか
3.4 まとめ
第4章 二択が含まれる最適化モデルの考え方
4.1 二択を表す変数
4.1.1 二択の構造を見抜く
4.1.2 0と1で表すということ
4.2 取捨選択問題
4.2.1 0-1ナップサック問題
4.2.2 Excel ソルバーでの求解と簡単な実験
4.3 輸送問題再訪– 問題拡張1
4.3.1 追加要件の内容
4.3.2 追加要件の定式化
4.3.3 定式化の検証
4.3.4 適切な定式化に到達するために
4.3.5 問題規模と疎な記述
4.4 輸送問題再訪– 問題拡張2
4.4.1 追加要件の内容
4.4.2 代用できないか考えてみる
4.4.3 厳密に考えてみる
4.4.4 問題とどう向き合うか
4.5 まとめ
第5章 割り当てという考え方
5.1 世の中にある割当問題
5.1.1 割当問題とは?
5.1.2 様々な割り当て問題
5.1.3 割当問題における目的関数
5.2 割当図と割当表
5.2.1 割当図
5.2.2 割当表
5.3 割当問題のモデル化
5.3.1 0-1変数を用いた割り当ての表現
5.3.2 割当問題のモデル化の基本
5.3.3 割当問題における典型的な制約条件
5.3.4 ソフト制約
5.3.5 モデルのまとめ
5.4 まとめ
第6章 割当問題を応用するための考え方
6.1 人員配置問題
6.1.1 典型的な制約条件
6.1.2 スキルレベルを考慮した人員配置問題
6.1.3 負荷の平準化
6.2 シフトスケジューリング問題
6.2.1 割当問題としての見方
6.2.2 モデル化の基本
6.2.3 時間を軸とする制約と時間以外を軸とする制約
6.2.4 典型的な制約条件
6.2.5 比較的高度な制約条件
6.2.6 目的関数が複数ある場合への対応
6.3 配送計画問題
6.3.1 割当問題としての見方
6.3.2 割当問題としてのモデル化
6.3.3 列挙と割り当て
6.3.4 「最適解」は必要か
6.4 まとめ
第7章 問題を分割するという考え方
7.1 問題を分割するとは?
7.1.1 生産スケジューリング問題
7.1.2 問題分割の例
7.1.3 問題分割の注意点
7.2 期間で分割する
7.2.1 期間で分割する方法の注意点
7.2.2 ローリングホライゾン
7.3 粒度で分割する
7.3.1 粒度で分割する場合の求解手順
7.3.2 粒度で分割する方法の注意点
7.4 問題構造で分割する
7.4.1 問題構造で分割する方法の手順
7.4.2 問題構造で分割する方法の注意点
7.5 制約の強さで分割する
7.5.1 制約の強さで分割する方法の利点
7.5.2 制約の強さで分割する方法の手順
7.5.3 優先度順に制約を追加する場合
7.5.4 目的関数が複数ある場合への応用
7.6 まとめ
第8章 数理最適化プロジェクトを成功させるための考え方
8.1 問題をどう定めるか
8.1.1 数理最適化プロジェクトの流れ
8.1.2 モデル≠現実のコピー
8.1.3 最適≠望んだもの
8.1.4 数理最適化プロジェクトのビジネスインパクト
8.2 システム化における注意点
8.2.1 数理最適化に捉われすぎない
8.2.2 実行不可能への対応
8.2.3 今見えている問題・解法にフォーカスしすぎない
8.3 数理最適化プロジェクト開始前の見極め
8.3.1 問題構造のキーストーン
8.3.2 キーストーンを意識できているか
8.3.3 宝剣となるデータを手にせよ
8.3.4 データの概念強度
8.4 数理最適化プロジェクト進行の要諦
8.4.1 プロジェクトの大局を見ること
8.4.2 計算に乗る
8.4.3 結果の吟味
8.4.4 実績との比較
8.4.5 数理最適化プロジェクトのアンチパターンと対応策
8.5 数理最適化の課題の発見について
付録A Excelソルバー
A.1 Excelソルバーの導入方法
A.2 Excelソルバーを使ってみよう
付録B よく使う数学記号
B.1 等号付きの不等号記号
B.2 集合関連
B.2.1 要素,従属関係
B.2.2 要素数
B.2.3 重要な集合
B.3 添字
B.3.1 多重添字
B.3.2 全称記号
B.4 総和記号
B.5 総和記号の省略形
付録C スラック変数
C.1 スラック変数と実行不可能問題
C.2 スラック変数とソフト制約
文献案内
あとがき
参考文献
索引
続きを見る