Elimination Ordering

Many algorithms for NP-hard problems are exponential in treewidth. However, finding a lower bound on treewidth is in itself NP-complete. [GD] describes a branch-and-bound algorithm for computing the treewidth of an undirected graph by searching in the space of perfect elimination ordering of vertices of the graph.

A clique of a graph is a fully-connected subset of vertices; that is, every pair of vertices in the clique share an edge. A simplicial vertex is one whose neighborhood induces a clique. A perfect elimination ordering is an ordering of vertices \(1..n\) such that any vertex \(i\) is simplicial for the subset of vertices \(i..n\).

chimera_elimination_order(m[, n, t]) Provides a variable elimination order for a Chimera graph.
elimination_order_width(G, order) Calculates the width of the tree decomposition induced by a variable elimination order.
is_almost_simplicial(G, n) Determines whether a node n in G is almost simplicial.
is_simplicial(G, n) Determines whether a node n in G is simplicial.
max_cardinality_heuristic(G) Computes an upper bound on the treewidth of graph G based on the max-cardinality heuristic for the elimination ordering.
minor_min_width(G) Computes a lower bound for the treewidth of graph G.
min_fill_heuristic(G) Computes an upper bound on the treewidth of graph G based on the min-fill heuristic for the elimination ordering.
min_width_heuristic(G) Computes an upper bound on the treewidth of graph G based on the min-width heuristic for the elimination ordering.
pegasus_elimination_order(n[, coordinates]) Provides a variable elimination order for the Pegasus graph.
treewidth_branch_and_bound(G[, …]) Computes the treewidth of graph G and a corresponding perfect elimination ordering.

References

[GD]Gogate & Dechter. “A Complete Anytime Algorithm for Treewidth.” https://arxiv.org/abs/1207.4109