Friday, June 26, 2009

Hypergraphs, Hyperedges, and Hypervertices

A graph is a kind of model that contains edges and vertices. It's reasonably easy to draw pictures of graphs, where each edge is a line, and each vertex is a little bubble, maybe with a label in it. I use the program Graphviz to do this, and it's satisfactory.

I've been spending some time thinking about hypergraphs, which are a generalization of graphs, in which a hyperedge might connect more than two vertices. It was already true in a graph that a vertex might "connect" more than two edges, and this remains true in a hypergraph.

It's a bit tougher to draw a picture of a hypergraph, for the same reason it's hard to draw pictures of hypercubes or hyperspheres: the simplicity of the structure cannot be captured in a two-dimensional projection. Simple hyperstructures start to look complex when rendered in only two dimensions. For instance, consider a unit hypercube: each edge being of length one. Each surface of the hypercube is a cube, which is easy enough to draw, but that is only one surface of the hypercube, which is sort of like drawing a square to represent a plain old cube.

But I digress.

The question is this: difficulty of drawing the pictures aside, doesn't it make sense to collapse the hyperedge and hypervertex into a single concept for a hypergraph?

Basically, I think a hypergraph is simpler than a graph, because it lacks any distinction between edges and vertices. But maybe I'm thinking about it wrong. If you are Reinhard Diestel and you've stumbled along to this post, could you possibly clear that up for me? Comments are open.

Labels:


Comments:
RE: "doesn't it make sense to collapse the hyperedge and hypervertex into a single concept for a hypergraph?"

One can do is swap all the hyperedges for hypervertexs and visa vera, but you still need two types of thing and the restriction not to join things of the same type.

E.g. it must be:

(hyper)vertex -> (hyper)edge -> (hyper)vertex

not:

(hyper)vertex -> (hyper)vertex
 
Adam, I appreciate you finding this, and commenting. If you happen to wander back this way, I'd like to hear a little more of your thinking.

If a hyperedge is defined as a structure that connects n hypervertices, and a hypervertex is a structure that connects n hyperedges, they start looking very similar- as such, your example of
(hyper)vertex -> (hyper)edge -> (hyper)vertex could maybe be spelled like:

hyper -> hyper -> hyper

Without losing anything. Maybe I'll skype your coffee room and ask the same question ;)
 
Post a Comment

Subscribe to Post Comments [Atom]





<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]