\HeaderA{is.triangulated}{Decide if a graph is triangulated}{is.triangulated}
\keyword{models}{is.triangulated}
\begin{Description}\relax
Decide if a graph is triangulated
\end{Description}
\begin{Usage}
\begin{verbatim}
is.triangulated(g)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{g}] an instance of the \code{graph} class 
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
An undirected graph G = (V, E) is triangulated (i.e. chordal) if all cycles
[v1, v2, ..., vk] of length 4 or more have a chord, i.e., an edge
[vi, vj] with j != i +/- 1 (mod k)

An equivalent definition of chordal graphs is:

G is chordal iff either G is an empty graph, or
there is an v in V such that
\Enumerate{
\item the neighborhood of v (i.e., v and its adjacent nodes) forms a clique, and
\item recursively, G-v is chordal
}
\end{Details}
\begin{Value}
The return value is \code{TRUE} if \code{g} is triangulated
and \code{FALSE} otherwise. An error is thrown if the graph is not 
undirected; you might use \code{\LinkA{ugraph}{ugraph}} to compute the underlying 
graph.
\end{Value}
\begin{Author}\relax
Li Long <li.long@isb-sib.ch>
\end{Author}
\begin{References}\relax
Combinatorial Optimization: algorithms and complexity  (p. 403)
by C. H. Papadimitriou, K. Steiglitz
\end{References}
\begin{SeeAlso}\relax
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
coex <- fromGXL(file(system.file("XML/conn.gxl",package="RBGL"), open="r"))
is.triangulated(coex)
coex <- fromGXL(file(system.file("XML/hcs.gxl",package="RBGL"), open="r"))
is.triangulated(coex)
\end{ExampleCode}
\end{Examples}

