Yang benar adalah bahwa kebanyakan orang menggunakan variasi khusus dari algoritma A * . Anda akan melihat ini di sebagian besar "orang besar" (saya tidak bisa mengatakan siapa mereka di forum publik, tetapi saya dapat memberitahu Anda bahwa Anda mungkin menggunakan salah satu dari mereka - dijamin), di mana modifikasi heuristik adalah sangat tergantung pada dataset yang mereka gunakan.
Anda sudah menyebutkan pgrouting , yang saya anggap sebagai opsi "tradisional". Ini baik untuk melakukan algoritma perutean sederhana dan untuk sebagian besar masalah. Juga mudah digunakan dan menggunakan database tradisional di backend-nya.
Namun demikian, itu benar-benar tergantung pada skala dan jenis masalah yang Anda coba selesaikan dan perutean adalah masalah grafik .
Sekali lagi, "orang besar" biasanya memiliki banyak data yang dikaitkan dengan grafik mereka (misalnya, data lalu lintas, rute bus, jalur pejalan kaki) yang memengaruhi algoritma perutean. Ini dikenal sebagai perencana perjalanan multi-modal (di mana Anda juga memiliki pilihan untuk merencanakan "mode" - tidak ada jalur sepeda - hanya angkutan umum - hal semacam itu). Anda bisa memikirkan bagaimana perencanaan perjalanan juga menjadi isu sensitif waktu (yaitu jika Anda berjalan kembali beberapa tepi kembali, Anda akan dapat menangkap kereta bawah tanah yang akan membawa Anda ke tujuan Anda ke depan jauh lebih cepat daripada jika Anda hanya mencoba untuk menavigasi tepi depan menggunakan biaya terendah).
"Orang besar" tidak menyimpan data mereka dalam basis data tradisional, mereka menggunakan grafik yang sudah dihitung sebelumnya (selamat datang di cluster himpunan / mapreduce!). Seperti yang dapat Anda bayangkan, grafik ini menjadi sangat besar, sehingga mengetahui cara menghubungkan tepi grafik yang berdekatan dapat menjadi tantangan.
Bagaimanapun, saya akan merekomendasikan Anda melihat beberapa proyek grafik routing multi-modal:
Graphserver muncul di pikiran. Tidak banyak dokumentasi tetapi banyak kemahiran pengkodean murni (AFAIK, saya percaya MapQuest menggunakan variasi proyek ini untuk beberapa produk routing mereka).
Opsi lain adalah OpenTripPlanner yang memiliki banyak orang pintar di belakangnya (termasuk orang-orang dari graphserver).