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

平日ごとの運用の事前定義 (Predefining operations by weekday)

プランナーは、シミュレーションテンプレートを使用して、曜日ごとに異なる運用ルールと設定を定義できます。たとえば、フリートは、平日と週末で車両の可用性やコスト構造が異なる場合があります。

これを実現するには:

  1. 個別の運用パターンごとに個別のシミュレーションテンプレートを作成します(例:「平日運用」、「週末運用」)。
  2. 各テンプレート内で特定の設定(車両プロファイル、シフト時間、コストパラメータなど)を構成します。
  3. シミュレーションオブジェクトの recurrence フィールドを使用して、各テンプレートがアクティブになる時期をスケジュールします。

例: 車両コーディングルール 曜日に基づいて、車両の異なる「コーディングルール」または制約を定義できます。

  • 月曜日〜金曜日テンプレート: 車両は、標準的な都市交通速度と通常のシフトコストで構成される場合があります。
  • 土曜日〜日曜日テンプレート: 車両は、より速い移動速度(交通量が少ないため)で構成される場合がありますが、ドライバーの残業代は高くなります。

システムが特定の日付のシミュレーションを作成すると、その平日に一致するテンプレートが選択され、正しい車両構成が自動的に適用されます。

ルートが変化するミルクランの管理 (Managing Milkruns with varying routes)

ミルクラン(定期的に繰り返される固定ルート)も、テンプレートを使用して効果的に管理できます。テンプレートは既存のルートと割り当てをコピーするため、テンプレート自体で車両に注文を事前に割り当てることができます。

ミルクランが日によって異なる場合(たとえば、ルート A は月曜日と水曜日に実行されるが、ルート B は火曜日に実行される場合)、次のことができます。

  1. ルート A が事前に計画された(注文が車両に割り当てられた)「月曜日/水曜日テンプレート」を作成します。
  2. ルート B が事前に計画された「火曜日テンプレート」を作成します。
  3. recurrence ルールを使用してこれらのテンプレートをスケジュールします。

月曜日のシミュレーションが生成されると、事前割り当てされたルート A が自動的に含まれ、実行またはさらなる最適化の準備が整います。

季節的な運用 (Seasonal Operations)

季節的な変動(ホリデーシーズン、サマースケジュールなど)があるビジネスの場合、テンプレートを使用して、運用戦略全体を自動的に切り替えることができます。

  • 標準運用テンプレート: 1年の大半でアクティブです。
  • ピークシーズンテンプレート: 特定の月(11月〜12月など)にアクティブになり、車両数の増加や営業時間の延長などの設定が異なります。

日付範囲(UNTIL または特定の日付リストを使用)で recurrence フィールドを使用することにより、手動介入なしにこれらのモード間をシームレスに移行できます。

高度なシナリオ (Advanced Scenarios)

複雑な繰り返しルールの構築方法や休日の処理方法など、より詳細な例と高度な構成については、シミュレーションテンプレートシナリオ ガイドを参照してください。

シミュレーションテンプレートシナリオ (Simulation Templates Scenarios)

このガイドでは、複雑な繰り返しルールと運用パターンに焦点を当て、シミュレーションテンプレートを効果的に使用するための詳細なシナリオと例を提供します。

繰り返しルールの理解 (Understanding Recurrence Rules)

シミュレーションオブジェクトの recurrence フィールドは、iCalendar (RFC-5545) 形式を使用します。これにより、強力なスケジューリング機能が可能になります。

一般的なコンポーネント:

  • FREQ:ルールの頻度 (DAILY, WEEKLY, MONTHLY, YEARLY)。
  • BYDAY: 曜日 (MO, TU, WE, TH, FR, SA, SU)。
  • UNTIL: ルールが有効な日付。
  • COUNT: 発生回数。
  • INTERVAL: ルールが繰り返される頻度(例:2週間ごと)。

文字列の例 (Example Strings)

シナリオ繰り返し文字列
毎週月曜日RRULE:FREQ=WEEKLY;BYDAY=MO
平日のみRRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
2週間ごとの金曜日RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=FR
2024年12月31日までRRULE:FREQ=DAILY;UNTIL=20241231T235959Z

シナリオ: 季節的な運用 (Scenario: Seasonal Operations)

目標: 時期に基づいて、「標準」運用と「ピーク」運用を自動的に切り替えます。

セットアップ:

  1. 標準テンプレート:
    • 通常のボリューム向けに構成されています。
    • 繰り返し: RRULE:FREQ=YEARLY;BYMONTH=1,2,3,4,5,6,7,8,9,10;BYDAY=MO,TU,WE,TH,FR (1月〜10月, 平日)
  2. ピークテンプレート:
    • 高ボリューム(より多くの車両、より長い時間)向けに構成されています。
    • 繰り返し: RRULE:FREQ=YEARLY;BYMONTH=11,12;BYDAY=MO,TU,WE,TH,FR (11月〜12月, 平日)

JSON スニペット (ピークテンプレート):

{
"name": "Peak Season Template",
"simulation_mode": "template",
"recurrence": "RRULE:FREQ=YEARLY;BYMONTH=11,12;BYDAY=MO,TU,WE,TH,FR",
"recurrence_priority": 10,
}

シナリオ: 休日計画 (Scenario: Holiday Planning)

目標: 運用が一時停止または大幅に縮小される可能性のある祝日を処理します。

アプローチ 1: プロジェクト設定による除外 Project オブジェクトには public_holidays フィールドがあります。テンプレートの繰り返しが public_holidays にリストされている日付に該当する場合、その日のシミュレーション作成をスキップするようにシステムを構成できます。

アプローチ 2: 特定の休日テンプレート 休日に最小限の人員で運用する場合:

  1. 「休日テンプレート」を作成します。
  2. recurrence を特定の日付または休日に一致するパターンに設定します。
  3. 標準の日次テンプレートよりも高い recurrence_priority を設定します。

JSON スニペット (休日テンプレート):

{
"name": "Holiday Skeletal Operations",
"simulation_mode": "template",
"recurrence": "RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=25",
"recurrence_priority": 100,
}

注: recurrence_priority は、重複する場合に標準の日次テンプレートよりもこのテンプレートが選択されることを保証します。

シナリオ: 運用変更の A/B テスト (Scenario: A/B Testing Operational Changes)

目標: 週の残りの部分を中断することなく、特定の日(たとえば火曜日)に新しいルーティングアルゴリズムまたは車両構成をテストします。

セットアップ:

  1. 標準テンプレート:
    • 繰り返し: RRULE:FREQ=WEEKLY;BYDAY=MO,WE,TH,FR
  2. テストテンプレート:
    • 繰り返し: RRULE:FREQ=WEEKLY;BYDAY=TU
    • 構成: 新しい設定(例:algo_type: "dynamic"static)。

これにより、変更の影響を週の1日に分離しながら、残りの運用の安定性を維持できます。