数理システム 数理最適化ブログ

最適化楽屋話#9

Numerical Optimizer 開発責任者の田辺隆人でございます。

先月のV20感謝祭にいらして頂いた皆様、まことにありがとうございました。ゲストスピーカーの先生から頂くお話、パネルディスカッション、いずれも機知と示唆と数理最適化への愛に満ちていて素晴しく、濃密な時間を過ごさせていただきました。

私からは、ごく初期(25年前)からのNumerical Optimizer (NUOPT)の開発の経緯を振り返ってお話ししました。スライドをまとめていて、このソフトウエアが現在の形で成立するにあたって、いかに沢山のユーザーの方々のフィードバックが大きな役割を果たしたか、そして、暖かい目で我々を辛抱強く見守って頂いていたのか、改めて認識した次第です。ありがとうございました。そして、これからもどうかよろしくお願い申しあげます。

今回の Excel アドインによるサンプルは、最も典型的かつ有用な数理最適化のパターンを代表する例題です。「まんじゅう」「もなか」「せんべい」が入った 3 種類の袋詰めをそれぞれ買って、所望の量を揃えてできるだけ安く上げたい、というストーリーです。Excel シートをまずはご覧ください。緑のセルに袋を何個ずつ買うのかという数字を入れると Excel の数式で連動したオレンジの部分(供給量と価格)が変化します。

袋A,B,C はそれぞれ癖のある詰め方になっていて、袋A はどれもそこそこ入っているのだけど沢山買うと「せんべい」が余ってしまいます。袋B は「もなか」が入ってない代わりにとても安い。袋C は「もなか」だけ丁度よく手に入るのですが、同じ値段の袋A の構成を考えると結構割高です。

数理最適化の問題は何か一つのことをする(どれかの袋を一つ買い足す)と、それに伴って不可避的に沢山の現象(お菓子が買い足した袋の種類に応じて手に入る一方で、コストも増える)が起きてしまう。そんな「やるせない」場合で所望のことを最もうまく実現したい、というモチベーションできていることがかなり多い気がします。私はこのモデルを「重ね合わせパターン」と呼んでいて、ダイエット問題、ポートフォリオ最適化、生産スケジューリング問題などを直観的に理解する助けになると考えています。

田辺隆人

Numerical Optimizer 開発責任者

無料最適化セミナーのご案内
紹介資料はこちら