2017年11月16日木曜日

ロバストな勤務表

勤務表を自動作成して最も困難なのは、月々の予想できない仕様変更に対処することです。

つまり、月々の仕様変更という外乱に、打ち勝つ耐性が必要なのですが、これを私的には、ロバスト性を有する自動勤務表作成と呼んでおります。 自動勤務表作成は、制約によって記述されますから、ロバスト性を有する勤務表は、ロバストな制約で記述されている必要があります。これは、結構難しいことなのですが、長い経験によりこんな風に作成したらよい、という経験則が少し見えてくました。そこで、この辺のノウハウをまとめています




2017年11月4日土曜日

オペレーションズ・リサーチ的アプローチとAI的アプローチ

Wekipediaによると
さまざまな計画に際して最も効率的になるよう決定する科学的技法である。
とありますが、学会での定義を見ると、「ORは問題の分野を選ばないという横糸的性格を持っています」 さらに、「人間社会で使われることのないORは意味がありません.みなさん,ORは実学です.」とも述べられてています。

私は、大学でORを勉強した事はありません。今にして、ORを勉強していればよかったなあ、と思いますが、その当時のMIPソルバーの性能比も数百万倍になっているわけで、その後の内点法(吉瀬先生)などのアルゴリズムの進化は、勉強していたとしても予想だにしなかったでしょう。ちなみに、大学で教わった言語は、Fortranのみで、しかもパンチカードという時代だったし、私の現在の主力言語C++は勿論存在していません。会社に入ってようやく、Cという言語でUNIXは書かれているらしい....、という時代でした。回路設計も、2000ゲートを回路図で数ヶ月というと超速レベル、その後、論理合成に基づくHDL設計という時代の後、合成も進化していきます。私のHDLシミュレータ(Veritak)も一定の貢献をしたと思いますが、アサーションのFeasibility Studyをしたところで、SATソルバーの存在を知り、当時看護師長だった妻の勤務表作成に応用することを思いつきました。(数年、妻の勤務表をモデルに改良を重ね、現在に至ります。妻は偉くなってしまい、現在は、Advanced Usersさんを中心に助言を頂いています。)

してみると、技術の進歩というのは、私達常人には予想できないことかもしれません。
ナーススケジューリングという、NP困難な組み合わせ最適化という、一つの分野にここ数年取り組んでみて分かった事は、「最適化」 Optimizationというキーワードは、OR的手法のみならず、AI的手法においても共通しているということです。同じ事を目指しているのに、全く違う手法なのです。

一方、先端のMIPソルバーは、AI的手法の肝である学習節を持っているらしいし、SCIPにおいても制約伝播的なアプローチが取られているようです。この先どのようなイノベーションが待ち受けているかは、分かりませんが、OR(数理計画)とAI(人工知能)の融合というのが、一つのテーマではないか、と思います。