現実世界は制約だらけ

ネットワークやコンピューティングパワーの発展のおかげで、計算機上の仮想世界では机上のアイディアが実現できるチャンスが大きく広がっている。一方で現実の世界となるとどうだろうか。「インターンの学生を希望の部署に配属したいが、部署の定員のためにすべて叶えられない」、「段取り替えの手間を最小化しようとしたら、納期に間に合わなくなってしまう」、「需要変動に機敏に追従したいが発電機は一度動かすとすぐには止められないのでどうしても無駄な稼働をしてしまう」、「人数の不足をアルバイトで埋めようとしたが、4時間連続のシフト勤務なので結局労働力が余ってしまった」、「可能な限り学校の統廃合を行いたいが、徒歩圏にある学校がなくなってしまう生徒の数は抑えたい」など、アイディアの実現には依然として物理的制約や法的規制といった制約が存在し、ときに明確な最適解が実現できない。

どんなに良い戦略でも実行できないのでは「絵に描いた餅」。実務家はとにかく制約を充足することを主眼にして試行錯誤で解を探す。その営みの中で勘を研ぎ澄まし、使える結果を得る術を習得するが、その答がどの程度最適なものなのかを示すことはできない。

数理最適化は制約の中で最適を目指す

数理最適化は現実の制約を真正面から扱って攻略しようとする手法である。問題を数学の言葉で(数理的に)表現し、計算機を仮想空間上の探索ツールとして使って、実用に供する最適解を探す。

最適化はよく山登りに例えられるが、制約がある場合、完全な攻略は簡単ではない。良く見える頂上は結局制約のために行けない場所だったり(実行不可能性)、手近な頂上を目指して最短コースで登ろうとしたら、制約に行きあたって、遠回りを強いられたり(非凸性)、頂上に行き着いたと思ってふと遠くを眺めると、より高い場所があることに気付いたり(多峰性)、我々は持てるコンピューティング技術と探索手法をフル動員しながら、現実世界において実行可能なそれでかつ最適な戦略を仮想世界の中で探すことを続けている。

計算機はどうやって最適化をするのか

最適解を探索する上で計算機がやっていることは実はかなり地道な作業である。最適解の探索には一つの方程式を解くのみでは不十分で、一連の方程式を解き続ける中で最適解の存在範囲を絞り込み、最適解の候補や存在する領域を動的に更新することが必要である。構造が比較的数学的に記述しやすい問題に対してはネットワーク最適化、動的計画法、線形計画法など、応用数学の分野で積み上げられてきた成果を使って効率良く徹底的に調べ上げることが鍵となる(exploit)。一方で前述した「多峰性」のある問題に対してはランダム性を取り入れてできるだけ広く探索する(explore)という所作が重要である。この部分には手法的にもタブー探索やアダプティブ探索、Memeticアルゴリズムなど提案手法が群雄割拠の状態であり、クラウド環境における並列化など、昨今普及してきたコンピューティング環境をうまく利用することで大きく効率化する余地が広く残されている。

デジタルトランスフォーメーションと数理最適化

複雑すぎて人が探しきれなかった答を数理モデルとコンピュータを使って探し、その結果を現実世界に適用すること。それが数理最適化のもたらす「デジタルトランスフォーメーション」である。

あと何勝すればクライマックスシリーズに出場できるかを示すCSナンバーの算出や、人数保証制約付きのレコメンドエンジン、日々の宿直やシフトスケジューリング、レイバースケジューリング、空調設備の自動運転設備投資のシミュレーションまで、適用対象は広い。

特に昨今製造業において数理最適化に対する関心の高まりは著しく、サプライチェーンの至るところの計画業務に数理最適化の応用が広がっている(図1)。

図1 製造とサプライチェーンにおける数理最適化事例

実務家とともに成長させる数理モデリングとその意味

数理最適化は現実世界を数理的に表現して仮想世界に写し取る作業(数理モデリング)から始まるが、実はこの作業自体にも試行錯誤が必要となる。例えばあなたは自分が習熟している業務のアウトプットが満たすべき制約を、第三者に伝わる形で過不足なくリスト化できるだろうか。不完全な制約の設定から計算機が出してきた、「論理的」だが「単細胞」な応答によって、これまであえて意識してこなかった制約、重要そうに見えたがあまり効かない制約に気付くことができる。このように現場の実務家とともに結果を見ながら数理モデルを成長させてゆく作業は、これまで明白知化されていなかった計画業務を描写する手段であり、熟練者のノウハウの引継ぎを実行する方法となる。

数理最適化技術と人間は共生できる

数理最適化は、習熟の必要な計画業務など、これまで人間の「聖域」とされていた分野に踏み込んでゆくことが多い。計算機にとって「未踏の領域」に踏み込むとき、人間の采配を生かす部分を残さないのは合理的な選択ではない。機械の持つ論理性、制約の充足を確実に評価してくれるという厳密性、与えられた枠内で人間よりも圧倒的な速度で探索を行う徹底性は、結果に責任を持たねばならない人間の心強い味方となる。その安心感が裏付けとなって、人間の持つ高度なバランス感覚と全体感、柔軟性と適応力は、デジタライズされた社会においてさらに輝くと我々は信じている。

NTTデータ数理システムが提供する数理最適化の情報

デジタルトランスフォーメーションとともに昨今特に注目されている数理最適化であるが、実は70年以上の歴史を持つ手法である。NTTデータ数理システムでは数理最適化を用いたビジネスを30年以上にわたって続けて来ており、その実績から得たノウハウを無償セミナー、冊子(最適化読本1、2)、有償相談会、などの形で発信している。

その内容は数理モデル作成の勘所などの応用数学的な話題から、数理最適化の事例、最適化プロジェクトの進め方、数理最適化をSIに組み込む場合の実践的ノウハウなどのソフトウエアづくりに関する話題まで、多岐にわたる。

デジタルトランスフォーメーションをミッションとする方々の中には数理最適化は有効そうだが、どこから進めるべきなのかのイメージが掴みにくいと感じられている方々も多いと思う。進歩してゆくコンピュータ環境と数理科学技術の中で模索を続ける我々のノウハウがそんな方々の助けになればと思っている。

〈数理最適化の情報源〉

https://www.msi.co.jp/nuopt