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

[ENH] Add the ability to check if an edge is "visible" #119

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

aryan26roy
Copy link
Collaborator

Fixes #115

Changes proposed in this pull request:

  • Add a function to check if the given edges in a path are "visible"

Before submitting

  • I've read and followed all steps in the Making a pull request
    section of the CONTRIBUTING docs.
  • I've updated or added any relevant docstrings following the syntax described in the
    Writing docstrings section of the CONTRIBUTING docs.
  • If this PR fixes a bug, I've added a test that will fail without my fix.
  • If this PR adds a new feature, I've added tests that sufficiently cover my new functionality.

After submitting

  • All GitHub Actions jobs for my pull request have passed.

Signed-off-by: Aryan Roy <[email protected]>
@aryan26roy
Copy link
Collaborator Author

@adam2392 What does this sign mean?

V •→X

Does it mean that the mark at the V end can be anything or that this can be a path of arbitrary length with the last mark being an arrow pointing towards X?

@adam2392
Copy link
Collaborator

adam2392 commented Aug 27, 2024

That is answered on pg2 of https://auai.org/uai2015/proceedings/papers/155.pdf.

Lmk if you have other questions too.

@aryan26roy
Copy link
Collaborator Author

Does a function already exists to find if a collider path exists between two nodes in a graph?

@adam2392
Copy link
Collaborator

Does a function already exists to find if a collider path exists between two nodes in a graph?

I don't think so, but all_vstructures is similar, so you can modify that implementation to get a new function all_collider_paths(src, target, G).

Signed-off-by: Aryan Roy <[email protected]>
Signed-off-by: Aryan Roy <[email protected]>
@aryan26roy
Copy link
Collaborator Author

@adam2392 The paper says:

A path of length one is a trivial collider path.

Do they mean a triple? (Only counting the non-endpoint node for the length) Because I don't see how a path could be a collider path otherwise.

@adam2392
Copy link
Collaborator

adam2392 commented Oct 2, 2024

@adam2392 The paper says:

A path of length one is a trivial collider path.

Do they mean a triple? (Only counting the non-endpoint node for the length) Because I don't see how a path could be a collider path otherwise.

I think they just mean a path of length one. So a single variable path is a collider, but yeah you would really only look at the path between two points usually.

So a collider path is a sequence of variables <X_1, X_2, X_3, …, X_i>, where you just look at the edges between each consecutive triple <X_i-1, X_i, X_i+1> in that path to determine if they meet the collider condition.

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

Successfully merging this pull request may close these issues.

FEA A function to determine if an edge is "visible"
2 participants