🤖 配車生成の仕組み
① 実測距離取得:Google Maps APIで全参加者のコンビニ・出発地間の実測距離・時間を取得
② コード側事前計算:迂回許容時間内で最適なドライバーを自動算出しAIへ参考情報として渡す
③ AI配車生成:ルールと参考情報をもとにAIが配車案をJSON形式で出力
④ コード側補正:AI出力の距離・時間を実測値で上書き補正し、Googleマップ用URLを生成
💡 気に入らない場合は「もう一度生成する」で再生成できます。生成後は手動調整パネルで個別変更も可能です。
📋 配車ルールの優先順位
1️⃣ NG指定の回避(最優先・絶対厳守)
2️⃣ 同乗可能人数・バッグ積載数の遵守(物理制約のため例外なし)
3️⃣ 全員を極力乗せる(移動不可・移動可を問わず全員平等に扱う)
4️⃣ 備考欄の希望・NGをできる限り反映
5️⃣ 総走行距離の最小化(上記を満たした上で)
6️⃣ レンタカーは席・バッグが不足する場合のみ使用
🔧 配車の仕組み
① Google Routes API で全参加者間の実測距離・時間・高速料金を取得
② コード側で事前割り当てを計算(2-opt最適化で全体距離を短縮)
③ AIが備考欄のNG・希望を反映して最終配車を決定
④ コード側でピックアップ順序を全順列探索で最適化
⑤ 実測データで距離・時間・費用を補正
🚶 移動可/移動不可の扱い
移動不可:ドライバーが必ず迎えに行きます
移動可:ドライバーの出発地に集合してもらう場合があります(迂回削減のため)
※ 配車の優先度に差はありません(全員平等)
🔒 効率的な配車調整の方法
大人数の場合のおすすめ手順:
1️⃣ まずAIで配車案を生成する
2️⃣ 各車の「✏️ この車を調整する」を開き、確実にこの車に乗せたい同乗者の🔓ボタンを押して🔒に変更(確定)
3️⃣ 「🔒 確定済みを残して再生成する」ボタンを押す
4️⃣ 確定した人はそのまま、残りの人だけAIが再配車(確定した車の空き席にも割り当て可能)
5️⃣ 必要に応じて繰り返し、全員の配車が決まったら公開
⚠️ 配車アラートの基準
🔴 要確認(赤枠):走行距離または所要時間が全車平均の1.5倍超
🟡 注意(黄枠):走行距離または所要時間が全車平均の1.3倍超
⚠️ 現地直行に同乗者:ドライバーが現地直行に変更されたのに同乗者が残っている
🎒 バッグ超過:バッグ積載数を超えている車がある
※全車が均等な場合はアラートなし
時刻はティーオフ1時間前のゴルフ場到着を目標に逆算。高速料金はGoogle Routes APIのETC普通車実測値を使用。