wepy.walker module

Reference implementations for a general walker and walker state with utilities for cloning and merging walkers.

Wepy does not require that this or a subclass of this Walker or WalkerState is used and only that it is something that acts like it (duck typed).

The required attributes for the Walker interface are:

  • state : object implementing the WalkerState interface

  • weight : float

The weight attribute is simply a float and the proper normalization of weights among a weighted ensemble of walkers should be enforced by the resampler.

The clone, squash, and merge methods can be accessed by Decision classes for implementing cloning and merging. As can the module level split and keep_merge functions.

The WalkerState interface must have a method dict which returns a dictionary with string keys and arbitrary values.

Additionally the WalkerState should provide its own __getitem__ magic method for the accessor syntax, i.e. walker.state[‘positions’].

wepy.walker.split(walker, number=2)[source]

Split (AKA make multiple clones) of a single walker.

Creates multiple new walkers that have the same state as the given walker with weight evenly divided between them.

Parameters:
  • walker (object implementing the Walker interface) – The walker to split/clone

  • number (int) –

    The number of clones to make of the walker

    (Default value = 2)

Returns:

cloned_walkers

Return type:

list of objects implementing the Walker interface

wepy.walker.keep_merge(walkers, keep_idx)[source]

Merge a set of walkers using the state of one of them.

Parameters:
  • walkers (list of objects implementing the Walker interface) – The walkers that will be merged together

  • keep_idx (int) – The index of the walker in the walkers list that will be used to set the state of the new merged walker.

Returns:

merged_walker

Return type:

object implementing the Walker interface

wepy.walker.merge(walkers)[source]

Merge this walker with another keeping the state of one of them and adding the weights.

The walker that has it’s state kept is a random choice weighted by the walkers weights.

Parameters:

walkers (list of objects implementing the Walker interface) – The walkers that will be merged together

Returns:

merged_walker

Return type:

object implementing the Walker interface

class wepy.walker.Walker(state, weight)[source]

Bases: object

Reference implementation of the Walker interface.

A container for:

  • state

  • weight

Constructor for Walker.

Parameters:
  • state (object implementing the WalkerState interface)

  • weight (float)

clone(number=1)[source]

Clone this walker by making a copy with the same state and split the probability uniformly between clones.

The number is the increase in the number of walkers.

e.g. number=1 will return 2 walkers with the same state as this object but with probability split 50/50 between them

Parameters:

number (int) –

Number of extra clones to make

(Default value = 1)

Returns:

cloned_walkers

Return type:

list of objects implementing the Walker interface

squash(merge_target)[source]

Add the weight of this walker to another.

Parameters:

merge_target (object implementing the Walker interface) – The walker to add this one’s weight to.

Returns:

merged_walker

Return type:

object implementing the Walker interface

merge(other_walkers)[source]

Merge a set of other walkers into this one using the merge function.

Parameters:

other_walkers (list of objects implementing the Walker interface) – The walkers that will be merged together

Returns:

merged_walker

Return type:

object implementing the Walker interface

class wepy.walker.WalkerState(**kwargs)[source]

Bases: object

Reference implementation of the WalkerState interface.

Access all key-value pairs as a dictionary with the dict() method.

Access individual values using the accessor syntax similar to dictionaries:

>>> WalkerState(my_key='value')['my_key']
'value'

Constructor for WalkerState.

All key-word arguments passed in will be set as the key-value pairs for the state.

dict()[source]

Return all key-value pairs as a dictionary.