The problem may stem from the fitness ratio you use in your code. The inverse of the distances may give very large differences in the resampling probabilities of the new generation of the samples. For example, let x
stand for the rms
values in your design and let them be
x = [0.1 1 1 3 10 50]
When you use the inverses, that leads to
y = (1./x) ./ norm(1./x)
y =
0.9896 0.0990 0.0990 0.0330 0.0099 0.0020
As you see, the first sample dominates the next generation. It may converge to wrong proposals very easily. Alternatively, you may use a sigmoid-like function. For example,
z = exp(-x) ./ norm(exp(-x))
z =
0.8659 0.3521 0.3521 0.0476 0.0000 0.0000
Now, the particles in the next generation will probably involve some samples similar to the second and third ones. So, the generation scheme will be more robust to erronous proposals.
Edit: Moreover, after dividing by the norms, the sum of the result is not 1. You might use sum
instead.
y = (1./x) ./ sum(1./x)
y =
0.8030 0.0803 0.0803 0.0268 0.0080 0.0016
z = exp(-x) ./ sum(exp(-x))
z =
0.5353 0.2176 0.2176 0.0295 0.0000 0.0000
The answer is in the title: this is called sequential Monte Carlo or particle filtering or population Monte Carlo. It is validated in wider generality as an iterated importance sampling scheme where each importance sample is used to generate the following sample. This is for instance covered in Chapter 14 of our book Monte Carlo Statistical Methods.
The specific issue of using the whole sequence of simulation is found in the literature, but not in the direct way you propose: using all samples at once with the same weights does not behave nicely when some of the weights are huge (as when one starts with a poor guess). This is covered in the fantastic multiple mixture paper by Owen and Zhou (2000, JASA) and in our more recent adaptive version (when $T$ depends on the iteration $t$ and on the past simulations) called AMIS.
Best Answer
What that sentence means is you should generate $x_t^{(i)}$ from the distribution of $p(x_t|x^{(i)}_{t−1})$.
For an alternative introduction to particle filters I recommend An Overview of Existing Methods and Recent Advances in Sequential Monte Carlo
MATLAB has numerous toolboxes on particle filters. If you are working in C++, here is an implementation you can use to compare your code with.