コロナ禍で重要になる最適化モデル(6)予約最適化
収益管理と予約最適化
コロナ禍で,レストランや美容院や宿泊施設や航空機産業などは,壊滅的な打撃を受けています.これを乗り切るためには,単に税金をばら撒くだけの政府のキャンペーンは無意味ですし,SNSで「助けて下さい」と宣伝するだけでは不十分です.一時的に顧客が増えたところで,安定した収益をあげることにはつながらないからです.
これらの産業は,陳腐化資産を有するという特徴をもちます.陳腐化資産というのは,顧客が利用しないと価値を産まず,ある時点までに顧客が来ないと価値が0になる資産を指す専門用語です.
たとえば,レストランや美容院や航空機では座席,宿泊施設では部屋に相当します.コロナ禍においては,客が行列を作るなどは論外ですから,基本的には予約によって(十分に間隔をとって)座席を埋めることになります.
常に予約で満席になれば問題ないですが,通常は満席になる日や時間帯もあれば,全然客が来ない日や時間帯もあります.収益管理とは,動的に価格を変動させることによって顧客の需要をコントロールし,陳腐化資産を有効活用し,収益を最大化する手法です.
簡単な例題で解説しましょう.いま,5時間だけ店を開けているレストランがあるとします.座席数(容量)は10とします.メニューは3種類で,1時間のミニコース(利益は1000円),2時間のコース(利益は3000円),3時間のフルコース(利益は5000円)があるものとします.簡単のため,需要は時間帯によらず,それぞれ平均10,6,3のポアソン分布にしたがうもの仮定します.
モデルの定式化
この問題は,簡単な数理最適化モデルを用いて解決することができます.以下の線形最適化問題を考えます.
R[j]: サービス(コースと客の到着時刻の組)j の利益
D[j]: サービスjの需要量(確率分布にしたがってサンプリングします)
N[i]: 各時間帯の容量 (=10)
a[i,j]: サービス j が時間帯 i を使用するとき 1,それ以外のとき 0 のパラメータ
x[j]: サービス j を受け入れる数
最大化 R[j] x[j]の合計
時間帯 i に対して,a[i,j] x[j]の合計がN[i] 以下
x[j] がD[j] 以下
この問題を最適化すると,時間帯ごとの容量制約に対する双対変数が得られます.これを入札価格と呼びます.これは,各時間帯の座席の価値を表します.
通常は予約がきたときに席に空きがあれば,先着順に埋めていくと思いますが,収益管理では異なる方策で需要をコントロールします.最も簡単な方策は,入札価格コントロール方策といって,顧客に対する収益が,顧客の使用する座席の入札価格(の合計)以上なら受け入れ,そうでなければ(たとえ席に余裕があっても)断るというものです.
この例では,収益の大きい5000円のコースは常に受け入れますが,1000円のコースは最初の時間帯だけ,3000円のコースは最初と最後の時間帯だけ受けて,後はすべて断るのが最適になります.
もちろん,予約は一度にくるのではなく,予約日まで徐々にやってきます.そのため,実際にはこの問題を何度も繰り返し解くことによって,予約日がくるまでにちょうど座席が(収益の大きな顧客によって)満席になるようにコントロールするわけです.
顧客の需要が容量に満たない場合にはどうしたらいいでしょうか?入札価格を用いた,一つの提案があります.食べログなどで配布されている通常のクーポンは,不特定多数に対して割引や追加サービスを行うものです.これは,短期的な集客だけで,常連を増やすことによる安定した収益には繋がりません.
弊社では,予約システムで常連客を期待収益の順に管理し,入札価格が小さい時間帯だけ常連の上位から時間帯限定クーポンをメイルで送る方法を提案しています.これによって,常連さんたちがコロナ禍でも安心して通える店舗にすることができると考えています.
他にも,様々な最適化モデルやコントロール方策があります.これらは,問題によって使い分ける必要があります.宿泊施設や航空機の座席に対しては,キャンセルやno showを考慮した,独自の予測を行う必要があります.
弊社では,最新の収益管理の理論と需要予測を用いたプロトタイプの実装を行っています.ご興味を持たれた方は,こちらにご連絡いただければと思います.