X
X
x32net2016-12-29 12:47:01
go
x32net, 2016-12-29 12:47:01

How to find all paths (excluding cycles) from point to point on a directed graph?

There is a directed graph with cycles, it consists of about 1000 nodes.
1547873538a541869617c8da858f005e.gif
For example, for 1-4 there will be paths: 1-5-4, 1-2-5-4.
I think the optimal approach would be to use the representation of the graph and the results in the form of adjacency lists.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
Сергей, 2016-12-29
@begemot_sun

Ну очевидно тут нужно полным рекурсивным перебором находить.
Из точки А в точку Б пути идут разными способами, в том числе следующая после А будет точка С.
Т.о. чтобы найти все пути из точки А в Б, нужно найти все пути из С в Б + все пути из других точек смежных с А.
Применяя данное правило рекурсивно, можно обойти все вершины.

X
x32net, 2016-12-30
@x32net Автор вопроса

Сделал вариант решения https://play.golang.org/p/DjS_Umejsr
Как избавиться от повторов и убрать рекурсию?

E
evgeniy_lm, 2016-12-31
@evgeniy_lm

построить дерево

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question