問題の背景
近年,将棋倒しや群集雪崩などに代表される群集災害が大勢の人が集まるイベント/施設で問題となっています.群集災害を回避するためには,標識や警備員によって適切に群集の流れを制御する必要があります.しかし,費用や安全性の観点から様々な制御方策の是非を実際の環境で評価することは困難です.
多くの人やモノの動きを群集シミュレーションによりコンピュータ上(仮想世界)で模擬することで,現実世界に比べて迅速かつ定量的に制御方策を評価することが出来ます.とくに近年,各エージェントが個々の歩行者を表現するマルチエージェントシミュレーションを用いることで,制御方策の最適化を行う研究事例が多数報告されています3 ,4 .
適切な群集制御最適化を行うためには,シミュレータを現実に近づけることが欠かせません.現実に則したシミュレーション結果を得るためには,i) 移動経路に関する地図情報,ii) 歩行者の発生時刻や起点終点に関する情報(OD交通量),iii) 移動速度や経路選択などの歩行者の挙動を表す数理モデル,iv) 群集制御や災害による通行止めなどの外的要因といった情報を正しく与える必要があります.本コンペティションでは,なかでも計測が困難なOD交通量と歩行者モデルのパラメータに注目し,群集シミュレーション結果と観測データの誤差最小化 によりこれらのパラメータを推定します.
群集シミュレーションの概要
本問題では,帰宅者の移動のシミュレーションにCrowdWalk を利用します.CrowdWalkはひとりひとりの歩行者に対応するエージェントを生成してシミュレーションを行うマルチエージェント型の群集シミュレータです.各歩行者にエージェントを対応させることで,各歩行者のミクロな動きまで想定したシミュレーションを行う事ができます.
Fig. 1: CrowdWalkで使用する一次元のネットワークマップ
多数のエージェントの移動を高速かつ低メモリで計算するために,CrowdWalk ではFig. 1のように一次元のネットワークマップを利用してエージェントの位置計算を行います.また,全てのエージェントの位置は Social Force Model に従って更新されます.一次元ネットワークマップに適した Social Force Model の詳しい計算は,山下らの論文を参照ください5 .
問題定義
概要
本問題では,実際の花火大会(関門海峡花火大会)における帰宅時のシミュレーション結果が観測データに近づくよう,帰宅者の出発時刻および経路選択を推定(最適化)します.環境変数MODELをSOP-1かSOP-2に設定することで,それぞれ以下の問題を扱うことができます.
SOP-1: 帰宅者の出発時刻のみを最適化する問題
SOP-2: 出発時刻および経路選択を最適化する問題
定式化
Fig. 2: シミュレーション結果と観測値の誤差最小化
本問題は,CrowdWalkを用いた群集シミュレーションにおける歩行者情報推定を比較するためのベンチマーク (MAS-Bench )をもとに作成されています.MAS-Benchでは,以下の定義に従って観測データとの誤差が少なくなるよう歩行者情報が最適化されます.
θ ∗ = a r g m i n θ ∈ Θ ϵ o b s ( O , S ( θ ) ) \theta^* = {\rm argmin}_{\theta \in \Theta} \epsilon^{\rm obs}(O, S(\theta))θ ∗ = argmin θ ∈ Θ ϵ obs ( O , S ( θ ))
ここで, θ \thetaθ は出発時刻や経路選択に関する歩行者パラメータ(決定変数), O OO はカメラやGPSから得た観測データ, S ( θ ) S(\theta)S ( θ ) はパラメータ θ \thetaθ を用いたシミュレーションの結果, ϵ o b s ( O , S ( θ ) ) \epsilon^{\rm obs}(O, S(\theta))ϵ obs ( O , S ( θ )) は観測データとシミュレーション結果の誤差評価値(目的関数)です.
最適化の流れ
Fig. 3: MAS-Benchのシステム構成
MAS-Benchのシステム構成はFig. 3のようになっています.ユーザ側が操作する内容(最適化計算)は黒波線で囲まれており,MAS-Bench側が操作する内容(群集シミュレーション計算)は赤波線で囲まれています. MAS-Bench側は決定変数 θ \thetaθ をユーザ側から受け取り,目的関数 ϵ o b s ( O , S ( θ ) ) \epsilon^{\rm obs}(O, S(\theta))ϵ obs ( O , S ( θ )) をユーザ側に返します. つまり,群集シミュレーションの実行とシミュレーション結果に対する評価計算はMAS-Bench側で行われており,ユーザ側は歩行者情報の推定をブラックボックス最適化として行うことが可能です.
シミュレーションの構成要素
地図情報
Fig. 4: 会場周辺マップ
Fig. 5: ルートの情報
Fig. 6: 実際の花火大会における交通制御の様子
本問題では,関門海峡花火大会終了時におけるメイン会場から最寄り駅までの群集移動を対象としました.関門海峡花火大会の会場周辺マップ(Google航空写真)をFig. 4に示します.会場周辺マップにおいて,Oは花火イベント会場, Dは門司港駅を表します. 関門海峡花火大会では,交通規制により観客の帰宅経路は大きく3種類 に分けられます.また,それぞれの経路上には警備員が配置されており,警備員はルートを変更する分岐制御と歩行者の動きを止める停止制御を行います.シミュレーションにおいてエージェントが移動するルートの情報を簡略化したネットワークマップがFig. 5になります.各ルートの詳細は以下の通りです.
Route1 最も短い経路(Route1: 320[m]).配置されている警備員の数は分岐制御1人,停止制御3人です.
Route2 次に短い経路(Route2: 600[m]).配置されている警備員の数は分岐制御2人,停止制御2人です.
Route3 最も長い経路(Route3: 770[m]).配置されている警備員の数は分岐制御2人,停止制御2人です.
多くの歩行者の帰宅経路は,分岐制御における警備員の指示によって決定します.必ずRoute1を通る(警備員がRoute1を指示するまで立ち止まる)といった指示に従わない歩行者も一部存在します.詳しくは歩行者モデル をご覧ください.また,シミュレータ上でも実際の制御と同様にエージェントの移動制御を行っています.
計測機器
Fig. 7: 2種類の計測機器
本問題では,関門海峡花火大会で実際に得られている2種類 の観測データを用いてシミュレーション結果と実際の帰宅者情報の誤差を求めます.
カメラ 駅(歩行者の目的地)に到着した人数を計測し,時間あたりの到着人数を記録します.
GPS GPSトラッカーを持ったアルバイトに一定の時間間隔(10分ごと)でメイン会場から駅まで移動してもらい,それぞれ時間あたりの積算移動距離を記録します.群集の流れを計測するために,アルバイトは周りの流れに合わせて移動しています.
歩行者モデル
定点カメラを用いた群集計測から花火イベントでは,誘導に従う参加者と従わない参加者がいることが分かっています.本問題では参加者を,誘導に従うエージェント(Guided),駅への最短経路を選択するエージェント(Busy),お祭り会場となっている長い経路を選択するエージェント(Slow)の3種類 に分類します.また,これら全てのエージェントは停止信号に従うものとします.
Guided 分岐信号にしたがって歩行するエージェントです.このエージェントは全ての経路を歩く可能性があります.
Busy Guidedより少し速く歩行するエージェントです.このエージェントは必ず最短経路Route1を歩きます.
Slow Guidedより少し遅く歩行するエージェントです.このエージェントはRoute1への誘導を無視します.その後は誘導に従い,Route2,3のどちらかを歩きます.
決定変数
Fig. 8: 出発人数ヒストグラムと混合ガウス分布による近似
本問題では,全ての歩行者が花火会場を出発し駅まで移動すると仮定します.出発地・目的地が固定となるため,決定変数となる歩行者パラメータは時刻ごとの各エージェントタイプの出発人数 として表現できます.人数は1分ごとに集計されるものとし,19時から24時 までの各時刻の出発人数を整数値で指定します.すなわち,決定変数の数は300分✖エージェントタイプ数 となります.歩行者の合計(総数)は駅に設置したカメラから分かるため,決定変数の合計値と歩行者の総数は一致する必要があります. 30分ごとに人数を集計した場合の出発人数ヒストグラムとそれに対応した決定変数を図に示します.各時刻におけるエージェントタイプごとの出発人数を推定することで,「いつ」に加えて「どのような人が」に関する歩行者情報も推定しています.
(Tips)混合ガウス分布で実数最適化問題として解く方法 上記の決定変数を直接最適化する場合,300分×3種類=900個の変数を最適化する必要があります.出題者の研究グループでは出発人数ヒストグラムを混合ガウスモデル (GMM) を用いて近似することで実数最適化問題として解きましたので,実数値を用いる最適化手法を使う参加者の参考として説明いたします.
GMM法による出発人数推定では,エージェントタイプごとの出発人数をひとつのガウス分布に対応させて推定します.その後,ガウス分布を度数分布に変換し,合計が総人数と一致するよう補正することで時間あたりの出発人数を計算します.
エージェントタイプ k kk に対応するガウス分布を f k ( t ; μ k , σ k , π k ) f_{k}(t; \mu_k, \sigma_k, \pi_k)f k ( t ; μ k , σ k , π k ) とします. μ k \mu_kμ k , σ k \sigma_kσ k はガウス分布の平均および分散, π k \pi_kπ k は総人数に対するエージェントタイプ k kk の比率です.全てのエージェントの出発人数分布 f ( t ; μ , σ , π ) f(t; \mu, \sigma, \pi)f ( t ; μ , σ , π ) は次のように計算できます.
f k ( t ; μ k , σ k , π k ) = C k π k 2 π σ k 2 e x p ( − ( t − μ k ) 2 2 σ k 2 ) f_{k}(t; \mu_k, \sigma_k, \pi_k) = {\displaystyle \frac{C_{k}\pi_{k}}{\sqrt{2\pi\sigma_{k}^2}}{\rm exp}\biggl(-\frac{(t - \mu_{k})^2}{2\sigma_{k}^2} \biggl)}f k ( t ; μ k , σ k , π k ) = 2 π σ k 2 C k π k exp ( − 2 σ k 2 ( t − μ k ) 2 ) f ( t ; μ , σ , π ) = ∑ k = 1 K f k ( t ; μ k , σ k , π k ) f(t; \mu, \sigma, \pi) = \sum_{k=1}^{K} f_{k}(t; \mu_k, \sigma_k, \pi_k)f ( t ; μ , σ , π ) = ∑ k = 1 K f k ( t ; μ k , σ k , π k )
ここで, C k = 1 / ∫ 0 T f k ( t ; μ k , σ k ) d t C_{k}=1/\int_{0}^{T}f_{k}(t; \mu_k, \sigma_k)dtC k = 1/ ∫ 0 T f k ( t ; μ k , σ k ) d t は正規化定数, t ∈ T t \in Tt ∈ T はシミュレーション時間を示しています.各ガウス分布の比率 π k \pi_{k}π k は,必ず ∑ k = 1 K π k = 1 \sum_{k=1}^{K} \pi_{k} = 1∑ k = 1 K π k = 1 を満たします.
次に,時間あたりの出発人数を計算するためにガウス分布を度数分布に変換します.
N k o g n ( t ; μ k , σ k , π k ) = ⌊ α ∫ t t + Δ t f k ( t ; μ k , σ k , π k ) d t ⌋ N^{\rm ogn}_{k}(t;\mu_k, \sigma_k, \pi_k) = \biggl\lfloor \alpha \int_{t}^{t+\Delta t} f_{k}(t; \mu_k, \sigma_k, \pi_k) dt\biggl\rfloorN k ogn ( t ; μ k , σ k , π k ) = ⌊ α ∫ t t + Δ t f k ( t ; μ k , σ k , π k ) d t ⌋ N o g n ( t ; μ , σ , π ) = ∑ k = 1 K N k o g n ( t ; μ k , σ k , π k ) N^{\rm ogn}(t; \mu, \sigma, \pi) = \sum_{k=1}^{K} N^{\rm ogn}_{k}(t;\mu_k, \sigma_k, \pi_k)N ogn ( t ; μ , σ , π ) = ∑ k = 1 K N k ogn ( t ; μ k , σ k , π k )
ここで Δ t \Delta tΔ t はシミュレーションのタイムステップサイズ, N k o g n ( t ) N^{\rm ogn}_{k}(t)N k ogn ( t ) はエージェントタイプ k kk の時刻 t tt における出発人数です.なお,歩行者の総人数は分かっているため, ∑ m = 1 M N o g n ( t m ) = N \sum_{m = 1}^{M} N^{\rm ogn}(t_m) = N∑ m = 1 M N ogn ( t m ) = N となるよう調整パラメータ α \alphaα によって人数を補正しています.
以上の変換を行う事で,出発人数ヒストグラムにおける整数値の最適化を実数パラメータ μ k \mu_kμ k , σ k \sigma_kσ k , π k \pi_kπ k の最適化に近似することができます.
目的関数
本問題では,実観測データとして駅に設置したカメラで計測した到着人数(ヒストグラム)とアルバイトの持つGPSによる移動軌跡を用います.シミュレーション結果と実観測データの誤差を評価するために,到着人数とGPS移動軌跡はそれぞれ二乗平均平方根誤差(RMSE) を用いて比較され,最終的な評価は二つの誤差値の線形結合によって表されます.計算式は次の通りです.
ϵ o b s = β ϵ d e s t + ( 1 − β ) ϵ ˉ p a c \epsilon^{\rm obs} = \beta \epsilon^{\rm dest} + (1 - \beta) \bar{\epsilon}^{\rm pac}ϵ obs = β ϵ dest + ( 1 − β ) ϵ ˉ pac
ここで, β \betaβ は誤差評価にカメラとGPSが与える重要度を決める[0, 1]の重みであり,本問題では0.5 とします.
到着人数に関する誤差評価は,単位時間 Δ t \Delta tΔ t あたりの到着人数に対するRMSEによって計算されます.本問題ではシミュレーション開始から終了までを$M$回に分けて取り扱います.花火大会では19:00から24:00までシミュレーションするため, Δ t = 300 m i n . / M \Delta t=300min./MΔ t = 300 min ./ M となります.到着人数に関する誤差評価の計算式は次の通りです.
ϵ d e s t = 1 M ∑ m = 1 M ( N d e s t ( t m ) − N ^ d e s t ( t m ) ) 2 w h e r e t m = m Δ t \epsilon^{\rm dest} = \sqrt{\frac{1}{M} \sum_{m = 1}^{M} (N^{\rm dest}(t_m) - \hat{N}^{\rm dest}(t_m))^2} \qquad where\qquad t_{m} = m\Delta tϵ dest = M 1 ∑ m = 1 M ( N dest ( t m ) − N ^ dest ( t m ) ) 2 w h ere t m = m Δ t
ここで, N d e s t ( t m ) N^{\rm dest}(t_m)N dest ( t m ) は時刻 t m t_{m}t m において実際に観測された到着人数,N ^ d e s t ( t m ) \hat N^{\rm dest}(t_m)N ^ dest ( t m ) はシミュレーションで得られた到着人数です.
現実世界の測定における不確実性を考慮するため, N ^ d e s t ( t m ) \hat N^{\rm dest}(t_m)N ^ dest ( t m ) を計算する際には駅に到着したエージェントの数に対してガウシアンフィルタによる平滑化を行っています.ガウシアンフィルタによる平滑化は以下の式により行います.
G ( t ) = 1 2 π σ 2 exp ( − t 2 2 σ 2 ) G(t) = \frac{1}{\sqrt{2 \pi \sigma^2}} \exp{\biggl(- \frac{t^2}{2 \sigma^2}\biggl)}G ( t ) = 2 π σ 2 1 exp ( − 2 σ 2 t 2 )
N ^ d e s t ( t m ) = ∑ q = 1 M N ^ a g e n t ( t q ) ⋅ G ( t q − t m ) \hat{N}^{\rm dest}(t_m) = \sum_{q = 1}^{M}\hat{N}^{\rm agent}(t_q) \cdot G(t_q - t_m)N ^ dest ( t m ) = ∑ q = 1 M N ^ agent ( t q ) ⋅ G ( t q − t m )
N ^ a g e n t ( t q ) \hat{N}^{\rm agent}(t_q)N ^ agent ( t q ) は時刻 t q t_qt q で駅に到着したエージェントの数です.
移動軌跡に関する誤差評価は,合計移動距離を単位時間ごとに比較して求められます.GPSによる移動軌跡に対応するデータを得るため,シミュレーションでは周りのエージェントの平均速度で移動するエージェント(Tracked Agent)を実際のアルバイトと同じ時間間隔で投入し,それぞれ時間あたりの積算移動距離を記録しました. RMSEの計算はTracked Agentごとに行うため,全Tracked AgentのRMSEの平均値を誤差評価とします.計算式は次の通りです.
ϵ ˉ p a c = 1 A ∑ a = 1 A 1 M a ∑ m = 1 M a ( P ( a , t m ) − P ^ ( a , t m ) ) 2 \bar{\epsilon}^{\rm pac} = \frac{1}{A}\sum_{a=1}^{A} \sqrt{\frac{1}{M_a} \sum_{m = 1}^{M_a} (P(a, t_m) - \hat{P}(a, t_m))^2}ϵ ˉ pac = A 1 ∑ a = 1 A M a 1 ∑ m = 1 M a ( P ( a , t m ) − P ^ ( a , t m ) ) 2
ここで,AはGPS所有者の数,総移動時間 M a M_aM a はGPS所有者 a aa の出発時刻 t a o g n t_{a}^{\rm ogn}t a ogn と到着時刻 t a d e s t t_{a}^{\rm dest}t a dest により M a = ( t a d e s t − t a o g n ) / Δ t M_a = (t_{a}^{\rm dest} - t_{a}^{\rm ogn}) / \Delta tM a = ( t a dest − t a ogn ) /Δ t である. P ( a , t m ) P(a, t_m)P ( a , t m ) は時刻 t m t_mt m におけるGPS所有者 a aa の合計移動距離, P ^ ( a , t m ) \hat{P}(a, t_m)P ^ ( a , t m ) は時刻 t m t_mt m における a aa に対応したTracked Agentの合計移動距離です.
参考文献
C. Antoniou et al. (2016), Towards a generic benchmarking platform for origin–destination flows estimation/updating algorithms: Design, demonstration and validation , Transportation Research Part C: Emerging Technologies, vol. 66, pp. 79-98.
D. Wolinski et al. (2014), Parameter estimation and comparative evaluation of crowd simulations , Computer Graphics Forum, vol. 33, no. 2, pp. 303-312.
R. K. Dubey et al. (2020), AUTOSIGN: A multi-criteria optimization approach to computer aided design of signage layouts in complex buildings , Computers & Graphics, vol. 88, pp. 13-23.
A. Abdelghany et al. (2014), Modeling framework for optimal evacuation of large-scale crowded pedestrian facilities , European Journal of Operational Research, vol. 237, no. 3, pp. 1105-1118.
山下倫央 et al. (2012), 一次元歩行者モデルを用いた高速避難シミュレータの開発とその応用 , 情報処理学会論文誌, vol. 53, no. 7, pp. 1732-1744.