研究対象
本研究室の研究対象は,製品の製造,荷物の運搬,顧客へのサービス提供などの機能を担うシステム,すなわち広い意味での「生産システム」です.こうしたシステムでは,一般に,複数の人と機械が分業しながら,製造,運搬,サービス提供などの機能を果たしています.
生産システムには,作業を担う人や機械,対象物としての製品や荷物,そしてものやサービスを受け取る顧客など,膨大な数の要素が関わるため,それが稼働している際に,実際には,誰ひとりその全体像を把握しているわけではありません.
それなのに,何故かうまく動いている.不思議だと思いませんか?
それは,うまく動かすための「仕組み」がシステム自体に埋め込まれているからだと言えるでしょう.一般に,この仕組みは,ある部分の動きは計算機によって機械的に定め,また別のある部分の動きは人の柔軟な判断に委ねるという具合になっています.
すなわち,生産システムは「複数の人と機械(計算機)の知的協働」によって動いているということになります.本研究室では,この生産システムを動かす「仕組み」の解明や考案,支援手法の開発を目指して研究を行っています.
主な研究課題
本研究室で取り組んでいる具体的な研究テーマのほとんどは大まかに下の4つに分類できます.
生産システムを動かすための運用の意思決定(例えば,ある加工職場のスケジュール作成,ある機械へのジョブの差し立てなど)に注目し,その質の安定化や向上を目指します.
もしその意思決定を自動化するのであれば,よりよいアルゴリズムを考案すること,人手に委ねるのであれば,意思決定の質を左右する要因を解明すること,効果的な支援手法を開発すること,などがテーマになります.
各部分の運用担当者の意思決定が組み合わされたときに何が起こるかを考えます.誰も全体を見渡して指示を出してはくれない状況で,各部分が足並みをそろえて環境変動に対応するにはどうすればよいでしょうか.
複数の企業で構成されるサプライチェーンではもちろんですが,同一企業内でも工場間,部署間で情報の非対称性や利害の対立が生まれてきます.それらを克服して,システムを全体としてうまく動かせるメカニズムを考えることがテーマになります.
生産システムを動かすことで生み出される価値をさらに高めるために,顧客にもある種の情報提供者としてシステムの運用に貢献してもらうことを考えてみましょう.
そのために,生産する製品・サービスの種類や数をまだ完全に決めていない段階で,潜在的な顧客から要求に関する情報を入札という形で受け取り,実際に生産する製品・サービスの種類と数,それらの価格,買手となる顧客(勝者)などを,ある種のオークションを通じて同時に決定する新しい仕組みの考案と応用に取り組んでいます.
生産する製品・サービスの設計や,生産システムの動かし方などについて,生産システムの構成員や顧客の他にも有用な知識や情報を持っている人がいるかもしれません.そうした知識や情報を,不特定多数の人々からうまくクラウドソースするにはどうすればいいでしょうか.
そのために,複数人の間に分散していた知識を集約し,「集合知」を形成するための仕組み,すなわち「集合知メカニズム」のモデル化と応用に取り組んでいます.
これら以外に,シミュレーションモデリングや統計的モデリング,それらに基づく最適化などにも取り組んでいます.
研究アプローチの特徴
本研究室が上記のような課題に取り組むために用いている研究アプローチの特徴は,計算科学的手段と行動科学的手段の双方を補完的に活用しようとしている点にあります.
① 計算科学的手段では,機械(計算機)の担当部分だけでなく,人の担当部分についても,その意思決定をある種のアルゴリズムとしてモデル化します.そして,例えば,それをシミュレーション上で駆動させてみることで,システム全体としてどのような振舞いが生じるかを観察します.
② 行動科学的手段では,人の担当部分について,実際に人に意思決定を行ってもらい,状態と行動の関係を観察します.とはいえ,現実の生産システムでこのような実験を行うことは難しいことが多いですので,それを模擬したゲーム(シリアスゲーム)を用いるようにしています.
そして,科学的興味からは,例えば,②の結果に基づいて①のアルゴリズムをより現実に近づけていったり,①で予想される振舞いが②でも再現されるかを確認したりすることで,人の意思決定についての理解を深めていきます.
一方,工学的興味からは,例えば,①のモデルに基づいて,生産システムをうまく動かすための仕組みや各担当者の意思決定を支援する手法を考案し,それらの効果を②で検証していきます.
研究で利用するプログラミング言語やライブラリなど
本研究室で用いるプログラミング言語はPythonがメインですが,データ分析にはRを使うこともあります.特に,離散事象シミュレーションにはPythonのSimPyライブラリの利用を推奨しています.
ウェブアプリのサーバサイドには,PythonベースのフレームワークDjangoの利用を推奨し,クライアントサイドでは,React系を使うようにしています.
混合整数計画問題などのモデリングにはPuLP,求解には必要に応じてGurobiを使っています.また,近似解法としてメタヒューリスティクス系では,PySwarms,DEAPなど,ニューラルネットワーク系はPyTorchなどの使用実績があります.