Allocation Algorithms

The allocation methods determine:

  • How many particles we should attempt to have within each bin.
  • How many offspring each particle should have.

In the methods included here, one first allocates the number of particles to each bin, and then uses multinomial resampling, within each bin, to determine how many offspring each particle should have.

Bin Allocation Methods

WeightedEnsemble.minimal_bin_allocation!Function
minimal_bin_allocation!(B; νmin=νmin)

Allocates a single particle to be spawned within each nonempty bin and the current number of particles in any bin with less than νmin total mass.

Arguments

  • B - bin data structure

Optional Arguments

  • νmin=νmin - minimal bin weight to avoid underflow
source
WeightedEnsemble.uniform_bin_allocation!Function
uniform_bin_allocation!(B, E, n_allocate; allocation_resampler=systematic, νmin=νmin)

Uniformly allocate particles amongst bins.

Arguments

  • B - bin data structure
  • E - particle ensemble
  • n_allocate - number of particles to allocate

Optional Arguments

  • allocation_resampler=systematic - resampling scheme amongst bins
  • νmin=νmin - minimal bin weight to avoid underflow
source
WeightedEnsemble.optimal_bin_allocation!Function
optimal_bin_allocation!(B, E, v², t, n_allocate; allocation_resampler=systematic, νmin=νmin)

Optimally particles according to the bins, using a value function, to approximate mutation variance.

Arguments

  • B - bin data structure
  • E - particle ensemble
  • - v² variance function estimator
  • t - t-th seletion step
  • n_allocate - number of particles to allocate

Optional Arguments

  • allocation_resampler=systematic - resampling scheme amongst bins
  • νmin=νmin - minimal bin weight to avoid underflow
source

This function is defined in the spirit of the optimal allocation analysis of Aristoff & Zuckerman (2020).

WeightedEnsemble.targeted_bin_allocation!Function
targeted_bin_allocation!(B::TB, E::TE, G::F, t::Int, n_allocate::Int; allocation_resampler=systematic, νmin=νmin) where {TE<:Ensemble,TB<:Bins,F<:Function}

Targeted allocation of particles amongst bins using a specified function, G:(p, E, B, t) → [0,∞) for bin p.

Arguments

  • B - bin data structure
  • E - particle ensemble
  • G - target function
  • t - t-th seletion step
  • n_allocate - number of particles to allocateOptional Arguments
  • allocation_resampler=systematic - resampling scheme amongst bins
  • νmin=νmin - minimal bin weight to avoid underflow
source

Particle Allocation Methods

WeightedEnsemble.within_bin_allocation!Function
within_bin_allocation!(E, B; within_bin_resampler=multinomial)

Once the number of offspring within each bin are set, allocate them amongst the particles within the bin. This assumes that the bin allocations of the bins have completed.

Arguments

  • E - particle ensemble
  • B - bin data structure

Optional Arguments

  • within_bin_resampler=multinomial - resampling scheme within bins
source

Utility Functions