An Algorithm for Generating Strongly Chordal Graphs

04/14/2018 ∙ by Md. Zamilur Rahman, et al. ∙ 0

Strongly chordal graphs are a subclass of chordal graphs. The interest in this subclass stems from the fact that many problems which are NP-complete for chordal graphs are solvable in polynomial time for this subclass. However, we are not aware of any algorithm that can generate instances of this class, often necessary for testing purposes. In this paper, we address this issue. Our algorithm first generates chordal graphs, using an available algorithm and then adds enough edges to make it strongly chordal, unless it is already so. The edge additions are based on a totally balanced matrix characterizations of strongly chordal graphs.

READ FULL TEXT VIEW PDF
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

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

Let be an undirected graph with vertices in its vertex set and edges in its edge set . A graph is strongly chordal if it is chordal and every even cycle of length 6 or more has a strong chord. Since the strongly chordal graphs are a subclass of the chordal graph, among many definitions of a strongly chordal graph this has a more intuitive connection with the parent class of chordal graphs, which have no induced cycle of size greater than 3. There are several NP-complete problems such as INDEPENDENT SET, CLIQUE, COLORING, CLIQUE COVER, DOMINATING SET, and STEINER TREE etc. can be solved efficiently for strongly chordal graphs. For example, the -tuple domination problem in strongly chordal graph can be solved in linear-time if a strong ordering is provided [4]. For testing purposes, we often need to generate instances of strongly chordal graphs. While there are algorithms to recognize strongly chordal graphs, we did not find any that can generate these. In this paper we address this issue.

The following section introduces some notations and definitions. In section 3, we review an algorithm due to [5] for generating chordal graphs. In section 4 we list some of the characterizations of strongly chordal graphs and in section 5 we present our algorithm for the generation of strongly chordal graphs, establish its correctness and analyze its time complexity. Finally, section LABEL:conclusion ends with some concluding remarks and open problems.

2 Preliminaries

A path in is a sequence of vertices , where for , is an edge of . A cycle is a closed path. The size of a cycle is the number of edges in it. A subset of is a clique if the induced subgraph is complete.

A chord of a cycle is an edge joining two non-consecutive vertices. For instance, in Figure 1(a), the edge between and is a chord. A graph is said to be chordal if it has no chordless cycles of size or more. For example, both the graphs in Figure 1 are chordal.

A graph is strongly chordal if it is chordal and every even cycle of length or more has a strong chord. Figure 1 shows an example of a chordal graph and a strongly chordal graph. The graph in Figure 1(a) is chordal but not strongly chordal because there is no strong chord (in the literature this graph is known as the Hajos graph). On the other hand, the graph in Figure 1(b) is strongly chordal with (shown in green) as a strong chord.

(a) Chordal graph but not strongly chordal graph
(b) Strongly chordal graph
Figure 1: An example

Let denote the neighborhood of a vertex . The closed neighborhood of a vertex , denoted by is . The degree of a vertex is .

Let be a chordal graph. A vertex is said to be simplicial if is a clique in . A simplicial (perfect elimination) ordering of the vertices of is a map such that is simplicial in the induced graph on the vertex set . A graph is chordal if and only if there exists a perfect elimination ordering of its vertices. Thus , , , , is a perfect elimination ordering of the vertices of the chordal graphs shown in Figure 1.

We have analogous definitions for a strongly chordal graph . A vertex of is said to be simple if the sets in can be linearly ordered by inclusion. An alternate definition is this. Vertices and of are said to be compatible if or  [3]. Then a vertex is simple if the vertices in are pairwise compatible. None of the vertices of the graph in Figure 1(a) is simple. Thus is not simple as the vertices and in are not pairwise compatible.

A strong elimination ordering of a graph is an ordering of such that the following condition holds: for each , , , and , if , and , and , then  [3]. Thus a graph is strongly chordal if it admits a strong elimination ordering, which is a generalization of the notion of perfect elimination ordering used to define chordal graphs. Since the graph shown in Figure 1(a) is not a strongly chordal graph, there is no strong elimination ordering available. On the oher hand, , , , , is a strong elimination ordering of the vertices of the graph shown in Figure 1(b).

For non-adjacent vertices and , a proper subset of is an separator if and lie in separate components of . It is a minimal separator if no proper subset of is an separator. is a separator in if there exists vertices and in that separates.

3 Generation of chordal graphs

In [5], Markenzon et al. proposed two methods for the generation of chordal graphs. The first method adds edges incrementally, while maintaining chordality. The method is simple, dispensing with the need for any auxiliary data structure. The second method adds vertices incrementally, while maintaining a perfect elimination ordering of the vertices and also a clique-tree representation of the graph. The first method generates sparse graphs, while the second one generates dense ones.

We discuss the details of the first method. It makes crucial use of the following theorem.

Theorem 3.1

[5]Let be a connected chordal graph and non-adjacent vertices of . The augmented graph is chordal if and only if is not connected where .

A formal description of the algorithm 1 based on theorem 3.1 in given below.

