navegação gráfico com C #
-
03-07-2019 - |
Pergunta
I tendo um pouco de um dilema tentando chegar a um bom algoritmo para navegar no gráfico seguinte.
alt texto http://www.archimedesinc.biz/images/StackOverflow/Tree .jpg
Se um usuário escolhe "Mesa 21" como ponto de partida, eu preciso ser capaz de obter o caminho para qualquer outra tabela de que a tabela inicial.
EX: Se os escolhe usuário "Table 21" como um começo e depois adiciona um valor de "Tabela 8", que eu preciso para criar o seguinte caminho " Tabela 21 -> Tabela 12 ->
I parecem ter esquecido as minhas habilidades em lidar com grafos dirigidos, e não pode pensar de um bom algoritmo. Eu não estou pedindo por uma solução, mas apenas um impulso na direção certa.
Obrigado!
Solução
em largura de busca vai encontrar um caminho mais curto: http://en.wikipedia.org / wiki / largura-first_search
Outras dicas
Desde que você disse que as bordas são todos o mesmo peso, Dijkstra algoritmo ( meu costume primeira escolha para este tipo de coisa) só vai degradar a amplitude primeira pesquisa assim Eu sugiro usar isso para simplicidade.
Você pode escolher entre uma série de algoritmos para determinar o caminho mais curto. QuickGraph é bom neste tipo de coisa.