Алгоритм нахождения пути неориентированного графа - PullRequest
0 голосов
/ 27 февраля 2012

Что такое простой алгоритм поиска пути в неориентированном графе?

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

Самый простой способ выяснить, существует ли путь, - реализовать поиск в глубину .Если вы выполняли другие виды рекурсивного программирования в Scheme, поиск в глубину будет довольно естественным.Идея состоит в том, что для каждого узла, если это место назначения, вы сделали;в противном случае вы возвращаетесь к каждому из его дочерних элементов.

Единственный улов заключается в том, что вам нужно отслеживать узлы, которые уже были посещены во время обхода, чтобы вы могли избежать посещения одного и того же узла дважды;в противном случае, если у вас есть график A <-> B <-> C, и вы проверяете, подключается ли A к C, вы можете бесконечно циклически переходить от A к B, затем от B к A, затем от A к B,и так всегда.

1 голос
/ 27 февраля 2012

Ответ на этот вопрос зависит от вашего графического представления.Типичным алгоритмом является алгоритм Дейкстры (обратите внимание, что этот алгоритм найдет кратчайший путь, но он отлично работает).

http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

Это довольно простой для реализации алгоритм, и среди алгоритмов поиска путей он, пожалуй, самый интуитивный.

...