1:Generate a tree,
2:Pick two random vertices and from .
3:if there is an edge exists between these two vertices ( and then
4:     go back to step 2.
5:else
6:     Insert an edge between and by maintain the chordality property
7:end if
8:if there is no common neightbors between and  then
9:     go back to step 2.
10:else
11:     choose one vertex from the common neighbor of and
12:end if
13:Perform BFS from to on the graph consisting of all the adjacent vertices of minus the intersection of and ’s neighbors
14:if BFS finds a path from to  then
15:     go back to step 2.
16:else
17:     insert an edge between and
18:end if
Algorithm 1 ChordalGraphGeneration(G)

The number of vertices, , and the number of edges, , are the two inputs to this method. This method starts with the generation of a tree with the given number of vertices . During the generation of a tree, in every iteration either a new edge is inserted or an edge split into two edges, until the number of tree edges equals . After the tree generation phase, more edges are added. The algorithm adds a new edge, provided chordality is preserved.

After the generation of a chordal graph, a perfect elimination ordering for this graph is computed based on the algorithm, named LEX-BFS proposed in [7] by Rose et. al. The LEX-BFS algorithm is given below:

1:Assign the empty label list, (), to each vertex in
2:for  to  do
3:     Pick a vertex with the lexicographically largest label list
4:     Set
5:     For each unnumbered vertex adjacent to , add to the label list of
6:end for
7:return
Algorithm 2 LEX-BFS(G)

This perfect elimination ordering is used in the generation of strongly chordal graphs. After applying algorithm 3, the chordal graphs turns into strongly chordal graphs and the perfect elimination ordering also turns into a strong elimination ordering.

4 Characterizations of Strongly Chordal Graphs

Many different characterizations of strongly chordal graphs are extant in the literature. To make the paper self-contained, we state those that are relevant to the problem at hand. Interestingly enough, for each chracterization of a chordal graph there seems to be a corresponding characterization of a strongly chordal graph. To drive home this, we have stated the first three characterizations of strongly chordal graphs along with their chordal counterpart.

The first characterization is based on elimination ordering.

Theorem 4.1

[6]A graph is chordal if and only if it admits a perfect elimination ordering.

Theorem 4.2

[3]A graph is strongly chordal if it admits a strong elimination ordering.

The second is based on the type of a vertex.

Theorem 4.3

[6]A graph is chordal if and only if every induced subgraph has a simplicial vertex.

Theorem 4.4

[3]A graph is strongly chordal if and only if every induced subgraph of has a simple vertex.

The third pair is based on the absence of induced chordless cycles.

Theorem 4.5

[1]A graph is chordal if and only if every cycle of length greater than has an induced -chord triangle.

Theorem 4.6

[2]A graph is strongly chordal if and only if it has no chordless cycle on four vertices and every cycle on at least five vertices has an induced -chord triangle.

The next pair characterizations are based on totally balanced matrices for strongly chordal graphs only. The first characterization stated in theorem 4.7 is based on the neighborhood matrix of and the second characterization stated in theorem 4.8 is based on the clique matrix of .

Theorem 4.7

[3]The graph is strongly chordal if and only if is totally balanced.

Theorem 4.8

[3]The graph is strongly chordal if and only if is totally balanced.

The last characterization of a strongly chordal graph is this:

Theorem 4.9

[3]A graph is strongly chordal if and only if it is chordal and every even cycle of length at least in has a strong chord.

5 Algorithm for Generating Strongly Chordal Graphs

This section describes an algorithm for generating strongly chordal graphs. This algorithm takes the number of vertices, , and the number of edges, , as input. Based on this input, a chordal graph is generated using the incremental method described in section 3. Next, the chordal graph is passed as an input to the algorithm 3 for generating a strongly chordal graph by introducing some additional edges, if needed. The algorithm is based on one of the characterizations by Farber [3], which we have mentioned in theorem 4.7. For convenience, we restate it here:

Theorem 5.1

[3] The graph is strongly chordal if and only if is totally balanced.

where refers to the neighborhood matrix of a graph on the vertices whose entry is if and is otherwise. The ordering of the vertices of a graph is a strong elimination ordering if and only if the matrix

1:A chordal graph
2:A strongly chordal graph
3:Generate the neighborhood matrix of from a perfect elimination ordering of a chordal graph
4:while there is a submatrix present in  do
5:     Change the entry to in the submatrix and add a new edge in that corresponds to this entry
6:end while
Algorithm 3 Generation of Strongly Chordal Graphs

is not a submatrix of the neighborhood matrix, . Algorithm 3 searches for the occurrences of in , adding new edges to the graph whenever the 0 entry of a -matrix is changed to a 1. The iteration continues until there is no submatrix in . After applying algorithm 3, the chordal graph turns into a strongly chordal graph and also the perfect elimination ordering turns into a strong elimination ordering.

For testing purposes, at the end of this process, a recognition algorithm 4 due to Farber [3] is applied to verify that the graph generated by the algorithm 3 is strongly chordal. When this algorithm terminates successfully it also generates a strong elimination ordering. A formal description of the recognition algorithm is given below:

1:A graph
2:A strong elimination ordering
3:Set .
4:Let and let be the partial ordering on in which if and only if . Let , and set .
5:Let be the subgraph of induced by . If has no simple vertex then output and stop. Otherwise, define an ordering on by if or .
6:Choose a vertex which is simple in and minimal in . Let . If then output the ordering of and stop. Otherwise, set and go to step 4.
Algorithm 4 REcognitionAlgorithm [3]
(a) Chordal graph but not strongly chordal graph
(b) Strongly chordal graph

(c) Neighborhood matrix of the chordal graph is shown in Figure (a)

(d) Neighborhood matrix of the strongly chordal graph is shown in Figure (b)
Figure 2: An example of a chordal and a strongly chordal graph.

Figure 2(a) shows an example of a chordal graph and the strongly chordal graph generated by the above algorithm from this chordal graph. The graph shown in Figure 2(a) is chordal but not strongly chordal as there is no strong chord (no edge and ) in the six cycle , , , , and , , , , . Also from the neighborhood matrix it can be seen that there two submatrices exist. According to the algorithm 3, by change those entires from to , the submatrix will not exist anymore in the or equivalently, by introducing two new edges and . Now the graph also has strong chords in the six cycles , , , , and , , , , . The resulting graph is now strongly chordal and the perfect elimination ordering , , , , , turns into strong elimination ordering.

(a) Chordal graph and also strongly chordal graph.

(b) Neighborhood matrix of the strongly chordal graph is shown in Figure (a)
Figure 3: An example of a chordal and a strongly chordal graph.

Figure 3(a) shows another example of a chordal graph and the perfect elimination ordering is , , , , , , . The graph is also strongly chordal because there are no submatrices in the neighborhood matrix.

Theorem 5.2

Algorithm 3 generates a strongly chordal graph, along with a strong elimination ordering.

We know the ordering of the vertices of a graph is a strong elimination ordering if and only if the matrix

is not a submatrix of the neighborhood matrix, and the algorithm makes sure that no such submatrices are present in . Thus the resulting graph is a strongly chordal graph.

5.1 Complexity

A tree with edges is created for the given number of vertices , as such a graph is chordal. Then an additional edges are added, manintaining chordality. The time complexity of this phase is . LEX-BFS is a linear time algorithm on the given number of vertices and edges. Algorithm 3 takes time for finding the submatrices and insertion of edges. After finding all such submatrices in one round and inserting edges, the algorithm makes further rounds until there is no such submatrix present in . In the worst case, the initial graph is changed into a complete graph, which is strongly chordal. Thus the number of rounds is bounded above by and the comlexity of the entire algorithm is in .

6 Discussion

We proposed an algorithm to generate strongly chordal graphs on vertices and edges as input. We could skip the intermediate phase of generating chordal graphs and generate strongly chordal graphs directly from trees as these are chordal. However, this does not allow us to add new edges in the tree because a tree is also strongly chordal and there is no submatrix present in the neighborhood matrix of a tree. Hence we get very sparse strongly chordal graphs, identical with the input trees. Figure 4(a) shows an example of a tree (also strongly chordal graph) and the perfect elimination ordering is , , , . The neighborhood matrix is given in Figure 4(b) from which we can see that there is no submatrix present. An interesting open problem is to generate strongly chordal graphs ab initio, skipping the intermediate phase of generating chordal graphs. This might possibly lead to a more efficient algorithm than proposed in this paper.

(a) Tree and also strongly chordal graph.

(b) Neighborhood matrix of the tree is shown in Figure (a).
Figure 4: An example of a tree with neighborhood matrix.

References

  • [1] Gerard J. Chang and George L. Nemhauser. The k-domination and k-stability problems on sun-free chordal graphs. SIAM Journal on Algebraic Discrete Methods, 5(3):332–345, 1984.
  • [2] Elias Dahlhaus, Paul D. Manuel, and Mirka Miller. A characterization of strongly chordal graphs. Discrete Mathematics, 187(1-3):269–271, 1998.
  • [3] Martin Farber. Characterizations of strongly chordal graphs. Discrete Mathematics, 43(2-3):173–189, 1983.
  • [4] Chung-Shou Liao and Gerard J. Chang. k-tuple domination in graphs. Inf. Process. Lett., 87(1):45–50, 2003.
  • [5] Lilian Markenzon, Oswaldo Vernet, and Luiz Henrique Araujo. Two methods for the generation of chordal graphs. Annals OR, 157(1):47–60, 2008.
  • [6] Donald J Rose. Triangulated graphs and the elimination process. Journal of Mathematical Analysis and Applications, 32(3):597 – 609, 1970.
  • [7] Donald J. Rose, Robert Endre Tarjan, and George S. Lueker. Algorithmic aspects of vertex elimination on graphs. SIAM Journal on Computing, 5(2):266–283, 1976.