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

implement hyperedge adjacency matrices #395

Open
maximelucas opened this issue Jun 9, 2023 · 4 comments
Open

implement hyperedge adjacency matrices #395

maximelucas opened this issue Jun 9, 2023 · 4 comments
Labels
new feature New feature or request

Comments

@maximelucas
Copy link
Collaborator

A collaborator would be interested if we had hyperedge adjacency matrices (see definition in page 10 of this preprint).

Basically, two k-edges are :

  • lower adjacent if they share a (k-1)-edge
  • upper adjacent if they are part of a common (k+1)-edge
  • adjacent if lower adjacent and not upper adjacent

The entries of the matrices are 1 for pairs of edges that are * adjacent, and 0 otherwise.

It feels similar to the intersection profile we currently have, but that one only counts the number nodes shared between two edges.

@maximelucas maximelucas added the new feature New feature or request label Jun 9, 2023
@leotrs
Copy link
Collaborator

leotrs commented Jun 9, 2023

Sounds compute intensive at first sight. Perhaps there are some optimizations possible using maximal edges.

@maximelucas
Copy link
Collaborator Author

maximelucas commented Jun 9, 2023

I agree. Or with boundary matrices $B_k$, just like incidence matrices $I$, but giving the relationships between k and k-1 edges.
The intersection profile is $P = I^T I$. Would this not be something like $A_k = B_k^T B_k$? @Marconurisso any thoughts?

@leotrs
Copy link
Collaborator

leotrs commented Jun 9, 2023

You would need perhaps to subtract a higher order (co?)boundary matrix...

@Marconurisso
Copy link
Contributor

You can get the lower adjacency matrix of order k simply by taking the nonzero elements of the down Laplacian $L_k = (B_k^\top B_k \neq 0)$ and, vice versa, you get the upper adjacency matrix from the nonzero elements of the up Laplacian $U_k = (B_{k+1}B_{k+1}^\top \neq 0)$. The adjacency would then be something like $A_k = L_k \odot (1 - U_k)$ i think.

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

No branches or pull requests

3 participants