## What are the Applications of Hypergraphs

### Remember to vote up questions/answers you find interesting or helpful (requires 15 reputation points)

Hypergraphs are like simple graphs, except that instead of having edges that only connect 2 vertices, their edges are sets of any number of vertices. This happens to mean that all graphs are just a subset of hypergraphs.

It strikes me as odd, then, that I have never heard of any algorithms based on hypergraphs, or of any important applications, for modeling real-world phenomena, for instance. I guess that the superficial explanation is that it's a much more complex structure than a regular graph, and given this and its generality it's harder to make neat algorithms for, but I would expect there to be something!

Has anyone heard of a hypergraph-based algorithm, or application? It perplexes me that ordinary graphs can be so wonderfully useful, but their big brothers have nothing to offer.

-

8
A general comment here is that a hypergraph is an absurdly general object; it's basically an element of the power set of the power set of a set. For example, topologies and measurable spaces are both (technically) special cases of hypergraphs. So any theorems or applications necessarily need to focus on special cases. – Qiaochu Yuan Feb 2 2010 at 4:21

2
Calling it a subset of the powerset makes it seem less intimidating =p. – Harry Gindi Feb 2 2010 at 12:00

3
Here are two partial explanations for why algorithms based on hypergraphs are less common than algorithms based on graphs. 1. Some polynomial-time algorithms for graphs turn into NP-complete problems when you try to generalize them to hypergraphs (e.g., finding a perfect matching). 2. We often use graphs to model symmetric binary relations, and symmetric binary relations appear much more frequently than symmetric ternary relations (and beyond). – gowers Mar 31 2012 at 21:20

1
@Harry Gindi: for me, it's just the other way roudn. Hypergraph? Cool. Subset of the powerset? Arrgh, complex stuff way over my head. :) – Felix Goldberg Sep 20 at 8:56

1
Hypergraphs also crop up in physics of many-body systems. Usual graphs are only good for modelling of the pairwise interaction. But oftentimes (for example in statistical physics and effective theories) one works with general interactions that depend on more than two particles. In this situation there is usually some restriction on the number of vertices a hyperedge can contain and this important class of hypergraphs is no longer absurdly general. – Marek Sep 20 at 9:03
show 2 more comments

## 10 Answers

Hypergraphs and various properties that we can prove about them are the basis of many techniques that are used in modern mathematics. I will mention the proof of Density Hales-Jewett Theorem by Tim Austin. Multidimensional Szmeredi theorem is also be another key-word you might want to look up. The Furstenberg-Katznelson theorem can be proven using hypergraph methods. The mathematics subject classification is 05C65.

And more importantly, take a look at What's new and search for "hypergraphs" to see a lot of other results that involve hypergraph methods in their proofs.

One more thing, for real world applications, hypergraph methods appear in various places including declustering problems which are quite important to scale up the performance of parallel databases.

-

Here's another example for "real world" applications: research.microsoft.com/en-us/um/people/denzho/… – Felix Goldberg Sep 20 at 8:58

### You can accept an answer to one of your own questions by clicking the check mark next to it. This awards 15 reputation points to the person who answered and 2 reputation points to you.

One example: A 3-uniform hypergraph is the natural way to model the variable/clause structure of a 3-Sat instance. Since 3-Sat is one of the most important algorithmic problems in computational complexity theory, hypergraphs play an important role there.

For just one of many possible examples, take a look at the following paper of Feige, Kim, and Ofek:

http://research.microsoft.com/en-us/um/redmond/groups/theory/feige/homepagefiles/witness5.9.06.pdf

-

Hypergraphs (with no uniformity restriction) are also the natural way to model clause sets of general SAT. Each hyperedge represents the single set of literals that is forbidden by some clause. These structures have also been studied in constraint satisfaction, under the name microstructure complements. The hyperedges are there colourfully called "nogoods", a name coined by Stallman and Sussman in 1976 (yes, the Richard Stallman). hdl.handle.net/1721.1/6255 – András Salamon Jul 20 2010 at 17:34

I've done some work which made me appreciate the view that labelled hypergraphs are one of the most widely appropriate, general ways to represent data on stateful machines. In computer science, we commonly want to divide up state into a number of, possibly overlapping data structures, which will contain and be referenced by pointers.

This lends itself to the following representation: data structures are hyperedges. Non-pointer data within data structures are labels of the associated hyperedge. And pointers are represented by vertices, possibly (not always!) needing an attribute to indicate which hyperedge is the source and which is the target of the pointer. Computation, then, is graph rewriting.

As Qiaochu says, hyperedges are absurdly general. Likewise, the notion of data. To make this useful, one needs to constrain the form the hyperedges take. What is nice is that, likewise, programming languages must constrain the way they represent state, and one can often cleanly map the programming-driven constraints into reasonable constraints on the hypergraphs.

The idea crops up again and in again the literature on graph transformations. A good stepping off point is Drewes, Habel, & Kreowski, 1997, Hyperedge Replacement Graph Grammars, In Rozenberg, Handbook of Graph Grammars and Computing by Graph Transformations.

