File: has_eulerian_path.Rd

package info (click to toggle)
r-cran-igraph 2.1.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 27,044 kB
  • sloc: ansic: 204,981; cpp: 21,711; fortran: 4,090; yacc: 1,229; lex: 519; sh: 52; makefile: 8
file content (69 lines) | stat: -rw-r--r-- 2,556 bytes parent folder | download
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/eulerian.R
\name{has_eulerian_path}
\alias{has_eulerian_path}
\alias{has_eulerian_cycle}
\alias{eulerian_path}
\alias{eulerian_cycle}
\title{Find Eulerian paths or cycles in a graph}
\usage{
has_eulerian_path(graph)

has_eulerian_cycle(graph)

eulerian_path(graph)

eulerian_cycle(graph)
}
\arguments{
\item{graph}{An igraph graph object}
}
\value{
For \code{has_eulerian_path()} and \code{has_eulerian_cycle()}, a logical
value that indicates whether the graph contains an Eulerian path or cycle.
For \code{eulerian_path()} and \code{eulerian_cycle()}, a named list with two
entries: \item{epath}{A vector containing the edge ids along the Eulerian
path or cycle.} \item{vpath}{A vector containing the vertex ids along the
Eulerian path or cycle.}
}
\description{
\code{has_eulerian_path()} and \code{has_eulerian_cycle()} checks whether there
is an Eulerian path or cycle in the input graph. \code{eulerian_path()} and
\code{eulerian_cycle()} return such a path or cycle if it exists, and throws
an error otherwise.
}
\details{
\code{has_eulerian_path()} decides whether the input graph has an Eulerian
\emph{path}, i.e. a path that passes through every edge of the graph exactly
once, and returns a logical value as a result. \code{eulerian_path()} returns
a possible Eulerian path, described with its edge and vertex sequence, or
throws an error if no such path exists.

\code{has_eulerian_cycle()} decides whether the input graph has an Eulerian
\emph{cycle}, i.e. a path that passes through every edge of the graph exactly
once and that returns to its starting point, and returns a logical value as
a result. \code{eulerian_cycle()} returns a possible Eulerian cycle, described
with its edge and vertex sequence, or throws an error if no such cycle exists.
}
\examples{

g <- make_graph(~ A - B - C - D - E - A - F - D - B - F - E)

has_eulerian_path(g)
eulerian_path(g)

has_eulerian_cycle(g)
try(eulerian_cycle(g))

}
\seealso{
Graph cycles
\code{\link{feedback_arc_set}()},
\code{\link{girth}()},
\code{\link{is_acyclic}()},
\code{\link{is_dag}()}
}
\concept{cycles}
\keyword{graphs}
\section{Related documentation in the C library}{\href{https://igraph.org/c/html/latest/igraph-Cycles.html#igraph_is_eulerian}{\code{igraph_is_eulerian()}}, \href{https://igraph.org/c/html/latest/igraph-Cycles.html#igraph_eulerian_path}{\code{igraph_eulerian_path()}}, \href{https://igraph.org/c/html/latest/igraph-Cycles.html#igraph_eulerian_cycle}{\code{igraph_eulerian_cycle()}}.}