Batch selection

Module containing batch selection methods for Bayesian optimisation. The methods take in a network encoding of the surface topography, and analyse it to select a diverse set of minima.

topsearch.analysis.batch_selection.barrier_batch_selector(ktn: KineticTransitionNetwork, excluded_minima: list, absolute_barrier_cutoff: float, current_batch_indices: list = None)

Select a batch of points that are all separated by barrier heights greater than absolute_barrier_cutoff. Returns the indices

topsearch.analysis.batch_selection.evaluate_batch(true_potential: Potential, batch_indices: list, batch_points: NDArray[Any, Any]) NDArray[Any, Any]

Evaluate the true potential at each point in the given batch. Return the training and corresponding response values

topsearch.analysis.batch_selection.fill_batch(ktn: KineticTransitionNetwork, batch_indices: list, excluded_minima: list) NDArray[Any, Any]

Return the batch after adding the remaining lowest minima in order

topsearch.analysis.batch_selection.generate_batch(ktn: KineticTransitionNetwork, batch_selection_method: str, excluded_minima: list, absolute_barrier_cutoff: float) NDArray[Any, Any]

Generate the batch given the specified method

topsearch.analysis.batch_selection.get_batch_positions(ktn: KineticTransitionNetwork, batch_indices: list) NDArray[Any, Any]

Get the corresponding batch position from the list of indices

topsearch.analysis.batch_selection.get_excluded_minima(ktn: KineticTransitionNetwork, energy_cutoff: float = 1.0, penalise_edge: bool = False, coords: StandardCoordinates = None, penalise_similarity: bool = False, proximity_measure: float = 0.2, known_points: NDArray[Any, Any] = None) list

Apply specified criteria to decide if the minima should be allowed in the BayesOpt batch. Returns the list of those that should be excluded

topsearch.analysis.batch_selection.lowest_batch_selector(ktn: KineticTransitionNetwork, excluded_minima: list) list

Simply select the lowest minima of the acquisition function. Returns list of indices the selected minima correspond to

topsearch.analysis.batch_selection.monotonic_batch_selector(ktn: KineticTransitionNetwork, excluded_minima: list) list

Find all monotonic sequence basins when excluding excluded_minima, and return their indices in increasing function value

topsearch.analysis.batch_selection.select_batch(ktn: KineticTransitionNetwork, batch_size: int, batch_selection_method: str, fixed_batch_size: bool, barrier_cutoff: float = 1.0, excluded_minima: list = None) tuple[list, NDArray[Any, Any]]

Method to select the batch of points from a given network Returns the indices of the minima and their coordinates Type of batch selection depends on batch_selection_method: Lowest - Select the batch_size lowest minima in value Monotonic - Select monotonic sequence basins of the network Barrier - Select minima that are separated by sufficiently large

barriers counting from lowest in acquisition

Topographical - First perform Monotonic, then fill batch using Barrier

topsearch.analysis.batch_selection.sufficient_barrier(ktn: KineticTransitionNetwork, node_i: int, node_j: int, max_ts_energy: float, e_range: float, absolute_barrier_cutoff: float) bool

Check if minima pass criteria to be added to the batch. Returns logical specified if pass or fail

topsearch.analysis.batch_selection.topographical_batch_selector(ktn: KineticTransitionNetwork, excluded_minima: list, absolute_barrier_cutoff: float) NDArray[Any, Any]

Select a batch of minima based on the surface topography. First finds monotonic sequence basins, and if not batch_size of them then use barrier_batch_selector to generate remaining. Returns the indices of the selected nodes, and their corresponding coordinates