Numerical Optimizer 開発責任者の田辺隆人でございます。
新しい年を迎えました。
我々は2月に迫った V20 のリリース準備と来期に向けた計画、年度末納期の受託プロジェクトの締め、そしてセミナーに向けて、気合の入るこの時期です。セミナーにはいつも多様な業界の方々からご参加頂き嬉しい限りですが、今日は最近お目にかかることの多い生産スケジューリングにご関心をお持ちの方向けに数理最適化の動作をできるだけ簡素に表現したサンプルを作りました。解説スライド、エクセルブック、最適化モデルをダウンロードできます。
ある製品を1個作るのに5つの工程が必要で、各工程に所要する人数がわかっているとき、一定の期間で作れる最大の製品の生産数を求めてみる、というものです。
ここでの数理最適化モデルのアイディアは、あり得る生産のパターンを列挙して、「重ね合わせ」に持ち込む、というものです。具体的には、1日ずつずらした生産パターンを都合8通り作って重ね合わせて人数の制約(土日はちょっと変化をつける意味で減らしてみました)の中に押し込めつつ、各パターンでの生産数の合計を最大化しています。
なかなか人間では思いつかない答(緑のセルです)が出ると思うのですが、いかがでしょうか。Excelアドインの自由度を活かして、生産パターン(ピンク色で塗った部分)や、所要人数上限(黄色で塗った部分)を変更することができますので、いろいろ触って数理最適化の「応答」を見て頂ければと思います。
生産には「人」だけではなく「機械の稼働時間」や「場所」も必要で、重ね合わせのときにそれらを同時に考慮する、とか、単純に日をずらすだけのパターン列挙ではなく、そもそもリソースの使い方のパターンが全然違うものを考慮する、とか、大技ですがパターン生成をやりつつ最適化する、とか、このモデルから派生して現れる最適化問題は実に多様です。
実務に少しでもひっかかる部分を感じて頂ければ幸いです。
田辺 隆人
株式会社 NTTデータ数理システム 取締役
Nuorium Optimizer 開発責任者
数理科学がプログラムとして世の中に出てゆく様子を追いかけ続けています。