Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

List all path between vertices #82

Open
vumajc opened this issue Mar 5, 2023 · 5 comments
Open

List all path between vertices #82

vumajc opened this issue Mar 5, 2023 · 5 comments
Labels
question Further information is requested

Comments

@vumajc
Copy link

vumajc commented Mar 5, 2023

I have a need to list all the path available to traverse between any 2 given vertices. Does this exist? Thoughts on how to implement it?

@dominikbraun dominikbraun added the question Further information is requested label Mar 6, 2023
@dominikbraun
Copy link
Owner

I'll add it to the list of algorithms to implement.

tzq0301 added a commit to tzq0301/graph that referenced this issue Jun 13, 2023
tzq0301 added a commit to tzq0301/graph that referenced this issue Jun 13, 2023
tzq0301 added a commit to tzq0301/graph that referenced this issue Jun 13, 2023
tzq0301 added a commit to tzq0301/graph that referenced this issue Jun 13, 2023
tzq0301 added a commit to tzq0301/graph that referenced this issue Jun 13, 2023
tzq0301 added a commit to tzq0301/graph that referenced this issue Jun 13, 2023
tzq0301 added a commit to tzq0301/graph that referenced this issue Jun 15, 2023
tzq0301 added a commit to tzq0301/graph that referenced this issue Jun 16, 2023
@deitch
Copy link

deitch commented Jun 26, 2023

I was just looking for something like this. I can lay out my issue, maybe there is an alternate route.

I have a directed acyclical graph. Let's say it has nodes A,B,C,D,E,F and part of the current edge list is A->B->C->D

I want to add D->A, which causes a cycle. The graph catches, it, which is good.

The only reason C->D is because some algorithm I used determined that D satisfies some C dependency. But, it turns out that F also does. So I could remove C->D, add in C->F, and now D->A will not cause a cycle.

That part is somewhat easy, and ShortestPath() reveals it. But there may be more depencenies, e.g. maybe B->E->F->D also, so it is not the shortest path, but only will reveal itself after I remove C->D.

Essentially, I am looking for: give me all of the paths that A depends on D, so I can recalculate them and then be able to add D->A.

If there is a better way to do this, I am very much up for it.

@dominikbraun
Copy link
Owner

@deitch You may take a look at #137 and see if that approach would work for you – I haven't had the time for a review yet.

@deitch
Copy link

deitch commented Jun 27, 2023

Yeah, I think that would do it. I haven't looked at the implementation, but the concept works. Although AllPathsBetweenTwoVertices() is quite the mouthful. If the shortest path is ShortestPath(a, b), maybe this should just be Paths(a, b)?

@dominikbraun
Copy link
Owner

@deitch That's right, maybe Paths, AllPaths or AllPathsBetween would do the job, but we'll see.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants