メインコンテンツまでスキップ

ユーザーモデル

ユーザーモデルは、MaaS Blender 内でユーザーの行動を自律的な意思決定主体として表現するコンポーネントです。

イベント

消費するイベント生成するイベント
DEMANDRESERVE
RESERVEDDEPART
DEPARTED
ARRIVED

役割と責務

ユーザーモデルは、需要への反応、利用可能な選択肢の評価、そしてイベントを通じたモビリティ・サービスとのやり取りを担います。 主な責務は次の通りです。

  • DEMAND イベントを受け取る
  • 内部の意思決定ロジックに基づいて経路候補を評価する
  • 経路を選択し、必要なモビリティ・サービスを予約する
  • モビリティ・サービスが生成するイベントに反応してユーザーの移動ライフサイクルを管理する
    (ライフサイクルの詳細は「ユーザー・イベント・サイクル」を参照)

需要処理と経路選択

ユーザーモデルは、DEMAND イベント(起点から目的地へ移動したいという意図)を受け取ると処理を開始します。

この需要に基づいて、ユーザーモデルは複数の経路候補を内部ロジックで評価します。 経路候補は通常、ルートプランナーによって計算され、その後ユーザーモデルによってスコア付け/絞り込みが行われます。 評価戦略は差し替え可能で実装依存です。例えば、最も早く到着できる経路を選ぶ単純な戦略もあれば、 費用・乗り換え回数・ユーザー嗜好などを考慮する高度なモデルもあり得ます。

経路候補が選択されると、ユーザーモデルはその経路に必要なモビリティサービスの予約へと進みます。

予約フロー

モビリティ・サービスを予約するために、ユーザーモデルは RESERVE イベントを発行します。 このイベントは対応するモビリティサービスによって消費されます。

その後、ユーザーモデルはモビリティサービスから発行される RESERVED イベントを監視します。

  • 予約に失敗した場合、ユーザーモデルは別の経路候補を選択し、予約プロセスを再試行します。
  • 予約に成功し、出発可能であれば、ユーザーモデルは DEPART イベントを発行します。

旅行の実行とイベント監視

移動中、ユーザーモデルはモビリティサービスが発行する追加イベントを監視する必要があります。例えば:

  • 実際に移動が開始されたことを示す DEPARTED
  • 乗降地点または目的地に到着したことを示す ARRIVED

この監視は、特に次のような場合に重要です。

  • モビリティサービス間の乗り換え 次の移動に進むためには、新たな DEPART イベントを発行する必要があります。

  • 事前予約をサポートしないモビリティサービス この場合、ユーザーモデルはユーザーがそのサービスの地点に実際に到着するまで RESERVE イベントを発行できません。

ユーザーモデルはユーザーそれぞれの移動を、上記のようなイベントのやり取りを通じて、モビリティ・サービスの可用性や状態に応じてコントロールします。