Sự thật là hầu hết mọi người sử dụng một biến thể tùy chỉnh của thuật toán A * . Bạn sẽ thấy điều này trên hầu hết các "ông lớn" (Tôi không thể nói họ là ai trong một diễn đàn công cộng, nhưng tôi có thể nói với bạn rằng bạn có thể sử dụng một trong số họ - được đảm bảo), trong đó việc sửa đổi các heuristic là rất phụ thuộc vào bộ dữ liệu mà họ sử dụng.
Bạn đã đề cập đến pgrouting rồi, mà tôi sẽ xem xét một tùy chọn "truyền thống". Nó là tốt để làm các thuật toán định tuyến đơn giản và cho hầu hết các vấn đề. Nó cũng dễ sử dụng và sử dụng cơ sở dữ liệu truyền thống tại phần phụ trợ của nó.
Tuy nhiên, nó thực sự phụ thuộc vào quy mô và loại vấn đề bạn đang cố gắng giải quyết và định tuyến là một vấn đề về đồ thị .
Một lần nữa, các "ông lớn" thường có rất nhiều dữ liệu được liên kết với biểu đồ của họ (ví dụ: dữ liệu giao thông, tuyến xe buýt, đường đi bộ) ảnh hưởng đến thuật toán định tuyến. Chúng được gọi là các nhà hoạch định chuyến đi đa phương thức (nơi bạn cũng có thể lựa chọn lập kế hoạch "chế độ" - không có đường dành cho xe đạp - chỉ có phương tiện giao thông công cộng - kiểu đó). Bạn có thể nghĩ như thế nào kế hoạch chuyến đi cũng trở thành một vấn đề nhạy cảm thời gian (ví dụ: nếu bạn đi bộ trở lại một vài cạnh trở lại, bạn sẽ có thể bắt tàu điện ngầm đó sẽ đưa bạn đến đích của bạn về phía trước nhanh hơn nhiều so với nếu bạn chỉ cố gắng để di chuyển các cạnh phía trước sử dụng chi phí thấp nhất).
Các "ông lớn" không lưu trữ dữ liệu của họ trong cơ sở dữ liệu truyền thống, họ sử dụng các biểu đồ được tính toán trước (các cụm hadoop / mapreduce chào mừng!). Như bạn có thể tưởng tượng, những biểu đồ này trở nên thực sự lớn, vì vậy biết cách kết nối các cạnh của biểu đồ liền kề có thể là một thách thức.
Dù sao, tôi khuyên bạn nên xem một số dự án đồ thị định tuyến đa phương thức:
Máy chủ đồ họa đến với tâm trí. Không có nhiều tài liệu nhưng rất nhiều điều tuyệt vời về mã hóa (AFAIK, tôi tin rằng MapQuest sử dụng một biến thể của dự án này cho một số sản phẩm định tuyến của họ).
Một tùy chọn khác sẽ là OpenTripPlanner có rất nhiều người thông minh đằng sau nó (bao gồm cả những người từ máy chủ đồ thị).