-

Matroids and more generally, greedoids, are special classes of hypergraphs. For these classes greedy algorithms give optimal solutions for optimization problems, and have low polynomial time complexity. Special cases are

• Kruskal's algorithm for finding minimal spanning trees, and
• Dijkstra's algorithm for finding shortest paths, both in weighted graphs.

There are many other matroid algorithms. See for example

• Bixby and Cunningham's chapter in the Handbook of Combinatorics, volume 1, or
• Jungnickel's book Graphs, networks and algorithms.
-

Hypergraphs have been very useful algorithmically for the following "Steiner tree problem:" given a graph (V, E) with a specified "required/terminal" vertex subset R of V and a cost for each edge, find a minimum-cost set of edges which connects all the terminals (and includes whatever subset of V \ R you like). Any minimal solution is a tree all of whose leaves are terminals (a so-called Steiner tree).

Hypergraphs are useful because there is a "full component decomposition" of any Steiner tree into subtrees; the problem of reconstructing a min-cost Steiner tree from the set of all possible full components is the same as the min-cost spanning connected hypergraph problem (a.k.a. min hyper-spanning tree problem) for a hypergraph whose vertex set is R. That's the approach used by many modern algorithms for the Steiner tree problem (whether they are integer-program based exact algorithms that are actually implemented, or non-implemented approximation algorithms with good provable approximation guarantees).

I like this application since one must view the hypergraph as "like a graph" (want it to be connected and acyclic) and not like a set system. This approach was used implicitly starting around 1990 by Zelikovsky and brought out more explicitly around 1997 by (I think) Warme and Prömel & Steger. A very cute paper using this approach is coming out at STOC 2010 by Byrka et al. As an $\epsilon$-shameless self-reference, there is more information in my thesis which then delves into linear programming relaxations for this approach.

-

Directed hypergraphs are used to model chemical reaction networks. This is closely related to the biological application Peter Arndt mentions in his answer.

The reaction network and the underlying hypergraph are related via the stoichiometry matrix, which is a matrix consisting of one's, zeros and minus ones which generalizes the adjacency matrix of a graph.

One obvious question you might ask about such a network is "are there any feedback loops"? This translates into the mathematical problem of finding directed hypercircuits in a directed hypergraph. This turns out to be an NP-complete problem (as shown in this paper by Can Özturan) and so gives another example of the type gowers mentions in his comment.

-
• Hypergraphs can be used to model some concurrent processes.

"it's a much more complex structure than a regular graph" Hypergraphs could be represented as ordinary graphs, if one represents each "hyperedge" with an additional ordinary node and ordinary edges which connect the new node with the nodes incident to "hyperedge". It makes me feel that hypergraphs aren't a strict subset.

-

Hypergraphs can arise as Bruhat-Tits buildings of groups, see e.g. here.

Some real world applications: In this article the authors list some applications to biology. Their nice starting example is that if one wants to model a chemical reaction one can write A-->B for a process which transforms A into B and see this as the edge of a graph. Sometimes such a process only works in the presence of some catalyzer (A+C-->B+C), making it a relation between three instead of two ingredients and giving a 2-edge of a hypergraph.

-

probably many thms and applications of math that dont explicitly refer to hypergraphs are actually related to them implicitly & could be recast in those terms. because hypergraphs are equivalently just "sets of sets". in this way they're also often interchangeable with/analogous to a 2d boolean array in computer science (and how ubiquitous is that structure in both software and mathematics? in computer science it might be referred to as a "design pattern" or even just a simple "discrete structure").

here is one key appearance/application of hypergraphs not mentioned so far. the erdos-rado sunflower lemmas[1], a key discovery of extremal graph/set theory, are about an intrinsic order or emergent "structure" to "random" hypergraphs if certain somewhat modest constraints are satisfied. this lemma shows up in numerous important lower bounds proofs in monotone circuit theory in computer science, including new versions that strengthen or generalize the lemma.[2]

because of their particular role in these "bottleneck"-type proofs its not outlandish to conjecture that variations might be crucial in some future-established comp sci complexity class separations.

[1] erdos-rado sunflowers survey/refs, TCS.se

[2] The Monotone Complexity of k-Clique on Random Graphs by Rossman, containing new stronger lemmas on "quasi sunflowers"

[3] Razborovs method of approximations by WT Gowers

-

footnote— technically a hypergraph is equiv to the comp sci discrete stucture of a 2d set of arrays of booleans, or an unordered list of lists. but note in comp sci often lists that can be implemented as unordered are implemented as ordered ones because the array ordering is actually more efficient to implement than a set. – vzn Sep 20 at 4:31

I believe a hypergraph can implement, or at least represent the transition states of, a nondeterministic Turing machine. Can't yet find any literature demonstrating that though, which makes me wonder. I have an open question about this over on StackOverflow right now, with no takers as of this writing: http://stackoverflow.com/questions/9953981/can-a-hypergraph-represent-a-nondeterministic-turing-machine

-
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 1, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9292475581169128, "perplexity_flag": "middle"}