Numerical Optimizer 開発責任者の田辺隆人でございます。
先月のV20感謝祭にいらして頂いた皆様、まことにありがとうございました。ゲストスピーカーの先生から頂くお話、パネルディスカッション、いずれも機知と示唆と数理最適化への愛に満ちていて素晴しく、濃密な時間を過ごさせていただきました。
私からは、ごく初期(25年前)からの Numerical Optimizer(NUOPT)の開発の経緯を振り返ってお話ししました。スライドをまとめていて、このソフトウエアが現在の形で成立するにあたって、いかに沢山のユーザーの方々のフィードバックが大きな役割を果たしたか、そして、暖かい目で我々を辛抱強く見守って頂いていたのか、改めて認識した次第です。ありがとうございました。そして、これからもどうかよろしくお願い申しあげます。
今回の Excelアドインによるサンプルは、最も典型的かつ有用な数理最適化のパターンを代表する例題で、解説スライド、エクセルブック、最適化モデルをダウンロードできますのでぜひお試しください。「まんじゅう」「もなか」「せんべい」が入った3種類の袋詰めをそれぞれ買って、所望の量を揃えてできるだけ安く上げたい、というストーリーです。Excelシートをまずはご覧ください。緑のセルに袋を何個ずつ買うのかという数字を入れると Excel の数式で連動したオレンジの部分(供給量と価格)が変化します。
袋 A、B、C はそれぞれ癖のある詰め方になっていて、袋Aはどれもそこそこ入っているのだけど沢山買うと「せんべい」が余ってしまいます。袋Bは「もなか」が入ってない代わりにとても安い。袋Cは「もなか」だけ丁度よく手に入るのですが、同じ値段の袋Aの構成を考えると結構割高です。
数理最適化の問題は何か一つのことをする(どれかの袋を一つ買い足す)と、それに伴って不可避的に沢山の現象(お菓子が買い足した袋の種類に応じて手に入る一方で、コストも増える)が起きてしまう。そんな「やるせない」場合で所望のことを最もうまく実現したい、というモチベーションできていることがかなり多い気がします。私はこのモデルを「重ね合わせパターン」と呼んでいて、ダイエット問題、ポートフォリオ最適化、生産スケジューリング問題などを直観的に理解する助けになると考えています。
田辺 隆人
株式会社 NTTデータ数理システム 取締役
Nuorium Optimizer 開発責任者
数理科学がプログラムとして世の中に出てゆく様子を追いかけ続けています。