MoveStrategy API

TODO: explain the ideas here

Abstract class

MoveStrategy(ensembles, group, replace) Each MoveStrategy describes one aspect of the approach to the overall MoveScheme.

Shooting strategies

OneWayShootingStrategy([selector, …]) Strategy for OneWayShooting.

Replica exchange strategies

NearestNeighborRepExStrategy([ensembles, …]) Make the NN replica exchange scheme among ordered ensembles.
NthNearestNeighborRepExStrategy(ensembles, …)
AllSetRepExStrategy([ensembles, group, replace]) Make the replica exchange strategy with all ensembles in each sublist.
SelectedPairsRepExStrategy([ensembles, …]) Add replica exchange swap for specific pairs of ensembles.

Replica motion type strategies

ReplicaExchangeStrategy([ensembles, group, …]) Converts EnsembleHops to ReplicaExchange (single replica to default)
EnsembleHopStrategy([ensembles, group, …]) Converts ReplicaExchange to EnsembleHop.

Path reversal strategies

PathReversalStrategy([ensembles, group, replace]) Creates PathReversalMovers for the strategy.

Minus move strategies

MinusMoveStrategy([engine, ensembles, …]) Takes a given scheme and makes the minus mover.
SingleReplicaMinusMoveStrategy([engine, …]) Takes a given scheme and makes a single-replica minus mover.

Global organization strategies

OrganizeByMoveGroupStrategy([ensembles, …]) Default global strategy.
OrganizeByEnsembleStrategy([ensembles, …]) Global strategy to organize by ensemble first.
PoorSingleReplicaStrategy([ensembles, …]) Organizes by ensemble, then readjusts the weights to have a bunch of null moves.