Compute distance matrix from bases.

path_dist(history)

Arguments

history

history of the plots

Examples

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)
}