library(igraph)
set.seed(1)
n <- 25
g <- sample_gnp(n, p=0.25) # Random graph
X1 <- build_cover_greedy(g)
X1$size # 17
plot_cover(X1, g)
X2 <- build_cover_approx(g)
X2$size # 20
plot_cover(X2, g)
X3 <- improve_cover_flip(g, X1)
X3$size # 17 : Not improved
plot_cover(X3,g)
X4 <- improve_cover_flip(g, X2)
X4$size # 19 : It is improved by a single vertex
plot_cover(X4,g)
# Vertex subsets or n-1 elements are always vertex covers:
for (i in 1:25) {
X3 <- improve_cover_flip(g, list(set = setdiff(1:25,i), size = 24))
print(X3$size)
} # 19 18 18 18 18 18 17 20 19 17 17 18 18 18 17 19 20 19 19 17 19 19 19 19 19
Run the code above in your browser using DataLab