Compute distance matrix from bases.
path_dist(history)
history of the plots
if (FALSE) {
grand <- interpolate(save_history(flea[, 1:6], max = 50), 0.2)
# The grand tour -----------------------------
# Look at the tour path in a tour, how well does it cover a sphere
# Using MDS
d <- path_dist(grand)
ord <- as.data.frame(MASS::isoMDS(d)$points)
ggplot(data = ord, aes(x=V1, y=V2)) +
geom_path() +
coord_equal() +
labs(x = NULL, y = NULL)
}
# 5 guided tours -----------------------------
holes1d <- guided_tour(holes(), 1)
tour_reps <- replicate(5, save_history(flea[, 1:6], holes1d, max = 10),
simplify = FALSE
)
#> Converting input data to the required matrix format.
#> Value 0.710 577.9 % better - NEW BASIS
#> Value 0.694 563.2 % better - NEW BASIS
#> Value 0.991 42.7 % better - NEW BASIS
#> Value 1.287 29.9 % better - NEW BASIS
#> Value 1.326 3.0 % better - NEW BASIS
#> Value 1.345 1.4 % better - NEW BASIS
#> Value 1.351 0.5 % better - NEW BASIS
#> Value 1.362 0.8 % better - NEW BASIS
#> Value 1.365 0.2 % better - NEW BASIS
#> Value 1.368 0.2 % better - NEW BASIS
#> Converting input data to the required matrix format.
#> Value 0.542 201.5 % better - NEW BASIS
#> Value 0.654 264.1 % better - NEW BASIS
#> Value 1.032 57.8 % better - NEW BASIS
#> Value 1.270 23.1 % better - NEW BASIS
#> Value 1.342 5.6 % better - NEW BASIS
#> Value 1.350 0.6 % better - NEW BASIS
#> Value 1.354 0.3 % better - NEW BASIS
#> Value 1.359 0.3 % better - NEW BASIS
#> Value 1.367 0.6 % better - NEW BASIS
#> Value 1.369 0.2 % better - NEW BASIS
#> Converting input data to the required matrix format.
#> Value 0.832 412.2 % better - NEW BASIS
#> Value 0.468 188.2 % better - NEW BASIS
#> Value 1.195 155.2 % better - NEW BASIS
#> Value 1.273 6.6 % better - NEW BASIS
#> Value 1.343 5.5 % better - NEW BASIS
#> Value 1.354 0.8 % better - NEW BASIS
#> Value 1.361 0.5 % better - NEW BASIS
#> Value 1.363 0.1 % better - NEW BASIS
#> Value 1.368 0.3 % better - NEW BASIS
#> Value 1.368 0.1 % better
#> Value 1.369 0.1 % better
#> Value 1.368 0.1 % better
#> Value 1.368 0.0 % better
#> Value 1.368 0.0 % better
#> Value 1.369 0.1 % better - NEW BASIS
#> Converting input data to the required matrix format.
#> Value 1.167 77.3 % better - NEW BASIS
#> Value 1.045 58.8 % better - NEW BASIS
#> Value 1.171 12.1 % better - NEW BASIS
#> Value 1.346 14.9 % better - NEW BASIS
#> Value 1.357 0.8 % better - NEW BASIS
#> Value 1.361 0.3 % better - NEW BASIS
#> Value 1.365 0.3 % better - NEW BASIS
#> Value 1.366 0.1 % better
#> Value 1.367 0.2 % better - NEW BASIS
#> Value 1.368 0.1 % better
#> Value 1.369 0.1 % better - NEW BASIS
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.1 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.1 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.1 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.1 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.0 % better
#> Value 1.369 0.1 % better
#> Value 1.369 0.0 % better
#> No better bases found after 25 tries. Giving up.
#> Final projection:
#> 0.378 0.348 0.381 0.378 0.489 0.457
#> Converting input data to the required matrix format.
#> Value 0.912 90.6 % better - NEW BASIS
#> Value 0.951 98.6 % better - NEW BASIS
#> Value 1.111 16.9 % better - NEW BASIS
#> Value 1.241 11.7 % better - NEW BASIS
#> Value 1.299 4.7 % better - NEW BASIS
#> Value 1.334 2.7 % better - NEW BASIS
#> Value 1.349 1.1 % better - NEW BASIS
#> Value 1.358 0.7 % better - NEW BASIS
#> Value 1.364 0.4 % better - NEW BASIS
#> Value 1.367 0.2 % better - NEW BASIS
tour_reps2 <- lapply(tour_reps, interpolate, 0.2)
bases <- unlist(lapply(tour_reps2, as.list), recursive = FALSE)
class(bases) <- "history_list"
index_values <- paths_index(tour_reps2, holes())
d <- path_dist(bases)
ord <- as.data.frame(cmdscale(d, 2))
info <- cbind(ord, index_values)
if (require("ggplot2")) {
ggplot(data = info, aes(x = step, y = value, group = try)) +
geom_line()
ggplot(data = info, aes(x = V1, y = V2, group = try)) +
geom_path() +
geom_point(aes(size = value)) +
coord_equal()
last_plot() + facet_wrap(~try)
}