1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
% Generated by roxygen2 (4.1.1): do not edit by hand
% Please edit documentation in R/structural.properties.R
\name{girth}
\alias{girth}
\title{Girth of a graph}
\usage{
girth(graph, circle = TRUE)
}
\arguments{
\item{graph}{The input graph. It may be directed, but the algorithm searches
for undirected circles anyway.}
\item{circle}{Logical scalar, whether to return the shortest circle itself.}
}
\value{
A named list with two components: \item{girth}{Integer constant, the
girth of the graph, or 0 if the graph is acyclic.} \item{circle}{Numeric
vector with the vertex ids in the shortest circle.}
}
\description{
The girth of a graph is the length of the shortest circle in it.
}
\details{
The current implementation works for undirected graphs only, directed graphs
are treated as undirected graphs. Loop edges and multiple edges are ignored.
If the graph is a forest (ie. acyclic), then zero is returned.
This implementation is based on Alon Itai and Michael Rodeh: Finding a
minimum circuit in a graph \emph{Proceedings of the ninth annual ACM
symposium on Theory of computing}, 1-10, 1977. The first implementation of
this function was done by Keith Briggs, thanks Keith.
}
\examples{
# No circle in a tree
g <- make_tree(1000, 3)
girth(g)
# The worst case running time is for a ring
g <- make_ring(100)
girth(g)
# What about a random graph?
g <- sample_gnp(1000, 1/1000)
girth(g)
}
\author{
Gabor Csardi \email{csardi.gabor@gmail.com}
}
\references{
Alon Itai and Michael Rodeh: Finding a minimum circuit in a
graph \emph{Proceedings of the ninth annual ACM symposium on Theory of
computing}, 1-10, 1977
}
\keyword{graphs}
|