Learn R Programming

igraph (version 1.3.5)

cliques: Functions to find cliques, ie. complete subgraphs in a graph

Description

These functions find all, the largest or all the maximal cliques in an undirected graph. The size of the largest clique can also be calculated.

Usage

cliques(graph, min = 0, max = 0)

max_cliques(graph, min = NULL, max = NULL, subset = NULL, file = NULL)

Value

cliques, largest_cliques and clique_num

return a list containing numeric vectors of vertex ids. Each list element is a clique, i.e. a vertex sequence of class igraph.vs.

max_cliques returns NULL, invisibly, if its file

argument is not NULL. The output is written to the specified file in this case.

clique_num and count_max_cliques return an integer scalar.

clique_size_counts returns a numeric vector with the clique sizes such that the i-th item belongs to cliques of size i. Trailing zeros are currently truncated, but this might change in future versions.

Arguments

graph

The input graph, directed graphs will be considered as undirected ones, multiple edges and loops are ignored.

min

Numeric constant, lower limit on the size of the cliques to find. NULL means no limit, ie. it is the same as 0.

max

Numeric constant, upper limit on the size of the cliques to find. NULL means no limit.

subset

If not NULL, then it must be a vector of vertex ids, numeric or symbolic if the graph is named. The algorithm is run from these vertices only, so only a subset of all maximal cliques is returned. See the Eppstein paper for details. This argument makes it possible to easily parallelize the finding of maximal cliques.

file

If not NULL, then it must be a file name, i.e. a character scalar. The output of the algorithm is written to this file. (If it exists, then it will be overwritten.) Each clique will be a separate line in the file, given with the numeric ids of its vertices, separated by whitespace.

Author

Tamas Nepusz ntamas@gmail.com and Gabor Csardi csardi.gabor@gmail.com

Details

cliques find all complete subgraphs in the input graph, obeying the size limitations given in the min and max arguments.

largest_cliques finds all largest cliques in the input graph. A clique is largest if there is no other clique including more vertices.

max_cliques finds all maximal cliques in the input graph. A clique is maximal if it cannot be extended to a larger clique. The largest cliques are always maximal, but a maximal clique is not necessarily the largest.

count_max_cliques counts the maximal cliques.

clique_num calculates the size of the largest clique(s).

clique_size_counts returns a numeric vector representing a histogram of clique sizes, between the given minimum and maximum clique size.

References

For maximal cliques the following algorithm is implemented: David Eppstein, Maarten Loffler, Darren Strash: Listing All Maximal Cliques in Sparse Graphs in Near-optimal Time. https://arxiv.org/abs/1006.5440

See Also

ivs

Examples

Run this code

# this usually contains cliques of size six
g <- sample_gnp(100, 0.3)
clique_num(g)
cliques(g, min=6)
largest_cliques(g)

# To have a bit less maximal cliques, about 100-200 usually
g <- sample_gnp(100, 0.03)
max_cliques(g)

Run the code above in your browser using DataLab