Navegación gráfica con C #
-
03-07-2019 - |
Pregunta
Tengo un poco de diligencia al tratar de encontrar un buen algoritmo para navegar por el siguiente gráfico.
texto alternativo http://www.archimedesinc.biz/images/StackOverflow/Tree .jpg
Si un usuario elige " Tabla 21 " como punto de partida, necesito poder obtener la ruta a cualquier otra tabla desde esa tabla de inicio.
EX: si el usuario elige " Tabla 21 " como inicio y luego agrega un valor de " Tabla 8 " ;, Necesito crear la siguiente ruta " Tabla 21 - > Tabla 12 - > Tabla 9 - > Tabla 6 - > Tabla 8 " ;, todas las ponderaciones entre las tablas son iguales.
Parece que he olvidado mis habilidades al tratar con gráficos dirigidos, y no puedo pensar en un buen algoritmo. No estoy pidiendo una solución, sino un impulso en la dirección correcta.
¡Gracias!
Solución
La búsqueda en primer lugar encontrará una ruta más corta: http://en.wikipedia.org / wiki / Breadth-first_search
Otros consejos
Como dijo que los bordes tienen el mismo peso, algoritmo de Dijkstra ( mi primera opción habitual para este tipo de cosas) solo se degradará a amplia primera búsqueda así que Sugiero usar eso por simplicidad.
Puede elegir entre una serie de algoritmos para determinar la ruta más corta. QuickGraph es bueno en este tipo de cosas.