  Chordal graphs form one of the most studied graph classes. Several graph
problems that are NP-hard in general become solvable in polynomial time on
chordal graphs, whereas many others remain NP-hard. For a large group of
problems among the latter, approximation algorithms, parameterized algorithms,
and algorithms with moderately exponential or sub-exponential running time have
been designed. Chordal graphs have also gained increasing interest during the
recent years in the area of enumeration algorithms. Being able to test these
algorithms on instances of chordal graphs is crucial for understanding the
concepts of tractability of hard problems on graph classes. Unfortunately, only
few studies give algorithms for generating chordal graphs. Even in these
papers, only very few methods aim for generating a large variety of chordal
graphs. Surprisingly, none of these methods is directly based on the
"intersection of subtrees of a tree" characterization of chordal graphs. In
this paper, we give an algorithm for generating chordal graphs, based on the
characterization that a graph is chordal if and only if it is the intersection
graph of subtrees of a tree. Upon generating a random host tree, we give and
test various methods that generate subtrees of the host tree. We compare our
methods to one another and to existing ones for generating chordal graphs. Our
experiments show that one of our methods is able to generate the largest
variety of chordal graphs in terms of maximal clique sizes. Moreover, two of
our subtree generation methods result in an overall complexity of our
generation algorithm that is the best possible time complexity for a method
generating the entire node set of subtrees in a "intersection of subtrees of a
tree" representation. The instances corresponding to the results presented in
this paper, and also a set of relatively small-sized instances are made
available online.
