  For a graph $G$, let $\Pi(G)$ denote the set of all potential maximal cliques
of $G$. For each subset $\Pi$ of $\Pi(G)$, let $\tw(G, \Pi)$ denote the
smallest $k$ such that there is a tree-decomposition of $G$ of width $k$ whose
bags all belong to $\Pi$. Bouchitt\'{e} and Todinca observed in 2001 that
$\tw(G, \Pi(G))$ is exactly the treewidth of $G$ and developed a dynamic
programming algorithm to compute it. Indeed, their algorithm can readily be
applied to an arbitrary non-empty subset $\Pi$ of $\Pi(G)$ and computes $\tw(G,
\Pi)$, or reports that it is undefined, in time $|\Pi||V(G)|^{O(1)}$. This
efficient tool for computing $\tw(G, \Pi)$ allows us to conceive of an
iterative improvement procedure for treewidth upper bounds which maintains, as
the current solution, a set of potential maximal cliques rather than a
tree-decomposition.
  We design and implement an algorithm along this approach. Experiments show
that our algorithm vastly outperforms previously implemented heuristic
algorithms for treewidth.
