0

I wish to optimise the fit of a complex, parameterised model to noisy data using Particle Swarm Optimisation (PSO). The data is time-series chemical concentration values.

Within my optimisation objective function I measure fitness using the Bray Curtis distance [1] between the concentration time-series profiles and a model prediction (the model prediction is produced using the parameters corresponding to a candidate solution to the optimisation problem).

At present I do not account for imprecision in my concentration data. In reality, the concentrations have been rounded to integer values. I suspect that I could get better model fits with PSO if the PSO routine and/or the objective function were 'aware' of the imprecision of the input data.

I am able to find the min and max Bray Curtis distances for a prediction time-series and data time-series but am not sure how best to make use of these values within the PSO code.

Does anyone have any suggestions as to how to deal with data imprecision when assessing the fitness of candidate solutions within the context of evolutionary optimisation?

A secondary problem is that the the time-series data is subject to both instrument and timing errors. I'm happy to assume that both types of error are normally distributed and have invariant standard deviations but again am no longer sure how best to handle this uncertainty when quantifying fitness for PSO optimisation.

[1] http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.braycurtis.html

Will Furnass
  • 108
  • 1
  • 6

1 Answers1

0

PSO should be more resilient to noisy data than most algorithms. Have you observed an actual problem with how PSO is running? Make sure to use a fairly sparse topology. And if it really comes down to it, you could have each particle use for its personal and neighborhood bests, not the best value it's ever seen, but rather the best value in the last 500 iterations. It's a bit of a hack, but it may be worth a try. In the end, if the algorithm is doing okay, you might not have to worry at all.

amcnabb
  • 2,161
  • 1
  • 16
  • 24
  • 1
    I became aware after commencing with a model fitting problem that the raw data I was working with was subject to rounding errors. I am already using a sparse particle communication topology (Von Neumann lattice). Since posting my question I've found that I can get a better model fit using PSO if I alter the definition of the Bray Curtis distance to sum(sgn(|u_i-v_i|-p)|u_i-v_i|-p) / sum(|u_i+v_i|) where p is the maximum precision of vector u (i.e p = ((the max number of decimal places in u)+1) / 2 – Will Furnass Mar 28 '12 at 15:42