피드로 돌아가기![[System Design] Ride-Hailing Dispatch Algorithm: How Uber DISCO & Grab DispatchGym Match Drivers](/_next/image?url=https%3A%2F%2Ftsewlmecqtvqphyhezcm.supabase.co%2Fstorage%2Fv1%2Fobject%2Fpublic%2Fthumbnails%2F946c68a3-8506-40a3-ac93-0c73d62bb6d9.webp%3F&w=3840&q=75)
Dev.toBackend
원문 읽기
Batching 기반 Global Optimization을 통한 전체 ETA 50% 절감
[System Design] Ride-Hailing Dispatch Algorithm: How Uber DISCO & Grab DispatchGym Match Drivers
AI 요약
Context
개별 요청마다 최단 거리 드라이버를 매칭하는 Greedy Approach의 한계로 인한 시스템 전체 대기 시간 증가 문제 발생. 국소적 최적화가 전체 시스템의 효율성을 저해하는 Global Optimum 부재 상황 분석.
Technical Solution
- 2~5초 단위의 Batching Window 도입을 통한 다수 요청의 동시 처리 구조 설계
- Bipartite Graph 모델 기반의 Minimum Weight Bipartite Matching 문제로 공식화
- Hungarian Algorithm 적용을 통한 전체 배차 비용(ETA) 최소화 및 Global Optimization 달성
- S2 Cell 기반 필터링에서 H3 Hexagon Index로 전환하여 인접 셀 간 거리 균일성 확보 및 Proximity Search 정확도 향상
- 단순 거리 계산 대신 Routing Service와 DeepETA를 결합한 실제 주행 기반 ETA 산출 로직 적용
- Reinforcement Learning 기반의 MDP 모델을 도입하여 즉각적 매칭 대신 미래 유동성을 고려한 배차 전략 최적화
실천 포인트
1. 실시간 매칭 설계 시 Local Optimum과 Global Optimum의 차이를 정량적으로 분석했는지 확인
2. 공간 쿼리 최적화를 위해 단순 좌표 기반 검색 대신 H3와 같은 Geospatial Index 도입 검토
3. 처리 성능과 최적화 수준의 균형을 맞추기 위한 적정 Batching Window 크기 튜닝 수행