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