Strongly chordal graphs, introduced by Farber , are a subclass
of chordal graphs. He also established a number of different characterizations for this class of
graphs. These include an intersection graph characterization  that is
analogous to a similar characterization for chordal graphs . Seker
et al.  exploited this characterization of chordal graphs to obtain an algorithm for generating them. In this paper, we propose an algorithm to show that strongly chordal graphs
can also be generated using their intersection graph characterization.
The following essential definitions from Farber  underlie this characterization. Let be the root of an edge-weighted tree. The edge-weights are positive numbers that can be conveniently interpreted as the lengths of the edges.
The weighted distance from a node to a node in , denoted by , is the sum of the lengths of the edges of the (unique) path from to .
Let and be two subtrees of . Subtree is full with respect to , denoted by , if for any two vertices such that , implies that .
A collection of subtrees of is compatible if for each pair of subtrees and either or .
Using the definitions above, Farber established the following intersection graph characterization for strongly chordal graphs.
 A graph is strongly chordal if and only if it is the intersection graph of a compatible collection of subtrees of a rooted, weighted tree, .
2 The Algorithm
Let be an adjacency matrix whose rows correspond to a compatible collection
of subtrees, , of a rooted, weighted tree as in
Theorem 1.4 and columns correspond to the vertices
of , arranged from left to right in order of non-decreasing distance from the root, .
Our main observation is that Definition 1.2 can be re-interpreted to imply that
the matrix cannot have
as a sub-matrix.
More precisely, if and are two rows of , corresponding
to compatible subtrees and of , then there cannot exist columns and
that intersect these two rows to create .
Thus belongs to the class of
0-1 matrices that do not have as a submatrix. Note that this is only a necessary condition. If we can generate a 0-1 matrix that satisfies this necessary condition, we have to
further ensure that each row corresponds to a subtree of a weighted tree . The details of how
this can be achieved are described in the algorithm below that is built atop our observation
of the forbidden sub-matrix property of .
Each of the entries of the first row and the first column are randomly set to or . The entries of the submatrix  are carefully set to or so as not have as a submatrix. This is done in row major order. While setting the entry of the -th row and -th column we check exhaustively the entries in the columns to the left of the -th column and the entries above the -th row to make sure that no submatrix is equal to . To have a compatible collection of subtrees of a given tree , we also do not want as a submatrix. Such a submatrix can create cycles in the tree we wish to construct from the rows of our matrix representing a collection of compatible subtrees. Algorithm 1 generates a matrix without or as a submatrix.
In the next phase, we prune some of the rows of . First, we remove rows with all 0’s. Then we remove duplicate rows (if any) because they produce identical subtrees and denote the reduced matrix by . In the next step, we generate a strongly chordal graph from the matrix . Each subtree (row) represents a vertex in the strongly chordal graph, and there is an edge between two vertices in the strongly chordal graph if . Algorithm 2 takes the number of columns (nodes) and the number of rows (subtrees) () as inputs and outputs a strongly chordal graph .
In the following paragraphs, we explain on an example the strongly chordal graph generation process step-by-step.
Example: Algorithm 1 generates the following matrix with and .
After removing 6 rows (row index: , , , , , ) that have only zero entries, we get the following matrix :
From the matrix , we can see there are six subtrees. The subtrees are shown in Figure 1. The strongly chordal graph shown in Figure 2 is generated by representing each of Figure 1 as a node . There is an edge between and if the intersection of and is non-empty.
Algorithm 1 takes time to generate matrix , ensuring it does not have or as a submatrix. The intersection of two subtrees () can be computed in time. Each subtree represents a vertex in a strongly chordal graph and if , then there is an edge between two vertices in a strongly chordal graph. The insertion of an edge can be done in time.
To the best of our knowledge this is the first algorithm for generating strongly chordal graphs based on an intersection graph characterization of this class. It would be interesting to improve on the time-complexity of this algorithm or find a more efficient way of generating strongly chordal graphs. We implemented this proposed algorithm in Python. As a matter of curiosity, we tested a large number of intersection graphs generated from -free matrices. Without exception, all of these passed the recognition algorithm test for strong chordality. It would be worthwhile to investigate this further.
-  Martin Farber. Applications of 1.p. duality to problems involving independence and domination. PhD thesis, Rutgers University, 1982.
-  Martin Farber. Characterizations of strongly chordal graphs. Discrete Mathematics, 43(2-3):173–189, 1983.
-  Fanica Gavril. The intersection graphs of subtrees in trees are exactly the chordal graphs. Journal of Combinatorial Theory, Series B, 16(1):47 – 56, 1974.
-  Oylum Seker, Pinar Heggernes, Tinaz Ekim, and Z. Caner Taskin. Generation of random chordal graphs using subtrees of a tree. CoRR, abs/1810.13326, 2018.