Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem:
Changes
Changes are only made in the implementation of DEMove in de.py.
Alignment with Nelson et al. 2013:$\epsilon \sim N(0, \sigma^2)$ used to be added to the proposal as per $\gamma_0 (x_i - x_j) + \epsilon$ . In this case, $\sigma$ should be tuned for each dimension, which confronts the idea of affine-invariance. Now it defines the distribution over gamma: $\gamma = \gamma_0 (1 + \epsilon)$ , which follows Nelson et al. 2013 and ensures affine-invariance.
Fixed the discrepancy between the stated and actual approaches. The normal noise
Vectorization for improved performance:
Removed a loop in favor of vectorized operations. Benchmarks showed a speed boost ranging from 5-10 times depending on the number of walkers.
Simplified walker splitting:
The new implementation requires splitting the walker population into two sets as opposed to the previous three-set approach.