2025年9月に、広島大学にて開催された日本オペレーションズ・リサーチ学会の企業事例交流会に参加してきました。
私の発表内容は「ホテル客室清掃」をテーマに、シフト作成とタスク割り振りという2つトピックをお話ししました。
シフト作成では最適化システムの定式化や設計的なハードな要素、後半のタスク割り振りでは要件や制約条件を引き出すプロジェクトにおけるソフトな側面を交流会では発表しましたが、今回はここでも、当日の発表スライドを使いながら簡単に紹介できればと思います。
1. 勤務シフト作成の最適化
一つ目のトピック、シフト表についてです。
要点をざっくり言うと、
- シフト作成は大変だけど重要
- 現場の条件はコロコロ変わるから、汎用的な設定画面(UI)が必要だった
- 結果、汎用的に作れたので他現場にも横展開できた
という感じです。
ここでは汎用的なUIの工夫について書こうと思います。
仕様変更のたびにコード修正が必要なプログラムは扱いづらいですが、シフト表作成の条件もまさにそれです。
条件変更のたびに制約式を作り直すのはやりたくないし、かといって想定しうる制約をすべて網羅しようとすると、UIの設定項目がごちゃごちゃになってしまいます。
長期で現場の人が利用することを考えると何とかしてシフト表の条件を(現場の方が慣れている)Excelにきれいにおさめたかった訳です。
そこで池上先生の書籍で紹介されていた縦と横の条件という考え方を参考に、縦と横に回数とパターンという制約群を作り、後は点の条件を合わせました。これらの条件の組み合わせで複雑な条件もカバーすればExcel上できれいにできそうだなと。
こんな感じの条件も3つの制約の組み合わせで作ることができます。(下のスライド参照)
この3つの制約は同じ形の制約なのでExcelで管理するのが楽という訳です。
あと、発表の中では触れなかったのですが、制約条件の表現力を高めるために独自の集合操作記法を作ったりすることでシフト表で出てくる大抵の条件を効率よく表現できました。
定式化はとてもシンプルにしておりますが、詳細についてはOR学会機関誌に記事を寄稿したのでそちらでご確認ください。(掲載から1年か2年ほど経てば非会員のかたでも閲覧できるかと)
ちなみに先ほどの条件を素直に定式化すると少しややこしくなりますし、この条件以外には使えない専用の条件になってしまいます。
2. 客室担当割り振りにおける「暗黙知」
2つ目は「誰がどの部屋を清掃するか」、要するにタスクの割り振り問題です。
発表では、この問題に取り組む過程で苦労した暗黙知についてお話しました。
この記事でもその苦労話を簡単に紹介します。
暗黙知とは
今回の文脈で言うと、「誰をどの部屋に割り振ればいいか」を決める際の、言語化されていない"判断基準"や"勘"のことです。
いい感じに客室を割り振るためにはどんなことを考慮しながら普段割り振りを行っているのか知る必要があります。そのため以下のようなプロセスを経てその条件を抽出していきます。
で何が苦労するところかというと、計画者本人も普段自身がどのような基準で、どのようなルールで割り振りを行っているか意識していないからヒアリングしても出てこないんですよね。特に当たり前なことほど。
なので「例えばこんな条件とかないですか?」こちらからも提案しながらヒアリングを進めていったわけですが、下のスライドのようなすれ違いが。。。
このすれ違いの厄介な点は、「計算結果自体はそこそこ妥当」なことです。 作業時間をベースにしたモデルは現場とマッチしていないものの、決してデタラメではないため、計算すると"そこそこ良い解"を出してしまうんですよね。でも、現場からすると微妙に違う。
そして最初に紹介したプロトタイプ➡フィードバックのサイクルを繰り返す過程で微妙に違う部分を解消するために制約を積み増すことになり、どんどんと実際の割り振りモデル(暗黙知)に近づけないという訳でした。
解決策はシンプルに現場。 現場に行き、実際の割り振りを見て、体験させてもらう。そうやって自分自身が暗黙知を習得しに行きました。 発表では、「現場で暗黙知を知り、その暗黙知に名前をつけて形式知化し、それを数理モデルに取り込むことで対応しました」という結びでお話ししました。
終わりに
ホテル客室清掃という分野の事例の珍しさもあってか、発表後にはたくさん質問もいただけましたし、その後の懇親会や研究発表会で意見交換ができ刺激と学びのあった学会参加となりました!!
今後も学会を通した情報収集や発信を頑張っていければと思います!
