内容
【読書対象】
数理最適化を用いていろいろな分野の問題を解きたい方で,パッケージを用いた迅速なモデル構築の方法を学びたい方を読者として想定している。
【書籍の特徴】
科学技術計算で用いられるプログラミング言語であるJuliaでは,数理最適化のための便利なパッケージが利用可能である。本書では,これらのパッケージを用いて,様々なクラスの最適化問題を解く方法を解説する。取り上げたのは,現実に遭遇する問題を解く際に有用な,適用範囲が広く,よく用いられる最適化問題である。
本書では,錐構造を持つ最適化問題として,線形最適化問題(LP)の他に,2次錐最適化問題(SOCP)と半正定値最適化問題(SDP)も扱っている。最近のアルゴリズム研究とその実装技術の進展により,LPと比較して計算量の大きいSOCPとSDPも,手軽に用いることのできる数理最適化問題とみなせるようになってきた。SOCPとSDPはLPよりもモデル化能力が高く,様々な分野の問題の解決に有効であるが,それらをコンピュータを用いて解く方法を扱った書籍は少ない。本書では,Juliaでこれらの問題を解く方法を解説している。また,離散最適化と連続最適化の両方を扱うことで,読者が遭遇する幅広い問題を解く技術が身につけられるように留意した。
本書で取り扱っている数理最適化問題のクラスは,下記の通りである。
- 連続最適化問題
⇒線形最適化問題,2次最適化問題,2次錐最適化問題,半正定値最適化問題
- 離散最適化問題
⇒最短路問題,最大流問題,整数線形最適化問題,整数2次錐最適化問題
そして,これらを用いて解く問題として取り上げたのは,下記の通りである。
- 輸送最適化問題,巡回セールスマン問題,施設配置問題,信号推定問題,多項式最適化問題,最大カット問題の緩和解法,データ分類問題
【著者からのメッセージ】
数理最適化モデルの数式表現を理解すること自体は,四則演算がわかれば可能である。和の記号や行列に慣れれば中学生・高校生にも特に難しいところはないと思う。一方で,コンピュータを用いて数理最適化モデルを表現して解くためには,入口のところでいくらか手引きが必要かもしれない。本書は,そのような手引きとなることを目指した。いったん入口から入ってしまえば,より複雑なモデルに取り組むことはそれほど難しくないと思う。読者の方々が,本書を数理最適化の豊かな世界への入り口にされることを望んでいる。