Hypergraphs
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start by reviewing the GraphsBase.jl interfaces that assume edges connect exactly two vertices, especially uses of dst, src, and vertices(edge). Compare the three proposed changes and determine a consistent hyperedge model; done means the design is agreed and hypergraphs, open edges, and non-hypergraph algorithm views are supported without breaking existing edge behavior.
Written by the indexing model from the issue text.
Description
Is there any intention to support hypergraphs? The main deadlock to integrate hypergraphs in Graphs is the assumption that edges point to 2 vertices. Currently is weird to implement a "undirected" HyperEdge type: dst and src have no point there (even in an undirected graph dst and src look weird) because there will be more than 2 vertices.
My proposal is the following:
- See simple edges as a special case of hyperedges whose cardinality is 2.
- Stop using
dstandsrcfor undirected edges $\rightarrow$ Usevertices(edge)where possible instead. - For graph algorithms that need a non-hyper graph view, a hyperedge can be seen as the powerset of cardinality 2 of the connecting vertices (i.e. all vertices in an hyperedge are at distance 1).
If we relax this assumption, open edges could also be supported and implemented as cardinality 1 hyperedges.
- Dominant language
- Julia
- Stars
- 11
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from JuliaGraphs/GraphsBase.jl
-
Constructors for 2.0Openquestion
Difficulty 5/5 Over a week Newbie friendliness 25/100
JuliaGraphs/GraphsBase.jl#34 ·
-
question
Difficulty 5/5 Over a week Newbie friendliness 15/100
JuliaGraphs/GraphsBase.jl#28 ·
-
question
Difficulty 5/5 Over a week Newbie friendliness 25/100
JuliaGraphs/GraphsBase.jl#27 · 1 comment · 1 reaction ·
-
question
Difficulty 5/5 Over a week Newbie friendliness 22/100
JuliaGraphs/GraphsBase.jl#26 · 6 comments · 2 reactions ·
-
question
Difficulty 5/5 Over a week Newbie friendliness 25/100
JuliaGraphs/GraphsBase.jl#25 · 3 comments · 1 reaction ·
All issues in JuliaGraphs/GraphsBase.jl
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 62/100
JuliaStats/LogExpFunctions.jl#134 · 2 comments ·
-
code bug PowerSystems 6.0
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Sienna-Platform/PowerSystems.jl#1849 ·
Maintainers usually reply within 7 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
FluxML/Metalhead.jl#407 ·
Maintainers usually reply within 1 day