需要ジェネレーター
需要ジェネレーターは、シミュレーション内におけるユーザーの移動の意図を生成するコンポーネントです。
このコンポーネントは DEMAND イベントを生成し、ユーザー行動の起点となります。
イベント
| 消費するイベント | 生成するイベント |
|---|---|
| (なし) | DEMAND |
需要ジェネレーターの役割
需要ジェネレーターは、ユーザーが「いつ・どのくらいの頻度で」移動したいと考えるかをモデル化します。
主な責務は、将来の移動意図を DEMAND イベントとしてシミュレーションに投入することです。
DEMAND イベントが発生すると、それはユーザーモデルに配信され、 意図の解釈、候補経路の評価、予約に関するアクションなどの処理が行われます。
需要(Demand)の定義
DEMAND は、ユーザーが「将来」ある出発地(org)から目的地(dst)へ移動したいという意図を表します。
これは、どのサービスや車両、どのような経路で実行されるかといった具体的な実行方法を限定せず、
「ユーザーがやりたいこと」を表現します(実行方法は後段のユーザーモデルが扱います)。
備考
DEMAND は、その生成時刻から見て将来の移動を表す必要があります。
予約が必要な場合は dept より前に生成されるべきであり、すぐに移動する場合は生成時刻と dept が同一にします。
需要生成戦略
シミュレーションの目的に応じて、需要ジェネレーターを実装します。 例えば以下のようなロジックが考えられます。
- 周期的生成: 例)通勤者が毎日決まった時刻に
DEMANDを生成する - 確率的生成: 人口レベルの移動パターンを反映するため、確率的に
DEMANDを生成する - シナリオ駆動生成: 実際の需要を再現するために、所定の時刻に
DEMANDを生成する
設計上の理由
需要の生成を、意思決定や実行のロジックから切り離しています。
そうすることで、需要だけを変更することができます。
イベントフローにおいても、意図の生成(DEMAND)と、その実現(下流コンポーネント)を明確に分離できます。