У меня есть график с огромным количеством узлов с одним стартовым узлом (все ребра - наружу) и одним конечным узлом (все кромки к нему). Это однонаправленный и невзвешенный график. Как оптимизировать поиск в этом виде графика, чтобы выяснить, существует ли путь между двумя узлами? Я знаю, что BFS предоставляет решение. Есть ли способ оптимизировать поиск (например, добавить дополнительную информацию), поскольку я буду делать частый поиск на графике?Лучший способ найти, существует ли путь в однонаправленном ориентированном графе
EDIT: Чтобы добавить дополнительную информацию о графике, граф имеет один стартовый узел с несколькими внешними ребрами и одним конечным узлом с несколькими краями. Между ними соединяются миллионы узлов. Это невзвешенный DAG. И нет никаких эвристик. Просто проверьте isConnected (узел a, узел b).
@ santosh.ankr Это ациклический. – user1429322
Вы знакомы с A * search? – templatetypedef
@templatetypedef Я полагаю, что в случае невзвешенных ребер A * похож на DFS. – user1429322