Estoy desarrollando un sitio web Journey Planner. Hay pocas cosas que son simples en este caso actualmente, es decir, ahora mismo, el sitio web solo podrá planificar rutas de autobuses, los horarios de los autobuses no están disponibles actualmente. Esto significa que solo tenemos rutas de autobús almacenadas en el DB y dado que los horarios de los autobuses no están disponibles, por lo que los tiempos de espera para el viajero tampoco son relevantes. Lo que está disponible es el tiempo y la distancia cubiertos entre dos paradas para un autobús individual.Transporte público usando autobuses en la ciudad
Creo que el uso de un gráfico ponderado indirecto que guarde los costos de tiempo y distancia de cada parada de autobús para cada autobús individual sería el camino a seguir. Entonces podría usar el algoritmo Dijkstra para calcular la ruta más corta entre dos ubicaciones ingresadas por el usuario en función del tiempo o la distancia según la preferencia del usuario. Descubriría si se requieren dos o tres autobuses a través de simples funciones de C# si las rutas de autobús se cruzan en las paradas y luego usa esas paradas de intersección para que el viajero cambie el autobús. Pero habría un gráfico individual para cada autobús. Una forma alternativa (no estoy seguro si esto es correcto) sería usar un gráfico que contenga cada parada de autobús de la ciudad como nodos y luego usar esta técnica para descubrir la manera de viajar entre dos paradas. ¿Cuál es el enfoque correcto? ¿Debería usar un algoritmo A * en lugar de Dijkstra algo?
Algunos puntos generales para el diseño: Me gustaría que la aplicación sea extensible para poder agregar otros medios de transporte más adelante cuando sea necesario. Además, los tiempos de autobús también podrían agregarse más tarde si es posible sin mayores cambios en el sitio web. He visto bastantes expertos aquí que han trabajado en proyectos de transporte muy complejos. Por lo tanto, ayúdenme con la mejor manera de implementar esta funcionalidad de la manera más escalable, modular y extensible.
¡Punto muy válido! No sé cómo me perdí esto. Se está volviendo más complejo, como me veo obligado a pensar :( – NAB