# 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.