 # Strongly Chordal Graph Generation using Intersection Graph Characterisation

Strongly chordal graphs are a subclass of chordal graphs. Farber also established a number of different characterisations for this class of graphs. These include an intersection graph characterisation that is analogous to a similar characterisation for chordal graphs. Seker et al. exploited this characterisation 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 characterisation.

## Authors

##### This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

## 1 Introduction

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.

###### Definition 1.1

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 .

###### Definition 1.2

Let and be two subtrees of . Subtree is full with respect to , denoted by , if for any two vertices such that , implies that .

###### Definition 1.3

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.

###### Theorem 1.4

 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 .

 S=⎛⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜⎝100010001001101000010110110101100000101000000000000000000000100000000000000000000000110000000000000000000000000000000000000000000000000000000000⎞⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟⎠

After removing 6 rows (row index: , , , , , ) that have only zero entries, we get the following matrix :

 S′=⎛⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜⎝100010001001101000010110110101100000101000000000100000000000110000000000⎞⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟⎠

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.