Ride-Hailing Simulator (MVP) — Описание

Демонстрирует динамику такси-платформы: как матчинг водителей и заказов, surge-ценообразование по зонам и отмены влияют на метрики в реальном времени.

Что показывает

  • 2D карта города с визуализацией водителей, заказов и активных матчингов в реальном времени
  • Зонная система с динамическим surge-множителем, который реагирует на соотношение спроса и предложения в каждой зоне
  • Алгоритм матчинга с использованием spatial grid для эффективного поиска ближайших водителей (без O(N²))
  • Модель отмен заказов в зависимости от времени ожидания (ETA) — чем дольше ждать, тем выше вероятность отмены
  • Метрики в реальном времени: выручка платформы, P90 ETA, процент отмен, утилизация водителей
  • Мини-графики за последние 120 секунд симуляции с обновлением каждые 60 секунд

Как читать визуал

Центральная область — это 2D карта города, разделённая на зоны (сетка 3×2, 4×3 или 5×4). Водители отображаются как точки, заказы — как маркеры с пунктом назначения. Когда водитель назначается на заказ, между ними появляется линия (матчинг). Цвет зоны показывает текущий surge-множитель (чем темнее, тем выше surge). Правая панель показывает метрики и мини-графики за последние 120 секунд.

Параметры

  • Demand & Supply: интенсивность заказов (orders/min), количество водителей, скорость водителей
  • Pricing & Behavior: базовая цена, цена за километр, доля платформы (take rate), чувствительность к отменам
  • City / Zones: размер карты, количество зон, паттерн спроса (uniform, center-heavy, two-hotspots)
  • Matching: интервал батчинга матчинга, политика выбора (nearest ETA или score-based)
  • Surge: сила surge-реакции, максимальный surge, скорость сглаживания (EMA alpha)

Идеи для экспериментов

  • Влияние surge на отмены: увеличьте surge strength и наблюдайте, как это влияет на процент отмен и выручку
  • Оптимальное количество водителей: меняйте количество водителей при фиксированном спросе и смотрите на утилизацию и средний ETA
  • Паттерны спроса: сравните uniform, center-heavy и two-hotspots — как surge распределяется по зонам?
  • Политика матчинга: сравните nearest ETA vs score-based — какая даёт лучшую выручку?
  • Чувствительность к отменам: увеличьте cancel sensitivity и посмотрите, как это влияет на метрики платформы