ユーザーモデル
ユーザーモデルは、MaaS Blender 内でユーザーの行動を自律的な意思決定主体として表現するコンポーネントです。
イベント
| 消費するイベント | 生成するイベント |
|---|---|
DEMAND | RESERVE |
RESERVED | DEPART |
DEPARTED | |
ARRIVED |
役割と責務
ユーザーモデルは、需要への反応、利用可能な選択肢の評価、そしてイベントを通じたモビリティ・サービスとのやり取りを担います。 主な責務は次の通りです。
DEMANDイベントを受け取る- 内部の意思決定ロジックに基づいて経路候補を評価する
- 経路を選択し、必要なモビリティ・サービスを予約する
- モビリティ・サービスが生成するイベントに反応してユーザーの移動ライフサイクルを管理する
(ライフサイクルの詳細は「ユーザー・イベント・サイクル」を参照)
需要処理と経路選択
ユーザーモデルは、DEMAND イベント(起点から目的地へ移動したいという意図)を受け取ると処理を開始します。
この需要に基づいて、ユーザーモデルは複数の経路候補を内部ロジックで評価します。 経路候補は通常、ルートプランナーによって計算され、その後ユーザーモデルによってスコア付け/絞り込みが行われます。 評価戦略は差し替え可能で実装依存です。例えば、最も早く到着できる経路を選ぶ単純な戦略もあれば、 費用・乗り換え回数・ユーザー嗜好などを考慮する高度なモデルもあり得ます。
経路候補が選択されると、ユーザーモデルはその経路に必要なモビリティサービスの予約へと進みます。
予約フロー
モビリティ・サービスを予約するために、ユーザーモデルは RESERVE イベントを発行します。
このイベントは対応するモビリティサービスによって消費されます。
その後、ユーザーモデルはモビリティサービスから発行される RESERVED イベントを監視します。
- 予約に失敗した場合、ユーザーモデルは別の経路候補を選択し、予約プロセスを再試行します。
- 予約に成功し、出発可能であれば、ユーザーモデルは
DEPARTイベントを発行します。
旅行の実行とイベント監視
移動中、ユーザーモデルはモビリティサービスが発行する追加イベントを監視する必要があります。例えば:
- 実際に移動が開始されたことを示す
DEPARTED - 乗降地点または目的地に到着したことを示す
ARRIVED
この監視は、特に次のような場合に重要です。
-
モビリティサービス間の乗り換え 次の移動に進むためには、新たな
DEPARTイベントを発行する必要があります。 -
事前予約をサポートしないモビリティサービス この場合、ユーザーモデルはユーザーがそのサービスの地点に実際に到着するまで
RESERVEイベントを発行できません。
ユーザーモデルはユーザーそれぞれの移動を、上記のようなイベントのやり取りを通じて、モビリティ・サービスの可用性や状態に応じてコントロールします。