LLM/RL controls AV fleet to pick up riders, optimizing wait time and fleet utilization across the Bay Area
🤖 LLM Dispatch
🎮 RL Policy
🚗 Fleet Status
48
Idle AVs
127
En Route to Pickup
325
Serving Trips
3.2
Avg Wait (min)
89%
Fleet Utilization
$4,720
Revenue/hr
📍 Incoming Ride Requests (last 30s)
🟢 Downtown SF → SFO AirportAV-042 assigned
🟢 Berkeley → OaklandAV-118 assigned
🟠 Palo Alto → Mountain Viewwaiting 45s...
🟠 San Jose → Fremontwaiting 30s...
🟢 Daly City → Mission BayAV-203 assigned
🧠 LLM Decision Engine
Context: 500 AVs serving SF Bay Area. 12 ride requests pending. Zone imbalance detected: downtown oversupplied (+15 AVs), South Bay undersupplied (-8 AVs).
🔄 LLM reasoning about fleet rebalancing...
💻 Integration
# LLM dispatches AV fleet
from lpsim_env.llm_interface import LPSimPlayground, LLMAction
playground = LPSimPlayground(network="sf_bay_area", num_trips=5000)
state = playground.get_state()
# LLM sees: "48 idle AVs, 12 pending requests, South Bay undersupplied"
action = LLMAction(
action_type="dispatch",
targets=[42, 118, 203, 77, 156], # AV IDs
values=[4521, 8903, 12045, 6677, 3321], # pickup node IDs
reasoning="Dispatching 5 nearest AVs to pending requests"
)
result = playground.apply_action(action)
# → avg_wait reduced from 3.2 min to 2.1 min