2. Preliminaries
The preliminaries of this paper are similar to those of [
21]. In order to avoid useless repetition, we only recall here the main definitions, results and notations, and add some results from [
21], the new notions appearing in this paper and the results that are explicitly referred to in this paper. We invite the reader to have a look at the preliminaries section of [
21] for more detail and an example.
We consider here finite and undirected graphs. For a graph , (order of G) and . For any subset X of V, denotes the subgraph of G induced by S. For any vertex v of G, denotes the neighborhood of v in G, i.e., , and denotes its closed neighborhood in G, i.e., . For any subset X of V, and .
For each graph G, denotes the set of maximal cliques of G and the clique graph of G, denoted by , is the intersection graph of . If X and Y are nodes of a tree T, denotes the path in T between X and Y.
For each integer , a is a graph which is a cycle of length k and a k-sun is a graph obtained from a by adding for each edge of this a vertex adjacent to x and y and adding all edges that are necessary to make this into a clique. A hole is a with , and an anti-hole is its complement graph. A hole or anti-hole is odd if its number of vertices is odd. G is (odd-)(anti-)hole-free if no induced subgraph of G is an (odd)(anti-)hole. We do not use the definition of a perfect graph in this paper, but we use its well-known characterization as an odd-hole-free and odd-anti-hole-free graph (Strong Perfect Graph Theorem).
Separation. Let be a connected graph and let S be a subset of V. S is a separator of G if is disconnected. The connected components of are called the components of S in G. For any pair of , S is an -separator of G if a and b are in different components of S in G. S is a minimal -separator if it is an inclusion-minimal -separator, and a minimal separator if there is some pair of V such that S is a minimal -separator. A full component of S in G is a component C of S in G such that . S is a minimal separator if S has at least two full components, and S is a minimal ab-separator if a and b lie in two different full components of S. Let A and B be two subsets of V. S is a (minimal) -separator of G if it is a (minimal) -separator of G for each and each .
If G is disconnected, then a (minimal) (-)separator of G is a (minimal) (-)separator of one of its connected components.
Chordal graph. A graph is
chordal, or
triangulated, if it has no chordless cycle of length at least 4. A graph is chordal if and only if all its minimal separators are cliques [
22]. A connected graph is chordal if and only if it has a
clique tree [
16,
23].
Definition 1. Let be a connected chordal graph. Aclique tree of G is a tree such that for each vertex x of G, the set of nodes of T containing x induces a subtree of T.
Characterization 1 ([
15]).
Let be a connected chordal graph, let T be a clique tree of G, and let ; then S is a minimal separator of G if and only if there is an edge of T such that . Property 1 ([
24]).
Let be a connected chordal graph, let T be a clique tree of G, and let S be a minimal separator of G. The number of edges of Tsuch that is equal to the number of full components of S in G minus 1. If
G is a disconnected chordal graph, we associate with
G a forest whose connected components are clique trees of the connected components of
G. A clique tree (forest) can be computed in linear time [
15].
A block graph is a (necessarily chordal) graph whose minimal separators are of size 1. Atom. In this paper, we do not use the definition of atoms as the vertex sets produced by clique minimal separator decomposition, but their following characterization.
Characterization 2 ([
2]).
Let be a graph and let A be a subset of V. A is an atom of G if and only if A is an inclusion-maximal subset of V inducing a connected subgraph of G with no clique separator. We denote the set of atoms of G by . A graph has at most n atoms.
Atom tree.
Definition 2 ([
20]).
Let be a connected graph. An atom tree
of G is a tree such that for each vertex x of G, the set of nodes of T containing x induces a subtree of T. Characterization 3 ([
20]).
Let be a connected graph, let T be an atom tree of G, and let ; then S is a clique minimal separator of G if and only if there is an edge of T such that . Atom graph.
Definition 3 ([
21]).
Theatom graph
of a graph G, denoted by , is the graph , where is the set of atoms and the set of pairs of such that is a clique minimal -separator of G. Property 2 ([
21]).
Let A and B be distinct atoms of a graph G. Then, is connected and . Property 3 ([
2,
21]).
Let be a connected graph, and let be the graph obtained from G by adding all the edges that are necessary to make each atom of G into a clique. Then is chordal, its clique trees are the atom trees of G, its atom graph is the atom graph of G and for each clique S of G, the full components of S in are the full components of S in G. Characterization 4 ([
21]).
The atom graph of a connected graph G is the union of all the atom trees of G. Characterization 5 ([
21]).
Let G be a connected graph, let A and B be distinct atoms of G and let T be an atom tree of G. Then, is an edge of if and only if there is an edge on the path from A to B in the tree T such that . By definition of an atom tree, for each pair of nodes of an atom tree T and each edge of , . It follows that in Characterization 5, the equality can be replaced by , or . We associate with each edge of an atom tree or an atom graph the set of weight .
Clique graph of a chordal graph. A graph G is a clique graph of a chordal graph if there is a chordal graph such that G is isomorphic to the clique graph of .
Characterization 6 ([
25]).
A graph G is a clique graph of a chordal graph if and only if it has a spanning tree T such that each maximal clique of G induces a subtree of T. -acyclic hypergraphs. A simple hypergraph, or hypergraph for short, is a structure , where V is its vertex set and is a set of non-empty subsets of V, called the hyperedges of H, whose union is equal to V. A hypergraph is a clutter if the elements of are pairwise non-inclusive. Its line graph, denoted by , is the intersection graph of . Its 2-section graph, denoted by , is the graph whose vertex set is V and whose edges are the pairs of V that are contained in a hyperedge of H. H is connected if is connected, or equivalently if is connected.
A join tree of H is a tree T whose node set is and such that for each vertex x of H, the set of nodes of T containing x induces a subtree of T, or equivalently, such that for each pair of , is a subset of each node of . H is α-acyclic if it has a join tree.
Definition 4 ([
21]).
Theunion join graph
of an α-acyclic hypergraph H, denoted by , is the union of its join trees. Definition 5 ([
21]).
Let be a graph. The atom hypergraph
of G is the hypergraph . Property 4 ([
21]).
Let G be a connected graph and let H be its atom hypergraph. Then, H is a connected α-acyclic hypergraph and the atom graph of G is the union join graph of H. Property 5. Let H be an α-acyclic hypergraph, and let G be the 2-section graph . Then, G is chordal and if H is a clutter then it is the atom hypergraph of G.
A non-clutter -acyclic hypergraph can be turned into a clutter by adding a specific element to each non-inclusion-maximal hyperedge, so any connected -acyclic hypergraph is an atom hypergraph up to some isomorphism as stated in Property 6.
Property 6 ([
21]).
Let H be a connected α-acyclic hypergraph. Then, there is a connected chordal graph G such that the atom graph of G is isomorphic to the union join graph of H. Characterization 5 can be rewritten in terms of -acyclic hypergraph as follows ( stands for to union join).
Definition 6 ([
21]).
For each join tree of a hypergraph, is the graph whose node set is and whose edges are the pairs of such that there is an edge of such that (or equivalently ). Characterization 7 ([
21]).
For each α-acyclic hypergraph H and each join tree T of H, . We associate with each edge of a join tree or an union join graph the set of weight .
4. Atom Graphs Are Perfect
The clique graph of a chordal graph is not necessarily chordal, and not even perfect. For instance, the clique graph of the 5-sun is non-perfect, but its atom graph is chordal (see
Figure 1), which follows from Characterization 14 below since the minimal separators of the 5-sun are pairwise non-inclusive. Introducing inclusion-comparable minimal separators, we can build a graph whose atom graph is non-chordal, as shown in
Figure 2. This non-chordal atom graph is perfect though.
We will show that each atom graph is perfect, and more accurately, that it is odd-hole-free and anti-hole-free.
Notation 1. Let be a graph. For each atom A and each clique S of G distinct from A, denotes the connected component of containing .
This definition is correct since by definition of an atom, for each atom A and each clique S of G distinct from A is necessarily non-empty and connected. In particular is defined if S is in the form where X and Y are distinct atoms of G. Note that in that case, by Property 2, is an edge of if and only if .
Lemma 1. Let A be an atom and S a clique of a graph G such that . Then .
Proof. is clearly a subset of S, and it cannot be a strict subset of S since in that case it would be a clique -separator of for any a in and any b in . □
Lemma 2. Let G be a graph, let μ be a cycle of , let be an edge of μ and let ; then there is an edge of μ such that and , with A, B, , in this order on μ (with possibly or ).
Proof. As is an edge of , . Let be the first node X of the path from B such that , and let be the node preceding on this path from B. with A, B, , in this order on , and as , it follows that , and therefore . □
We deduce from Lemma 2 the following properties of atom graphs. Property 8 is proved in [
18] for chordal graphs.
Property 7. Let G be a graph, let μ be a cycle of and let S be an inclusion-minimal set among the sets associated with the edges of μ; then S is associated with at least two edges of μ.
Property 8. Let G be a graph and let μ be a of ; then two of the clique minimal separators associated with the edges of μ are equal and included in the third one.
Lemma 3. Let G be a connected graph, let X, and Y be atoms and let S be the intersection of two distinct atoms of G.
- (a)
If and then ( is an edge of ⇔),
- (b)
If and then is an edge of ,
- (c)
If , and Y is adjacent to X but not to in then .
Proof. (a) Let . We assume that and . Let us show that is an edge of ⇔.
is an edge of if , which is still equivalent to . Let . It is sufficient to show that .
First, note that as , we have , and that as , we have , and therefore .
⇒: We assume that . Then, , with being a connected subset of , so and therefore .
⇐: We now assume that . Let . , and as and x has a neighbor in with , . Hence, , and therefore .
(b) As , by (a) is an edge of .
(c) We assume for contradiction that , , Y is adjacent to X but not to in and . By (a) on X and Y, , and by (a) on and Y, , a contradiction. □
Property 9. Let G be a graph and let μ be a chordless cycle of of length at least 4; then either μ is of length 4 and its four edges are associated with the same clique minimal separator or there is an integer such that μ is of length , there are exactly k distinct clique minimal separators associated with the edges of μ which are pairwise non-inclusive and each such separator is associated with two consecutive edges of μ.
In both cases, for each set of consecutive edges and of μ associated with the same clique minimal separator S, .
Proof. Let be an edge of such that is inclusion-minimal among the clique minimal separators associated with the edges of and let . Let us first prove the following property .
: for each pair of nodes of such that , the following propositions are equivalent:
(1) is an edge of ,
(2) ,
(3) .
: as , and by the minimality of S, so .
is evident.
: by Lemma 3 (b) is an edge of , and therefore of since is chordless.
By Lemma 2, there is an edge of such that and , with A, B, , in this order on . By the minimality of S, . As is an edge of , , and therefore . As , by is an edge of . It follows that or . We assume, without loss of generality, that . By again, as and is not an edge of , . Let D be the neighbor of A on different from B.
First case:
As and is an edge of , by . Hence, as and , by is an edge of and . Thus, satisfies the first alternative of Property 9 and for each set of consecutive edges and of associated with the same clique minimal separator S, .
Second case:
Let us show that for each node X of , . Let X be a node of , and let Y be a node of such that and is not an edge of (if then otherwise Y exists since neither nor is an edge of and ). By , so as , . It follows that for each edge of , . Hence, S is associated with no other edge than the two consecutive edges and of . It also follows that S is a strict subset of no other clique minimal separator associated with an edge of , and as this holds for each inclusion-minimal clique minimal separator associated with an edge of , the clique minimal separators associated with the edges of are pairwise non-inclusive and therefore all inclusion-minimal. Hence, satisfies the second alternative of Property 9, and for each set of consecutive edges and of associated with the same clique minimal separator S, . □
Example 1. A graph and its atom graph having an induced satisfying the first alternative of Property 9 is shown in Figure 3 (the cycle is such a ). A graph and its atom graph having an induced satisfying the second alternative of Property 9 is shown in Figure 4 (the cycle is such a ). Note that in both cases, the graph is chordal and has a clique tree which is a path: the path , for instance, in the first case, and , for instance, in the second case. This contradicts the claim from [18] that any path of a clique tree of a chordal graph induces a chordal subgraph of its atom graph. For each , the atom graph of the graph obtained from a k-sun by adding a vertex of degree 1 adjacent to x for each vertex x of the clique of size k has an induced satisfying the second alternative of Property 9 (see Figure 2 for ). Corollary 1. Each atom graph is odd-hole-free.
Property 10. Each atom graph is anti-hole-free.
Proof. We assume for contradiction that some induced subgraph of some atom graph G is an anti-hole and let k be its length. by Corollary 1 since an anti-hole of length 5 is a hole. Let be a graph such that G is isomorphic to , let be a chordless cycle of of length k, and let be a sequence of consecutive nodes of . As induces a of , so by Property 9 is equal to or to . We assume without loss of generality that . Let be the full sequence of consecutive vertices of , and for each , let and let be the predicate . As holds and for each , holds by Property 9, it follows by induction that . Let and let . As is an edge of , and by Property 9 . By Lemma 3 (c) with , . It follows that , so by Lemma 3 (a) ( is an edge of ⇔). By Lemma 1 , so , and therefore we have the equivalence ( is an edge of ⇔). Hence , , and . Let and let . , and . Hence is not an edge of , a contradiction. □
Corollary 2. Each atom graph is perfect.
7. Characterizations in Terms of Spanning Trees
The polynomial complexity of recognizing a clique graph of a chordal graph is proved using a characterization of this graph as an
expanded tree [
17]. We recall this characterization, which will give inspiration for a characterization of an atom graph.
Definition 7. A graph G is anexpanded treeif there is a spanning tree T of G such that for each edge of G, the set of vertices of is a clique of G.
The clique graph of a chordal graph G is an expanded tree since any clique tree of G satisfies the condition. The converse holds by the following characterization.
Characterization 12 ([
17]).
A connected graph is a clique graph of a chordal graph if and only if it is an expanded tree. For instance, trees and complete graphs are clearly expanded trees, and therefore clique graphs of chordal graphs, which also follows from Characterization 14.
We now come to a characterization of an atom graph in terms of a spanning tree.
Definition 8. An AG-structure of a graph is a triple where T is a spanning tree of G, is an ordering of the edges of T and is a sequence of subsets of V such that for each , is a subtree of T containing the edge and if is an edge of then and , and for each pair of V, is an edge of G if and only if , where is an edge of
.
G is an AG-expanded tree if it has an AG-structure.
Example 2. Figure 6 shows a graph G and an AG-structure of G: the edges of T are represented by full lines, and . Underlining means that . It follows that G is an AG-expanded tree, and it is an atom graph since it is isomorphic to the atom graph of the graph shown in Figure 4. As for expanded trees, each tree T is an AG-expanded tree (with the AG-structure where S is an arbitrary ordering of the edges of T) and each complete graph G is an AG-expanded tree (with the AG-structure where P is a spanning path of G, is a natural ordering of the edges of P and is the sequence such that for each i from 1 to p is the union of the edges , . Hence, according to Characterization 13 below, trees and complete graphs are atom graphs, which also follows from Characterization 14.
Characterization 13. A connected graph is an atom graph if and only if it is an AG-expanded tree.
To prove Characterization 13, we will use the following Lemma.
Lemma 4. Let T be a join tree of a connected hypergraph, let X, Y be distinct nodes of T and let be an edge of whose associated set is inclusion-minimal among the sets associated with the edges of . Then, is an edge of if and only if (or equivalently ).
Proof. We assume that is an edge of . Let be an edge of such that . As and , . The converse implication is evident. □
Proof. (of Characterization 13) By Characterization 10 it is sufficient to show that there is a join tree T of a connected -acyclic hypergraph such that G is isomorphic to if and only if G is an AG-expanded tree.
⇒: let T be a join tree of a connected hypergraph such that G is isomorphic to . It is sufficient to show that is an AG-expanded tree. Let be an ordering of the edges of T ordered by increasing weight, and let where is the connected component of containing , being the set of nodes of T containing , for each . Let us show that is an AG-structure of . T is a spanning tree of . Let . By definition of , is a subtree of T containing the edge and if is an edge of then and (as , ). Let be a pair of nodes of T, and let . Let us show that is an edge of if and only if . By Lemma 4 and the definition of i, is an edge of if and only if , which is still equivalent to since is connected and for each edge of , . Hence, is an AG-structure of , which implies that it is an AG-expanded tree.
⇐: let and let be an AG-structure of G, with and . Let H be the hypergraph where and , , with , . Let f map each vertex x of G to the hyperedge of H, and let . As is a subtree of T for each , is a join tree of H, and as no edge of is associated with the empty set (the set associated with contains at least since is an edge of ), H is connected.
Let us show that G is isomorphic to . Let . Let us show that is an edge of G if and only if is an edge of . Let , . As is an edge of G if and only if , it is sufficient to show that if and only if is an edge of . We assume that . Let us show that is an edge of . It is sufficient to show that . Let , and let such that . As is an edge of , , so , i.e., , and therefore . Hence, . Conversely, we assume that is an edge of . Let us show that . Let such that is an edge of and . As is an edge of , , and therefore , i.e., . As is a subtree of T, is an edge of and therefore . As by definition of i, and therefore . Hence, G is isomorphic to . □
The proof of the implication from right to left of Characterization 13 describes how to define a chordal graph such that G is isomorphic to from an AG-structure of G. As the hyperedges of the hypergraph H defined in the proof are pairwise non-inclusive (because of the presence of x in ) H is a clutter. It follows by Property 5 that G is isomorphic to the atom graph of the chordal graph having as a clique tree. Note that can be defined from the set alone: , with and .
Example 3. We recall in Figure 7 the graph G and its AG-structure shown in Figure 6, and we add the join tree as defined in the proof of Characterization 13 and the chordal graph such that G is isomorphic to as defined above. The edges incident to vertex 5 in are dashed because vertex 5 may be removed (it is not necessary in to turn H into a clutter). We refind the graph shown in Figure 4 whose atom graph is G (up to isomorphism). Characterization 13 can be used to show that a graph is or is not an atom graph, and to deduce some properties of atom graphs. We leave as an open question whether it can be used to determine the complexity of atom graph recognition, as was the case for the characterization as an expanded tree for clique graph of a chordal graph recognition. We first define a superclass of both the classes of expanded and AG-expanded trees.
Definition 9. A join-path spanning tree of a graph G is a spanning tree T of G such that for each edge of G, there is an edge of , with x, , , y in this order on this path, such that each vertex of is adjacent to each vertex of in G (i.e., the join of the subgraphs of G induced by the paths and is a subgraph of G).
G is an join-path-expanded tree if it has a join-path spanning tree.
Note that if T is a join-path spanning tree of G then for each edge of G, each vertex of is adjacent to x or y in G).
We immediately deduce from the characterizations of a clique graph of a chordal graph and an atom graph as an expanded tree and an AG-expanded tree, respectively, the following property.
Property 11. Each connected atom graph (resp. clique graph of a chordal) is a join-path-expanded tree.
As the classes of clique graphs of chordal graphs and atom graphs are inclusion-uncomparable, they are necessarily strict subclasses of the class of join-path-expanded trees, so having a join-path spanning tree is a necessary, but non-sufficient, condition for a connected graph to be an atom graph (or a clique graph of a chordal graph).
Property 12. No cycle of length at least 4 is an atom graph.
Proof. We assume for contradiction that some cycle G of length at least 4 is an atom graph. Then by Property 11 G has a join-path spanning tree T, which is necessarily a path whose extremities x and y are adjacent in G. As T is a join-path spanning tree of G, each vertex of G is adjacent to x or y in G, a contradiction. □
Though a
is not an atom graph, the graph obtained from a
by adding a universal vertex is an atom graph, as is shown in
Figure 7. We have the following result.
Corollary 3. The class of atom graphs is not hereditary.
Note that these results also hold for clique graphs of chordal graphs. No cycle of length at least 4 is a clique graph of a chordal graph for the same reason as for atom graphs. As any graph having a universal vertex is a clique graph of a chordal graph (by Characterization 6, considering the spanning tree whose edges are the edges incident to a universal vertex) the class of clique graphs of chordal graphs also fails to be hereditary.
We deduce from the proof of Characterization 13 the following property.
Property 13. Each connected atom graph of order n is isomorphic to the atom graph of some chordal graph of order whose minimal separators have exactly 2 full components.
Proof. In the proof of Characterization 13 we define from an AG-structure of a connected graph G of order n a clique tree of a chordal graph such that G is isomorphic to . has vertices, where p is the number of edges of a spanning tree of G, so is of order . Let us show that the sets associated with the edges of are pairwise distinct. Let such that. . Let us show that . As is an edge of , , so , i.e., is an edge of , and therefore . Symetrically , so . Hence, the sets associated with the edges of are pairwise distinct, so by Property 1 each minimal separator of has exactly 2 full components. □
Property 13 provides a polynomial certificate for atom graph recognition. Given a graph G of order n, the certificate is composed of a graph of order , its atom graph and an isomorphism f from G to . We can check in polynomial time that is the atom graph of and that f is an isomorphism from G to .
Corollary 4. Atom graph recognition is in NP.
Property 13 also provides a brute force algorithm recognizing an atom graph: computing all the graphs having given vertices, and for each one of these graphs satisfying the conditions of Property 13, computing its atom graph and determining whether it is isomorphic to the input graph. We deduce from Characterization 13 another brute force algorithm which is (relatively !) more efficient since it runs in time. Whereas the number of graphs having given vertices is , i.e.,. Note that this algorithm is still quite intractable except for very small graphs.
Theorem 1. An atom graph can be recognized in time.
Proof. We assume without loss of generality that G is connected. The idea is to consider each spanning tree of G and each ordering of its edges. For that, we associate each edge of G with an integer from 1 to m. A subset of edges (potential set of edges of a spanning tree) is represented by the sequence of their associated integers in increasing order. There are such sequences that we process in lexicographic order. As finding the next sequence in lexicographic order and checking that it defines a spanning tree (connected and covering all vertices) take time, this process is in time, and therefore in time.
An ordering of the edges is represented by the sequence of their associated integers. There are such sequences that we process in lexicographic order. As finding the next sequence in this order takes time, this process is in time.
Now, given a spanning tree T and an ordering , for each i from 1 to p, is necessarily the set defined as follows. Let , and (resp. ) be the connected component of containing (resp. ). is the union of the set of neighbors of in and the set of neighbors of in . Computing and checking its connexity takes time, and therefore time for all i. If is an edge of then necessarily , and checking that takes time, and therefore time for all . It is sufficient to check the equivalence “ is an edge of G if and only if ” for each pair such that x is in and y is in ( and defined as above), since these pairs are exactly the pairs such that . This process adds a time complexity in for all i, since the sets and have already been computed and each pair is checked exactly once.
Hence, the algorithm is in time, i.e., in time. □
We use Characterization 13 to show that the
k-sun is not an atom graph if
. We recall that the 3-sun is an atom graph (it is the atom graph of the graph shown in
Figure 5).
Property 14. There is no integer such that the k-sun is an atom graph.
Proof. We assume for contradiction that there is an integer such that the k-sun is an atom graph, and therefore an AG-expanded tree. Let be a k-sun and let be an AG-structure of G. Let C be the clique of G of size k, let , let (resp. ) be the set of vertices of D of degree 1 (resp. 2) in T, and let . is a subtree of T. Let , let , and for each let be the connected component of T- containing and let be equal to if and to the neighbor of in otherwise, so that in both cases . Let us show that .
Let us first show that . Let , and let such that and . As is a subtree of T, is a path in , so . As is an edge of G, . Hence, . As is connected and each vertex of is on the path in T between its two neighbors which belong to C and therefore to , .
Let us show that for any triangle in G such that , there is an integer j in such that . Let be such a triangle. We assume w.l.o.g. that c is the neighbor of d in T. Let . As is an edge of G, . It follows that (otherwise would be a subset of , and therefore an edge of , so would be a subset of and would not contain d). Hence, d is adjacent to each vertex of , so and is an edge of T. Let j be the integer such that . As is an edge of , and as contains the edge , but not the edge since , .
Now, as the vertices of D are pairwise non-adjacent in G, there is some such that . We assume without loss of generality that . Then, . As G is a k-sun with , there are 2 triangles and such that for each , is in , and therefore in , which is equal to since . So by the preceding argument, for each there is an integer in such that . Hence, there is no integer r such that is an edge of and , and therefore is not an edge of G, a contradiction. □
We showed in
Section 5 that by Characterization 6 the 3-sun is not a clique graph of a chordal graph. The same argument holds for each
: there is no integer
k such that the
k-sun is a clique graph of a chordal graph. However, the
k-sun is a join-path-expanded tree for each
: it is easy to check that any spanning tree
T of the
k-sun which is a spanning tree of the union of its external triangles such that each vertex of degree 2 in the
k-sun is of degree 1 in
T is a join-path spanning tree of the
k-sun. A join-path spanning tree of the 4-sun is shown in
Figure 8 (its edges are represented by full lines). It follows that the union of the classes of atom graphs and clique graphs of chordal graphs is a strict subclass of the class of join-path-expanded graphs.