連載
» 2022年05月10日 05時00分 公開

料理来るの遅いなぁ――数理最適化で飲食店のビジネス課題「調理遅れ」を解決できるのかリクルート事例で分かる数理最適化入門(2)

リクルートにおける数理最適化の応用事例を通じて、数理最適化とは何か、どのようにビジネスに応用できるのかを紹介する連載。今回は、飲食店の最重要課題の一つ、「調理遅れ」を数理最適化で解決する際の考え方やポイントなどについて解説する。

[須藤遼介,リクルート]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 本連載「リクルート事例で分かる数理最適化入門」ではリクルートでの数理最適化の応用事例の紹介を通して、数理最適化がどのようにビジネスに応用できるのかを紹介します。連載初回の前回は、数理最適化の概要、リクルートにおける4つの応用事例、実問題適用への手順、機械学習との違い、使い分け方などを解説しました。

 連載第2回の本稿では、数理「最適化のビジネス応用事例の一つとして、リクルートの製品「Airレジオーダー」の「キッチンモニター」で利用されている調理順並べ替えによる提供遅れ防止機能を紹介します。

 なお記載している内容は公開可能な範囲で簡略化しており、一部ロジックは現実のAirレジオーダーと異なる点があることをご了承ください。

Airレジオーダーのキッチンモニターとは

 Airレジオーダーは弊社リクルートで提供している、飲食店の煩雑になりがちな注文を一元管理し、最適なタイミングでの調理、提供をサポートするオーダーシステムです。中でもキッチンモニターは、料理の注文をキッチンのiPadで表示、管理する機能で、セルフオーダー、ハンディー、「Airレジ」など複数の経路での注文に対応しています。

  • セルフオーダー:お客さま自身がスマホのWebブラウザから入力する注文
  • ハンディー:ホールスタッフなどが、お客さまの注文を受けて、iOS端末で使えるハンディーで入力する注文
  • Airレジ:レジで先に注文と会計をする場合に、Airレジで行われる注文

キッチンモニター公式サイトから引用

 キッチンモニターを利用するメリットは、「注文の管理が容易になる」点だけでなく、「過去の注文/調理状況をデータとして保存、管理できる」点もあります。これらの保存されたデータを分析することで、紙での注文管理ではできなかった業務支援の可能性が広がります。

 ここからは、具体的な案件内容を紹介します。

ビジネス課題の理解

調理遅れとは

 皆さんも、飲食店で料理を注文した際に「来るの遅いなぁ」みたいに思った瞬間が一度はあるのではないでしょうか。

 調理業務が遅れてしまい、お客さまが期待した時間より、提供が遅れてしまっている状態を料理の「調理遅れ」とわれわれは呼んでいます。調理遅れは飲食店の顧客の満足度を大きく下げる要因です。飲食店のクレーム分析でも、調理遅れはクレーム要因のトップとしてたびたび挙げられており、飲食店の最重要課題の一つです。そこで、われわれはキッチンモニターを利用して調理遅れを削減する機能の実装を検討しました。

頼んだはずのだし巻きたまごが届かない人の図(吹き出しは筆者の想像)(「https://unsplash.com/photos/Jn1csk3lWDA」から画像を引用)

調理所要時間は簡単には変えられない

 調理遅れを削減する方法として、最も直接的なのは「調理単体にかかる時間(=調理所要時間)」を短くすることが考えられます。

 大手チェーン店などでは、調理工程、仕込み、キッチンのレイアウト、機材の改善や、そもそものメニューの変更などによって調理所要時間を改善しています。しかし、一般の店舗でここまでの効率化は難しく、現在のキッチンモニター単体でもここまでのサポートは困難です。そのため、調理所要時間を変えずに調理遅れを削減することを検討する必要があります。

調理にかかる合計時間はそう簡単に短くできない

調理順の最適化による調理遅れの削減

 調理所要時間は変えずに、調理遅れを削減することは可能でしょうか?

 われわれが注目をしたのは「料理ごとにお客さまに調理が遅れていると見なされる期限(=調理期限)が異なっている」点でした。例えば、おつまみや前菜といった料理は注文後すぐに届いてほしい半面、鍋やデザートなどは注文後すぐに届かなくてよいケースがほとんどです。

 そこで調理遅れの削減を「調理にかかる時間の総和を短くする」問題ではなく、「調理遅れ時間の総和が最小化されるような調理順を求める」問題とし、これを最適化問題として解くことにしました。

※なお現実には調理遅れを単純に削減すること以外にも調理順には考慮ポイントがありますが、ここでは言及しません。

調理所要時間を短くするのではなく、調理の順列を求める問題として解くことにした

問題定義

問題の性質の把握と類似問題の検討

 今回解く問題は「調理遅れ時間の総和が最小化されるような調理順を求める」ことです。これは、どのような調理順なのでしょうか?

 遅れ時間を減らす方法として単純に考えられるのは、「期限が近い順に調理をする方法」です。一見、これは調理遅れを減らせそうですが、「調理遅れの総和を最小化」という観点では最適な方策ではありません。下図は調理期限が近い順に調理を行った場合と、最適化問題を解いた場合の調理順を比較したものです。

 2つの調理順を見比べると、一部調理順を入れ替えることで、調理遅れを縮小/回避できており、その結果遅れ時間の総和が減らせていることが分かります。

 このような調理順は、人間がぱっと計算するのが困難です。しかし数理最適化を用いれば、注文状況を入力として最適化問題を解くことで機械的に最適な調理順を計算できます。

 ただ、数理モデルの構築に慣れておらず、現実の問題をどのように数式に表現したらいいか分からない場合もあるのではないでしょうか。そういう場合は類似の問題を探すことが数理モデルの構築を手助けします

 例えば今回の問題は実は「スケジューリング問題」という問題の一種であり、特に同時調理可能な注文数が1つの場合は「1機械スケジューリング問題」という数理最適化の教科書に載っている問題の一種と考えられます。これは古くから工場の工程の最適化などをお題に研究されていた分野です。よくよく考えてみると、「注文」→「生産計画された部品」、「機械」→「調理師」、「部品の納期」→「調理期限」と考えると、分野は違えど、解いている問題は同じように考えられ、同じロジックで調理順の問題についても解くことが可能です。

工場の生産計画とレストランの調理順決めは問題の性質が似ている

 このように、最適化問題を現実の問題に適用する場合、既に数理最適化が活躍している分野の典型的な問題を参考にすることが有効です。そのため、「どのような問題があって、どのように解かれているのか」という典型例を多く把握することは数理最適化のビジネス応用に大いに役立ちます。久保幹雄先生の「Python言語による実務で使える100+の最適化問題」のように最適化問題の典型例を紹介しているサイトも存在します。

アルゴリズムによる求解

 数理モデルを構築できた後はアルゴリズムによって求解します。ここでは、数理最適化ソルバーを用いる方法を紹介します。

数理最適化ソルバー

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。