search_better_random: Search for a better projection using simulated annealing

View source: R/search-better.r

search_better_randomR Documentation

Search for a better projection using simulated annealing

Description

Given an initial t0, the cooling scheme updates temperature at

T = t0 /\log(i + 1)

The candidate basis is sampled via

B_j = (1 - \alpha) * B_i + \alpha * B

where alpha defines the neighbourhood, B_i is the current basis, B is a randomly generated basis The acceptance probability is calculated as

prob = \exp{-abs(I(B_i) - I(B_j))/ T}

For more information, see https://projecteuclid.org/download/pdf_1/euclid.ss/1177011077

Usage

search_better_random(
  current,
  alpha = 0.5,
  index,
  tries,
  max.tries = Inf,
  method = "linear",
  cur_index = NA,
  t0 = 0.01,
  ...
)

Arguments

current

starting projection

alpha

the angle used to search the target basis from the current basis

index

index function

tries

the counter of the outer loop of the opotimiser

max.tries

maximum number of iteration before giving up

method

whether the nearby bases are found by a linear/ geodesic formulation

cur_index

the index value of the current basis

t0

initial decrease in temperature

...

other arguments being passed into the search_better_random()

Examples

animate_xy(flea[, 1:6], guided_tour(holes(), search_f = search_better_random))

tourr documentation built on Aug. 25, 2023, 1:08 a.m.