티
티맵모빌리티
January 6, 20231회
티맵, 3시간 뒤 출발하면 얼마나 걸려? - 17편-미래예측을 위한 경로탐색엔진 (CATCHUp Algorithm)
간단 소개
티맵의 미래 예측 경로 탐색 엔진인 CATCHUp 알고리즘의 개발 과정과 최적화 기법, 그리고 성능 향상 결과를 설명합니다.
AI Summary
- Time-Dependent 경로탐색과 CATCHUp 알고리즘
- Time-Dependent 경로탐색은 도로 탐색 시 각 도로의 진입 시각을 계산하여 예상 시점의 교통정보를 활용하는 방식이다.
- 기존 티맵은 AStar 기반의 Time-Dependent 경로탐색을 제공했으나, 성능 문제로 CCH 기반의 CATCHUp 알고리즘을 도입했다.
- CATCHUp 알고리즘은 CCH를 기반으로 Time-Dependent 경로탐색이 가능하도록 확장되었으며, 3단계(Preprocessing, Time-Dependent Customization, Query)로 구성된다.
- CATCHUp 알고리즘의 핵심 아이디어 및 최적화
- CATCHUp 알고리즘은 Shortcut을 구성하는 Witness-Path 변화가 크지 않다는 점을 활용, 모든 Arc의 비용을 저장하는 대신 Witness-Path가 변경되는 시점의 Path만 저장하여 메모리 공간을 확보한다.
- Query 단계에서 Shortcut Unpacking Data로부터 특정 시점의 Witness-Path를 구하고, Unpacking 하여 비용과 경로를 재계산한다.
- Elimination Tree Interval Query, Lazy Shortcut Unpacking, Corridor AStar 등의 최적화 기법을 적용하여 성능을 향상시켰다.
- 결론 및 향후 계획
- Thor 엔진으로 미래시간 길 찾기를 전환하여 자동차 경로탐색 요청을 효율적으로 처리하고 있으며, 장거리 요청의 응답 성능이 향상되었다.
- Thor 경로탐색 엔진은 사내 외 서비스로 확장되고 있으며, 2023년에는 티맵 내비게이션 실시간 경로안내까지 확장할 예정이다.
Next Feeds
Version Catalog 도입을 위한 온보딩 - gradle 버전 관리를 위한 Version Catalog 도입
Gradle 버전 관리를 위한 Version Catalog 도입 배경, 장점, 적용 방법 및 build-logic 모듈 활용을 설명합니다.
Version Cataloggradle버전 관리build.gradlebuild-logic
2023. 1. 6.
카카오헤어샵

입사 첫날에 36시간 점검 경험하기
신입 개발자가 쿠키런: 킹덤 런칭 직후 36시간 점검을 겪으며 데이터 복구 과정을 경험하고, 협업의 중요성을 깨닫는 과정을 담은 회고.
쿠키런 킹덤데브시스터즈데이터베이스장애 대응데이터 복구
2023. 1. 6.
데브시스터즈

AI 워크로드에 적합한 스토리지
AI 워크로드의 종류별 스토리지 요구사항, 학습 단계별 스토리지 역할, 그리고 스토리지 타입별 장단점을 분석하여 AI 워크로드에 적합한 스토리지 특성을 제시합니다.
AI 워크로드스토리지머신러닝딥러닝데이터
2023. 1. 6.
글루시스

"검색엔진 가이드"를 금융쇼핑 서비스에 SEO로 활용하기
뱅크샐러드 금융쇼핑 서비스에 검색엔진 가이드의 구조화된 데이터를 활용하여 SEO를 개선하고 리치 스니펫을 구현한 사례를 공유한다.
SEO구조화된 데이터JSON-LD리치 스니펫검색엔진 최적화
2023. 1. 5.
뱅크샐러드

Spark on Kubernetes로 가자!
뱅크샐러드의 데이터 분석 환경을 EMR에서 Kubernetes로 전환한 경험 공유 및 문제 해결 과정, 향후 과제 제시.
SparkKubernetesEMR데이터 분석Glue
2023. 1. 5.
뱅크샐러드
라이브관 프론트엔드 입장에서 바라보기👀
올리브영 라이브관 프론트엔드 개발 후기: 신규 아키텍처 기반 구축, 기술 스택, 개발 과정, 향후 과제 및 목표를 공유합니다.
프론트엔드라이브관Next.jsSSR올리브영
2023. 1. 4.
올리브영